Está en la página 1de 23

FUNDACIONCODIGOLIBREDOMINICANA

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

Una sesin de llamada SIP entre 2 telfonos es establecida como sigue:


El telfono llamante enva un invite
El telfono al que se llama enva una respuesta informativa 100 Tratando
retorna.
Cuando el telfono al que se llama empieza a sonar una respuesta 180 sonando
es retornada.
Cuando el receptor levanta el telfono, el telfono al que se llama enva una
respuesta 200 OK
El telfono llamante responde con un ACK confirmado
Ahora la conversacin es transmitida como datos va RTP
Cuando la persona a la que se llama cuelga, una solicitud BYE es enviada al
telfono llamante
El telfono llamante responde con un 200 OK.
Es tan simple como eso. El protocolo SIP es fcil de entender y es lgico.
fuentes
Estructura de Directorios
/etc/asterisk: Contiene los archivos de configuracin. Si al compilar ejecutamos make samples, tendremos ejemplos en este directorio.
/usr/lib/asterisk/modules: Contiene los mdulos de Asterisk que hemos compilado.
/var/lib/asterisk: Contiene diferentes libreras de Asterisk.
/var/lib/asterisk/agi-bin: Directorio para contener los AGI.
/var/spool/asterisk: Directorio para archivos que genera Asterisk (voicemail, etc.)
/var/log/asterisk: Aqu se guardan los log de Asterisk.
Archivos de Configuracion
extensions.conf:elpropioDialplan.
features.conf:dialplanparamtodoscomplementarios(transferencias,callparking,grabacinde
llamadasbajodemanda,etc.).
meetme.conf:paraconferencias.
musiconhold.conf:configuraciondelamusicaenespera.
queues.conf:configuraciondecolasdellamadas.
voicemail.conf:configuraciondelosbuzonesdevoz.
Asteriskseconfiguradesdemultiplesarchivosdeconfiguracion,cadaunoparaunadeterminadaarea.
Losmasimportantesson:
Archivodeconfiguracionmaestro:asterisk.conf
Archivodeconfiguraciondemodulos:modules.conf
Canales:
iax.conf:CanalesIAX(InterAsteriskeXchange)
sip.conf:CanalesSIP
/etc/dahdi/system.conf:TelefoniaAnalogicaydigital.
Instalacion de Asterisk 1.8:
Requerimientos
Los requerimientos para instalar asterisk son de acuerdo a la necesidad del usuario podramos poner unos requerimiento aunque podra ser irrelevante dado
que los requerimientos varan constantemente de acuerdo a la necesidad.

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

También podría gustarte