Está en la página 1de 31

________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK

Diciembre !"!
Cuaderno de Prcticas
GCAP
Certi#icaci$n Asteris%
Fundacin Cdigo Libre Dominicano
&ersi$n '("
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
Copright
Esta documentaci$n es re)ida por los re)lamentos de la GNU *ree Documentation +icense , la GNU General
Public +icense -'. si/ntase libre de copiar. modi#icar. aprender. distribuir , redistribuir esta documentaci$n0 1a)a
uso de su derec1o como si #uere su deber(
Pre!acio
Este cuaderno de practica esta dise2ado para 1acer 3ue estudiante obten)a el conocimiento necesario. 3ue -a
desde un domino b4sico. #undamental , administrati-o de la Plata#orma &oIP del So#t5are +ibre ASTERISK (
Nuestra Certi#icaci$n Reconocida en todo el pa6s , en +atinoam/rica en )enera los lle-ara desde los inicios 1asta
un ni-el a-an7ado. si /ste es completado en su totalidad( Este cuaderno es una iniciati-a para poder ense2ar a los
candidatos a poder dominar completamente esta plata#orma de so#tP89 *edora(
"utores: Cristhian #$%e& 'cristhian(codigolibre.org)
Carlos Castro 'ccastro(codigolibre.org)
*orge +rtega ',ortega(codigolibre.org)
Cual3uier su)erencia. correcci$n. duda. aclaraci$n ,:o comentario sobre este cuaderno de traba;o. si/ntase libre
se en-iar un correo a< in#o=codi)olibre(or)
Changelog con relacin a la -ersin ../:
Cambiado a la -ersin "steris0 1.1
con!iguracin Dahdi
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
Conceptos de 2ele!on3a 4o5P
1) 4o5P
&oIP >&oice-o-er-Internet-Protocol?. llamado en espa2ol &o7 sobre IP es un )rupo de normas , re)las 3ue 1acen posible 3ue la se2al
de -o7 -ia;e a tra-/s del protocolo IP( Esto si)ni#ica 3ue se en-6a la se2al de -o7 en #orma di)ital dentro del pa3uete ip. en lu)ar de
en-iarla >en #orma di)ital o anal$)ica? a tra-/s de circuitos utili7ables s$lo para tele#on6a como una TE+C@ o PSTN >acr$nimo de Public
S5itc1ed Telep1one Net5or%. Red Tele#$nica PAblica Conmutada?(
+os Protocolos 3ue son usados para lle-ar las se2ales de -o7 sobre la red IP son comAnmente re#eridos como protocolos de &o7 sobre
IP o protocolos IP( Pueden ser -istos como implementaciones comerciales de la BRed eCperimental de Protocolo de &o7B >"DE'?.
in-entada por ARPANET( El tr4#ico de &o7 sobre IP puede circular por cual3uier red IP. inclu,endo a3uellas conectadas a Internet. como
por e;emplo redes de 4rea local >+AN?(
Es mu, importante di#erenciar entre &o7 sobre IP >&oIP? , Tele#on6a sobre IP >No con#undir con ToIP. TeCt-o-er-IP?(
&oIP es el con;unto de normas. dispositi-os. protocolos. en de#initi-a la tecnolo)6a 3ue permite la transmisi$n de la -o7 sobre el protocolo IP(
Tele#on6a sobre IP es lo 3ue con-ierte la tele#on6a tradicional debido los ser-icios 3ue #inalmente se pueden lle)ar a o#recer )racias a poder portar la -o7 sobre el
protocolo IP en redes de datos(
1a) 4enta,as
+a principal -enta;a de este tipo de ser-icios es 3ue e-ita los car)os altos de tele#on6a >principalmente de lar)a distancia? 3ue son
usuales de las compa26as de la Red PAblica Tele#$nica Conmutada >PSTN?( Al)unos a1orros en el costo son debidos a utili7ar una misma
red para lle-ar -o7 , datos. especialmente cuando los usuarios tienen sin utili7ar toda la capacidad de una red ,a eCistente en la cual
pueden usar para &oIP sin un costo adicional( +as llamadas de &oIP a &oIP entre cual3uier pro-eedor son )eneralmente )ratis. en
contraste con las llamadas de &oIP a PSTN 3ue )eneralmente cuestan al usuario de &oIP(
Fa, dos tipos de ser-icio de PSTN a &oIP< B+lamadas +ocales DirectasB >Direct In5ard Diallin)< DID? , BNAmeros de accesoB( DID
conecta a 3uien 1ace la llamada directamente al usuario &oIP mientras 3ue los NAmeros de Acceso re3uieren 3ue este introdu7ca el
nAmero de eCtensi$n del usuario de &oIP( +os NAmeros de acceso son usualmente cobrados como una llamada local para 3uien 1i7o la
llamada desde la PSTN , )ratis para el usuario de &oIP(
.a) Funcionalidad
&oIP puede #acilitar tareas 3ue ser6an m4s di#6ciles de reali7ar usando las redes tele#$nicas comunes<
+as llamadas tele#$nicas locales pueden ser autom4ticamente enrutadas a un tel/#ono &oIP. sin importar d$nde se est/ conectado a la red( Uno podr6a lle-ar
consi)o un tel/#ono &oIP en un -ia;e. , en cual3uier sitio conectado a Internet. se podr6a recibir llamadas(
NAmeros tele#$nicos )ratuitos para usar con &oIP est4n disponibles en Estados Unidos de Am/rica. Reino Unido , otros pa6ses de or)ani7aciones como Usuario
&oIP(
+os a)entes de Call Center usando tel/#onos &oIP pueden traba;ar en cual3uier lu)ar con coneCi$n a Internet lo su#icientemente r4pida(
Al)unos pa3uetes de &oIP inclu,en los ser-icios eCtra por los 3ue PSTN >Red Tele#$nica Conmutada? normalmente cobra un car)o eCtra. o 3ue no se encuentran
disponibles en al)unos pa6ses. como son las llamadas de ' a la -e7. retorno de llamada. remarcado autom4tica. o identi#icaci$n de llamadas(
6a) 7o-ilidad
+os usuarios de &oIP pueden -ia;ar a cual3uier lu)ar en el mundo , se)uir 1aciendo , recibiendo llamadas de la si)uiente #orma<
+os subscriptores de los ser-icios de las l6neas tele#$nicas pueden 1acer , recibir llamadas locales #uera de su localidad( Por e;emplo. si un usuario tiene un
nAmero tele#$nico en la ciudad de Nue-a Gor% , est4 -ia;ando por Europa , al)uien llama a su nAmero tele#$nico. esta se recibir4 en Europa( Adem4s si una
llamada es 1ec1a de Europa a Nue-a Gor%. esta ser4 cobrada como llamada local. por supuesto el usuario de -ia;e por Europa debe tener una coneCi$n a Internet
disponible(
+os usuarios de Hensa;er6a Instant4nea basada en ser-icios de &oIP pueden tambi/n -ia;ar a cual3uier lu)ar del mundo , 1acer , recibir llamadas tele#$nicas(
+os tel/#onos &oIP pueden inte)rarse con otros ser-icios disponibles en Internet. inclu,endo -ideocon#erencias. intercambio de datos , mensa;es con otros
ser-icios en paralelo con la con-ersaci$n. audio con#erencias. administraci$n de libros de direcciones e intercambio de in#ormaci$n con otros >ami)os.
compa2eros. etc?(
Los protocolos mas utili&ados en 4oip 895P :.6.6;
1) 95P
Session Initiation Protocol >Protocolo de Inicio de Sesiones? desarrollado por el IET* HHUSIC Ior%in) Group con la intenci$n de
ser el est4ndar para la iniciaci$n. modi#icaci$n , #inali7aci$n de sesiones interacti-as de usuario donde inter-ienen elementos multimedia
como el -ideo. -o7. mensa;er6a instant4nea. ;ue)os en l6nea , realidad -irtual. posiblemente el rempla7o del otros protocolos 1(''
.) :.6.6
De#inido en "DDJ por la UIT >Uni$n Internacional de Telecomunicaciones? proporciona a los di-ersos #abricantes una serie de
normas con el #in de 3ue puedan e-olucionar en con;unto(
6) Caracter3sticas principales
Por su estructura el est4ndar proporciona las si)uientes -enta;as<
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 6
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
Permite controlar el tr4#ico de la red. por lo 3ue se disminu,en las posibilidades de 3ue se produ7can ca6das importantes en el
rendimiento( +as redes soportadas en IP presentan las si)uientes -enta;as adicionales<
Es independiente del tipo de red #6sica 3ue lo soporta( Permite la inte)raci$n con las )randes redes de IP actuales(
Es independiente del 1ard5are utili7ado(
Permite ser implementado tanto en so#t5are como en 1ard5are. con la particularidad de 3ue el 1ard5are supondr6a eliminar el impacto inicial para el
usuario comAn((
Permite la inte)raci$n de &ideo , TP&
<) 4o5P no es un ser-icio= es una tecnolog3a
En muc1os pa6ses del mundo. IP 1a )enerado mAltiples discordias. entre lo territorial , lo le)al sobre esta tecnolo)6a. est4 claro ,
debe 3uedar claro 3ue la tecnolo)6a de &oIP no es un ser-icio como tal. sino una tecnolo)6a 3ue usa el Protocolo de Internet >IP? a tra-/s
de la cual se comprimen , descomprimen de manera altamente e#iciente pa3uetes de datos o data)ramas. para permitir la comunicaci$n
de dos o m4s clientes a tra-/s de una red como la red de Internet( Con esta tecnolo)6a pueden prestarse ser-icios de Tele#on6a o
&ideocon#erencia. entre otros(
>) "r?uitectura de red
El propio Est4ndar de#ine tres elementos #undamentales en su estructura<
Terminales< Son los sustitutos de los actuales tel/#onos( Se pueden implementar tanto en so#t5are como en 1ard5are(
Gate%eepers< Son el centro de toda la or)ani7aci$n &oIP. , ser6an el sustituto para las actuales centrales( Normalmente implementadas en so#t5are. en caso de
eCistir. todas las comunicaciones pasar6an por /l(
Gate5a,s< Se trata del enlace con la red tele#$nica tradicional. actuando de #orma transparente para el usuario(
Con estos tres elementos. la estructura de la red &oIP podr6a ser la coneCi$n de dos dele)aciones de una misma empresa( +a -enta;a
es inmediata< todas las comunicaciones entre las dele)aciones son completamente )ratuitas( Este mismo es3uema se podr6a aplicar para
pro-eedores. con el consi)uiente a1orro 3ue esto conlle-a(
Protocolos de &oIP< Es el len)ua;e 3ue utili7ar4n los distintos dispositi-os &oIP para su coneCi$n( Esta parte es importante ,a 3ue de ella depender4 la e#icacia ,
la comple;idad de la comunicaci$n( Por orden de anti)Kedad >de m4s anti)uo a m4s nue-o?<
F('' - Protocolo de#inido por la ITU-T
SIP - Protocolo de#inido por la IET*
He)aco >Tambi/n conocido como F(LM? , HGCP - Protocolos de control
S%inn, Client Control Protocol - Protocolo propiedad de Cisco
HiNet - Protocolo propiedad de Hitel
CorNet-IP - Protocolo propiedad de Siemens
IA9 - Protocolo ori)inal para la comunicaci$n entre P89s Asteris% >obsoleto?
S%,pe - Protocolo propietario peer-to-peer utili7ado en la aplicaci$n S%,pe
IA9 - Protocolo para la comunicaci$n entre P89s Asteris% en reempla7o de IA9
Nin)le - Protocolo abierto utili7ado en tecnolo)6a Nabber
HGCP- Protocolo propietario de Cisco
Como 1emos -isto &oIP presenta una )ran cantidad de -enta;as. tanto para las empresas como para los usuarios comunes( +a
pre)unta ser6a Opor 3u/ no se 1a implantado aAn esta tecnolo)6aP( A continuaci$n anali7aremos los aparentes moti-os. por los 3ue &oIP
aAn no se 1a impuesto a las tele#on6as con-encionales(
1) Parmetros de la 4o5P
Este es el principal problema 3ue presenta 1o, en d6a la penetraci$n tanto de &oIP como de todas las aplicaciones de IP( Garanti7ar la
calidad de ser-icio sobre una red IP. por medio de retardos , anc1o de banda. actualmente no es posible0 por eso. se presentan di-ersos
problemas en cuanto a )aranti7ar la calidad del ser-icio(
@) Cdecs
+a -o7 1a de codi#icarse para poder ser transmitida por la red IP( Para ello se 1ace uso de C$decs 3ue )aranticen la codi#icaci$n ,
compresi$n del audio o del -6deo para su posterior decodi#icaci$n , descompresi$n antes de poder )enerar un sonido o ima)en utili7able(
Se)An el C$dec utili7ado en la transmisi$n. se utili7ar4 m4s o menos anc1o de banda( +a cantidad de anc1o de banda suele ser
directamente proporcional a la calidad de los datos transmitidos(
Entre los codecs utili7ados en &oIP encontramos los G(E"". G(E'(" , el G(ED >especi#icados por la ITU-T?
A) Betardo o latencia
Una -e7 establecidos los retardos de tr4nsito , el de procesado la con-ersaci$n se considera aceptable por deba;o de los "Q! ms(
9) Calidad del servicio
+a calidad de este ser-icio se est4 lo)rando ba;o los si)uientes criterios<
+a supresi$n de silencios. otor)a m4s e#iciencia a la 1ora de reali7ar una transmisi$n de -o7. ,a 3ue se apro-ec1a me;or el anc1o de banda al transmitir menos
in#ormaci$n(
Compresi$n de cabeceras aplicando los est4ndares RTP:RTCP(
Priori7aci$n de los pa3uetes 3ue re3uieran menor latencia( +as tendencias actuales son<
CR >Custom Rueuin)?< Asi)na un porcenta;e del anc1o de banda disponible(
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org <
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
PR >Priorit, Rueuin)?< Establece prioridad en las colas(
I*R >Iei)1t *air Rueuin)?< Se asi)na la prioridad al tr4#ico de menos car)a(
Di##Ser-< E-ita tablas de encaminados intermedios , establece decisiones de rutas por pa3uete(
+a implantaci$n de IP-J 3ue proporciona ma,or espacio de direccionamiento , la posibilidad de tunnelin)(
Principales protocolos de 4o5P
1) :.6.6
El protocolo F('' se cre$ ori)inalmente para pro-eer de un mecanismo para el transporte de aplicaciones multimedia en +ANs
>Redes de 4rea local? pero 1a e-olucionado r4pidamente para diri)ir las crecientes necesidades de las redes de &oIP(
Un punto #uerte de F('' era la relati-a , temprana disponibilidad de un )rupo de est4ndares. no solo de#iniendo el modelo b4sico de
llamada. sino 3ue adem4s de#in6a ser-icios suplementarios. necesarios para diri)ir las eCpectati-as de comunicaciones comerciales( F(''
#ue el primer est4ndar de &oIP en adoptar el est4ndar de IET* de RTP >Protocolo de Transporte en tiempo Real? para transportar audio ,
-6deo sobre redes IP( F('' est4 basado en el protocolo RDSI R(D'" , est4 adaptado para situaciones en las 3ue se combina el traba;o
entre IP , RDSI. , respecti-amente entre IP , RSIG( Un modelo de llamada. similar al modelo de RDSI. #acilita la introducci$n de la
Tele#on6a IP en las redes eCistentes de RDSI basadas en sistemas P89( Por esto es posible el pro,ecto de una mi)raci$n sin problemas
1acia el IP basado en sistemas P89(
Dentro del conteCto de F(''. un IP basado en P89 es. en palabras sencillas. un Gate%eeper m4s al)unos ser-icios suplementarios(
F('' es una recomendaci$n del ITU-T >International Telecommunication Union?. 3ue de#ine los protocolos para pro-eer sesiones de
comunicaci$n audio-isual sobre pa3uetes de red( A partir del a2o !!! se encuentra implementada por -arias aplicaciones de internet 3ue
#uncionan en tiempo real como Hicroso#t Netmeetin) , GnomeHeetin) >Este Altimo utili7a la implementaci$n @penF''?( Es una parte
de la serie de protocolos F('C. los cuales tambi/n diri)en las comunicaciones sobre RDSI. RTC o SSE(
F('' es utili7ado comAnmente para &o7 sobre IP >&oIP. Tele#on6a de Internet o Tele#on6a IP? , para -ideocon#erencia basada en IP(
Es un con;unto de normas >recomendaci$n para)uas? ITU para comunicaciones multimedia 3ue 1acen re#erencia a los terminales. e3uipos
, ser-icios estableciendo una se2ali7aci$n en redes IP( No )aranti7a una calidad de ser-icio. , en el transporte de datos puede. o no. ser
#iable0 en el caso de -o7 o -6deo. nunca es #iable( Adem4s. es independiente de la topolo)6a de la red , admite pasarelas. permitiendo usar
m4s de un canal de cada tipo >-o7. -6deo. datos? al mismo tiempo(
Di#erentes elementos 3ue con#orman la topolo)6a cl4sica de una red basada en F-''(
Portero< reali7a el control de llamada en una 7ona( Es opcional pero su uso est4 recomendado. de modo 3ue si eCiste. su uso ser4 obli)atorio( Traduce
direcciones. o#rece ser-icio de directorio. control de admisi$n de terminales. control de consumo de recursos , procesa la autori7aci$n de llamadas. as6 como
tambi/n puede encaminar la se2ali7aci$n(
Pasarela< es el acceso a otras redes. de modo 3ue reali7a #unciones de transcodi#icaci$n , traducci$n de se2ali7aci$n(
HCU< soporte multicon#erencia( Se encar)a de la ne)ociaci$n de capacidades(
Protocolos de la Familia :.6.6
F('' tiene re#erencias 1acia al)unos otros protocolos de ITU-T como<
F(Q(! - Protocolo utili7ado para describir la se2al de llamada. el medio >audio , -ideo?. el empa3uetamiento de las tramas. la sincroni7aci$n de tramas de
medio , los #ormatos de los mensa;es de control(
F(LQ - Protocolo de control para comunicaciones multimedia( Describe los mensa;es , procedimientos utili7ados para abrir , cerrar canales l$)icos para audio.
-ideo , datos. capacidad de intercambio. control e indicaciones(
F(LQ! - Describe los Ser-icios Suplementarios(
F('Q - Describe la se)uridad de F(''(
F('D - Describe el uso de la doble trama en -ideocon#erencia. normalmente uno para -ideo en tiempo real , la otro para presentaci$n(
F(M" - Describe el control de c4mara le;ana para mo-imientos PTS >Pan-Tilt-Soom?
.) 95P
Session Initiation Protocol >SIP o Protocolo de Inicio de Sesiones? es un protocolo desarrollado por el IET* HHUSIC Ior%in)
Group con la intenci$n de ser el est4ndar para la iniciaci$n. modi#icaci$n , #inali7aci$n de sesiones interacti-as de usuario donde
inter-ienen elementos multimedia como el -ideo. -o7. mensa;er6a instant4nea. ;ue)os online , realidad -irtual(
El sintaCis de sus operaciones se aseme;a al FTTP , SHTP. los protocolos utili7ados en p4)inas Ieb , de distribuci$n de E-mail
respecti-amente( Esta similitud es natural ,a 3ue SIP #ue dise2ado para 3ue la tele#on6a se -uel-a un ser-icio m4s en Internet(
En No-iembre del a2o !!!. SIP #ue aceptado como el protocolo de se2ali7aci$n de 'GPP , elemento permanente de la ar3uitectura
IHS >IP Hultimedia Subs,stem?( SIP es uno de los protocolos de se2ali7aci$n para -o7 sobre IP. otro es F(''(
.a) Dise%o
El protocolo SIP #ue dise2ado por el IET* con el concepto de Bca;a de 1erramientasB. es decir. el protocolo SIP se -ale de las
#unciones aportadas por otros protocolos. las 3ue da por 1ec1as , no -uel-e a desarrollarlas ( Debido a este concepto SIP #unciona en
colaboraci$n con otros muc1os protocolos( El protocolo SIP se concentra en el establecimiento. modi#icaci$n , terminaci$n de las
sesiones. se complementa. entre otros. con el SDP. 3ue describe el contenido multimedia de la sesi$n. por e;emplo 3u/ direcciones
IP.puertos , c$decs se usar4n durante la comunicaci$n( Tambi/n se complementa con el RTP >Real-time Transport Protocol?( RTP es el
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org >
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
-erdadero portador para el contenido de -o7 , -ideo 3ue intercambian los participantes en una sesi$n establecida por SIP(
@tro concepto importante en su dise2o es el de eCtensibilidad( Esto si)ni#ica 3ue las #unciones b4sicas del protocolo. de#inidas en la
R*C 'J". pueden ser eCtendidas mediante otras R*C >Re3uests #or Comments? dotando al protocolo de #unciones m4s potentes(
+as #unciones b4sicas del protocolo inclu,en<
Determinar la ubicaci$n de los usuarios. pro-e,endo normalidad(
Establecer. modi#icar , terminar sesiones multipartitas entre usuarios(
El protocolo SIP adopta el modelo cliente-ser-idor , es transaccional( El cliente reali7a peticiones 3ue el ser-idor atiende , )enera
una o m4s respuestas >dependiendo de la naturale7a. H/todo. de la petici$n?( Por e;emplo para iniciar una sesi$n el cliente reali7a una
petici$n con el m/todo IN&ITE en donde indica con 3u/ el usuario >o recurso? 3uiere establecer la sesi$n( El ser-idor responde
rec1a7ando o aceptando la petici$n en una serie de respuestas( +as respuestas lle-an un c$di)o de estado 3ue brindan in#ormaci$n acerca
de si las peticiones #ueron resueltas con /Cito o error( +a petici$n inicial , todas sus respuestas constitu,en una transacci$n(
+os ser-idores. por de#ecto. utili7an el puerto Q!J! en TCP >Transmission Control Protocol? , UDP >User Data)ram Protocol? para
recibir las peticiones de los clientes SIP(
Como una de las principales aplicaciones del protocolo SIP es la tele#on6a. un ob;eti-o de SIP #ue aportar un con;unto de las
#unciones de procesamiento de llamadas , capacidades presentes en la red pAblica conmutada de tele#on6a( As6. implement$ #unciones
t6picas de dic1a red. como son< llamar a un nAmero. pro-ocar 3ue un tel/#ono suene al ser llamado. escuc1ar la se2al de tono o de
ocupado( +a implementaci$n , terminolo)6a en SIP son di#erentes(
SIP tambi/n implementa muc1as de las m4s a-an7adas caracter6sticas del procesamiento de llamadas de SSE. aun3ue los dos
protocolos son mu, di#erentes( SSE es altamente centrali7ado. caracteri7ado por una comple;a ar3uitectura central de red , unos
terminales tontos >los tradicionales tel/#onos de auricular?( SIP es un protocolo peer to peer >tambi/n llamado pp?( Como tal re3uiere un
nAcleo de red sencillo >, altamente escalable? con inteli)encia distribuida en los eCtremos de la red. incluida en los terminales >,a sea
mediante 1ard5are o so#t5are?( Huc1as caracter6sticas de SIP son implementadas en los terminales en oposici$n a las tradicionales
caracter6sticas de SSE. 3ue son implementadas en la red(
Aun3ue eCisten muc1os otros protocolos de se2ali7aci$n para &oIP. SIP se caracteri7a por3ue sus promotores tienen sus ra6ces en la
comunidad IP , no en la industria de las telecomunicaciones( SIP 1a sido estandari7ado , diri)ido principalmente por el IET* mientras
3ue el protocolo de &oIP F('' 1a sido tradicionalmente m4s asociado con la Uni$n Internacional de Telecomunicaciones( Sin embar)o.
las dos or)ani7aciones 1an promocionado ambos protocolos del mismo modo(
SIP es similar a FTTP , comparte con /l al)unos de sus principios de dise2o< es le)ible por 1umanos , si)ue una estructura de
petici$n-respuesta( +os promotores de SIP a#irman 3ue es m4s simple 3ue F(''( Sin embar)o. aun3ue ori)inalmente SIP ten6a como
ob;eti-o la simplicidad. en su estado actual se 1a -uelto tan comple;o como F(''( SIP comparte muc1os c$di)os de estado de FTTP.
como el #amiliar TL!L no encontradoT >L!L not #ound?( SIP , F('' no se limitan a comunicaciones de -o7 , pueden mediar en cual3uier
tipo de sesi$n comunicati-a desde -o7 1asta -6deo o #uturas aplicaciones toda-6a sin reali7ar(
.b) Funcionamiento
El protocolo SIP permite el establecimiento de sesiones multimedia entre dos o m4s usuarios( Para 1acerlo se -ale del intercambio de
mensa;es entre las partes 3ue 3uieren comunicarse(
.c) "gentes de Csuario
+os usuarios. 3ue pueden ser seres 1umanos o aplicaciones de so#t5are. utili7an para establecer sesiones lo 3ue el protocolo SIP
denomina BA)entes de usuarioB( Estos no son m4s 3ue los puntos eCtremos del protocolo. es decir son los 3ue emiten , consumen los
mensa;es del protocolo SIP( Un -ideo tel/#ono. un tel/#ono. un cliente de so#t5are >so#tp1one? , cual3uier otro dispositi-o similar es para
el protocolo SIP un a)ente de usuario( El protocolo SIP no se ocupa de la inter#a7 de estos dispositi-os con el usuario #inal. s$lo se
interesa en los mensa;es 3ue estos )eneran , c$mo se comportan al recibir determinados mensa;es(
+os a)entes de usuario se comportan como clientes >UAC< User A)ent Clients? , como ser-idores >UAS< User A)ent Ser-ers?( Son
UAC cuando reali7an una petici$n , son UAS cuando la reciben( Por esto los a)entes de usuario deben implementar un UAC , un UAS(
Adem4s de los a)entes de usuario eCisten otras entidades 3ue inter-ienen en el protocolo. estos son los Ser-idores de Re)istro o
Re)istrar. los ProC, , los Redirectores( A continuaci$n se describe su #inalidad(
6c) 9er-idores de Begistro o Begistrar
El protocolo SIP permite establecer la ubicaci$n #6sica de un usuario determinado. esto es en 3u/ punto de la red est4 conectado( Para
ello se -ale del mecanismo de re)istro( Este mecanismo #unciona como si)ue<
Cada usuario tiene una direcci$n l$)ica 3ue es in-ariable respecto de la ubicaci$n #6sica del usuario( Una direcci$n l$)ica del
protocolo SIP es de la #orma usuario=dominio es decir tiene la misma #orma 3ue una direcci$n de correo electr$nico( +a direcci$n #6sica
>denominada Bdirecci$n de contactoB? es dependiente del lu)ar en donde el usuario est4 conectado >de su direcci$n IP?( Cuando un
usuario iniciali7a su terminal >por e;emplo conectando su tel/#ono o abriendo su so#t5are de tele#on6a SIP? el a)ente de usuario SIP 3ue
reside en dic1o terminal en-6a una petici$n con el m/todo REGISTER a un Ser-idor de Re)istro >Re)istrar en in)l/s?. in#ormando a 3u/
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
direcci$n #6sica debe asociarse la direcci$n l$)ica del usuario( El ser-idor de re)istro reali7a entonces dic1a asociaci$n >denominada
bindin)?( Esta asociaci$n tiene un per6odo de -i)encia , si no es reno-ada. caduca( Tambi/n puede terminarse mediante un des-re)istro(
+a #orma en 3ue dic1a asociaci$n es almacenada en la red no es determinada por el protocolo SIP. pero es -ital 3ue los elementos de la
red SIP accedan a dic1a in#ormaci$n(
<c) 9er-idores ProD de Bedireccin
Para encaminar un mensa;e entre un a)ente de usuario cliente , un a)ente de usuario ser-idor normalmente se recurre a los
ser-idores( Estos ser-idores pueden actuar de dos maneras<
"( Como ProC,. encaminando el mensa;e 1acia destino.
( Como Redirector >Redirect?)enerando una respuesta 3ue indica al ori)inante la direcci$n del destino o de otro ser-idor 3ue lo
acer3ue al destino(
+a principal di#erencia es 3ue el ser-idor proC, 3ueda #ormando parte del camino entre el UAC , el >o los? UAS. mientras 3ue el
ser-idor de redirecci$n una -e7 3ue indica al UAC c$mo encaminar el mensa;e ,a no inter-iene m4s( Un mismo ser-idor puede actuar
como Redirector o como ProC, dependiendo de la situaci$n(
>c) Casos t3picos de ser-idores
Un con;unto de usuarios 3ue pertenecen a una compa26a o pro-eedor de ser-icios de comunicaciones. con#orman un dominio( Este
dominio. 3ue se indica en una direcci$n SIP despu/s del car4cter B=B es normalmente atendido por un ser-idor >o m4s de uno?( Este
ser-idor recibe las peticiones 1acia sus usuarios( Este ser-idor ser4 el encar)ado de determinar la direcci$n #6sica del usuario llamado( Un
ser-idor 3ue recibe las peticiones destinadas a un dominio espec6#ico es denominado ser-idor entrante >Inbound Ser-er?(
Es 1abitual tambi/n. 3ue eCista un ser-idor 3ue reciba las peticiones ori)inadas por los usuarios de un dominio 1acia otros dominios(
Este recibe el nombre de Ser-idor Saliente >@utbound Ser-er?( Un a)ente de usuario normalmente encamina todos sus pedidos 1acia un
ser-idor de su propio dominio( Es este 3uien determina >por sus propios medios o -ali/ndose de otros ser-idores? las ubicaciones de los
usuarios 3ue son llamados por el a)ente de usuario en cuesti$n(
1c) Formato de los mensa,es
+os mensa;es 3ue se intercambian en el protocolo SIP pueden ser peticiones o respuestas(
+as peticiones tienen una l6nea de petici$n. una serie de encabe7ados , un cuerpo(
+as respuestas tienen una l6nea de respuesta. una serie de encabe7ados , un cuerpo(
En la l6nea de petici$n se indica el prop$sito de la petici$n , el destinatario de la petici$n(
+as peticiones tienen distintas #unciones( El prop$sito de una petici$n est4 determinado por lo 3ue se denomina el H/todo >Het1od?
de dic1a petici$n. 3ue no es m4s 3ue un identi#icador del prop$sito de la petici$n( En la UR*C 'J"V se de#inen los m/todos b4sicos del
protocolo( ECisten otros m/todos de#inidos en eCtensiones al protocolo SIP(
En la l6nea de respuesta se indica el c$di)o de estado de la respuesta 3ue es un nAmero indica el resultado del procesamiento de la
petici$n( +os encabe7ados de peticiones , respuestas se utili7an para di-ersas #unciones del protocolo relacionadas con el
encaminamiento de los mensa;es. autenticaci$n de los usuarios. entre otras( +a eCtensibilidad del protocolo permite crear nue-os
encabe7ados para los mensa;es a)re)ando de esta manera #uncionalidad(
El cuerpo de los mensa;es es opcional , se utili7a entre otras cosas para transportar las descripciones de las sesiones 3ue se 3uieren
establecer. utili7ando la sintaCis del protocolo SDP(
@c) Flu,o de establecimiento de una sesin
El #lu;o 1abitual del establecimiento de una sesi$n mediante el protocolo SIP es el si)uiente. en este e;emplo todos los ser-idores
actAan como proC,<
Un usuario in)resa la direcci$n l$)ica de la persona con la 3ue 3uiere comunicarse. puede indicar al terminal tambi/n las
caracter6sticas de las sesi$n 3ue 3uiere establecer >-o7 , -ideo. etc(?. o estas pueden estar impl6citas por el tipo de terminal del 3ue se
trate( El a)ente de usuario SIP 3ue reside en el terminal. actuando como UAC en-6a la petici$n >en este caso con el m/todo IN&ITE? al
ser-idor 3ue tiene con#i)urado( Este ser-idor se -ale del sistema DNS para determinar la direcci$n del ser-idor SIP del dominio del
destinatario( El dominio lo conoce pues es parte de la direcci$n l$)ica del destinatario( Una -e7 obtenida la direcci$n del ser-idor del
dominio destino. encamina 1acia all6 la petici$n( El ser-idor del dominio destino establece 3ue la petici$n es para un usuario de su
dominio , entonces se -ale de la in#ormaci$n de re)istraci$n de dic1o usuario para establecer su ubicaci$n #6sica( Si la encuentra.
entonces encamina la petici$n 1acia dic1a direcci$n( El a)ente de usuario destino si se encuentra desocupado comen7ar4 a alertar al
usuario destino , en-6a una respuesta 1acia el usuario ori)inante con un c$di)o de estado 3ue indica esta situaci$n >"M! en este caso?( +a
respuesta si)ue el camino in-erso 1acia el ori)inante( Cuando el usuario destino #inalmente acepta la in-itaci$n. se )enera una respuesta
con un c$di)o de estado >el !!? 3ue indica 3ue la petici$n #ue aceptada( +a recepci$n de la respuesta #inal es con#irmada por el UAC
ori)inante mediante una petici$n con el m/todo ACK >de Ac%no5led)ement?. esta petici$n no )enera respuestas , completa la
transacci$n de establecimiento de la sesi$n(
Normalmente la petici$n con el m/todo IN&ITE lle-a un cuerpo donde -ia;a una descripci$n de la sesi$n 3ue 3uiere establecer. esta
descripci$n es reali7ada con el protocolo SDP( En ella se indica el tipo de contenido a intercambiar >-o7. -ideo. etc(? , sus caracter6sticas
>c$decs. direcciones. puertos donde se espera recibirlos. -elocidades de transmisi$n. etc(?( Esto se conoce como Bo#erta de sesi$n SDPB(
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org @
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
+a respuesta a esta o#erta -ia;a. en este caso. en el cuerpo de la respuesta de#initi-a a la petici$n con el m/todo IN&ITE( +a misma
contiene la descripci$n de la sesi$n desde el punto de -ista del destinatario( Si las descripciones #ueran incompatibles. la sesi$n debe
terminarse >mediante una petici$n con el m/todo 8GE?(
Al terminar la sesi$n. lo 3ue puede 1acer cual3uiera de las partes. el a)ente de usuario de la parte 3ue termin$ la sesi$n. actuando
como UAC. en-6a 1acia la otra una petici$n con el m/todo 8GE( Cuando lo recibe el UAS )enera la respuesta con el c$di)o de estado
correspondiente(
Si bien se describi$ el caso de una sesi$n bipartita. el protocolo permite el establecimiento de sesiones multipartitas( Tambi/n permite
3ue un usuario est/ re)istrado en di#erentes ubicaciones pudiendo reali7ar la bAs3ueda en paralelo o secuencial entre todas ellas(
6) 5"E.
IA9 >Inter-Asteris% e9c1an)e Protocol? es uno de los protocolos utili7ado por Asteris%. un ser-idor P89 >central tele#$nica? de
c$di)o abierto patrocinado por Di)ium( Es utili7ado para mane;ar coneCiones &oIP entre ser-idores Asteris%. , entre ser-idores , clientes
3ue tambi/n utili7an protocolo IA9(
El protocolo IA9 a1ora se re#iere )eneralmente al IA9. la se)unda -ersi$n del protocolo IA9( El protocolo ori)inal 1a 3uedado
obsoleto en #a-or de IA9(
El principal ob;eti-o de IA9 1a sido minimi7ar el anc1o de banda utili7ado en la transmisi$n de -o7 , -6deo a tra-/s de la red IP. con
particular atenci$n al control , a las llamadas de -o7 , pro-e,endo un soporte nati-o para ser transparente a NAT( +a estructura b4sica de
IA9 se #undamenta en la multipleCaci$n de la se2ali7aci$n , del #lu;o de datos sobre un simple puerto UDP entre dos sistemas(
IA9 es un protocolo binario , est4 dise2ado , or)ani7ado de manera 3ue reduce la car)a en #lu;os de datos de -o7( El anc1o de banda
para al)unas aplicaciones se sacri#ica en #a-or del anc1o de banda para &oIP(
6a) Caracter3sticas:
IA9 es robusto. lleno de no-edades , mu, simple en comparaci$n con otros protocolos( Permite mane;ar una )ran cantidad de c$decs , un )ran nAmero de
streams. lo 3ue si)ni#ica 3ue puede ser utili7ado para transportar -irtualmente cual3uier tipo de dato( Esta capacidad lo 1ace mu, Atil para reali7ar
-ideocon#erencias o reali7ar presentaciones remotas(
IA9 utili7a un Anico puerto UDP. )eneralmente el LQJD. para comunicaciones entre puntos #inales >terminales &oIP? para se2ali7aci$n , datos( El tr4#ico
de -o7 es transmitido in-band. lo 3ue 1ace a IA9 un protocolo casi transparente a los corta#ue)os , realmente e#ica7 para traba;ar dentro de redes internas( En
esto se di#erencia de SIP. 3ue utili7a una cadena RTP out-o#-band para entre)ar la in#ormaci$n(
IA9 soporta Trun%in) >red?. donde un simple enlace permite en-iar datos , se2ali7aci$n por mAltiples canales( Cuando se reali7a Trun%in). los datos de
mAltiples llamadas son mane;ados en un Anico con;unto de pa3uetes. lo 3ue si)ni#ica 3ue un data)rama IP puede entre)ar in#ormaci$n para m4s llamadas sin
crear latencia adicional( Esto es una )ran -enta;a para los usuarios de &oIP. donde las cabeceras IP son un )ran porcenta;e del anc1o de banda utili7ado(
<) "steris0
Asteris% es una aplicaci$n de so#t5are libre >ba;o licencia GP+? 3ue pro-ee #uncionalidades de una central tele#$nica >P89?( Como
cual3uier P89. se puede conectar un nAmero determinado de tel/#onos para 1acer llamadas entre s6 e incluso conectar a un pro-eedor de
&oIP o bien a una RDSI tanto b4sicos como primarios(
Har% Spencer. de Di)ium. inicialmente cre$ Asteris% , actualmente es su principal desarrollador. ;unto con otros pro)ramadores 3ue
1an contribuido a corre)ir errores , a2adir no-edades , #uncionalidades( @ri)inalmente desarrollado para el sistema operati-o
GNU:+inuC. Asteris% actualmente tambi/n se distribu,e en -ersiones para los sistemas operati-os 8SD. Hac@S9. Solaris , Hicroso#t
Iindo5s. aun3ue la plata#orma nati-a >GNU:+inuC? es la me;or soportada de todas(
Asteris% inclu,e muc1as caracter6sticas anteriormente s$lo disponibles en costosos sistemas propietarios P89 como bu7$n de -o7.
con#erencias. I&R. distribuci$n autom4tica de llamadas. , otras muc1as m4s( +os usuarios pueden crear nue-as #uncionalidades
escribiendo un dialplan en el len)ua;e de script de Asteris% o a2adiendo m$dulos escritos en len)ua;e C o en cual3uier otro len)ua;e de
pro)ramaci$n soportado por +inuC(
Para conectar tel/#onos est4ndar anal$)icos son necesarias tar;etas electr$nicas tele#$nicas *9S o *9@ #abricadas por Di)ium u otros
pro-eedores. ,a 3ue para conectar el ser-idor a una l6nea eCterna no basta con un simple m$dem( Rui74 lo m4s interesante de Asteris% es
3ue soporta muc1os protocolos &oIP como pueden ser SIP. F(''. IA9 , HGCP( Asteris% puede interoperar con terminales IP actuando
como un re)istrador , como )ate5a, entre ambos(
<a) Cambios con relacin a la 1.<
+os cambios mas rele-antes con relaci$n a la -ersi$n "(L<
SIP a1ora puede ser transportado tanto por TCP como UDP( +a #inalidad es 3ue permite el uso de Encriptaci$n T+S( Aun3ue esto no representa un )ran
bene#icio. es pro-ec1oso para a3uellas empresas 3ue tienen altas pol6ticas de se)uridad(
Se elimino completamente el soporte 7aptel( A1ora solo el soporte es para da1di
Has caracter6sticas en< 1ttp<::555(s,ednet5or%s(com:asteris%-"-J-#eaturesWmore-"LQ
<b) Conceptos Fsicos
Canal< Es una coneCi$n 3ue conduce una llamada entrante o saliente en el sistema asteris%( +a coneCi$n puede -enir o salir 1acia
tele#on6a tradicional anal$)ica o di)ital. o &oIP(
Dialplan< Se trata de la con#i)uraci$n de la central de asteris% 3ue indica el itinerario 3ue si)ue una llamada desde 3ue entra o sale del
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org A
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
sistema 1asta 3ue lle)a a su punto #inal( Se trata en lineas )enerales del comportamiento l$)ico de la central(
GDtensin< En tele#on6a tradicional. las eCtensiones se asocian con tel/#onos. inter#aces o menAes( En asteris%. una eCtensi$n es una lista
de comandos a e;ecutar( +as eCtensiones se acceden cuando<
Se recibe una llamada entrante por un canal dado(
El usuario 3ue 1a llamado marca la eCtensi$n
Se e;ecuta un salto de eCtensiones desde el dialplan de asteris%(
ConteCto< El dialplan o l$)ica de comportamiento de asteris% se di-ide en uno o -arios conteCtos( Un conteCto es una colecci$n de
eCtensiones( +os conteCtos eCisten para poder di#erenciar el lu)ar donde se encuentra una llamada(
"plicacin< Asteris% e;ecuta secuencialmente los comandos asociados a cada eCtensi$n( Esos comandos son realmente aplicaciones 3ue
controlan el comportamiento de la llamada , del sistema en si( E;emplos<
Fan)up< Col)ar la llamada
Dial< Reali7a una llamada saliente
Pla,bac%< Reproduce un arc1i-o de sonido
#ota: 7as adelante hablaremos mas a !ondo de aplicaciones.
Gstructura de Directorios
/etc/asteris0: Contiene los arc1i-os de con#i)uraci$n( Si al compilar e;ecutamos Xma%e samplesY. tendremos e;emplos en este directorio(
/usr/lib/asteris0/modules: Contiene los m$dulos de Asteris% 3ue 1emos compilado(
/-ar/lib/asteris0: Contiene di#erentes Xlibrer6asY de Asteris%(
/-ar/lib/asteris0!irmware/ Contiene im4)enes binarias de #irm5are de -arios dispositi-os compatibles con asteris%
/-ar/lib/asteris0/images/ +as aplicaciones 3ue se comunican con canales 3ue soportar ima)enes. buscan en este directorio
/-ar/lib/asteris0/agi-bin: Directorio para contener los AGI(
/-ar/spool/asteris0: Directorio para arc1i-os 3ue )enera Asteris% >-oicemail. etc(?
/-ar/log/asteris0: A3u6 se )uardan los lo) de Asteris%(
/-ar/log/asteris0/cdr-c-s Este directorio es usado para )uardar los CDRs en un #ormato C&S o comma-separated -alue
/-ar/lib/asteris0/0es/ A3u6 se )uardan las lla-es RSA 3ue se utili7aran en las comunicaciones peer to peer >IA9?
/-ar/lib/asteris0/mohmp6/ +as aplicaciones 3ue usan music on 1old buscaran por de#ecto los arc1i-os de audio en este directorio
/-ar/lib/asteris0/sounds/ A3u6 se buscan por de#ecto los sonidos b4sicos de asteris% reproducios por pla,bac%> ? , bac%)round>?
"rchi-os de con!iguracin
eDtensions.con!< el propio Dialplan(
!eatures.con!: dialplan para m/todos complementarios >trans#erencias. call par%in). )rabaci$n. etc(?(
meetme.con!: para con#erencias(
musiconhold.con!: con#i)uraci$n de la mAsica en espera(
?ueues.con!< con#i)uraci$n de colas de llamadas(
-oicemail.con!: con#i)uraci$n de los bu7ones de -o7(
asteris0.con!: Arc1i-o de con#i)uraci$n maestro
modules.con!: Arc1i-o de con#i)uraci$n de m$dulos(
Canales:
iaD.con!: Canales IA9 >Inter Asteris% e9c1an)e?
sip.con!: Canales SIP
/etc/dahdi/sstem.con!: Tele#on6a Anal$)ica , di)ital(
5nstalacin de "steris0 1.1.1.1 en Fedora 16
Be?uerimientos
+os re3uerimientos para instalar asteris% son de acuerdo a la necesidad del usuario podr6amos poner unos re3uerimiento aun3ue
podr6a ser irrele-ante dado 3ue los re3uerimientos -ar6an constantemente de acuerdo a la necesidad del usuario( Asteris% utili7a el
procesador para procesar las llamadas esto 3uiere decir 3ue de acuerdo a nuestra necesidad necesitaremos un procesador de )ran
capacidad para procesar un )ran capacidad de llamadas simultaneas(
Be?uerimiento de pa?uetes para compilar dahdi asteris0
yum install -y gcc ncurses-devel libtermcap-devel kernel-devel kernel-smp-devel gcc-c++ openssl-devel newt-devel zlib-devel unixODBC-devel libtool make
#ota< nosotros -amos a necesitar 1acer uso del directorio :usr:src: para eCtraer , compilar da1di libpri asteris%. usaremos 5)et para descar)ar los #uentes de di)ium(
Hroot(blac0angel IJK cd /usr/src/
HsrcJK wget http://downloads.asteris0.org/pub/telephon/asteris0/releases/asteris0-1.1.1.1.tar.g&
HsrcJK wget http://downloads.asteris0.org/pub/telephon/dahdi-linuD/releases/dahdi-linuD-..../...tar.g&
HsrcJK wget http://downloads.asteris0.org/pub/telephon/dahdi-tools/releases/dahdi-tools-..../.tar.g&
GDtraendo los cdigos !uentes
root!blackangel src"#tar xzv$ asterisk-%&'&%&%&tar&gz
root!blackangel src"#tar xzv$ da(di-linux-)&)&*&)&tar&gz
root!blackangel src"#tar xzv$ da(di-tools-)&)&*&tar&gz
Compilando Dahdi Dahdi 2ools
root!blackangel src"#cd da(di-linux-)&)&*&)+ root!blackangel src"#cd da(di-tools-)&)&*+
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org L
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
root!blackangel src"#make clean
root!blackangel src"#make
root!blackangel src"#make install
root!blackangel src"#&+con$igure
root!blackangel src"#make
root!blackangel src"#make install
root!blackangel src"#make con$ig
Compilando "steris0
root!blackangel src"#cd asterisk-%&'&%&%
root!blackangel src"#&+con$igure
root!blackangel src"#make menucon$ig
root!blackangel src"#make
root!blackangel src"#make install
root!blackangel src"#make con$ig
root!blackangel src"#make samples
Como con!igurar la tar,eta FE+ >*orei)n ECc1an)e @##ice?
Generalmente utili7aremos esta tar;eta con el #in de 3ue asteris% se conecta al PSTN por una linea anal$)ica >linea tele#$nica
con-encional?( Asumiendo 3ue tenemos una tar;eta tdmL!!p , 3ueremos con#i)urar el modulo *9@ 3ue esta en el primer puerto( Este
ob;eti-o lo alcan7amos con#i)urando los arc1i-os(
/etc/dahdi/sstem.con!
load&oneMus
de!ault&oneMus
!Ds0sM1 0 Nota si es una tar;eta tdmL!! con un
modulo *9@ le pasamos el par4metro #Cs%sZ" en el
arc1i-o da1dil(con#
/etc/asteris0/chanNdahdi.con!
signallingM!DsN0s
conteDtMentrada
groupM1
channelMO1
eDtensions.con!
HentradaJ 0Creamos el conteCto indicado en el
7apata(con#
eDten MO NE.=1=Dial'dahdi/g1/PGE2G#Q) 0Para las
salidas de la llamadas indicamos creamos esta eCt(
GDten MO ND.=.=:angup
Con!igurando "steris0 PFE
El arc1i-o eCtensions(con# es la parte central de toda la con#i)uraci$n. dado 3ue es donde se de#ine el dialplan de Asteris%( Se compone
de L partes principales< conteCtos. eCtensiones. prioridades , aplicaciones( El dialplan se di-ide en secciones denominadas conteCtos. 3ue
est4n rotuladas , contienen un )rupo de eCtensiones( +os conteCtos se de#inen colocando su nombre entre corc1etes >UV?( Este nombre
puede contener caracteres al#anum/ricos adem4s del )ui$n , el )ui$n ba;o( E;emplo<
HinternoJ
Todas las instrucciones son parte del conteCto 1asta 3ue el pr$Cimo conteCto es de#inido( ECisten dos conteCtos especiales<
HgeneralJ >-ariables prede#inidas?
HglobalsJ >-ariables no prede#inidas?(
Una eCtensi$n es una instrucci$n 3ue ser4 se)uida por Asteris%. lue)o de ser disparada por una llamada entrante o bien por d6)itos
discados en un canal. de#inida en el marco de un conteCto( +a sintaCis de una eCtensi$n es la si)uiente<
exten ,- nombre.prioridad.aplicaci/n0)
E;emplo<
exten ,- %*%.%.answer0)
ECtensions >start?< es una eCtensi$n especial 3ue es utili7ada si una llamada entra a un conteCto sin una eCtensi$n destino espec6#ica >por
e;emplo una llamada en un puerto *9@?0 la llamada trata de entrar autom4ticamente a la eCtensiones(
HinternoJ
exten ,- s.%.answer0)
Una eCtensi$n puede tener -arios pasos. denominados prioridades( +as prioridades comien7an con " , se e;ecutan en orden num/rico( Si
no eCiste la prioridad N [ ". Asteris% no salta a la si)uiente prioridad >N[?( Cada prioridad e;ecuta una Anica aplicaci$n( Por E;emplo<
exten ,- %*%.%.1nswer0)
exten ,- %*%.).2angup0)
Prioridades sin numerar< Asteris% introduce el uso de la prioridad n >neCt?( Cada -e7 3ue Asteris% encuentra una prioridad n. toma el
nAmero de la prioridad anterior , le suma "( Simpli#ica el proceso de escritura del dialplan. e-itando tener 3ue -ol-er a numerar las
prioridades al insertar una prioridad para la misma eCten( Por E;emplo<
exten ,- %*3.%.1nswer0)
exten ,- %*3.n.(ago algo
exten ,- %*3.n.2angup0)
44 5ote como el orden num6rico 0%.).3.etc) es reemplazado por la letra n&
"plicaciones
+as aplicaciones reali7an una acci$n determinada en el canal actual. controlando el comportamiento de la llamada , del sistema en s6(
Al)unos e;emplos<
answer0)7 contesta una llamada&
(angup0)7 cuelga una llamada&
dial0)7 realiza una llamada saliente&
playback0)7 reproduce un arc(ivo de sonido&
Ciertas aplicaciones re3uieren del pasa;e de par4metros. estos se inclu,en dentro de los par/ntesis. separados por X.Y(
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1/
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
"BB"#C"7+9 C+# "92GB59R
7i primer Dialplan.
+ue)o de tanto 1ablar #inalmente comen7amos a ec1arle manos a esto( Crearemos un dialplan simple bas4ndonos en toda la teor6a
anterior 'G9PGBG7+9 L" :"S"# LG5D+) e iremos creando eCtensiones para ir reali7ando los escenarios( +o primero es 3ue
crearemos las eCtensiones SIP "!" , "! para re)istrarnos en asteris% de la si)uiente manera , a)re)amos estas lineas<
-im /etc/asteris0/sip.con!
%*%"
type,$riend ; Indica que puede enviar y recibir llamadas
callerid,cris ; Caller Id
context,extensiones ; Contexto por defecto al que pertenecer
username,%*% ; Usuario
secret,%*% ; Clave que sera utiliada para el softp!one o el !ardp!one
(ost,dynamic T Gl dispositi-o tiene una ip dinmica
%*)"
type,$riend ; Indica que puede enviar y recibir llamadas
callerid,carlos ; Caller Id
context,extensiones ; Contexto por defecto" #elacionado con extensions"conf
username,%*) ; Usuario
secret,%*) ; Clave que sera utiliada para el softp!one o el !ardp!one
(ost,dynamic ; $l dispositivo tiene una ip dinmica
Ga con estos m6nimos datos ,a podemos ir al arc1i-o eCtensions(con# , crear nuestro dialplan(
Hroot(!amil asteris0JK -im /etc/asteris0/eDtensions.con!
HeDtensionesJ
exten ,- %**.%.1nswer0 ) ; Contesta la llamada
exten ,- %**.).8layback0(ello-world) ; %uena el arc!ivo !ello&'orld
exten ,- %**.3.2angup0 ) ; Cuelga la llamada
\\\ Indica 3ue cuando cual3uier usuario re)istrados >"!" o "!? mar3ue la eCtensi$n "!! se iniciara una secuencia de aplicaciones donde
la primera es Ans5er. lue)o escuc1ara una )rabaci$n >1ello-5orld? , #inalmente col)ar4(
7as aplicaciones
Fac0ground: +a aplicaci$n 8ac%)round reproduce una melod6a o mensa;e mientras se espera el marcado de cual3uier tecla( A di#erencia
de pla,bac% esta permite el marcado de teclas mientras 3ue pla,bac% no(
extensiones"
exten ,- %**.%.1nswer0 ) ; contesta la llamada
exten ,- %**.n.Background0enter-ext-o$-person) ; espera d(gitos y pasa a la extensin en el mismo contexto
exten ,- %**.n.2angup0)
\\\ A3u6 lo Anico 3ue 1ace es 3ue cuando marcamos la eCtensi$n "!!( A simple -ista resulta con i)ual #uncionamiento 3ue Pla,bac% pero
,a -er4n 3ue no es as6(
"plicacin Dial: Reali7a una llamada a la eCtensi$n o numero determinado en el campo( Utili7a di#erentes tipos de tecnolo)ia >SIP. IA9.
SAP. etc?( +a sintaCis de Dial es un po3uito mas comple;a 3ue las anteriores pero no menos importantes( Por e;emplo. Para 1abilitar 3ue
las eCtensiones "!" , "! puedan marcarse entre si colocamos lo si)uiente<
extensiones"
exten ,- %*%.%.Dial09:8+%*%.%*) ; )arca a la extensin *+* y espera *+ segundos para pasar a la siguiente prioridad"
exten ,- %*%.n.8layback0vm-nobodyavail)
exten ,- %*%.n.2angup0)
exten ,- %*).%.Dial09:8+%*%.%*) ; )arca a la extensin *+* y espera *+ segundos para pasas a la siguiente prioridad"
exten ,- %*).n.8layback0vm-nobodyavail)
exten ,- %*).n.2angup0)
Cuando la eCtensi$n "!" di)ite la "!. sonar4 en la eCtensi$n "! por un periodo de "! se)undos. si en esos "! se)undos nadie contesta
ira a la pr$Cima prioridad 3ue toca un mensa;e de no disponible , #inalmente cuel)a( Tambi/n dial puede llamar a otro tipo de tecnolo)ia
>IA9.SAP.etc?( Por E;emplo0
exten ,- %*).%.Dial0:1;+%.%*.m)
exten ,- %*).n.8layback0vm-nobodyavail)
exten ,- %*).n.2angup0)
\\\ En este caso la opci$n llamar4 la eCtensi$n "! usando IA9 , mientras suena la opci$n m tocara un mAsica de #ondo(
+tras opciones de Dial'):
2: Permite 3uien llama pueda trans#erir la llamada con W
t: Permite 3ue 3uien contesta pueda trans#erir la llamada con W
r: Genera un rin) tone al 3ue llama , espera a )enerar el canal de audio cuando conteste
w< Permite al 3ue llama )rabar la comunicaci$n con \"
"plicacin Uoto: Gn-3a #lu;o de la llamada a un determinada posici$n del dialplan. establecida por los par4metros de conteCto [
eCtensi$n [ prioridad( Por E;emplo<
exten ,- *++.*./ns'er0 1 ; contesta la llamada
exten ,- *++.n.2ac3ground0enter&ext&of&person1 ; espera d(gitos y pasa a la extensin en el mismo contexto
exten ,- *++.n.4ait$xten0*+1
exten ,- %**.n.<oto0%*%.%) = 9i no dig>ta ninguna extensi/n. va a la extensi/n %*% prioridad %&
exten ,- *++.n.5angup01
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 11
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
exten ,- *+*.*.Dial0%I67*+*.*+1
exten ,- *+*.n.6laybac30vm&nobodyavail1
exten ,- *+*.n.5angup01
exten ,- *+8.*.Dial0%I67*+*.*+1
exten ,- *+8.n.6laybac30vm&nobodyavail1
exten ,- *+8.n.5angup01
+tro G,emplo:
exten ,- *++.*./ns'er0 1 ; contesta la llamada
exten ,- *++.n.2ac3ground0enter&ext&of&person1 ; espera d(gitos y pasa a la extensin en el mismo contexto
exten ,- *++.n.4ait$xten0*+1
exten ,- %**.n.<oto0(astaluego.)**.%) = 9i no dig>ta ninguna extensi/n. va al contexto (asta luego extensi/n )** prioridad %&
exten ,- *++.n.5angup01
Gntradas in-alidas timeouts
Cuando el usuario teclea una entrada in-4lida. la llamada es en-iada a la eCtensi$n i( Cuando el usuario no teclea nin)una opci$n. es
necesario tener una eCtensi$n 3ue nos permita mane;ar esta situaci$n( Por de#ecto. si no se teclea nada despu/s de "! se)undos de 1aberse
terminado de reproducir el arc1i-o la llamada es en-iada a la eCtensi$n t( Si se teclea un d6)ito. espera Q se)undos 1asta el si)uiente. o
numeral >W? para terminar de escribir nAmeros( Un E;emplo<
exten ,- *++.*./ns'er0 1 ; contesta la llamada
exten ,- *++.n.2ac3ground0enter&ext&of&person1 ; espera d(gitos y pasa a la extensin en el mismo contexto
exten ,- *++.n.4ait$xten0*+1
exten ,- *++.n.5angup01
exten ,- *+*.*.Dial0%I67*+*.*+1
exten ,- *+*.n.6laybac30vm&nobodyavail1
exten ,- *+*.n.5angup01
exten ,- *+8.*.Dial0%I67*+*.*+1
exten ,- *+8.n.6laybac30vm&nobodyavail1
exten ,- *+8.n.5angup01
exten ,- i.%.8layback0pbx-invalid) ; %uena un mensa9e que indica extensin invalida
exten ,- i.n.8layback0vm-goodbye) ; :tro mensa9e de adis
exten ,- i.n.2angup0) ; Cuelga la llamada
exten ,- t.%.8layback0vm-goodbye) ; mensa9e de adis
exten ,- t.n.2angup0) ; Cuelga la llamada
En el e;emplo anterior. el usuario marca la eCtensi$n "!! , el conteCto entrada le indica 3ue di)ite le numero de eCtensi$n deseado. si el
usuario di)6ta un nAmero de eCtensi$n di#erente a "!" o "! entonces ira directamente a la eCtensi$n in-alida( Si espera un tiempo sin
1acer nada entonces lo en-i4 a la eCtensi$n t , termina la llamada(
4ariables
En el dialplan de Asteris% eCisten -ariables. 3ue pueden ser modi#icadas por el propio Asteris% en su e;ecuci$n l$)ica o por comandos
eCpresos >aplicaciones? del dialplan( +as -ariables reducen la escritura. a)re)an claridad al dialplan , le aportan l$)ica( +os tipos de
-ariables son<
Ulobales< declaradas en eCtensions(con# >o por comando?(
Canal< asociadas con un canal particular(
Gntorno< -ariables de entorno >UNI9 +i%e?(
4ariables globales
Permite 3ue se pueda 1acer re#erencia a ellas en todos los conteCtos. en todas las eCtensiones. a di#erencia de las -ariables con-encionales
3ue s$lo tienen -alide7 en el canal actual( Es Atil para tener claridad mane;able en el dialplan( Se pueden de#inir en el conteCto U)lobalsV
al inicio de eCtensions(con#<
globals"
C?:9,9ip+%*%
C1?@O9,:ax+%*)
+a sintaCis de una -ariable es<
VP-ariableQ
Asi)naci$n de -ariables<
set'4ariableM-alor)
set'UL+F"L'4ariable)M4alor) T Cambiamos el -alor de una -ariable )lobal
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1.
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
"gregar 4ariables al Dialplan
Asumiendo 3ue las -ariables )lobales #ueron declaradas en el e;emplo anterior podemos simular lo si)uiente<
exten ,- *++.*./ns'er0 1 ; contesta la llamada
exten ,- *++.n.2ac3ground0enter&ext&of&person1 ; espera d(gitos y pasa a la extensin en el mismo contexto
exten ,- *++.n.5angup01
exten ,- %*%.%.Dial0ABC?:9C.%*)= ?e$erencia a la variable C?:9 cuyo valor es 9:8+%*%
exten ,- *+*.n.6laybac30vm&nobodyavail1
exten ,- *+*.n.5angup01
exten ,- %*).%.Dial0ABC1?@O9C.%*) = ?e$erencia a la variable C1?@O9 cuyo valor es 9:8+%*)
exten ,- *+8.n.6laybac30vm&nobodyavail1
exten ,- *+8.n.5angup01
"lgunas -ariables de!inidas automticamente por asteris0
+istado de -ariables m4s importantes<
;<C/LL$#ID=> caller ID actual. nombre y n?mero"
;<C:@A$BA=> contexto actual"
;<$BA$@=> extensin actual"
;<C5/@@$L=> canal actual"
;<DI/L%A/AU%=> estado de la llamada> unavailable. congestion. busy. noans'er. ans'er. cancel. !angup"
;<D/A$AI)$=> !ora actual"
Un comando Atil para -er el contenido es No@p<
#o+p ' VP4"B5"FLGQ ) T Hostrar4 en el C+I el -alor(
4ariable VPGE2G#Q
Permite saber cu4l es la eCtensi$n 3ue #ue marcada( Se utili7a comAnmente para eliminar d6)itos marcados<
VPGE2G#:DQ
Si C es positi-o. 3uita los primeros C d6)itos marcados<
eDten MO NEEE=1=9aDigits'VPGE2G#:1Q)
Si C es ne)ati-o. de-uel-e los Altimos C d6)itos marcados<
eDten MO NEEE=1=9aDigits'VPGE2G#:-1Q)
Patrones
Se utili7an principalmente para llamadas salientes( Comien7an con el si)no _ ( +e dicen a Asteris% 3ue i)uale con un patr$n , no con un
nAmero de eCtensi$n(
E I)uala cual3uier d6)ito de ! a D(
W I)uala cual3uier d6)ito de " a D(
# I)uala cual3uier d6)ito del al D(
H1>-@J I)uala el ran)o de d6)itos especi#icados. en este e;emplo i)uala los nAmeros ".Q.J.E(
. 'punto) I)uala uno o mas caracteres(
eDten MO N#EE=1=Plabac0'auth-than0ou)
Si Asteris% encuentra m4s de " patr$n para una eCtensi$n marcada. se usa la m4s espec6#ica<
eCten Z] _QQQ9999.".Pla,bac%>di)its:"?
eDten MO N>>>1.EE=1=Plabac0'digits/1)
5ncludes
Asteris% posee una caracter6stica para usar las eCtensiones de un conteCto sin pertenecer a este( Esto es utili7ado para controlar el acceso a
di#erentes secciones del dialplan( Por e;emplo. podr6amos 1abilitar otro conteCto llamado eCtensiones con los usuarios "!' , "!L.
naturalmente los usuarios pertenecientes al conteCto eCtensiones no podr4n acceder ni llamar a los usuarios del conteCto eCtensiones.
A3u6 es donde entra include( Por E;emplo<
CextensionesD
include ,- extensiones)
exten ,- *+*.*.Dial0%I67*+*.*+1
exten ,- *+*.n.6laybac30vm&nobodyavail1
exten ,- *+*.n.5angup01
exten ,- *+8.*.Dial0%I67*+*.*+1
exten ,- *+8.n.6laybac30vm&nobodyavail1
exten ,- *+8.n.5angup01
Cextensiones8D
include ,- extensiones)
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 16
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
exten ,- *+E.*.Dial0%I67*+E.*+1
exten ,- *+E.n.6laybac30vm&nobodyavail1
exten ,- *+E.n.5angup01
exten ,- *+F.*.Dial0%I67*+F.*+1
exten ,- *+F.n.6laybac30vm&nobodyavail1
exten ,- *+F.n.5angup01
5ota7 Con estos includes ya ambos contextos podrDn comunicarse sin problemas&
7anipulacin de eDpresiones -ariables
+as eCpresiones son una combinaci$n de -ariables. operadores , -alores 3ue arro;an un resultado( El SintaCis es<
VHeDpr1 operador eDpr.J
@peradores l$)icos< ^>or? . _>AND?
@peradores de comparaci$n< Z. `Z. a. ]. aZ. ]Z
@peradores aritm/ticos< [. -. \. :. b U(((V . E;emplo<
exten ,- F++E.*.%et0C:U@A,E1
exten ,- F++E.8.%et0@$4C:U@A,;C;<C:U@A= G *D1
exten ,- E**3.3.9ay5umber0AB5FGCOH5IC)
Fi!urcacin condicional
Permite tomar decisiones dentro del dialplan(
"plicacin Uoto5!')
GotoI#>eCpresion"Pdestino"<destino?
Si la eCpresi$n e-aluada es -erdadera. la llamada es en-iada a destino". de lo contrario es en-iada a destino( Una cadena -ac6a , el
nAmero ! son e-aluados como #also. cual3uier otro -alor es -erdadero( Cual3uiera de los destinos puede ser omitido. pero debe estar
al)uno de los ( Si el destino omitido es el camino 3ue debe se)uir la llamada. el #lu;o 3ue se si)ue es la si)uiente prioridad dentro de la
eCtensi$n actual(
G,emplo Uoto5!
CextensionesD
exten ,- *+H.*.%et0A$%A,*1
exten ,- %*J.).<oto:$0AABIF9IC , %"K%*.3)
exten ,- *+H.E.6laybac30'easels&eaten&p!onesys1
exten ,- *+H.F.6laybac30office&iguanas1
exten ,- *+H.H.%et0C:U@A,*+1
exten ,- %*J.'.<oto:$0AABCOH5IC - * "K7%*)
exten ,- *+H.I.%ay@umber0;<C:U@A=1
exten ,- *+H.J.%et0C:U@A,;<C:U@A= & *1
exten ,- *+H.K.Loto081
exten ,- *+H.*+.5angup01
exten ,- %*J.%%.<oto:$0AABC1@@F?:D5HLC , M*9EN'NNJM"K%)7%*)
exten ,- *+H.*8.Dial0%I67*+81
exten ,- *+H.*E.6laybac30abandon&all&!ope1
exten ,- *+H.*F.5angup01
Fi!urcacin condicional basada en tiempo
&eri#ica la 1ora actual del ser-idor. permitiendo tomar decisiones basadas en tiempo( Se utili7a cuando se 3uiere dar una bien-enida
di#erente en 1orarios de traba;o , #uera de traba;o( Uoto5!2ime'hora=diasNdeNsemana=diasNdelNmes=mesesXeti?ueta) En-6a la llamada
a eti3ueta si la #ec1a , 1ora actual concuerdan con el criterio especi#icado por los par4metros(
:ora +ista de uno o m4s ran)os de 1orario en #ormato de L 1oras( !D<!!-"E<!!
DiasNdeNsemana +ista de uno o m4s d6as de la semana lunes. martes. etc >mon. tues?
DiasNdelNmes D6a num/rico del mes E-"."Q
7eses +ista de uno o m4s meses del a2o un. apr. ;ul
Y I)uala cual3uier -alor
Eti3ueta puede ser una prioridad dentro de una misma eCtensi$n. una prioridad , eCtensi$n dentro del mismo conteCto o un conteCto.
eCtensi$n , prioridad( E;emplo<
inicio"
exten ,- ))).%.<oto:$Iime0*'7**-%N7J9).mon-$ri.4.4Kentrada.s.%)
exten ,- ))).n.<oto0a$ter(ours.s.%)
El e;emplo anterior indica 3ue cuando se mar3ue la eCtensi$n . si el usuario marca entre las Jam , Q<QDpm de lunes a -iernes ira al
conteCto entrada. prioridad "( De lo contrario ira al conteCto a#ter1ours. prioridad "(
Con!igurando :ardware 2ele!nico
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1<
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
En este tema con#i)uraremos una tar;eta *9@ Di)ium TDH!L8 para conectar asteris% a una linea an4lo)a. es decir. 1abilitaremos la linea
para cuando al)uien llame al M!DLEJEEQM asteris% responda de acuerdo al dialplan 3ue 1a,amos de#inido( Para esto. 1emos instalado
pre-iamente los pa3uetes de da1di( A1ora procederemos a su con#i)uraci$n(
El arc1i-o /etc/dahdi/sstem.con! es donde con#i)uras los par4metros de la tar;eta. en nuestro caso la TDH!L8( Es le6do por el pro)rama
dahdiNc!g. Estos arc1i-os son instalados por el pa3uete da1di-linuC(
Hroot(blac0angel IJK -im /etc/dahdi/dahdi.con!
!Ds0sM1-< 0 Se especi#ica la cantidad de puertos 3ue tendr4 su tar;eta( En nuestro caso posee L(
load&one M us 0 si)ni#ica 3ue sus tar;etas de inter#a7 ser4n car)adas con tonos de la indicaci$n de USA
de!ault&one M us 0 los medios utili7an los tonos para esta 7ona por de#ecto >cuando no se especi#ica nin)una otra 7ona(

Con!igurando chanNdahdi.con!
En este arc1i-o se con#i)uran los par4metros a utili7ar por los canales para asteris%( Cuando al)uien llame al numero M!DLEJEEQM asteris%
leer4 este arc1i-o de con#i)uraci$n , aplicara todos los par4metros establecidos en el( A3ui un e;emplo<
Hroot(blac0angel IJK -im /etc/asteris0/chanNdahdi.con!
Cc!annelsD
language,en
usecallerid,yes ; :denti$icara el numero de Ouien llama
!idecallerid,no ;
call'aiting,yes ; 2abilitado. asterisk generara tonos cuando tengas una conversaci/n y alguien mas este tratando de llamar
call'aitingcallerid,yes ; 1sterisk enviara el callerid de Ouien espera&
t!ree'aycalling,yes ; 9i esta (abilitada. puedes colocar llamadas en (old&
ec!ocancel,yes ; 2abilita ec(o cancellation o cancelaci/n de eco
ec!ocancel'!enbridged,yes
rxgain,+"+
txgain,+"+
group,*
callgroup,*
pic3upgroup,*
immediate,no ; Fste parDmetro acelera el marcado y por de$ecto manda las llamadas entrantes a la extensi/n s
busydetect,no
callprogress,no
musicon!old,default
context,entrada ; Iodas las llamadas Oue lleguen por las lineas P18 irDn al contexto entrada&
signalling, fxsM3s ; Iipo de seQalizaci/n
c!annel ,- *&F ; Canales a utilizar
Para -isuali7ar si el m$dulo de la tar;eta *9@ esta insertado en el Kernel<
Hroot(blac0angel IJK lsmod Zgrep -i wctdm
Use los si)uientes comandos para -er si el canal a sido con#i)urando<
Hroot(blac0angel IJK dahdiNc!g ---
Hroot(blac0angel IJK dahdiNscan
Hroot(blac0angel IJK dahdiNtool

Para administrar el ser-icio de da1di e;ecute uno de los si)uientes comandos<
Hroot(blac0angel IJK ser-ice dahdi start
Hroot(blac0angel IJK para detenerlo
Hroot(blac0angel IJK ser-ice dahdi stop
Podemos a)re)ar un conteCto de prueba en el eCtensions(con# para con#irmar 3ue nuestra linea an4lo)a esta con#i)urada . solo deber4
a)re)ar las si)uientes lineas en eCtensions(con#<
HentradaJ
eDten MO s=1="nswer')
eDten MO s=n=Plabac0'demo-congrats)
eDten MO s=n=:angup')
Estas ' lineas Indican 3ue cuando al)uien llame al M!DLEJEEQM asteris% entrara al conteCto entrada , se escuc1ara una )rabaci$n demo-
congrats , lue)o col)ar4( Si puede escuc1ar esto entonces se 1a con#i)urado la tar;eta eCitosamente(
:abilitando llamadas salientes a tra-[s del canal D":D5
Si 3ueremos 1abilitar llamadas por la linea an4lo)a. lo 1acemos #4cilmente. solo a)re)amos un conteCto con patrones de salida , lo
1abilitaremos en nuestro conteCto UeCtensionesV. es como si)ue<
Declaramos en la de#inici$n de -ariables. el canal DAFDI<
TRUNKDESA+IDAZDa1di:"
HeDtensionesJ
include MO llamadas-locales
eDten MO 1/1=1=Dial'95P/1/1=1/)
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1>
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
eDten MO 1/1=n=Plabac0'-m-noboda-ail)
eDten MO 1/1=n=:angup')
eDten MO 1/.=1=Dial'95P/1/1=1/)
eDten MO 1/.=n=Plabac0'-m-noboda-ail)
eDten MO 1/.=n=:angup')
Hllamadas-localesJ
eDten MO NL#EEEEEE=1=Dial'VP2BC#RDG9"L5D"Q/VPGE2G#Q:1)
eDten MO NL#EEEEEE=.=Congestion')
eDten MO NL#EEEEEE=1/.=Congestion')
As6 cuando la eCtensi$n "!" o "! mar3uen el D [ un tel/#ono. se 1abilitara el tono en la linea an4lo)a , podr4 reali7ar llamadas(
5nteracti-e 4oice Besponse
54B son las si)las de 5nteracti-e 4oice Besponse. 3ue se traduce del in)l/s como #espuesta de No Interactiva( Tambi/n se utili7a el
t/rmino 4BC >Noice #esponse Unit?( Consiste en un sistema tele#$nico 3ue es capa7 de recibir una llamada e interactuar con el 1umano a
tra-/s de )rabaciones de -o7( Es un sistema de respuesta interacti-a. orientado a entre)ar ,:o capturar in#ormaci$n automati7ada a tra-/s
del tel/#ono permitiendo el acceso a los ser-icios de in#ormaci$n , operaciones autori7adas. las L 1oras del d6a(
El I&R es la t6pica m43uina 3ue nos responde con una -o7 )rabada cuando llamamos a una central o 3ue nos recibe en la banca
tele#$nica( Se)An las opciones 3ue el usuario le in)resa lo deri-a a un centro de atenci$n tele#$nica o a otra central tele#$nica(
+as empresas suelen usar la tecnolo)6a de I&R para enrutar una llamada entrante 1ac6a un departamento u otro. sin la necesidad de
inter-enci$n 1umana. as6 reduciendo el tiempo de espera de sus clientes( En los centros de atenci$n tele#$nico al cliente. se usan los I&RTs
para )uiar el llamante 1acia los a)entes con ma,or conocimiento de una materia especi#ica. reduciendo as6 el tiempo de la llamada ,
e-itando la necesidad de 1acer trans#erencias entre a)entes(
El usuario reali7a una llamada a un nAmero de tel/#ono. el sistema de audio respuesta contesta la llamada , le presenta al usuario una
serie de acciones a reali7ar. esto se 1ace mediante mensa;es >menAs de opciones? pre-iamente )rabados en #ic1eros de audio >Por e;emplo
BPulse uno para -entas. dos para administraci$nB?( El usuario eli)e la opci$n a reali7ar introduciendo un nAmero en el teclado del tel/#ono
, na-e)a por los di#erentes menAs 1asta encontrar la in#ormaci$n solicitada o 3ue el sistema enruta la llamada al destinatario ele)ido(
Para la con#i)uraci$n de su I&R usted necesitara primero )rabar al)unos mensa;es( Para ello deber4 utili7ar cual3uier )rabador de
sonidos de acuerdo a la comple;idad de su I&R( Inicialmente iremos #abricando un I&R sencillo , a tra-/s de toda la clase se ira
colocando mas comple;o con la idea de tener al #inal de los temas un completo sistema de I&R( Utili7aremos muc1os de los conceptos
aprendidos pre-iamente as6 como las -ariables de asteris% , estaremos ;untando T@D@S( A3u6 un E;emplo "<
HentradaJ
include MO eDtensiones
eDten MO ...=1="nswer')
eDten MO ...=n=Fac0ground'demo-echodone)
eDten MO ...=n=\aitGDten'>)
eDten MO ...=n=Plabac0'-m-goodbe)
eDten MO ...=n=:angup')
HeDtensionesJ
include MO entrada
eDten MO 1/1=1=Dial'95P/1/1=./)
eDten MO 1/1=n=:angup')
eDten MO 1/.=1=Dial'95P/1/.=./)
eDten MO 1/.=n=:angup')
Cuando la llamada entra a la eCtensi$n responde nuestro I&R con un mensa;e de 8ien-enida e indicando 3ue mar3ue la eCtensi$n
deseada. espera Q se)undos para 3ue el cliente mar3ue la eCtensi$n deseada para trans#erirlo( Si el cliente no di)ite nada la llamada es
terminada(
"gregando las eDtensiones i t
A)re)aremos las eCtensiones i a nuestro dialplan , un Goto para 3ue el cliente re)rese al inicio en caso di)itar una eCtensi$n in-alida(
HentradaJ
include MO eDtensiones
eDten MO ...=1="nswer')
eDten MO ...=n=Fac0ground'demo-echodone)
eDten MO ...=n=\aitGDten'>)
eDten MO ...=n=Plabac0'-m-goodbe)
eDten MO ...=n=:angup')
eDten MO i=1=Plabac0'pbD-in-alid)
eDten MO i=n=Uoto'entrada=...=1)
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 11
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
HeDtensionesJ
include MO entrada
eDten MO 1/1=1=Dial'95P/1/1=./)
eDten MO 1/1=n=:angup')
eDten MO 1/.=1=Dial'95P/1/.=./)
eDten MO 1/.=n=:angup')
Cuando el cliente di)ite una eCtensi$n in-alida escuc1ara un mensa;e de in-alido , -ol-er4 al menA principal(
"gregando un Contador Uoto5! a nuestro 54B.
En el conteCto i. crearemos un contador 3ue calculara un numero m4Cimo de ' eCtensiones in-alidas para lue)o terminar la llamada( A3u6
tambi/n empleamos la aplicaci$n Uoto5! condicionara el conteCto para decidir a donde ir( Es como si)ue<
HentradaJ
include MO eDtensiones
eDten MO ...=1=9et'C+C#2M1)
eDten MO ...=1=Uoto5!'VHVPC+C#2Q O 6JX!in:inicio)
eDten MO ...=n'inicio)="nswer')
eDten MO ...=n=Fac0ground'demo-echodone)
eDten MO ...=n=\aitGDten'>)
eDten MO ...=n=Uoto'i=1)
eDten MO ...=n'!in)=Plabac0'-m-goodbe)
eDten MO ...=n=:angup')
eDten MO i=1=Plabac0'pbD-in-alid)
eDten MO i=n=9et'C+C#2MVHVPC+C#2QJ ] 1J)
eDten MO i=n=Uoto'entrada=...=.)
HeDtensionesJ
include MO entrada
eDten MO 1/1=1=Dial'95P/1/1=./)
eDten MO 1/1=n=:angup')
eDten MO 1/.=1=Dial'95P/1/.=./)
eDten MO 1/.=n=:angup')
En el e;emplo anterior. a)re)amos tambi/n eti3uetas al conteCto para indicar donde ira el Gotoi# cuando se cumpla una condici$n
determinada( *6;ense como 1acemos un Goto 1acia el conteCto entrada=...=.. esto es por3ue si la en-iamos al " la -ariable cC@UNT se
mantendr4 reiniciada , nunca el contador sumar4(
"gregando Uoto5!2ime
Si 3ueremos establecer un 1orario en el 3ue el cliente podr4 comunicarse con nuestros representantes utili7amos la aplicaci$n
GotoI#Time( Con esta lo 3ue 1aremos es un conteCto dentro de un 1orario especi#ico o de lo contrario 3ue e;ecute otro conteCto 3ue dir4
3ue no estan laborando( Es como si)ue<
HinicioJ
eDten MO ...=1=Uoto5!2ime'/L://-1@:>L)=mon-!ri=Y=YXentrada=s=1)
eDten MO ...=n=Uoto'a!terhours=s=1)
HentradaJ
include MO eDtensiones
eDten MO s=1=9et'C+C#2M1)
eDten MO s=n=Uoto5!'VHVPC+C#2Q O 6JX!in:inicio)
eDten MO s=n'inicio)="nswer')
eDten MO s=n=Fac0ground'demo-echodone)
eDten MO s=n=\aitGDten'>)
eDten MO s=n=Uoto'i=1)
eDten MO s=n'!in)=Plabac0'-m-goodbe)
eDten MO s=n=:angup')
eDten MO i=1=Plabac0'pbD-in-alid)
eDten MO i=n=9et'C+C#2MVHVPC+C#2QJ ] 1J)
eDten MO i=n=9a#umber'VPC+C#2Q)
eDten MO i=n=Uoto'entrada=s=.)
HeDtensionesJ
include MO inicio
include MO entrada
eDten MO 1/1=1=Dial'95P/1/1=./)
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1@
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
eDten MO 1/1=n=:angup')
eDten MO 1/.=1=Dial'95P/1/.=./)
eDten MO 1/.=n=:angup')
Ha!terhoursJ
eDten MO s=1=Plabac0'hours)
eDten MO s=n=:angup')
En este e;emplo cambia totalmente nuestro I&R( A)re)amos un conteCto inicio donde las llamadas marcadas al entraran en este
conteCto , encontraran la condici$n Uoto5!2ime'/L://-1@:>L)=mon-!ri=Y=YXentrada=s=1) . Indica 3ue de lunes a -iernes en 1orario
!D<!!-"E<QD de cual3uier d6a , cual3uier mes se en-iara al conteCto entrada prioridad "( Si la condici$n no esta cumplida se e;ecutara la
si)uiente prioridad 3ue en este caso es Uoto'a!terhours=s=1) donde se e;ecutara un mensa;e diciendo 3ue la empresa labora en 1orario de
lunes a -iernes de Dam a Jpm(
YYYY Con esto tenemos un 54B bastante !leDible para tratar los clientes YYYYY
4oicemail
Una de las caracter6sticas mas populares en la tele#on6a moderna es la capacidad de de;ar mensa;es de -o7 para ser reco)idos mas tarde en
caso de 3ue el usuario a 3uien se llama no este disponible(
Naturalmente. asteris% posee un -oicemail bastante #leCible con las si)uientes caracter6sticas<
Ilimitada protecci$n de pass5ords(
Di#erentes saludos para los distintos tipos de estado>8us,.Noans5er.Una-ailable.etc?
Saludos por de#ecto , tambi/n personali7ados
Noti#icaci$n por correo , con la opci$n de ad;untar el mensa;e de -o7 en el mismo(
Indicador de 3ue tiene un mensa;e de -o7( Aplicado para distintos tipos de tel/#onos IP(
Directorio de la compa26a basado en los bu7ones de -o7
+a con#i)uraci$n del -oicemail es mu, #acial. a continuaci$n paso a paso de una manera mu, descripti-a como crear el bu7$n de -o7 ,
sus distintas opciones<
Para la con#i)uraci$n b4sica del -oicemail se -er4n a#ectados los arc1i-os de con#i)uraci$n -oicemail(con#. sip(con# , eCtensions(con#
Primero declaramos el conteCto al #inal del arc1i-o -oicemail.con! 3ue contendr4 los bu7ones de -o7 correspondientes a las eCtensiones
"!" , "!( +a sintaCis es<
Hbu&onJ
1/1 MO 1.6<=Cristhian=cristhian(codigolibre.org
1/. MO >1@A=Carlos=ccastro(codigolibre.org
Donde
"!" Z Es el numero o eCtensi$n al cual se le asi)nara el bu7$n
"'L Z Es la cla-e 3ue sera usada para acceder al bu7$n de -o7
Crist1ian Z Nombre asociado al bu7$n
crist1ian=codi)olibre(or) Z Correo donde recibir4 las noti#icaciones
Editamos el arc1i-o sip.con! donde le diremos a las eCtensiones "!" , "! cuales seran sus bu7ones( Ruedara de la si)uiente manera<
U"!"V
t,peZ#riend 0 *riends puede colocar , recibir llamadas
calleridZcris
conteCtZeCtensiones
usernameZ"!"
secretZ"!"
1ostZd,namic 0 Esta re)istrada con nosotros
mailboDM1/1(bu&on
U"!V
t,peZ#riend 0 *riends puede colocar , recibir llamadas
calleridZcarlos
conteCtZeCtensiones
usernameZ"!
secretZ"!
1ostZd,namic 0 Esta re)istrada con nosotros
mailboDM1/.(bu&on
5otese como se le asigna a cada usuario un numero de buzon en el contexto buz/n&
Con#i)uramos la aplicaci$n &oicemail en el dialplan correspondiente a los usuarios( De i)ual modo. tambi/n 1abilitamos la eCtensi$n
para llamar el bu7$n de -o7 el cual sera en nuestro caso la eCtensi$n MMM( El conteCto eCtensiones 3uedar6a as6 en eCtensions(con#<
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1A
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
UeCtensionesV
include Z] inicio
include Z] entrada
eCten Z] "!".".Dial>SIP:"!".!?
eDten MO 1/1=n=4oice7ail'1/1(bu&on)
eCten Z] "!".n.Pla,bac%>-m-)oodb,e?
eCten Z] "!".n.Fan)up>?
eCten Z] "!.".Dial>SIP:"!.!?
eDten MO 1/1=n=4oice7ail'1/.(bu&on)
eCten Z] "!".n.Pla,bac%>-m-)oodb,e?
eCten Z] "!.n.Fan)up>?
0&oicemail
eDten MO AAA=1=4oice7ail7ain'(bu&on)
+as +ineas en ne)ritas 1abilitan el bu7$n de -o7 para los usuarios "!" , "! , la eCtensi$n MMM 1abilita la aplicaci$n &oiceHailHain la
cual es la administraci$n del bu7$n de -o7(
+a opci$n >=bu7on? muestra la inter#a7 de administraci$n para el conteCto bu7$n creado en el arc1i-o -oicemail(con#( Esto indica 3ue
cuando el usuario llame la eCtensi$n MMM se le solicitara un numero de bu7$n , una cla-e para poder acceder( Ga dentro del bu7$n tendr4
-arias opciones para administrar sus mensa;es( +os mensa;es se )raban en el directorio :-ar:spool:asteris%:-oicemail:( Este es el menA
mostrado al usuario para la administraci$n de sus mensa;es a tra-/s de la aplicaci$n &oiceHailAdmin<
" Hensa;es +e6dos
' @pciones A-an7adas
" Responder
De-ol-er la llamada
' Sobre
L +lamada Saliente
Q De;ar un mensa;e
\ Re)resar al menA principal
L Escuc1ar mensa;es anteriores
Q Repetir mensa;e actual
J Tocar el pr$Cimo mensa;e
E 8orrar el actual mensa;e
M Reen-iar el mensa;e a otro bu7$n de -o7
D Guardar el mensa;e en un #older
\ A,uda
W Salir
Cambiar #older
' @pciones a-an7adas
! @pciones del bu7$n
" Grabar mensa;e de no disponible
Grabar mensa;e cuando el status sea ocupado
' Grabar su nombre
L Cambiar su pass5ord
\ Re)resar al menA principal
\ A,uda
W Salir
A1ora estamos listos para recibir mensa;es de -o7 , poder escuc1arlos a tra-/s del -oicemailadmin(
Gditando las opciones del archi-o -oicemail.con!
Podemos editar al)unas opciones en el arc1i-o -oicemail(con#. al)unas son< en-iar noti#icaci$n por correo. ad;untar el arc1i-o de
)rabaci$n en el correo. establecer un numero m4Cimo de mensa;es por bu7$n. establecer un tiempo m4Cimo o m6nimo de )rabaci$n de
mensa;es. establecer un cuerpo del mensa;e a en-iar. etc(
ser-eremailZasteris%=#cld(local <Indica el usuario 3ue en-i4 el mensa;e(
attachZ,es < Establecido a ,es el usuario recibir4 -6a el mensa;e )rabado
maDmsgZ"!! < H4Cimo numero de mensa;es 3ue se le permitir4 al due2o del bu7$n(
maDmessageZ"M! < Tiempo m4Cimo permitida para la )rabaci$n del mensa;e(
maDsilenceZ"! < El ser-idor espera "! se)undos de silencio antes de terminar la llamada(
maDloginsZ' < Numero m4Cimo de intentos #allidos(
emailsub,ectZUP89V< Hensa;e Nue-o cd&H_HSGNUHe en el bu7$n de -o7 cd&H_HAI+8@9e < Corresponde al asunto 3ue sera
mostrado cuando le lle)ue un correo al usuario( Note como se utili7an -ariables de mailboC. mas adelante 1ablaremos de ellas(
emailbod Z < Indica el cuerpo del mensa;e 3ue recibir4 el usuario al ser noti#icado(
emaildate!ormatZbA. b8 bd. bG at br < *ormato de *ec1a donde<
bA Z D6a de la semana b8 Z Hes bd Z D6a bG Z A2o br Z 1ora
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 1L
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
YYY Sa con estos pasos tenemos bu&n de -o& habilitado en nuestro asteris0 YYY
^ueues 'colas)
+as colas son utili7adas por los sistemas PSTN para mantener las solicitudes de sus clientes 1asta 3ue al)An recurso este disponible(
Si)ni#ica 3ue todo el tra#ico entrante 3ue eCceda la capacidad disponible se colocaran en linea 1asta 3ue puedan ser atendidos(
+as colas b4sicamente consisten en<
+lamadas entrantes son colocadas en la cola
Hiembros 3ue responden la cola >ECtensiones o usuarios 3ue se in)resan al sistema como a)entes?
Una estrate)ia de como mane;ar las colas , di-idir las llamadas entre los miembros
HAsica mientras esperan en cola
Anuncios para miembros , clientes
ECisten dos maneras de crear colas en asteris%<
Est4tica< donde no necesitas utili7ar el arc1i-o a)ents(con#
Esta con#i)uraci$n. se especi#icara cuales ser4n los usuarios 3ue responder4n las llamadas correspondiente a una cola
especi#ica( Por E;emplo. los usuarios SIP:"!". SIP:"! , SIP:"!' seran los responsables de responder a la cola UmicolaV(
&enta;as< No necesitas utili7ar las aplicaciones A)ent+o)in , A)ent8ac%lo)in para 3ue los usuarios se e#ectu/n lo)in( El
usuario se re)istrara autom4ticamente en esta cola cuando in)rese(
Din4mica< Utili7aci$n de a)ents(con#
A di#erencia de la est4tica. a3u6 debemos escribir no el numero del usuario pero si el numero del a)ente 3ue esta re)istrado
en el arc1i-o a)ents(con#( Por e;emplo. member Z] A)ent:"!!". member Z] A)ent:"!!. member Z] A)ent:"!!'. indica
3ue los a)entes "!!"."!! , "!!' pertenecer4n a esa cola( Si se decide utili7ar este m/todo entonces las aplicaciones
A)entlo)in , A)entCallbac%lo)in(
&enta;as< +a -enta;a principal es 3ue el usuario podr6a 1acer lo)in desde cual3uier terminal o eCtensi$n con solo di)itar su
usuario , cla-e en la aplicaci$n Asteris%lo)in(

+pciones de ^ueues.con!:
strateg: Determina como en cual orden las llamadas entraran a los a)entes( +as opciones son<
ringall: +a llamada entra en todos los a)entes , cual3uiera podr4 responder
roundrobin: +a llamada entra en cada a)ente disponible
leastrecent: +a llamada entra al a)ente con mas tiempo sin contestar
!ewestcalls: +a llamada entra al a)ente con menos tiempo sin contestar
random: Selecciona al a)ente de manera aleatoria sin nin)An par4metro
rrmemor: round robin con memoria( Inicia la serie en a3uel ultimo 3ue contesto
periodic-announce< Reali7a mensa;es peri$dicos >E;emplo< su llamada es importante para nosotros (((?
periodic-announce-!re?uenc: Establece con 3ue #recuencia anuncia los mensa;es
,oinempt: Esta opci$n controla si las llamadas entrantes pueden entrar a una cola sin miembros( +as opciones disponibles son<
es: +lamadas entrantes pueden in)resar a una cola sin miembros o estos no disponibles(
#o: +lamadas entrantes no pueden in)resar a una cola sin miembros
strict: +lamadas entrantes no pueden in)resar a una cola sin miembros o estos no disponibles(
7usic: Establece la mAsica para la espera
timeout: Cuanto tiempo se le permite al tel/#ono de un a)ente sonar antes de considerarse timeout
retr: El tiempo a esperar antes de intentar con los a)entes nue-amente
maDlen: NAmero m4Cimo de llamadas entrantes permitidas en una cola( ! es ilimitado
"hora lle-aremos esto a la practica
Creando Colas Gstticas
Para la creaci$n de colas est4ticas se editan los arc1i-os 3ueues(con# , eCtensions(con#(
^ueues.con!
Se a)re)ar4 un conteCto con el nombre UmicolaV con los si)uientes par4metros
HmicolaJ
conteDtMeDtensiones
periodic-announce M !cld-agents-bus
periodic-announce-!re?uenc M 1/
,oinempt M strict
musicMde!ault
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org ./
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
strategMrrmemor
timeoutM1>
retrM.
maDlen M /
member MO 95P/1/1 T Gspeci!icamos estticamente cuales sern las eDtensiones registradas en esta cola.
member MO 95P/1/.
member MO 95P/1/6
+ue)o nos diri)imos a eCtensions(con# para 1abilitar la cola:
eDten MO LLL=1="nswer')
eDten MO LLL=n=Binging
eDten MO LLL=n=\ait'.)
eDten MO LLL=n=^ueue'micola)
eDten MO LLL=n=:angCp
As6 cuando un usuario llame a la DDD suena , lo coloca en la cola UmicolaV( Hientras esta a la espera de ser atendido estar4 por uno de los
a)entes re)istrados en esa cola , escuc1ando la mAsica por de#ecto establecida as6 como los anuncios peri$dicos(
Creando Colas Dinmicas
+a Anica di#erencia en este tema es la inclusi$n del arc1i-o a)ents(con#( En este se crean los a)entes 3ue mas adelante ser4n de#inidos en
3ueues(con#( As6 3ue en a)ents(con# a)re)amos los si)uientes a)entes<
agent MO 1//1=1.6<=Cristhian #une&
agent MO 1//.=1.6<=Carlos Castro
agent MO 1//6=1.6<=*ophiel Gspaillat
, a)re)amos en eCtensions(con# una eCtensi$n con la aplicaci$n A)entlo)in para 3ue puedan re)istrarse los a)entes:
T"gent Login
eDten MO AAA=1="gentCallbac0login'ZZVPC"LLGB5D#C7Q(eDtensiones)
T"gent Logout
eDten MO AAL=1="gentCallbac0login'ZZl)
Cuando el a)ente di)ite MMM. la aplicaci$n le pre)untara por un usuario >"!!"? , una cla-e >"'L? , la eCtensi$n donde recibir4 las
llamadas( +ue)o de esto todas las llamadas ser4n enrutadas 1acia la eCtensi$n especi#icada por el a)ente(
Cuando el a)ente di)ite MMD se le pre)untara nue-amente por un usuario. cla-e , eCtensi$n( El a)ente puede entrar una nue-a eCtensi$n
para 3ue las llamadas sean enrutadas 1acia esta ultima(
"steris0 Command-Line 5nter!ace
Para acceder a asteris% command-line inter#ace>C+I? desde al s1ell e;ecute el comando asteris% pas4ndole las si)uiente opciones -r 3ue
pro-ee una coneCi$n a la consola de asteris% si el proceso de asteris% ,a esta corriendo te pro-ee una inter#a7 para controlar la consola de
asteris%(
Uroot=blac%an)el fVW asteris% -r--
C+I]
444 la opci/n -v proporciona mas in$ormaci/n de asterisk entre mas v agregamos mas in$ormaci/n nos mostrara&
R Fs para poder eSecutar comandos de el s(ell sobre el C@: de asterisk&
C+I] `i#con#i) et1!
dialplan add eDtension contiene subcomandos 3ue le permite a)re)ar al)unas #uncionalidades a tu P89 sin editar directamente los arc1i-os de con#i)uraci$n(
C+I] dialplan add eCtension "".".Dial.SIP:"":^!^Tt into p1one
dialplan show muestra el dialplan para un conteCto en especi#ico(
C+I] dialplan s1o5 p1one
dialplan add include inclu,e un conteCto en otro conteCto(
C+I] dialplan add include salida into entrada
dialplan reload recar)a solo el arc1i-o eCtensions(con#(
C+I] dialplan reload
dialplan remo-e eDtension remue-e una eCtensi$n(
C+I] dialplan remo-e eCtension "!"=p1one
core abort shutdown Cancela un s1utdo5n corriendo
C+I] core abort s1utdo5n
agent logo!! con#i)ura una a)ente o##line
C+I] a)ent lo)o## sip:""
agent show muestra los a)entes con#i)urados(
C+I] a)ent s1o5
agent show online muestra los a)entes online
C+I] a)ent s1o5 online
cdr ms?l status muestra el status de la coneCi$n de cdr_m,s3l
C+I] cdr m,s3l status
cdr status muestra el status de los CDR(
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .1
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
C+I] cdr status
console acti-e con#i)ura el displa, en la console acti-a
C+I] console s1o5 acti-e
console answer responde a una entrada de una llama en la console(
C+I] console ans5er
core show applications muestra las aplicaciones re)istradas para el dialplan(
C+I] core s1o5 applications
core show application muestra una descripci$n de la aplicaci$n(
C+I] core s1o5 application dial
core show channels muestra la in#ormaci$n en los canales(
C+I] core s1o5 c1annels
core show channeltpes muestra la in#ormaci$n de tipo de canal(
core show codecs muestra las lista de todos los codecs(
C+I] core s1o5 codecs
core show codec muestra un codec en especi#ico(
C+I] core s1o5 codec
!eatures show muestra los #eatures con#i)urados(
C+I] #eatures s1o5
http show status muestra el status del ser-er FTTP
C+I] 1ttp s1o5 status
iaD. reload recar)a la con#i)uraci$n del iaC #ile(
C+I] iaC reload
iaD. set debug 1abilita el debu) para iaC(
C+I] iaC set debu)
iaD. set debug o!! des1abilita el debu) para iaC(
C+I] iaC set debu) o##
iaD set debug ,b 1abilita el debu) para el ;itterbu##er
C+I] iaC set debu) ;b
iaD. set debug ,b o!! des1abilita el debu) para el ;itterbu##er(
C+I] iaC set debu) ;b o##
iaD. set debug trun0 1abilita el debu) para el troncal(
C+I] iaC set debu) trun%
iaD. set debug trun0 o!! des1abilita el debu) para el troncal(
C+I] iaC set debu) trun% o##
iaD. show cache muestra el cac1e del dialplan(
C+I] iaC s1o5 cac1e
iaD. show channels muestra todos los canales acti-os(
C+I] iaC s1o5 c1annels
iaD. show !irmware muestra el #irm5are disponible(
C+I] iaC s1o5 #irm5are
iaD. show netstats muestra los canales acti-os de iaC netstats(
C+I] iaC s1o5 netstats
iaD. show peers muestra todos los peers de#inidos en iaC(con#(
C+I] iaC s1o5 peers
iaD. show peer muestra un peer en especi#ico(
C+I] iaC s1o5 peer blac%an)el
iaD. show pro-isioning muestra iaC pro-isionin)
C+I] iaC s1o5 pro-isionin)
iaD. show registr muestra el status de los re)istros(
C+I] iaC s1o5 re)istr,
iaD. show stats muestra las estadisticas(
C+I] iaC s1o5 stats
iaD. show users muestra in#ormacion sobre los usuarios(
C+I] iaC s1o5 users
module load car)a un modulo para asteris%(
C+I] module load cdr_addon_m,s3l(so
module unload descar)a un modulo para asteris%(
C+I] module unload cdr_addon_m,s3l(so
module reload recar)a un modulo para asteris%(
C+I] module reload cdr_cs-(so
module show muestra todos lo m$dulos 3ue contiene asteris%(
C+I] s1o5 modules
sip reload recar)a la con#i)uraci$n del arc1i-o sip(con#
C+I] sip reload
sip set debug a;usta el debu) para el canal sip(
C+I] sip set debu)
sip set debug o!! des1abilita el debu) para el canal sip(
C+I] sip set debu) o##
sip set debug peer con#i)ura el debu) para un peer(
C+I] sip set debu) peer "!"
sip show channels muestra todo los canales acti-os(
C+I] sip s1o5 c1annels
sip show peers muestra todo los peers a)re)ados en el sip(con#(
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org ..
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
C+I] sip s1o5 peers
sip show registr muestra el status de los re)istros(
C+I] sip s1o5 re)istr,
sip show settings muestra la con#i)uraci$n )lobal de sip(
C+I] sip s1o5 settin)s
sip show subscriptions muestra la cantidad de subscriptions(
C+I] sip s1o5 subscriptions
sip show users muestra todo los usuarios de sip
C+I] sip s1o5 users
-oicemail show users muestra la cantidad de usuarios con -oicemail
C+I] -oicemail s1o5 users
-oicemail show &one muestra la 7ona para el #ormato del mensa;e(
C+I] -oicemail s1o5 7ones
dahdi destro channel destru,e un canal(
C+I] da1di destro, c1annel "
dahdi restart completamente reinicia el todos los canales(
C+I] da1di restart
dahdi show cadences muestra los cadences(
C+I] da1di s1o5 cadences
dahdi show channels muestra todos los canales acti-os(
C+I] da1di s1o5 c1annels
dahdi show status muestra el status de la tar;eta(
C+I] da1di s1o5 status
restart grace!ull reinicia asteris% con cortesia(
C+I] restart )race#ull,
restart now reinicia inmediatamente a asteris%(
C+I] restart no5
restart when con-enient reinicia asteris% cuando se limpien el -olumen de llamadas(
C+I] restart 51en con-enient
par0edcalls show muestra todas las llamdas par3ueadas(
C+I] par%edcalls s1o5
moh reload reinicia music 1old(
C+I] mo1 reload
moh show classes muestra el listado de H@F Classes(
C+I] mo1 s1o5 classes
moh show !iles muestra el listado de los arc1i-os de music 1old(
C+I] mo1 s1o5 #iles
Par?ueo de Llamadas 'Call Par0ing)
El par3ueo de llamadas permite al usuario 3ue recibe una llamada. en-iar su llamada a un BcuartoB de par3ueo. para -ol-er a atenderla
desde otra eCtensi$n( Este tipo de acci$n es Atil en el si)uiente e;emplo( Supon)amos 3ue el administrador de la red recibe una llamada a
su eCtensi$n ubicada en su escritorio. , esta re3uiere 3ue /l se ubi3ue de #rente en un ser-idor 3ue se encuentra tres pisos mas arriba. , no
sabe si al)uien podr4 atender la llamada en el tel/#ono ubicado en el cuarto de e3uipos para 3ue pueda 1acer la trans#erencia normal de la
llamada(
En este caso. la opci$n es en-iar la llamada a un cuarto temporal. donde mientras tanto el 3ue llama. escuc1ar4 la mAsica en espera
con#i)urada. 1asta 3ue el administrador lle)ue al cuarto de e3uipos , -uel-a a tomar la llamada(
En su central tele#$nica. para en-iar la llamada actual para un cuarto de par3ueo. trans#iera la llamada a una eCtensi$n prede#inida.
utili7ando el car4cter predeterminado para trans#erir( Un -e7 di)itada la eCtensi$n. usted escuc1ar4 el nAmero de eCtensi$n
3ue deber4 marcar desde el otro tel/#ono para -ol-er a recuperar la llamada( +a llamada 3uedar4 en espera por un lapso m4Cimo de
minutos( Hientras la llamada esta par3ueada. el 3ue est4 llamando escuc1ar4 la mAsica con#i)urada como BHusic @n FoldB(
Para esta con#i)uraci$n tenemos 3ue traba;ar con dos arc1i-os de con#i)uraci$n el primero es #eatures(con# , eCtensions(con#
HgeneralJ
par0eDt MO @// T La eDtensin a marcar para par?uear una llamada
par0pos MO @/1-@./ T Bango de eDtensiones ?ue se usaran como par?ueo para las llamadas
conteDt MO par0edcalls T conteDto del par?ueo de llamadas
par0ingtime M L/ T 2iempo en el par?ueo en segundos
+ue)o -amos al arc1i-o eCtensions(con# , a)re)amos el si)uiente conteCto<
include MO par0edcalls
Tenemos 3ue incluir esto en el conteCto del 3ue deseemos 3ue use esta caracter6stica(((
Aclarando un poco mas(((( Cuando par3ueemos una llamada usando la eCtensi$n E!!. una )rabadora nos dir4 donde tenemos 3ue
reco)erla. puede 3ue sea desde la E!" al E!(
7usic on :old
Cual3uier popular sistema P89 o#rece la capacidad de suministrar una #uente de mAsica 3ue 1a de desempe2ar para mientras 3ue 1a,
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .6
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
una llamada en espera( Asteris% permite muc1a creati-idad en este sentido( Fo, en d6a. todo el mundo est4 #amiliari7ado con el #ormato
de mAsica HP'. , 1a, un )ran inter/s en el uso de HP' como mAsica en espera( El concepto 3ue parece una buena idea. pero 1a, al)unas
cosas 3ue creemos 3ue deben pensar , tener en consideraci$n<
+os Arc1i-os HP' son mu, comple;os. , re3uieren una cantidad sustancial de CPU para decodi#icar( Si usted tiene -arias llamadas
reproduciendo mAsica en espera en el sistema >por e;emplo. a -eces las personas 3uiere escuc1ar mAsica a tra-/s de su tel/#ono. o un
centro de atenci$n tele#$nica pueden tener -arias llaman en espera?.la car)a en el CPU causado por la totalidad de la transcodi#icaci$n de
los arc1i-os HP' almacenados podr6a poner demasiada demanda en una m43uina 3ue esta corriendo asteris% podemos usar #ormato mp'
de acuerdo a las necesidades de rendimiento del sistema(
Con#i)urando mAsica en espera(
Hroot(asteris0 IJK -im /etc/asteris0/musiconhold.con!
Hde!aultJ
modeM!iles
directorM/-ar/lib/asteris0/moh
randomMes
Donde<
mode-!iles: +ee los arc1i-os desde el directorio especi#icado en cual3uier #ormato(
director: Especi#ica el directorio donde estar4n ubicados los arc1i-os de sonido(
random: Toca los arc1i-os de manera aleatoria(
+os sonidos de la mAsica en espera est4n en la ruta si)uiente<
Hroot(asteris0JK cd /-ar/lib/asteris0/moh/
Hroot(asteris0 mohJK ls
!pm-calm-ri-er.gsm !pm-sunshine.wa- L5CG#9G-asteris0-moh-!reepla-gsm
!pm-calm-ri-er.wa- !pm-world-miD.gsm L5CG#9G-asteris0-moh-!reepla-wa-
!pm-sunshine.gsm !pm-world-miD.wa-
+ptimi&ando la m$sica en espera
+a aplicaci$n Husic@nFold de Asteris% utili7a #ic1eros codi#icados en HP' o IA&( Si bien esta codi#icaci$n de audio o#rece una buena
calidad esta pensada para #ic1eros de sonido , no para las comunicaciones(
Si tenemos una )ran cantidad de llamadas en espera la car)a del sistema es cada -e7 ma,or. esto es debido a la transcodi#icaci$n
probablemente en la ma,or6a de llamadas usemos GSH o A-la5(
Cuando Asteris% reproduce H@F. siempre busca el #ormato 3ue menos coste le supone respecto al c$dec 3ue se est4 usando(
Normalmente transcodi#icar desde S+IN -a a ser la opci$n m4s barata. pero si sabemos 3ue nuestro sistema usa principalmente GSH o
A-la5 >en la ma,or6a de los casos?. lo me;or ser6a 1acer la transcodi#icaci$n del #ic1ero nosotros mismos , e-itar esta tarea a Asteris%(
Para ello iremos al directorio donde tenemos la mAsica en espera , con-ertiremos los #ic1eros IA&( Para ello necesitaremos soC. as6 3ue
si no lo tenemos instalado<
Hroot(asteris0 IJK um - install soD
W Accedemos al directorio de los #ic1eros H@F
cd /-ar/lib/asteris0/moh
Formato U97:
soD !pm-sunshine.wa- -t gsm -r A/// -b -c 1 !pm-sunshine.gsm
soD !pm-calm-ri-er.wa- -t gsm -r A/// -b -c 1 !pm-calm-ri-er.gsm
soD !pm-world-miD.wa- -t gsm -r A/// -b -c 1 !pm-world-miD.gsm
Formato "-law:
soD !pm-sunshine.wa- -t al -r A/// -b -c 1 !pm-sunshine.alaw
soD !pm-calm-ri-er.wa- -t al -r A/// -b -c 1 !pm-calm-ri-er.alaw
soD !pm-world-miD.wa- -t al -r A/// -b -c 1 !pm-world-miD.alaw
"?ui donde:
#pm-suns1ine(5a- -] Indica el arc1i-o de entrada a con-ertir(
-t -] Especi#ica el tipo de arc1i-o a con-ertir
-r -] Especi#ica el rate en Fert7 del arc1i-o
-c -] Especi#ica el numero de canales en el arc1i-o( Estos pueden ser ". , L para mono. est/reo o 3uad-sound respecti-amente(
"steris0 7acros
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .<
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
+os macros son mu, utili7ados para construir , e-itar repeticiones en el dialplan( Una -e7 de#inido el macro. estos pueden ser llamados
desde una linea as6 como pasarle ar)umentos( Ilustremos el si)uiente e;emplo< Tenemos ' eCtensiones en el dialplan 3ue se -en de la
si)uiente manera<
HeDtensionsJ
eDten MO 1//1=1=Dial'95P/1//1=6/)
eDten MO 1//1=n=Plabac0'-m-noboda-ail)
eDten MO 1//1=n=4oicemail'1//1(bu&on)
eDten MO 1//1=n=:angup')
eDten MO 1//.=1=Dial'95P/1//.=6/)
eDten MO 1//.=n=Plabac0'-m-noboda-ail)
eDten MO 1//.=n=4oicemail'1//.(bu&on)
eDten MO 1//.=n=:angup')
eDten MO 1//6=1=Dial'95P/1//6=6/)
eDten MO 1//6=n=Plabac0'-m-noboda-ail)
eDten MO 1//6=n=4oicemail'1//6(bu&on)
eDten MO 1//6=n=:angup')
Ima)inen 3ue sean "!! eCtensiones en -e7 de '( Para esto aplicamos los macros de la si)uiente manera<
Hmacro-phonesJ
eDten MO s=1=Dial'95P/VP"BU1Q=.>)
eDten MO s=n=Uoto'VPD5"L92"2C9Q=1)
eDten MO "#9\GB=1=:angup
eDten MO C"#CGL=1=:angup
eDten MO #+"#9\GB=1=4oicemail'VP"BU1Q(bu&on=u)
eDten MO FC9S=1=4oicemail'VP"BU1Q(bu&on=b)
eDten MO C+#UG925+#=1=4oicemail'VP"BU1Q(bu&on=b)
eDten MO C:"#C#"4"5L=1=4oicemail'VP"BU1Q(bu&on=u)
eDten MO 1//1=1=7acro'phones=1//1)
eDten MO 1//.=1=7acro'phones=1//.)
eDten MO 1//.=1=7acro'phones=1//.)
ECpli3uemos la estructura del macro<
Hmacro-phonesJ T Gste es el nombre con el ?ue se crea el macro.
eDten MO s=1=Dial'95P/VP"BU1Q=.>)
eDten MO s=n=Uoto'VPD5"L92"2C9Q=1)
+a primera linea ,a conocida. e;ecuta la aplicaci$n Dial 1ablando SIP( +a -ariable cdARG"e indica el ar)umento pasado al macro( Has
adelante -eremos como llamamos el macro(
El Goto en-i4 la llamada dependiendo del status de la misma a las si)uientes eCtensiones<
eDten MO "#9\GB=1=:angup
eDten MO C"#CGL=1=:angup
eDten MO #+"#9\GB=1=4oicemail'VP"BU1Q(bu&on=u)
eDten MO FC9S=1=4oicemail'VP"BU1Q(bu&on=b)
eDten MO C+#UG925+#=1=4oicemail'VP"BU1Q(bu&on=b)
eDten MO C:"#C#"4"5L=1=4oicemail'VP"BU1Q(bu&on=u)
Para llamar el macro. simplemente se e;ecuta la si)uiente linea<
eDten MO 1//1=1=7acro'phones=1//1)
eDten MO 1//.=1=7acro'phones=1//.)
eDten MO 1//6=1=7acro'phones=1//6)
Por e;emplo. para 1abilitar la eCtensi$n "!!" simplemente se a)re)a la eCtensi$n mas la aplicaci$n Hacro( +os datos entre par/ntesis
>p1ones."!!"? indican el nombre del macro mas la eCtensi$n a llamar. en este caso la "!!"( T$mese en cuenta 3ue la eCtensi$n "!!" es la
3ue el macro coloca en la -ariable VP"BU1Q(
Al)unas -ariables 3ue utili7a el macro son<
VP"BU1Q: Gl primer argumento pasado al macro.
VP"BU.Q: Gl segundo argumento pasado al macro.
VP7"CB+NC+#2GE2Q: Gl conteDto de esta eDtensin ?ue acciona este macro.
VP7"CB+NGE2G#Q: La eDtensin ?ue dispara este macro.
Plantillas 95P '95P 2emplates)
El arc1i-os sip(con#. al i)ual 3ue los macros permite en este caso 1abilitar plantillas para e-itar repeticiones en el mismo( Se 1ace un
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .>
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
patr$n principal de la si)uiente manera<
En el arc1i-o sip(con# creamos la plantilla )eneral con las opciones en comAn 3ue tendr4n cada una de las eCtensiones<
HbasicoJ'_) K Con esta opcin declaramos la plantilla
tpeM!riend
conteDtMeDtensiones
hostMdnamic
languageMes
disallowMall
allowMulaw
allowMgsm
Ga de esta manera simplemente. creamos las eCtensiones , llamando la plantilla principal<
H.//6J'basico)
usernameM.//6
secretM.//6
H.//<J'basico)
usernameM.//<
secretM.//<
7iD7onitor
Esta aplicaci$n 1ace )rabaciones de audio del canal actual<
HgeneralJ
auto!allthroughMes
HglobalsJ
C"LL257GMVP92BF257G'VPGP+C:Q="merica/9antoNDomingo=`S-`m-`d-`::`7:`9)Q
HeDtensionsJ
eDten MO N1EEE=1=7iD7onitor'VPC"LLGB5D'num)Q-VPC"LL257GQ-VPGE2G#Q.wa-)
eDten MO N1EEE=n=Dial'95P/VPGE2G#Q=1/)
eDten MO N1EEE=n=Plabac0'-m-noboda-ail)
eDten MO N1EEE=n=:angup')
Asteris% no tiene una -ariable de #ec1a propiamente de#inida para ser le)ible inmediatamente por el o;o 1umano. en cambio usa la
-ariable de #ec1a EP@CF 3ue si imprime la #ec1a pero en #ormato UniC > 1ttp<::es(5i%ipedia(or):5i%i:Tiempo_UniC ?. en U)lobalsV la
ponemos mas le)ible con una #unci$n de #ec1a , declaramos la -ariable CA++TIHE. dando un resultado en la primera prioridad de
nuestra eCtensi$n de< emisor-!echa'incluendo hora)-receptor.wa-
+os con-ersaciones ,a )rabadas ir4n siendo )uardadas en :-ar:spool:asteris%:monitor(
Con!erencia de llamadas 'meetme.con!)
Heetme es utili7ado para 1acer llamadas en con#erencia( Se crea un sal$n >room? en el cual todo a3uel 3ue -a,a a escuc1ar la con#erencia
acceda a el mediante una cla-e( Editamos el arc1i-o meetme(con# con los si)uientes par4metros<
con! MO L//1 T Gstableciendo la eDtensin para la con!erencia
Tambi/n se puede colocar cla-es , cla-es de administrador para la misma( El administrador como bien dice su nombre. establece la
sesi$n de con#erencia(
+tros parmetros:
con! MO L//1=1.6<> 0 Inicia la sesi$n con cla-e
Tambi/n se puede<
con! MO L//1=1.6<>=66666 0 Inicia la sesi$n con cla-e "'LQ , el administrador tendr4 cla-e '''''(
En eCtensions(con# llamamos la aplicaci$n Heetme<
eDten MO L//1=1="nswer
eDten MO L//1=n=\ait'1)
eDten MO L//1=n=7eet7e'L//1Zp)
eDten MO L//1=n=Plabac0'-m-goodbe)
eDten MO L//1=n=:angup
Al)unos par4metros 3ue le podemos pasar a la aplicaci$n Heetme son los si)uientes<
p -] permite al usuario salir de la con#erencia presionando W
m -] establece 3ue el caller solo escuc1a. no 1abla
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .1
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
5nterconeDin entre "steris0s
Para establecer la interconeCi$n entre asteris%. tenemos el si)uiente escenario<
9er-idor 1: 1L..11A.1.>>
9er-idor .: 1L..11A.1.11/
Hediante el protocolo SIP. el ser-idor " establecer4 comunicaci$n con el ser-idor
Gn el 9er-idor 1= en el sip(con#<
HgeneralJ
register MO asteris01:pass1(1L..11A.1.11//asteris0.
Hasteris0.J
tpeM!riend
secretMpass.
conteDtMasteris0.Nentrada
hostMdnamic
insecureMin-ite
H1///J
tpeM!riend
hostMdnamic
conteDtMphones
secretM1///
En el conteCto U)eneralV la opci$n re)ister indica 3ue el ser-idor " se re)istrar4 en el ser-idor utili7ando el usuario Xasteris%"Y , la
cla-e Xpass"Y. la direcci$n ip X"D("JM("(""!Y es la direcci$n del ser-idor mientas 3ue asteris% es la eCtensi$n local en el ser-idor " a
tra-/s del cual se enrutar4n las llamadas 1acia el asteris%(
Has aba;o en la eCtensi$n Uasteris%V es la eCtensi$n 3ue mane;ara el trun%in) entre estos e3uipos( En eCtensions(con#<
HgeneralJ
auto!allthroughMes
HglobalsJ
HphonesJ
include MO internal
include MO sucursal
HinternalJ
eDten MO >>>=1="nswer')
eDten MO >>>=n=Plabac0'hello-world)
eDten MO >>>=n=:angup')
eDten MO N1EEE=1=Dial'95P/VPGE2G#Q=./)
eDten MO N1EEE=n=Plabac0'-m-noboda-ail)
eDten MO N1EEE=n=:angup')
HsucursalJ
eDten MO N.EEE=1=Dial'95P/asteris0./VPGE2G#Q=./)
eDten MO N.EEE=n=Plabac0'-m-noboda-ail)
eDten MO N.EEE=n=:angup')
Hasteris0.NentradaJ
include MO internal
El patr$n XeCten Z] _"999Y muestra las eCtensiones locales para el ser-idor " ba;o el conteCto internal(
El conteCto UsucursalV muestra la coneCi$n enrutada 1acia el ser-idor de la si)uiente manera<
HsucursalJ
eDten MO N.EEE=1=Dial'95P/asteris0./VPGE2G#Q=./)
eDten MO N.EEE=n=Plabac0'-m-noboda-ail)
eDten MO N.EEE=n=:angup')
Cual3uier eCtensi$n 3ue comience el patr$n >por e;emplo !!'? sera enrutado a tra-/s del usuario SIP:asteris% 3ue a su -e7 es el
usuario 3ue esta 1aciendo el trun%in) con ser-idor (
9er-idor .
+a eCplicaci$n es eCactamente la misma del ser-idor "( En sip(con#<
HgeneralJ
register MO asteris0.:pass.(1L..11A.1.>>/asteris01
Hasteris01J
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .@
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
tpeM!riend
secretMpass1
conteDtMasteris01Nentrada
hostMdnamic
insecureMin-ite
H.///J
tpeM!riend
hostMdnamic
conteDtMphones
secretM.///
En eCtensions(con#<
HgeneralJ
auto!allthroughMes
HglobalsJ
HphonesJ
include MO internal
include MO sucursal
HinternalJ
eDten MO >>>=1="nswer')
eDten MO >>>=n=Plabac0'es/hello-world)
eDten MO >>>=n=:angup')
eDten MO N.EEE=1=Dial'95P/VPGE2G#Q=./)
eDten MO N.EEE=n=Plabac0'-m-noboda-ail)
eDten MO N.EEE=n=:angup')
HsucursalJ
eDten MO N1EEE=1=Dial'95P/asteris01/VPGE2G#Q=./)
eDten MO N1EEE=n=Plabac0'-m-noboda-ail)
eDten MO N1EEE=n=:angup')
Hasteris01NentradaJ
include MO internal
Para -eri#icar el re)istro satis#actorio. escribir en asteris% cli el si)uiente comando<
CL5O sip show registr
"steris0-9tats
Precioso anali7ador de CDR. anali7a de #orma sencilla tus re)istros de CDR( Asteris%-Stat proporciona di#erentes reportes , )r4#icos para
permitir al administrador de Asteris% anali7ar r4pidamente , de #orma sencilla el tr4#ico de su ser-idor Asteris%( Todos los )r4#icos _
reportes >3ue son impresionantes? est4n basados on la base de datos CDR(
Hroot(blac0angel IJK um install - php-gd php-common php-> php-ms?l php-,pgraph httpd
G para instalar p1p-;p)rap1 1a, 3ue descar)ar el pa3uete el si)uiete lin% 1ttp<::da)(5ieers(com:rpm:pac%a)es:p1p-;p)rap1:p1p-
;p)rap1-"("D-"((elQ(r#(noarc1(rpm ,a 3ue no esta disponible en los repositorios de *edora o Cent@S(
5nstalando asteris0-addons
um install - ms?l ms?l-ser-er ms?l-connector-odbc ms?l-libs ms?l-de-el libdbi-dbd-ms?l 79^L-pthon modNauthNms?l
Una -e7 instalado m,s3l iniciamos el ser-icio de m,s3l , a)re)amos una contrase2a a root(
Hroot(blac0angel IJK ser-ice ms?ld start
Hroot(blac0angel IJK ms?ladmin --userMroot password acodigolibrea
Hroot(blac0angel IJK ch0con!ig ms?ld on
&amos al directorio :usr:src , descar)amos el pa3uete , lo descomprimimos(
Hroot(blac0angel IJK cd /usr/src/
Hroot(blac0angel srcJKwget http://downloads.asteris0.org/pub/telephon/asteris0/releases/asteris0-addons-1.1./.6.tar.g&
Hroot(blac0angel srcJK tar -D&-! asteris0-addons-1.1./.6.tar.g&
Hroot(blac0angel srcJK cd asteris0-addons-1.1./.6/
Hroot(blac0angel asteris0-addons-1.1./.6JK ./con!igure
Hroot(blac0angel asteris0-addons-1.1./.6JK ma0e menuselect Tpara seleccin de los pa?uetes deseado.
Hroot(blac0angel asteris0-addons-1.1./.6JK ma0e
Hroot(blac0angel asteris0-addons-1.1./.6JK ma0e install
Hroot(blac0angel asteris0-addons-1.1./.6JK ma0e samples
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .A
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
A1ora -amos al arc1i-o :etc:asteris%:cdr_m,s3l(con# para con#i)urar el nombre de la base de datos el username , pass5d para el acceso
de la base de datos , lo editamos de la si)uiente manera<
HglobalJ
hostnameMlocalhost
dbnameMasteris0cdrdb
tableMcdr
passwordM!cld
userMasteris0
portM66/1
soc0M/-ar/lib/ms?l/ms?l.soc0
Editamos el arc1i-o :etc:asteris%:modules(con# a)re)amos la secci$n )lobal con los si)uiente<
HglobalJ
cdrNaddonNms?l.so
&amos 1a lo)ear a m,s3l como root para crear la base de datos , el usuario 3ue -a a acceder a la base de dato., como crear las tablas<
Hroot(blac0angel IJK ms?l -u root -p
ms?lO create database asteris0cdrdbT
ms?lO UB"#2 9GLGC2=5#9GB2 +# asteris0cdrdb.Y 2+ asteris0(localhost 5DG#25F5GD FS a!cldaT
A1ora creamos la tabla cdr en la base de datos asteris%cdrdb<
ms?lO use asteris0cdrdbT
ms?lO CBG"2G 2"FLG cdr '
calldate datetime #+2 #CLL de!ault a////-//-// //://://a=
clid -archar'A/) #+2 #CLL de!ault aa=
src -archar'A/) #+2 #CLL de!ault aa=
dst -archar'A/) #+2 #CLL de!ault aa=
dconteDt -archar'A/) #+2 #CLL de!ault aa=
channel -archar'A/) #+2 #CLL de!ault aa=
dstchannel -archar'A/) #+2 #CLL de!ault aa=
lastapp -archar'A/) #+2 #CLL de!ault aa=
lastdata -archar'A/) #+2 #CLL de!ault aa=
duration int'11) #+2 #CLL de!ault a/a=
billsec int'11) #+2 #CLL de!ault a/a=
disposition -archar'<>) #+2 #CLL de!ault aa=
ama!lags int'11) #+2 #CLL de!ault a/a=
accountcode -archar'./) #+2 #CLL de!ault aa=
uni?ueid -archar'6.) #+2 #CLL de!ault aa=
user!ield -archar'.>>) #+2 #CLL de!ault aa
)T
"L2GB 2"FLG bcdrb "DD 5#DGE ' bcalldateb )T
"L2GB 2"FLG bcdrb "DD 5#DGE ' bdstb )T
"L2GB 2"FLG bcdrb "DD 5#DGE ' baccountcodeb )T
Reiniciamos asteris% , 1acemos una llamada para -er el cdr se esta escribiendo en la base de datos( Tambi/n lo podemos -er por el cli de
asteris% de la manera si)uiente(
Hroot(blac0angel IJK asteris0 ---r
blac0angelYCL5O cdr ms?l status
Deber6a de mostrar un mensa;e eCactamente i)ual a este<
Connected to asteris%cdrdb=local1ost usin) table cdr #or ! 1ours. "Q minutes. "Q seconds(
Irote " records since last restart(
ms?lO select uni?ueid= src= calldate !rom cdrT
5nstalando asteris0-stat
&amos al directorio :-ar:555:1tml , descar)amos el pa3uete de asteris%-stat desde el si)uiente lin%<
Hroot(blac0angel htmlJK wget http://ares0i.net/asteris0-stat--./asteris0-stat--.N/N1.tar.g&
lue)o lo descomprimimos , renombramos el directorio<
Hroot(blac0angel htmlJK tar -D&-! asteris0-stat--.N/N1.tar.g&
Hroot(blac0angel htmlJK m- asteris0-stat--.N/N1 asteris0
Editamos el arc1i-o de#ines(p1p del directorio de :-ar:555:1tml:asteris%:lib: , los modi#icamos de la manera si)uiente<
Hroot(blac0angel htmlJK-im asteris0/lib/de!ines.php
de!ine 'c\GFB++2c= chttp://blac0angel.!cld.local/asteris0/c)T
de!ine 'cF9B++2c= c/-ar/www/html/asteris0/c)T
de!ine 'cL5FD5Bc= F9B++2.clib/c)T
de!ine 'c:+92c= clocalhostc)T
de!ine 'cP+B2c= c66/1c)T
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org .L
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
de!ine 'cC9GBc= casteris0c)T
de!ine 'cP"99c= c1L.>A.c)T
de!ine 'cDF#"7Gc= casteris0cdrdbc)T
de!ine 'cDFN2SPGc= cms?lc)T // ms?l or postgres
de!ine 'cDFN2"FLG#"7Gc= ccdrc)T
Asteris%-stat -(!(" tiene un bu) cuando tu esta eCportando un cdr en #ormato pd# para corre)ir esto 1a, 3ue editar el arc1i-o
eCport_pd#(p1p cambiar la linea Q<
includeNonce'dirname'NNF5LGNN) . c/lib/!pd!.phpc)T
cambiar a<
includeNonce'dirname'NNF5LGNN) . c/lib/!pd!.phpc)T
Crear un enlace simb$lico de cdr(p1p indeC(p1p
Hroot(blac0angel asteris0JK ln -s! cdr.php indeD.php
A1ora iniciemos el ser-icio de 1ttpd<
Hroot(blac0angel asteris0JK ser-ice httpd start
+o a)re)amos al inicio del sistema
Hroot(blac0angel asteris0JK ch0con!ig httpd on
\\\ Si todos los paso #ueron eCitosos accedemos desde el na-e)ado a asteris%-stat< 1ttp<::blac%an)el(#cld(local:asteris% \\\\
"steris0 UC5
Como con#i)urar Asteris%-GUI la inter#a7 )r4#ica de asteris% ,a no es necesario utili7ar aplicaci$n de terceros para obtener una aplicaci$n
)r4#ica por inter#a7 5eb(
Descargamos asteris0 Uui de la siguiente manera.
Hroot(asteris0 srcJK s-n chec0out http://s-n.digium.com/s-n/asteris0-gui/trun0 asteris0-gui
Procedemos a instalar asteris0 Uui.
Hroot(asteris0 srcJKcd asteris0-gui
Hroot(asteris0 asteris0-guiJK ./con!igure
Hroot(asteris0 asteris0-guiJK ma0e
Hroot(asteris0 asteris0-guiJK ma0e install
Hroot(asteris0 asteris0-guiJK ma0e samples
+ue)o editamos los arc1i-os de con#i)uraci$n 3ue son 1ttp(con# , mana)er(con# de :etc:asteris%
Hroot(asteris0 asteris0-guiJK -im /etc/asteris0/http.con!
U)eneralV
displa,s,stemname Z ,es
enabled Z ,es
5ebenabled Z ,es
port Z Q!'M
1ttptimeout Z J!
bindaddr Z !(!(!(!
UadminV 0 este es el usuario admin. puede ser por e;emplo< antonio
secret Z #cld" 0 esta es su contrase2a
read Z s,stem.call.lo).-erbose.command.a)ent.user.con#i)
5rite Z s,stem.call.lo).-erbose.command.a)ent.user.con#i)

Hroot(asteris0 asteris0-guiJK -im /etc/asteris0/manager.con!
U)eneralV
enabled Z ,es
enablestatic Z ,es
bindaddr Z "E(!(!(" 0 Si pone esta direcci$n solo podr4 in)resar desde el e3uipo local
bindport Z M!MM
Hroot(asteris0 asteris0-guiJKasteris0 ---r
asteris0YCL5O reload
Hroot(asteris0 asteris0-guiJK ma0e chec0con!ig
--- C1ec%in) Asteris% con#i)uration to see i# it 5ill support t1e GUI ---
\ C1ec%in) #or 1ttp(con#< @K
\ C1ec%in) #or mana)er(con#< @K
\ C1ec%in) i# FTTP is enabled< @K
\ C1ec%in) i# FTTP static support is enabled< @K
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 6/
________________________________________________Cuaderno de Practicas Diplomado GNU-ASTERISK
\ C1ec%in) i# mana)er is enabled< @K
\ C1ec%in) i# mana)er o-er FTTP is enabled< @K
--- E-er,t1in) loo%s )ood ---
\ GUI s1ould be a-ailable at 1ttp<::asteris%(codi)olibre(or)<M!MM:asteris%:static:con#i):c#)basic(1tml
\ T1e lo)in and pass5ord s1ould be an entr, :etc:asteris%:mana)er(con# 51ic1 1as Tcon#i)T permission in read and 5rite( *or eCample<
UadminV
secret Z m,secretEEDE
read Z s,stem.call.lo).-erbose.command.a)ent.con#i)
5rite Z s,stem.call.lo).-erbose.command.a)ent.con#i)
--- Good luc%` ---
"hora desde la inter!a& gr!ica de "steris0-UC5 en: http://1@..61.1//..><:A/AA/asteris0/static/con!ig/indeD.html
Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 61

También podría gustarte