Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
QuesPBX?
EslasiglaparaPrivateBrancheXchange.Eselsistemaqueconectallamadasdentrodela
mismacompaa.Comnmentepuedetenerdesdedosadiezmilextensionesyunaconexinal
sistematelefnicotradicional(PSTN)parallamadashaciaydesdeelexteriordelacompaa.
Asterisk(ensudefinicinmascomn)
Esunaaplicacindesoftwarelibre(bajolicenciaGPL)creadainicalmentepormarkspencer,
proveefuncionalidadesdeunacentraltelefnica(PBX).Digiumesempresaquepromueveel
softwareeinvierteenambosaspectos,eldesenvolvimientodecdigofuenteyenhardwarede
telefonadebajocostoquefuncionaconAsterisk,aunquepodemosconectarloalaredpblicade
telefonaPSTN(PublicServiceTelephonyNetwork)conosinhardware.
ElproyectoZapataHOYDahdi
ElproyectoZAPATAfueconducidoporJimDixon.Eleselresponsableporeldesarrollodel
hardwaredeDIGIUM.Esinteresanteresaltarqueelhardwaretambinesabiertoypuedeser
producidoporcualquierempresa.HoyExistenplacaE1/T1sesproducidaporDigium,Sangomay
tambinporVarion.Lahistoriadelproyectozapatapuedeservistaen:
http://www.asteriskdocs.org/modules/tinycontent/index.php?id=10)
ConceptosBasicos
Canal:Esunaconexionqueconduceunallamadaentranteosalienteenelsistemaasterisk.Laconexion
puedevenirosalirhaciatelefoniatradicionalanalogicaodigital,oVoIP.
Dialplan:Setratadelaconfiguraciondelacentraldeasteriskqueindicaelitinerarioquesigueuna
llamadadesdequeentraosaledelsistemahastaquellegaasupuntofinal.Setrataenlineas
generalesdelcomportamientologicodelacentral.
Extension:Entelefoniatradicional,lasextensionesseasociancontelefonos,interfacesomenues.En
asterisk,unaextensionesunalistadecomandosaejecutar.Lasextensionesseaccedencuando:
Serecibeunallamadaentranteporuncanaldado.
Elusuarioquehallamadomarcalaextension
Seejecutaunsaltodeextensionesdesdeeldialplandeasterisk.
Contexto:Eldialplanologicadecomportamientodeasterisksedivideenunoovarioscontextos.Un
contextoesunacolecciondeextensiones.Loscontextosexistenparapoderdiferenciarellugardonde
seencuentraunallamada.
Aplicacion:Asteriskejecutasecuencialmenteloscomandosasociadosacadaextension.Esoscomandosson
realmenteaplicacionesquecontrolanelcomportamientodelallamadaydelsistemaensi.Ejemplos:
Hangup:Colgarlallamada
Dial:Realizaunallamadasaliente
Playback:Reproduceunarchivodesonido
Masadelantehablaremosmasafondodeaplicaciones.
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
ProtocoloSiP
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
Asterisk utiliza el procesador para procesar las llamadas esto quiere decir que de acuerdo a nuestra necesidad necesitaremos un procesador de gran
capacidad para procesar las llamadas simultaneas
Requerimiento de paquetes para compilar: libpri, dahdi y asterisk
Centos:
yum install -y gcc ncurses-devel libtermcap-devel kernel-devel kernel-smp-devel gcc-c++ openssl-devel newt-devel zlib-devel unixODBC-devel libtool
wget make
Debian:
apt-get install build-essential subversion libncurses5-dev libssl-dev libxml2-dev vim-nox linux-source wget linux-headers-`uname -r` unixodbc-dev
Esta opcin es independiente de la distribucin GNU/linux o derivado de (RedHat o Debian), pero instalara todas las dependencias
[root@serverasterisk ~]# cd /usr/src/asterisk-src/asterisk-1.8-current
[root@serverasterisk ~]#./contrib/scripts/install_prereq install
[root@serverasterisk ~]#./contrib/scripts/install_prereq install-unpackaged
Nota: nosotros vamos a crear un directorio de nombre asterisk-src /usr/src/ para extraer y compilar seguimos el orden: libpri, dahdi y por ultimo asterisk,
usaremos wget para descargar los fuentes de digium.
[root@serverasterisk ~]# mkdir /usr/src/asterisk-src
[root@serverasterisk ~]# cd /usr/src/asterisk-src
[src]# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8-current.tar.gz
[src]# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
[src]# wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
Extrayendoloscdigosfuentes
opcion 1 dotos a la vez
[root@server src]#for x in *.gz;do tar zxvf $x;done
opcion 2 paquete por paquete
[root@srvasterisk src]#tar xzvf asterisk-1.8-current.tar.gz
[root@srvasterisk src]#tar xzvf dahdi-linux-complete-current.tar.gz
[root@srvasterisk src]#tar xzvf libpri-1.4-current.tar.gz
Compilando Libpri
[root@server src]#cd libpri-1.4-current
[root@server src]#tar xzvf
[root@server src]#make clean
[root@server src]#make
[root@server src]#make install
Compilando Dahdi y Dahdi Tools
[root@server src]#cd dahdi-linux-complete-current
[root@server src]#make clean
[root@server src]#make
[root@server src]#make install
Compilando Asterisk
[root@server src]#cd asterisk-1.8-current
[root@server src]#./configure
[root@server src]#make menuconfig
[root@server src]#make
[root@server src]#make install
[root@server src]#make config
[root@server src]#make samples
AgregandounusuarioparaasteriskCambiando el usuario con que ejecutaremos asterisk
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
Creamos un usuario de nombre asterisk
[root@server src]# adduser asterisk
Cambiamos los permisos
[root@server src]# chown -R asteriskpbx:asteriskpbx /usr/lib/asterisk/
[root@server src]# chown -R asteriskpbx:asteriskpbx /var/lib/asterisk/
[root@server src]# chown -R asteriskpbx:asteriskpbx /var/spool/asterisk/
[root@server src]# chown -R asteriskpbx:asteriskpbx /var/log/asterisk/
[root@server src]# chown -R asteriskpbx:asteriskpbx /var/run/asterisk
[root@server src]# chown asteriskpbx:asteriskpbx /usr/sbin/asterisk
[root@server src]# chown -R asteriskpbx:asteriskpbx /var/lib/asterisk/sounds/
Editamos el archivo asterisk.conf para indicarle con que usuario inicia asterisk
[root@server src]# vim /etc/asterisk/asterisk.conf
Modificamos el archivo en los parmetros
runuser=asteriskpbx
rungroup=asteriskpbx
ConfigurandoAsteriskPBX
Elarchivoextensions.confeslapartecentraldetodalaconfiguracin,dadoqueesdondesedefineel
dialplandeAsterisk.caracteresalfanumricosademsdelguinyelguinbajo.Ejemplo:
Entradasinvalidasytimeouts
Ejemplo.
exten=>100,1,Answer();contestalallamada
exten=>100,n,Background(enterextofperson);esperadigitosypasaalaextensionenelmismo
contexto
exten=>100,n,WaitExten(10)
exten=>100,n,Hangup()
exten=>101,1,Dial(SIP/101,10)
exten=>101,n,Playback(vmnobodyavail)
exten=>101,n,Hangup()
exten=>102,1,Dial(SIP/101,10)
exten=>102,n,Playback(vmnobodyavail)
exten=>102,n,Hangup()
exten=>i,1,Playback(pbxinvalid);Suenaunmensajequeindicaextensioninvalida
exten=>i,n,Playback(vmgoodbye);Otromensajedeadios
exten=>i,n,Hangup()
;Cuelgalallamada
exten=>t,1,Playback(vmgoodbye);mensajedeadios
exten=>t,n,Hangup()
;Cuelgalallamada
Algunasvariablesdefinidasautomaticamenteporasterisk
Listadodevariablesmsimportantes:
${CALLERID}:callerIDactual,nombreynmero.
${CONTEXT}:contextoactual.
${EXTEN}:extensinactual.
${CHANNEL}:canalactual.
${DIALSTATUS}:estadodelallamada:unavailable,congestion,busy,noanswer,answer,cancel,
hangup.
${DATETIME}:horaactual.
UncomandotilparaverelcontenidoesNoOp:
NoOp(${VARIABLE});MostrarenelCLIelvalor.
Variable${EXTEN}
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
Permitesaberculeslaextensinquefuemarcada.Seutilizacomunmenteparaeliminardgitos
marcados:${EXTEN:x}
Sixespositivo,quitalosprimerosxdgitosmarcados
exten=>_XXX,1,SayDigits(${EXTEN:1})
Sixesnegativo,devuelvelosltimosxdgitosmarcados
exten=>_XXX,1,SayDigits(${EXTEN:1})
AplicacinGotoIf()
GotoIf(expresion1?destino1:destino2)
EjemploGotoIf
[extensiones]
exten=>105,1,Set(TEST=1)
exten=>105,2,GotoIf($[${TEST}=1]?10,3)
exten=>105,3,Playback(weaselseatenphonesys)
exten=>105,4,Playback(officeiguanas)
exten=>105,5,Set(COUNT=10)
exten=>105,6,GotoIf($[${COUNT}>0]?:10)
exten=>105,7,SayNumber(${COUNT})
exten=>105,8,Set(COUNT=${COUNT}1)
exten=>105,9,Goto(2)
exten=>105,10,Hangup()
exten=>105,11,GotoIf($[${CALLERIDNUM}=8094767758]?12:10)
exten=>105,12,Dial(SIP/102)
exten=>105,13,Playback(abandonallhope)
exten=>105,14,Hangup()
Bifurcacincondicionalbasadaentiempo
Verificalahoraactualdelservidor,permitiendotomardecisionesbasadasentiempo.Seutilizacuando
sequieredarunabienvenidadiferenteenhorariosdetrabajoyfueradetrabajo.
GotoIfTime(hora,dias_de_semana,dias_del_mes,meses?etiqueta)Envalallamadaaetiquetasilafechay
horaactualconcuerdanconelcriterioespecificadoporlosparmetros.
Hora.Listadeunoomsrangosdehorarioenformatode24horas.09:0017:00
Dias_de_semana.Listadeunoomsdasdelasemanamon,tue
Dias_del_mes.Danumricodelmes712,15
Meses.Listadeunoomsmesesdelaoun,apr,jul
*Matcheaconcualquiervalor
Etiquetapuedeserunaprioridaddentrodeunamismaextensin,unaprioridadyextensindentrodel
mismocontextoouncontexto,extensinyprioridad.
Ejemplo:
[inicio]
exten=>222,1,GotoIfTime(06:0017:59),monfri,*,*?entrada,s,1)
exten=>222,n,Goto(afterhours,s,1)
Elejemploanteriorindicaquecuandosemarquelaextension222,sielusuariomarcaentrelas6amy
5:59pmdelunesaviernesiraalcontextoentrada,prioridad1.Delocontrarioiraalcontexto
afterhours,prioridad1.
Voicemail
Unadelascaracteristicasmaspopularesenlatelefoniamodernaeslacapacidaddedejarmensajesde
vozparaserrecogidosmastardeencasodequeelusuarioaquiensellamanoestedisponible.
Naturalmente,asteriskposeeunvoicemailbastanteflexibleconlassiguientescaracteristicas:
Ilimitadaprotecciondepasswords.
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
Diferentessaludosparalosdistintostiposdeestado(Busy,Noanswer,Unavailable,etc)
Saludospordefectoytambienpersonalizados
Notificacionporcorreoyconlaopciondeadjuntarelmensajedevozenelmismo.
Indicadordequetieneunmensajedevoz.Aplicadoparadistintostiposdetelefonosip.
Directoriodelacompaniabasadoenlosbuzonesdevoz
Laconfiguraciondelvoicemailesmuyfacial,acontinuacionpasoapasodeunamaneramuydecriptiva
comocrearelbuzondevozysusdistintasopciones:
Paralaconfiguracionbasicadelvoicemailseveranafectadoslosarchivosdeconfiguracion
voicemail.conf,sip.confyextensions.conf
Primerodeclaramoselcontextoalfinaldelarchivovoicemail.confquecontendralosbuzonesdevoz
correspondientesalasextensiones101y102.Lasintaxises:
voicemail.conf
[buzon]
101=>1234,Cristhian,cristhian@codigolibre.org
102=>5678,Elvyn,elvyn@codigolibre.org
Donde
101=Eselnumerooextensionalcualseleasignaraelbuzon
1234=Eslaclavequeserausadaparaaccederalbuzondevoz
Cristhian=Nombreasociadoalbuzon
cristhian@codigolibre.org=Correodonderecibiralasnotificaciones
Ahoraeditamoselarchivosip.confdondelediremosalasextensiones101y102cualesseransus
buzones.Quedaradelasiguientemanera:
sip.conf
[101]
type=friend;Friendsplacecallsandreceivecalls
callerid=cris
context=extensiones
username=101
secret=101
host=dynamic;Thispeerregisterwithus
mailbox=101@buzon
[102]
type=friend;Friendsplacecallsandreceivecalls
callerid=elvyn
context=extensiones
username=102
secret=102
host=dynamic;Thispeerregisterwithus
mailbox=102@buzon
Notesecomoseleasignaacadausuariounnumerodebuzonenelcontextobuzon.
ConfiguramoslaaplicacionVoicemaileneldiaplancorrespondientealosusuarios.Deigualmodo,
tambienhabilitamoslaextensionparallamarelbuzondevozelcualseraennuestrocasolaextension
888.Elcontextoextensionesquedariaasi:
extensions.conf
[extensiones]
include=>inicio
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
include=>entrada
exten=>101,1,Dial(SIP/101,20)
exten=>101,n,VoiceMail(101@buzon)
exten=>101,n,Playback(vmgoodbye)
exten=>101,n,Hangup()
exten=>102,1,Dial(SIP/102,20)
exten=>101,n,VoiceMail(102@buzon)
exten=>101,n,Playback(vmgoodbye)
exten=>102,n,Hangup()
;Voicemail
exten=>888,1,VoiceMailMain(@buzon)
LasLineasennegritashabilitanelbuzondevozparalosusuarios101y102ylaextension888
habilitalaaplicacionVoiceMailMainlacualeslaadministraciondelbuzondevoz.
Laopcion(@buzon)muestralainterfazdeadministracionparaelcontextobuzoncreadoenelarchivo
voicemail.conf.Estoindicaquecuandoelusuariollamelaextension888selesolicitaraunnumerode
buzonyunaclaveparapoderacceder.Yadentrodelbuzontendravariasopcionesparaadministrarsus
mensajes.Losmensajessegrabaneneldirectorio/var/spool/asterisk/voicemail/
Esteeselmenumostradoalusuarioparalaadministraciondesusmensajesatravesdelaaplicacion
VoiceMailAdmin:
1MensajesLeidos
3OpcionesAvanzadas
1Responder
2Devolverlallamada
3Sobre
4LlamadaSaliente
5Dejarunmensaje
*Regresaralmenuprincipal
4Escucharmensajesanteriores
5Repetirmensajeactual
6Tocarelproximomensaje
7Borrarelactualmensaje
8Reenviarelmensajeaotrobuzondevoz
9Guardarelmensajeenunfolder
*Ayuda
#Salir
2Cambiarfolder
3Opcionesavanzadas
0Opcionesdelbuzon
1Grabarmensajedenodisponible
2Grabarmensajecuandoelstatusseaocupado
3Grabarsunombre
4Cambiarsupassword
*Regresaralmenuprincipal
*Ayuda
#Salir
Ahoraestamoslistospararecibirmensajesdevozypoderescucharlosatravesdelvoicemailadmin.
Editandolasopcionesdelarchivovoicemail.conf
Podemoseditaralgunasopcionesenelarchivovoicemail.conf,algunasson:enviarnotificacionpor
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
correo,adjuntarelarchivodegrabacionenelcorreo,establecerunnumeromaximodemensajespor
buzon,estableceruntiempomaximoominimodegrabaciondemensajes,estableceruncuerpodelmensaje
aenviar,etc.
serveremail=asterisk@fcld.local:Indicaelusuarioqueenviaelmensaje.
attach=yes:Establecidoayeselusuariorecibiraviaelmensajegrabado
maxmsg=100:Maximonumerodemensajesqueselepermitiraalduenodelbuzon.
maxmessage=180:Tiempomaximopermitidaparalagrabaciondelmensaje.
maxsilence=10:Elservidorespera10segundosdesilencioantesdeterminarlallamada.
maxlogins=3:Numeromaximodeintentosfallidos.
emailsubject=[PBX]:MensajeNuevo${VM_MSGNUM}enelbuzondevoz${VM_MAILBOX}:Correspondealasunto
queseramostradocuandolellegueuncorreoalusuario.Notesecomoseutilizanvariablesdemailbox,
masadelantehablaremosdeellas.
emailbody=:Indicaelcuerpodelmensajequerecibiraelusuarioalsernotificado.
emaildateformat=%A,%B%d,%Yat%r:FormatodeFechadonde:
%A=Diadelasemana
%B=Mes
%d=Dia
%Y=Ano
%r=hora
Yatenemosbuzondevozhabilitadoennuestroasterisk.
Queues(colas)
LascolassonutilizadasporlossistemasPSTNparamantenerlassolicitudesdesusclienteshastaque
algunrecursoestedisponible.Significaquetodoeltraficoentrantequeexcedalacapacidad
disponiblesecolocaranenlineahastaquepuedanseratendidos.
Lascolasbasicamenteconsistenen:
Llamadasentrantessoncolocadasenlacola
Miembrosquerespondenlacola(Extensionesousuariosqueselogueancomoagentes)
Unaestrategiadecomomanejarlascolasydividirlasllamadasentrelosmeimbros
Musicamientrasesperanencola
Anunciosparamiembrosyclientes
Existendosmanerasdecrearcolasenasterisk:
Estatica:dondenonecesitasutilizarelarchivoagents.conf
Enestaconfiguracion,seespecificaradirectamentecualesseranlosusuariosqueresponderanlas
llamadascorrespondienteaunacolaespecifica.PorEjemplo,losusuariosSIP/101,SIP/102ySIP/103
seranlosresponsablesderesponderalacola[micola].
Ventajas:NonecesitasutilizarlasaplicacionesAgentLoginyAgentBackloginparaquelos
usuariosselogueen.Elusuarioseregistraraautomaticamenteenestacolacuandoingrese.
Dinamica:Utilizaciondeagents.conf
Adiferenciadelaestatica,aquidebemosescribirnoelnumerodelusuarioperosielnumerodel
agentequeestaregistradoenelarchivoagents.conf.Porejemplo,member=>Agent/1001,member=>
Agent/1002,member=>Agent/1003,indicaquelosagentes1001,1002y1003perteneceranaesacola.Si
sedecideutilizarestemetodoentonceslasaplicacionesAgentloginyAgentCallbacklogin.
Ventajas:Laventajaprincipalesqueelusuariopodrialoguearsedesdecualquierterminalo
extensionconsolodigitarsuusuarioyclaveenlaaplicacionAsterisklogin.
OpcionesdeQueues.conf:
strategy:Determinacomoencualordenlasllamadasentraranalosagentes.Lasopcionesson:
ringall:Lallamadaentraentodoslosagentesycualquierapodraresponder
roundrobin:Lallamadaentraencadaagentedisponible
leastrecent:Lallamadaentraalagenteconmastiemposincontestar
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
fewestcalls:Lallamadaentraalagenteconmenostiemposincontestar
random:Seleccionaalagentedemaneraaleatoriasinningunparametro
rrmemory:roundrobinconmemoria.Inicialaserieenaquelultimoquecontesto
periodicannounce:Realizamensajesperiodicos(Ejemplo:sullamadaesimportanteparanosotros...)
periodicannouncefrequency:Establececonquefrecuenciaanuncialosmensajes
joinempty:Estaopcioncontrolasilasllamadasentrantespuedenentraraunacolasinmiembros.Las
opcionesdisponiblesson:
yes:Llamadasentrantespuedeningresaraunacolasinmiembrosoestosnodisponibles.
No:Llamadasentrantesnopuedeningresaraunacolasinmiembros
strict:Llamadasentrantesnopuedeningresaraunacolasinmiembrosoestosnodisponibles.
Music:Establecelamusicaparalaespera
timeout:Cuantotiemposelepermitealtelefonodeunagentesonarantesdeconsiderarsetimeout
retry:Eltiempoaesperarantesdeintentarconlosagentesnuevamente
maxlen:Numeromaximodellamadasentrantespermitidasenunacola.0esilimitado
Ahorallevaremosestoalapractica:
CreandoColasEstaticas
Paralacreaciondecolasestaticasseeditanlosarchivosqueues.confyextensions.conf.
Queues.conf
Seagregarauncontextoconelnombre[micola]conlossiguientesparametros
[micola]
context=extensiones
periodicannounce=fcldagentsbusy
periodicannouncefrequency=60
joinempty=strict
music=default
strategy=rrmemory
timeout=15
retry=2
maxlen=0
member=>SIP/101;Especificamosestaticamentecualesseranlasextensionesregistradasenestacola.
member=>SIP/102
member=>SIP/103
Luegonosdirigimosaextensions.confparahabilitarlacola
extensions.conf
exten=>999,1,Answer()
exten=>999,n,Ringing
exten=>999,n,Wait(2)
exten=>999,n,Queue(micola)
exten=>999,n,HangUp
Asicuandounusuariollameala999suenaylocolocaenlacola[micola].Mientrasestaalaespera
deseratendidoestaraporunodelosagentesregistradosenesacolayescuchandolamusicapor
defectoestablecidaasicomolosanunciosperiodicos.
CreandoColasDinamicas
Launicadiferenciaenestetemaeslainclusiondelarchivoagents.conf.Enestesecreanlosagentes
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
quemasadelanteserandefinidosenqueues.conf
agents.conf
Agregamoslossiguientesagentes:
agent=>1001,1234,CristhianNunez
agent=>1002,1234,CarlosCastro
agent=>1003,1234,ElvynBolges
yagregamosenextensions.confunaextensionconlaaplicacionAgentloginparaquepuedanregistrarse
losagentes.
Extensions.conf
;AgentLogin
exten=>888,1,AgentCallbacklogin(||${CALLERIDNUM}@extensiones)
;AgentLogout
exten=>889,1,AgentCallbacklogin(||l)
Cuandoelagentedigite888,laaplicacionlepreguntaraporunusuario(1001)yunaclave(1234)yla
extensiondonderecibiralasllamadas.Luegodeestotodaslasllamadasseranenrutadashaciala
extensionespecificadaporelagente.
Cuandoelagentedigite889selepreguntaranuevamenteporunusuario,claveyextension.Elagente
puedeentrarunanuevaextensionparaquelasllamadasseanenrutadashaciaestaultima.
ParqueodeLlamadas(CallParking)
Elparqueodellamadaspermitealusuarioquerecibeunallamada,enviarsullamadaa
un"cuarto"deparqueo,paravolveraatenderladesdeotraextensin.Estetipodeaccin
estilenelsiguienteejemplo.
Supongamosqueeladministradordelaredrecibeunallamadaasuextensinubicadaensu
escritorio,yestarequierequelseubiquedefrenteenunservidorqueseencuentratres
pisosmasarriba,ynosabesialguienpodratenderlallamadaeneltelfonoubicadoenel
cuartodeequiposparaquepuedahacerlatransferencianormaldelallamada.
Enestecaso,laopcinesenviarlallamadaauncuartotemporal,dondemientrastantoel
quellama,escucharlamsicaenesperaconfigurada,hastaqueeladministradorllegueal
cuartodeequiposyvuelvaatomarlallamada.
Ensucentraltelefnica,paraenviarlallamadaactualparauncuartodeparqueo,
transfieralallamadaaunaextensinpredefinida,utilizandoelcarcterpredeterminado
paratransferir.Unvezdigitadalaextensin,ustedescucharelnmerodeextensin
quedebermarcardesdeelotrotelfonoparavolverarecuperarlallamada.Lallamada
quedarenesperaporunlapsomximode2minutos.Mientraslallamadaestaparqueada,
elqueestllamandoescucharlamsicaconfiguradacomo"MusicOnHold".
Paraestaconfiguracintenemosquetrabajarcondosarchivosdeconfiguracin
elprimeroesfeatures.confyextensions.conf
[general]
parkext=>700
;Laextensionamarcarparaparquearunallamada
parkpos=>701720
;Rangodeextensionesqueseusarancomoparqueoparalasllamadas
context=>parkedcalls;contextodelparqueodellamadas
parkingtime=90
;Tiempoenelparqueoensegundos
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
Luegovamosalarchivoextensions.confyagregamoselsiguientecontexto:
include=>parkedcalls
Tenemosqueincluirestoenelcontextodelquedeseemosqueuseestacaracterstica...
Aclarandounpocomas....Cuandoparqueemosunallamadausandolaextensin700,unagrabadoranosdir
dondetenemosquerecogerla,puedequeseadesdela701al720.
AsteriskMacros
Losmacrossonmuyutilizadosparaconstruiryevitarrepeticioneseneldialplan.Unavezdefinidoel
macro,estospuedenserllamadosdesdeunalineaasicomopasarleargumentos.
Ilustremoselsiguienteejemplo:Tenemos3extensioneseneldialplanquesevendelasiguiente
manera:
[extensions]
exten=>1001,1,Dial(SIP/1001,30)
exten=>1001,n,Playback(vmnobodyavail)
exten=>1001,n,Voicemail(1001@buzon)
exten=>1001,n,Hangup()
exten=>1002,1,Dial(SIP/1002,30)
exten=>1002,n,Playback(vmnobodyavail)
exten=>1002,n,Voicemail(1002@buzon)
exten=>1002,n,Hangup()
exten=>1003,1,Dial(SIP/1003,30)
exten=>1003,n,Playback(vmnobodyavail)
exten=>1003,n,Voicemail(1003@buzon)
exten=>1003,n,Hangup()
Imaginenquesean100extensionesenvezde3.Paraestoaplicamoslosmacrosdelasiguientemanera:
[macrophones]
exten=>s,1,Dial(SIP/${ARG1},25)
exten=>s,n,Goto(${DIALSTATUS},1)
exten=>ANSWER,1,Hangup
exten=>CANCEL,1,Hangup
exten=>NOANSWER,1,Voicemail(${ARG1}@buzon,u)
exten=>BUSY,1,Voicemail(${ARG1}@buzon,b)
exten=>CONGESTION,1,Voicemail(${ARG1}@buzon,b)
exten=>CHANUNAVAIL,1,Voicemail(${ARG1}@buzon,u)
exten=>1001,1,Macro(phones,1001)
exten=>1002,1,Macro(phones,1002)
exten=>1002,1,Macro(phones,1002)
Expliquemoslaestructuradelmacro
[macrophones]
Esteeselnombreconelquesecreaelmacro.
exten=>s,1,Dial(SIP/${ARG1},25)
exten=>s,n,Goto(${DIALSTATUS},1)
Laprimeralineayaconocida,ejecutalaaplicacionDialhablandoSIP.Lavariable${ARG1}indicael
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
argumentopasadoalmacro.Masadelanteveremoscomollamamoselmacro.
ElGotoenvialallamadadependiendodelstatusdelamismaalassiguientesextensiones:
exten=>ANSWER,1,Hangup
exten=>CANCEL,1,Hangup
exten=>NOANSWER,1,Voicemail(${ARG1}@buzon,u)
exten=>BUSY,1,Voicemail(${ARG1}@buzon,b)
exten=>CONGESTION,1,Voicemail(${ARG1}@buzon,b)
exten=>CHANUNAVAIL,1,Voicemail(${ARG1}@buzon,u)
Parallamarelmacro,simplementeseejecutalasiguientelinea:
exten=>1001,1,Macro(phones,1001)
exten=>1002,1,Macro(phones,1002)
exten=>1003,1,Macro(phones,1003)
Por ejemplo, para habilitar la extension 1001 simplemente se agrega la extension mas la aplicacion
Macro.Losdatosentreparentesis(phones,1001)indicanelnombredelmacromaslaextensionallamar,
enestecasola1001.Tomeseencuentaquelaextension1001eslloqueelmacrocolocaenlavariable
${ARG1}.
Algunasvariablesqueutilizaelmacroson:
${ARG1}:Elprimerargumentopasadoalmacro.
${ARG2}:Elsegundoargumentopasadoalmacro.
${MACRO_CONTEXT}:Elcontextodeestaextensionqueaccionaestemacro.
${MACRO_EXTEN}:Laextensionquedisparaestemacro.
PlantillasSip(SipTemplates)
Elarchivossip.conf,aligualquelosmacrospermiteenestecasohabilitarplantillasparaevitar
repeticionesenelmismo.Sehaceunpatronprincipaldelasiguientemanera:
Enelarchivosip.confcreamoslaplantillageneralconlasopcionesencomunquetendrancadaunade
lasextensioneso
[basico](!)#Conestaopciondeclaramoslaplantilla
type=friend
context=extensiones
host=dynamic
language=es
disallow=all
allow=ulaw
allow=gsm
Yadeestamanerasimplemente,creamoslasextensionesyllamandolaplantillaprincipal.
[2003](basico)
username=2003
secret=2003
[2004](basico)
username=2004
secret=2004
MixMonitor
Estaaplicacionhacegrabacionesdeaudiodelcanalactual.
[general]
autofallthrough=yes
[globals]
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
CALLTIME=${STRFTIME(${EPOCH},America/Santo_Domingo,%Y%m%d%H:%M:%S)}
[extensions]
exten=>_1XXX,1,MixMonitor(${CALLERID(num)}${CALLTIME}${EXTEN}.wav)
exten=>_1XXX,n,Dial(SIP/${EXTEN},10)
exten=>_1XXX,n,Playback(vmnobodyavail)
exten=>_1XXX,n,Hangup()
Asterisknotieneunavariabledefechapropiamentedefinidaparaserlegibleinmediatamenteporelojo
humano,encambiousalavariabledefechaEPOCHquesiimprimelafechaperoenformatoUnix
(http://es.wikipedia.org/wiki/Tiempo_Unix),en[globals]laponemosmaslegibleconunafuncionde
fechaydeclaramoslavariableCALLTIME,dandonesunresultadoenlaprimeraprioridaddenuestra
extensionde:emisorfecha(incluyendohora)receptor.wav
Losconversacionesyagrabadasiransiendoguardadasen/var/spool/asterisk/monitor.
Conferenciadellamadas(meetme.conf)
Meetmeesutilizadoparahacerllamadasenconferencia.Secreaunsalon(room)enelcualtodoaquel
quevayaaescucharlaconferenciaaccedaaelmedianteunaclave.
Editamoselarchivomeetme.confconlossiguientesparametros:
conf=>9001;Estableciendolaextensionparalaconferencia
Tambiensepuedecolocarclavesyclavesdeadministradorparalamisma.Eladministradorcomobien
dicesunombre,establecelasesiondeconferencia.
Otrosparametros;
conf=>9001,12345;Inicialasesionconclave
Tambiensepuede:
conf=>9001,12345,33333;Inicialasesionconclave12345yeladministradortendraclave33333.
Enextensions.confllamamoslaaplicacionMeetme.
exten=>9001,1,Answer
exten=>9001,n,Wait(1)
exten=>9001,n,MeetMe(9001|p)
exten=>9001,n,Playback(vmgoodbye)
exten=>9001,n,Hangup
AlgunosparametrosquelepodemospasaralaaplicacionMeetmesonlossiguientes:
p>permitealusuariosalirdelaconferenciapresionando#
m>establecequeelcallersoloescucha,nohabla
InterconexionentreAsterisks
Paraestablecerlainterconexionentreasterisk,tenemoselsiguienteescenario:
Servidor1:192.168.1.55
Servidor2:192.168.1.110
Medianteelprotocolosip,elservidor1estableceracomunicacionconelservidor2
Servidor1
ensip.conf:
[general]
register=>asterisk1:pass1@192.168.1.110/asterisk2
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
[asterisk2]
type=friend
secret=pass2
context=asterisk2_entrada
host=dynamic
insecure=invite
[1000]
type=friend
host=dynamic
context=phones
secret=1000
Donde:
Enelcontexto[general]laopcionregisterindicaqueelservidor1seregistaraenelservidor2
utilizandoelusuarioasterisk1ylaclavepass1,ladireccionip192.168.1.110esladireccion
delservidor2mientasqueasterisk2eslaextensionlocalenelservidor1atravesdelcualse
enrutaranlasllamadashaciaelasterisk2.
Masabajoenlaextension[asterisk2]eslaextensionquemanejaraeltrunkingentreestos2equipos.
Enextensions.conf:
[general]
autofallthrough=yes
[globals]
[phones]
include=>internal
include=>sucursal
[internal]
exten=>555,1,Answer()
exten=>555,n,Playback(helloworld)
exten=>555,n,Hangup()
exten=>_1XXX,1,Dial(SIP/${EXTEN},20)
exten=>_1XXX,n,Playback(vmnobodyavail)
exten=>_1XXX,n,Hangup()
[sucursal]
exten=>_2XXX,1,Dial(SIP/asterisk2/${EXTEN},20)
exten=>_2XXX,n,Playback(vmnobodyavail)
exten=>_2XXX,n,Hangup()
[asterisk2_entrada]
include=>internal
Donde:
Elpatronexten=>_1XXXmuestralasextensioneslocalesparaelservidor1bajoelcontexto
internal.
Elcontexto[sucursal]muestralaconexionenrutadahaciaelservidor2delasiguientemanera:
[sucursal]
exten=>_2XXX,1,Dial(SIP/asterisk2/${EXTEN},20)
exten=>_2XXX,n,Playback(vmnobodyavail)
exten=>_2XXX,n,Hangup()
Cualquierextensionquecomienceelpatron2(porejemplo2003)seraenrutadoatravesdelusuario
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
SIP/asterisk2queasuvezeselusuarioqueestahaciendoeltrunkingconservidor2.
Servidor2
Laexplicacionesexactamentelamismaqueelservidor1
Ensip.conf:
[general]
register=>asterisk2:pass2@192.168.1.55/asterisk1
[asterisk1]
type=friend
secret=pass1
context=asterisk1_entrada
host=dynamic
insecure=invite
[2000]
type=friend
host=dynamic
context=phones
secret=2000
Enextensions.conf
[general]
autofallthrough=yes
[globals]
[phones]
include=>internal
include=>sucursal
[internal]
exten=>555,1,Answer()
exten=>555,n,Playback(es/helloworld)
exten=>555,n,Hangup()
exten=>_2XXX,1,Dial(SIP/${EXTEN},20)
exten=>_2XXX,n,Playback(vmnobodyavail)
exten=>_2XXX,n,Hangup()
[sucursal]
exten=>_1XXX,1,Dial(SIP/asterisk1/${EXTEN},20)
exten=>_1XXX,n,Playback(vmnobodyavail)
exten=>_1XXX,n,Hangup()
[asterisk1_entrada]
include=>internal
Paraverificarelregistrosatisfactorio,escribirenasteriskclielsiguientecomando:
sipshowregistry
AsteriskStats
PreciosoanalizadordeCDR,analizadeformasencillatusregistrosdeCDR!
AsteriskStatproporcionadiferentesreportesygrficosparapermitiraladministradordeAsterisk
analizarrpidametneydeformasencillaeltrficodesuservidorAsterisk.
Todoslosgrficos&reportes(quesonimpresionantes)estnbasadosonlabasededatosCDR.
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
Requerimientos:
phpgd
phpcommon
php5
phpmysql
phpjpgraph
httpd
nota:parainstalarphpjpgraphhayquedescargarelpaquete
elsiguietelinkhttp://dag.wieers.com/rpm/packages/phpjpgraph/phpjpgraph1.191.2.el5.rf.noarch.rpm
yaquenoestadisponibleenlosrepositoriosdefedoraocentos.
Instalandoasteriskaddons:
Requerimientos:
mysql
mysqlserver
mysqlconnectorodbc
mysqllibs
mysqldevel
libdbidbdmysql
MySQLpython
mod_auth_mysql
Unavezinstaladomysqlagregamosunacontraseaaroot
iniciamoselserviciodemysql.
[root@srvasterisk~]#servicemysqldstart
[root@srvasterisk~]#mysqladminuser=rootpassword'codigolibre'
[root@srvasterisk~]#chkconfigmysqldon
Vamosaldirectorio/usr/srcydescargamoselpaquete
ylodescomprimimos.
[root@srvasterisk~]#cd/usr/src/
[root@srvasterisksrc]#wgethttp://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk
addons1.6.0.3.tar.gz
[root@srvasterisksrc]#tarxzvfasteriskaddons1.6.0.3.tar.gz
[root@srvasterisksrc]#cdasteriskaddons1.6.0.3/
[root@srvasteriskasteriskaddons1.6.0.3]#./configure
[root@srvasteriskasteriskaddons1.6.0.3]#makemenuselect;paraselecciondelospaquetesdeseado.
[root@srvasteriskasteriskaddons1.6.0.3]#make
[root@srvasteriskasteriskaddons1.6.0.3]#makeinstall
[root@srvasteriskasteriskaddons1.6.0.3]#makesamples
Ahoravamosalarchivo/etc/asterisk/cdr_mysql.confparaconfigurar
elnombredelabasededatoselusernameypasswd
paraelaccessodelabasededatosyloeditamosdela
siguientemanera.
[global]
hostname=localhost
dbname=asteriskcdrdb
table=cdr
password=fcld
user=asterisk
port=3306
sock=/var/lib/mysql/mysql.sock
Editamoselarchivo/etc/asterisk/modules.confagregamos
laseccionglobalconlossiguiente.
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
[global]
cdr_addon_mysql.so
Vamoshacerunloginamysqlcomorootparacrearlabasede
datosyelusuarioquevaaaccederalabasededato,ycomo
crearlastablas.
[root@srvasterisk~]#mysqlurootp
Enterpassword:
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis3
Serverversion:5.0.45Sourcedistribution
Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.
mysql>createdatabaseasteriskcdrdb;
mysql>GRANTSELECT,INSERTONasteriskcdrdb.*TOasterisk@localhostIDENTIFIEDBY'fcld';
Ahoracreamoslatablacdrenlabasededatosasteriskcdrdb
mysql>useasteriskcdrdb;
Readingtableinformationforcompletionoftableandcolumnnames
YoucanturnoffthisfeaturetogetaquickerstartupwithA
Databasechanged
mysql>CREATETABLEcdr(
calldatedatetimeNOTNULLdefault'0000000000:00:00',
clidvarchar(80)NOTNULLdefault'',
srcvarchar(80)NOTNULLdefault'',
dstvarchar(80)NOTNULLdefault'',
dcontextvarchar(80)NOTNULLdefault'',
channelvarchar(80)NOTNULLdefault'',
dstchannelvarchar(80)NOTNULLdefault'',
lastappvarchar(80)NOTNULLdefault'',
lastdatavarchar(80)NOTNULLdefault'',
durationint(11)NOTNULLdefault'0',
billsecint(11)NOTNULLdefault'0',
dispositionvarchar(45)NOTNULLdefault'',
amaflagsint(11)NOTNULLdefault'0',
accountcodevarchar(20)NOTNULLdefault'',
uniqueidvarchar(32)NOTNULLdefault'',
userfieldvarchar(255)NOTNULLdefault''
);
ALTERTABLE`cdr`ADDINDEX(`calldate`);
ALTERTABLE`cdr`ADDINDEX(`dst`);
ALTERTABLE`cdr`ADDINDEX(`accountcode`);
Reiniciamosasteriskyhacemosunallamadaparaver
elcdrseestaescribiendoenlabasededatos.
Tambienlopodemosverporelclideasterisk
delamanerasiguiente.
[root@srvasterisk~]#asteriskvvr
srvasterisk*CLI>cdrmysqlstatus
Deberiademostrarunmensajeexatamenteigualaeste:
Connectedtoasteriskcdrdb@localhostusingtablecdrfor0hours,15minutes,15seconds.
Wrote1recordssincelastrestart.
mysql>selectuniqueid,src,calldatefromcdr;
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
Instalandoasteriskstat:
Vamosaldirectorio/var/www/htmlydescargamoselpaquete
deasteriskstatdesdeelsiguientelink:
[root@srvasteriskhtml]#wgethttp://areski.net/asteriskstatv2/asteriskstatv2_0_1.tar.gz
luegolodescomprimimosyrenombramoseldirectorio.
[root@srvasteriskhtml]#tarxzvfasteriskstatv2_0_1.tar.gz
[root@srvasteriskhtml]#mvasteriskstatv2_0_1asterisk
Editamoselarchivodefines.phpqueseencuentraenel
directoriode/var/www/html/asterisk/lib/ylos
modificamosdelamanerasiguiente:
[root@srvasteriskhtml]#vimasterisk/lib/defines.php
define("WEBROOT","http://srvasterisk.fcld.local/asterisk/");
define("FSROOT","/var/www/html/asterisk/");
define("LIBDIR",FSROOT."lib/");
define("HOST","localhost");
define("PORT","3306");
define("USER","asterisk");
define("PASS","192582");
define("DBNAME","asteriskcdrdb");
define("DB_TYPE","mysql");//mysqlorpostgres
define("DB_TABLENAME","cdr");
Asteriskstatv2.0.1tieneunbugcuandotuestaexportando
uncdrenformatopdfparacorregirestohayqueeditar
elarchivoexport_pdf.phpcambiarlalinea5:
include_once(dirname(__FILE__)."/lib/fpdf.php");
cambiara
include_once(dirname(__FILE__)."/lib/fpdf.php");
Crearunenlacesimblicodecdr.phpindex.php
[root@srvasteriskasterisk]#lnsfcdr.phpindex.php
Ahorainiciemoselserviciodehttpd
[root@srvasteriskasterisk]#servicehttpdstart
Loagregamosaliniciodelsistema
[root@srvasteriskasterisk]#chkconfighttpdon
Sitodoslospasofueronexitososaccedemosdesde
elnavegadoaasteriskstat:
http://srvasterisk.fcld.local/asterisk
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
AsteriskCommandLineInterface
Paraaccederaasteriskcommandlineinterface(CLI)desdealshellejecuteelcomandoasterisk
pasandolelassiguienteopcionesrqueproveeunaconexinalaconsoladeasterisksielprosesode
asteriskyaestacorriendoteproveeunainterfaceparacontrolarlaconsoladeasterisk.
[root@srvasterisk~]#asteriskrvv
srvasterisk*CLI>
laopcionvproporcionamasinformaciondeasteriskentremasvagregamosmasinformacionnos
mostrara.
!EsparapoderejecutarcomandosdeelshellsobreelCLIdeasterisk.
srvasterisk*CLI>!ifconfigeth0
dialplanaddextensioncontieneunoscuantossubcomandosquelepermiteagregaralgunasfuncionalidades
atuPBXsineditardirectamentelosarchivosdeconfiguracion.
srvasterisk*CLI>dialplanaddextension112,1,Dial,SIP/112/|20|Ttintophone
dialplanshowmuestraeldialplanparauncontextoenespecifico.
srvasterisk*CLI>dialplanshowphone
dialplanaddincludeincluyeuncontextoenotrocontexto.
srvasterisk*CLI>dialplanaddincludesalidaintoentrada
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
dialplanreloadrecargasoloelarchivoextensions.conf.
srvasterisk*CLI>dialplanreload
dialplanremoveextensionremueveunaextension.
srvasterisk*CLI>dialplanremoveextension101@phone
Wholeextension101@phoneremoved
abortshutdownCancelaunshutdowncorriendo
srvasterisk*CLI>abortshutdown
agentlogoffconfiguraunaagenteoffline
srvasterisk*CLI>agentlogoffsip/112
agentshowmuestralosagentesconfigurados.
srvasterisk*CLI>agentshow
agentshowonlinemuestralosagentesonline
srvasterisk*CLI>agentshowonline
cdrmysqlstatusmuestraelstatusdelaconexiondecdr_mysql
srvasterisk*CLI>cdrmysqlstatus
cdrstatusmuestraelstatusdelosCDR.
srvasterisk*CLI>cdrstatus
consoleactiveconfiguraeldisplayenlaconsoleactiva
srvasterisk*CLI>consoleactive
consoleanswerrespondeaunaentradadeunallamaenlaconsole.
srvasterisk*CLI>consoleanswer
coreshowapplicationsmuestralasaplicacionesregistradasparaeldialplan.
srvasterisk*CLI>coreshowapplications
coreshowapplicationmuestraunadescripciondelaaplicacion.
srvasterisk*CLI>coreshowapplicationdial
coreshowchannelsmuestralainformacionenloscanales.
srvasterisk*CLI>coreshowchannels
coreshowchanneltypesmuestralainformaciondetipodecanal.
srvasterisk*CLI>coreshowchanneltypes
coreshowcodecsmuestralaslistadetodosloscodecs.
srvasterisk*CLI>coreshowcodecs
coreshowcodecmuestrauncodecenespecifico.
srvasterisk*CLI>coreshowcodec2
featuresshowmuestralosfeaturesconfigurados.
srvasterisk*CLI>featuresshow
httpshowstatusmuestraelstatusdelserverHTTP
srvasterisk*CLI>httpshowstatus
iax2reloadrecargalaconfiguraciondeliax2file.
srvasterisk*CLI>iax2reload
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
iax2setdebughabilitaeldebugparaiax2.
srvasterisk*CLI>iax2setdebug
iax2setdebugoffdeshabilitaeldebugparaiax2.
srvasterisk*CLI>iax2setdebugoff
iaxsetdebugjbhabilitaeldebugparaeljitterbuffer
srvasterisk*CLI>iax2setdebugjb
iax2setdebugjboffdeshabilitaeldebugparaeljitterbuffer.
srvasterisk*CLI>iax2setdebugjboff
iax2setdebugtrunkhabilitaeldebugparaeltroncal.
srvasterisk*CLI>iax2setdebugtrunk
iax2setdebugtrunkoffdeshabilitaeldebugparaeltroncal.
srvasterisk*CLI>iax2setdebugtrunkoff
iax2showcachemuestraelcachedeldialplan.
srvasterisk*CLI>iax2showcache
iax2showchannelsmuestratodosloscanalesactivos.
srvasterisk*CLI>iax2showchannels
iax2showfirmwaremuestraelfirmwaredisponible.
srvasterisk*CLI>iax2showfirmware
iax2shownetstatsmuestraloscanalesactivosdeiax2netstats.
srvasterisk*CLI>iax2shownetstats
iax2showpeersmuestratodoslospeersdefinidoseniax2.conf.
srvasterisk*CLI>iax2showpeers
iax2showpeermuestraunpeerenespecifico.
srvasterisk*CLI>iax2showpeersrvasterisk
iax2showprovisioningmuestraiaxprovisioning
srvasterisk*CLI>iax2showprovisioning
iax2showregistrymuestraelstatusdelosregistros.
srvasterisk*CLI>iax2showregistry
iax2showstatsmuestralasestadisticas.
srvasterisk*CLI>iax2showstats
iax2showusersmuestrainformacionsobrelosusuarios.
srvasterisk*CLI>iax2showusers
moduleloadcargaunmoduloparaasterisk.
srvasterisk*CLI>moduleloadcdr_addon_mysql.so
moduleunloaddescargaunmoduloparaasterisk.
srvasterisk*CLI>moduleunloadcdr_addon_mysql.so
modulereloadrecargaunmoduloparaasterisk.
srvasterisk*CLI>modulereloadcdr_csv.so
moduleshowmuestratodoslomodulosquecontieneasterisk.
srvasterisk*CLI>showmodules
sipreloadrecargalaconfiguraciondelarchivosip.conf
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
srvasterisk*CLI>sipreload
sipsetdebugajustaeldebugparaelcanalsip.
srvasterisk*CLI>sipsetdebug
sipsetdebugoffdehsabilitaeldebugparaelcanalsip.
srvasterisk*CLI>sipsetdebugoff
sipsetdebugpeerconfiguraeldebugparaunpeer.
srvasterisk*CLI>sipsetdebugpeer101
sipshowchannelsmuestratodoloscanalesactivos.
srvasterisk*CLI>sipshowchannels
sipshowpeersmuestratodolospeersagregadosenelsip.conf.
srvasterisk*CLI>sipshowpeers
sipshowregistrymuestraelstatusdelosregistros.
srvasterisk*CLI>sipshowregistry
sipshowsettingsmuestralaconfiguracionglobaldesip.
srvasterisk*CLI>sipshowsettings
sipshowsubscriptionsmuestralacantidaddesubscriptions.
srvasterisk*CLI>sipshowsubscriptions
sipshowusersmuestratodolosusuariosdesip
srvasterisk*CLI>sipshowusers
voicemailshowusersmuestralacantidaddeusuariosconvoicemail
srvasterisk*CLI>voicemailshowusers
voicemailshowzonemuestralazonaparaelformatodelmensaje.
srvasterisk*CLI>voicemailshowzones
dahdidestroychanneldestruyeuncanal.
srvasterisk*CLI>dahdidestroychannel1
dahdirestartcompletamentereiniciaeltodosloscanales.
srvasterisk*CLI>dahdirestart
dahdishowcadencesmuestraloscadences.
srvasterisk*CLI>dahdishowcadences
dahdishowchannelsmuestratodosloscanalesactivos.
srvasterisk*CLI>dahdishowchannels
dahdishowstatusmuestraelstatusdelatarjeta.
srvasterisk*CLI>dahdishowstatus
restartgracefullyreiniciaasteriskconcortesia.
srvasterisk*CLI>restartgracefully
srvasterisk*CLI>
restartnowreiniciainmediatamenteaasterisk.
ackangel*CLI>restartnow
restartwhenconvenientreiniciaasteriskcuandoselimpienelvolumendellamadas.
srvasterisk*CLI>restartwhenconvenient
FUNDACIONCODIGOLIBREDOMINICANA
DIVISIONDEINGENIERIAYPROYECTOS
www.codigolibre.org
Modulo:AsteriskII
Autores:CristhianNunez(cristhian@codigolibre.org)
ElvynBolges(elvyn@codigolibre.org)
Versin:3.1
parkedcallsshowmuestratodaslasllamdasparqueadas.
srvasterisk*CLI>parkedcallsshow
mohreloadreiniciamusichold.
srvasterisk*CLI>mohreload
mohshowclassesmuestraellistadodeMOHClasses.
srvasterisk*CLI>mohshowclasses
mohshowfilesmuestraellistadodelosarchivosdemusichold.
srvasterisk*CLI>mohshowfiles