Sei sulla pagina 1di 69

Resumen Ejecutivo

Misin
Linux Latin Amrica es la empresa pionera y lder en servicios globales de TI basados en
plataforma Linux y software libre. Proveemos servicios de capacitacin, consultora, soluciones,
soporte tcnico e integracin de productos innovadores y de primer nivel en base a Sistema Operativo
LINUX para asegurar, resguardar y rentabilizar los procesos tecnolgicos de grandes y medianas
organizaciones, quienes nos premian con relaciones de largo plazo.
Visin
Linux Latin Amrica ser el proveedor latinoamericano lder de servicios globales de TI en
plataforma Linux. Tecnologa que ser altamente demandada por los gobiernos y principales empresas
de la regin. Para lograrlo, nos concentraremos en elevados niveles de calidad, innovacin y
especializacin de nuestros profesionales.
Principios que nos inspiran
- Enfoque al cliente
- Liderazgo Especializado
- Participacin del personal
- Mejora Continua
- Relaciones Beneficiosas con el proveedor
- Responsabilidad Social
Presentacin Corporativa Linux Latin Amrica 2008
Presentacin Corporativa Linux Latin Amrica 2008
Su poltica de Calidad
Linux Latin America logra la s atisfaccin de sus clientes a traves de la entrega de servicios de
soporte e ingeniera en forma efectiva, ajustando a los requerimientos, buscando estar de acuerdo a
su misin y visin y atendiendo a nuestro compromiso permanente de mejora continua.
Sus objetivos de Calidad
- Lograr que el indicador satisfaccin de sus clientes tenga un valor igual o superior a
los planificados por la alta gerencia.
- Que sus tcnicos y profesionales tengan una evaluacin, por parte de sus clientes,igual
o superior a lo planificado por la alta gerencia.
- Cumplir satisfactoriamente los tiempos estipulados.
- Que sus ejecutivos comerciales tengan una evaluacin por parte de sus clientes igual
o superior a la estipulada por la alta gerencia.
Qu servicios ofrecemos?
Consultora
Los proyectos de migracin realizados por Linux Latin America estn basados en un anlisis previo
del impacto de la migracin y una planificacin detallada de cada una de las fases.
Dada la envergadura y diseo de estos proyectos, es que se encuentran integrados con diferentes
y mltiples servicios que en su totalidad permiten conseguir una implantacin final satisfactoria.
Levantamiento y Detalle de Requerimientos - Fase Inicial de Asesora
Diseo e Implementacin de la solucin - Fase de Ejecucin
Capacitacin de S.O. Linux - Fase Capacitacin
Soporte y Asistencia Tcnica - Fase Soporte y Asistencia
Estudios de viabilidad tcnica y econmica '95 Planes de Migracin '95 Pilotos y Prototipos
Presentacin Corporativa Linux Latin Amrica 2008
Presentacin Corporativa Linux Latin Amrica 2008
Implementacin de Soluciones Opensource
- Mensajera. - Servidores de Correo con herramientas de colaboracin - Agenda
Compartida Webmail - Mensajera Instantnea Encriptada - Foros de Discusin -
Libreta de Direcciones Corporativa.
- Soluciones de Telefona y Voz sobre IP con Asterisk.
- Servidores de Archivos - Controladores de Dominio (Samba / OpenLDAP) - Single
Sign - On.
- Seguridad. Firewall - VPNs - Detector de Intrusos - Anlisis Forense - Proxy -
Filtros de Internet.
- Herramientas de Monitoreo de Servidores y Red. Nagios - Cacti - MRTG - Ethereal
- NTOP.
- Mon - Tunni ng para servi dores de bases de datos Oracl e y Sybase.
- Clusterizacin de Servidores : Alta Disponibilidad - Balanceo de Carga - Oracle RAC.
Implementacin de Soluciones Comerciales para Linux
Novell Groupwise - Novell e-Directory - Oracle - RedHat Cluster Suite - RedHat GFS -
Solucin Corporativa Retail Novell Linux Point-of-Sales.
Soporte y Asistencia Tcnica
Asistencia Telefnica - Presencial en dependencias del cliente - Acceso remoto seguro -
Asistencia va e-mail.
Capacitacin y Certificacin
Contamos con una amplia gama de cursos en plataformas Linux y Software libre, con salas
totalmente equipadas para realizar una capacitacin prctica e interactiva. Todos nuestros cursos
cuentan con Franquicia Sence.
Por otro lado el reconocimiento que Red Hat nos ha entregado por ser el nico centro de
capacitacin en Chile que puede entregar los cursos de certificacin (RHCE-RHCT), nos sitan como
principal proveedor de capacitacin y consultoras relativas al software libre en Chile y Latinoamrica.
Por qu elegir Linux Latin Amrica?
- Dado su concentrado foco de negocios, somos slo especialistas en ofrecer soluciones
de infraestructura basadas en plataforma linux y herramientas de software libre.
- Es la empresa chilena con ms experiencia en soluciones linux en el mercado nacional.
Es la que posee el mayor nmero de ingenieros certificados RHCE (Certified Engineer)
y RHCX (Certified Examiner). Business Partner RedHat (http://www.redhat.com).
- Cuenta con la base de servidores linux instalados ms amplia en el sector corporativo.
- Para ofrecer los ms altos estndares de calidad, Linux Latin America se encuentra
certificada ISO9001/2000.
- La solidez de nuestras alianzas con los ms importantes fabricantes de tecnologa y otras
empresas especializadas, nos permiten abordar todo tipo de proyectos.
http://www.linuxlatinamerica.com
Argentina:
Victoria Ocampo N 360, 3 Piso - Puerto Madero - Buenos Aires.
Tel: +54 (11) 45156332.
Chile:
Mariano Snchez Fontecilla # 310, 2do Piso - Edificio Birmann 24 Las Condes - Santiago
Tl : +56 2 4834000 - Fax : +56 2 4834050 - Call Center Soporte 600 4834100
Mexico:
Insurgentes Sur N 2384 Col. Chimalistac. Deleg. lvaro Obregn. Mexico D.F.
Tl: +52 55 53507487.
servicioalcliente@linuxlatinamerica.com
Presentacin Corporativa Linux Latin Amrica 2008
Sea libre, use Linux.
Sistemas Operativos
Linux Bsico LC ADM 101
Los participantes aprendern los conceptos de Linux, este curso esta dirigido a usuarios que desean usar Linux en sus actividades diarias.
Duracin: 12 Hrs
Administracin Linux -LC ADM 100
Proporciona al participante los conocimientos y procedimientos para administrar un servidor Linux y servicios de red asociados, como
administracin, correo, web, servicio de archivo, DNS, FTP.
Duracin: 40 hrs.
Resolucin de problemas- LC ADM 200
Proporciona al participante los conocimientos y procedimientos para la administracin avanzada de un servidor Linux, incluyendo los
tpicos de red y ruteo, lista de control de acceso, respaldos y recuperacin, programacin de Scripts, SSH y resolucin de problemas.
Duracin: 24 hrs.
Seguridad Linux LC SEG 200
El participante sera capaz de dominar la operacin, configuracin de Linux con las caractersticas necesarias para mantener actualizado
y seguro un servidor proxy, router y/o firewall Linux
Duracin: 36 hrs.
Infraestructura LC INF 300
Los participantes podrn disear, implementar los servicios de infraestructura sobre Linux
Duracin: 36 Hrs
Aplicaciones
Samba Ldap - Postfix
Este curso esta orientado a la centralizacin de autentificacin de servicios de la red corporativa
Duracin: 24 Horas
Monitoreo de Red LC SEG 201
El participante podr monitorear el estado de la red (trficos de paquetes, estado de servicios, utilizacin ancho de banda).
Duracin: 24 horas.
VPN- LC SEG 200
El participante ser capaz de crear redes primarias virtuales, es decir, interconectar dos redes remotas a travs de un tnel seguro.
Duracin: 24 hrs
Cluster- LC CLU 300
El participante lograr realizar el balanceo de carga y alta disponibilidad de servicios de Red.
Duracin 12 hrs.
Asterisk - LC AST 300
El participante lograr integrar plantas telefnicas anlogas y digitales, PABXS virtuales, Routers de llamada, discadores automticos
IVR, tarificacin todo implementado con tecnologa open Source
Duracin: 40 hrs.
Ofimtica
Open office LC ADM 102
Proporciona a los participantes un manejo bsico de los conceptos prcticos, tericos, fundamentales para la utilizacin de esta suite
ofimtica compuesta por: procesador de texto, planilla de calculo y base de dato.
Duracin: 24 horas
OpenOffice.org
Asterisk
www. l i n u x l a t i n a me r i c a . c o m
V P N
MEXICO
Insurgentes Sur N 2384 Col. Chimalistac
Delg. lvaro Obregn - C.P 01070. Mexico, D.F.
Tel: +52 (55) 53507487 / +52 (55) 53507496.
ARGENTINA
Victoria Ocampo N 360, 3 piso
C1107BGA - Puerto Madero - Buenos Aires
Tel: +54 (11) 45156332
CHILE
Mariano Snchez Fontecilla 310,
Edificio Birmann - 2 piso
CP7550515 - Las Condes - Santiago
Tel: +56 2 483 4000 - Fax: +56 2 4834050
Desarrollo
UML- LC UML 100
El participante conocer los conceptos propios del modelo orientado al objeto, tambin aplicar las diversas tcnicas del anlisis y diseo
orientado a objeto. Construir la especificacin de un sistema utilizando objetos.
Duracin: 24 hrs.
XML- lC XML 100
El objetivo es familiarizar al participante con el uso XML en Internet, se mostrara como escribir documentos XML , como presentarlas
usando hojas de estilo o aplicndole transformaciones.
Duracin: 36 hrs.
Java LC JAV 200
Prepara al participante en tcnicas y herramientas de programacin JAVA
Duracin: 30 hrs.
J2EE LC J2E 400
Proporciona toda la informacin necesaria para crear aplicaciones basadas en el estndar J2EE, adoptado globalmente por las grandes
empresas como plataformas de desarrollo.
Duracion: 40 hrs.
Desarrollo
PHP LC PHP 100
Este curso entrega los conocimientos necesarios para crear paginas web dinmicas. A travs del uso de PHP el cual permite el acceso a
mltiples repositorios de datos.
Duracin: 30 hrs.
PHP MYSQL LC PHP 200
Comprender los fundamentos de MYSQL y el acceso a este motor de base de datos a travs de PHP
Duracin: 30 hrs.
PHP POSTGRE SQL LC PHP 201
Los participantes lograran conocer, administrar e implementar Postgre SQL en la empresa. As como programar en los principales
lenguajes para desarrollar aplicaciones estables.
Duracin 30 horas
Perl LC PER 100
El participante dominar el uso del lenguaje para generar reportes a travs de la conexin a una base de datos o el procesamiento de
archivos(expresiones regulares).
Duracin: 25 hrs.
Base de datos
Mysql (Intermedio y Avanzado)
Aprender a Manejar, Administrar y migrar base de datos a MySQL
Duracin: 30 Hrs.
Administracin de PostgreSQL (Intermedio y Avanzado)
Prepara al alumno para administrar sistemas con PostgreSQL y depurar los errores posibles frente a fallas del sistema.
Duracin: 30 hrs
Certificaciones
Red Hat:
Introduccin a Redhat Linux (RH033) - Administracin del
sistema Red Hat Linux y examen RHCT (RH133) - Red Hat Linux
Networking y seguridad (RH253) - Rapid Track (RH-300).
w w w . l i n u x l a t i n a m e r i c a . c o m
Novell - Suse:
Fundamental de SUSE LINUX (curso 3071) - administracion de
Suse Linux (Curso 3072) - Administracin avanzada Suse
Linux (3073) - Examen profesional del practicum de la certificacin
(Novell CLP)
XML

TITULO I
REGLAMENTO INTERNO
CENTRO LINUX S.A.


Disposiciones GeneraIes
ArtcuIo l: Para efectos del presente reglamento se entender por:
"AIumno o Participante": Toda persona natural que participe en actividades de
capacitacin. Pueden ser empresarios, trabajadores o pblico en general, que deseen
capacitarse en temas propios del quehacer empresarial.
"SENCE": Servicio Nacional de Capacitacin y Empleo; organismo pblico que entre
otras cosas tiene la responsabilidad de: aprobar programas y otorgar cdigo Sence;
fiscalizar la ejecucin de los cursos; y finalmente aprobar o autorizar la devolucin de los
fondos invertidos por los participantes con cargo a su correspondiente franquicia tributaria.
"OTEC" Organismo Tcnico de Capacitacin, Las personas jurdicas que tengan como
nico objeto social el Servicio de Capacitacin. Se extiende a Universidades, lnstitutos
Profesionales y Centros de Formacin Tcnica, inscritos en el Registro Nacional de
Organismos Tcnicos de Capacitacin del Servicio Nacional de Capacitacin y Empleo.
ArticuIo 2:La responsabilidad sobre la planificacin, ejecucin y evaluacin de las
actividades de capacitacin contenidas en el programa de capacitacin corresponden al
Organismo Tcnico de Capacitacin Centro Linux S.A.
ArticuIo 3:El Organismo Tcnico de Capacitacin se compromete a velar por la calidad
del servicio ofrecido.
TITULO II
De Ia admisin aI programa de capacitacin
ArtcuIo 4: Las actividades de capacitacin organizadas por Centro Linux estn dirigidas
a empresarios y trabajadores de la Gran, Mediana y pequea empresas y a todas
aquellas personas que se interesen por las temticas que abarcamos.
ArticuIo 5: El rea comercial ser la responsable del proceso de difusin, postulacin e
inscripcin de participantes a las actividades de capacitacin de nuestra OTEC.
ArtcuIo 6: El Organismo Tcnico de Capacitacin se guarda el derecho a negar el
servicio cuando, quien asista no cumpla con las medidas disciplinarias mnimas, exigidas
por nuestro organismo. Estas medidas son:
Quien asista a una actividad de capacitacin no debe estar bajo la
influencia del alcohol.
Quien asista a una actividad de capacitacin no debe encontrarse bajo los efectos
de las drogas, ni consumirlas en las dependencias donde se realiza la
actividad de capacitacin.
Quien asista debe guardar una actitud de respeto hacia sus compaeros y hacia el
lnstructor.

Quien asista a una actividad de capacitacin no debe manifestar conductas
inmorales u obscenas.

Otra causal para negar el servicio es, para quien asista a una actividad
de capacitacin y no se encuentre previamente inscrito, con sus datos registrados
en la ficha de inscripcin u ordenes de compras.
El Organismo Tcnico de Capacitacin, solicita a quienes se inscriban en cursos y/
o seminarios, llegar puntualmente a la actividad, considerndose hasta l5 minutos
despus de iniciada la clase, como perodo lmite apropiado para ingresar al saln.
Se solicita a los participantes mantener los telfonos mviles apagados o sin
volumen durante las clases, a fin de no interrumpir o distraer al relator y/o a los
dems participantes a la actividad.
TITULO III
DeI pago por concepto de capacitacin
ArtcuIo 7: Los costos asociados a las actividades de capacitacin contemplan la forma
prevista en el prrafo 4 de la Ley N l9.5l8.
ArtcuIo 8: El valor del programa es fijado de acuerdo a la cantidad de horas de
duracin, y las condiciones requeridas para impartir la actividad.
ArtcuIo 9: Aquellos contribuyentes que tengan una planilla anual de remuneraciones
menor a 45 UTM y mayor de 35 UTM, que registren cotizaciones provisionales
efectivamente pagadas, podrn deducir hasta 7 UTM en el ao. Aquellos contribuyentes
que tengan una planilla anual de remuneraciones imponibles que sea inferior a 35 UTM,
no tendrn derecho al crdito fiscal por costos de capacitacin efectuados para sus
trabajadores, con carga a la franquicia tributaria por capacitacin.
ArtcuIo l0:El pago del valor del programa se podr efectuar bajo alguna de las
siguientes formas:
a) Pago total al contado al momento de inscribirse.
b) Pago contra factura
c) Pago con cheque; un cheque al da, ms un cheque a 30 das.
d) Otros.
ArtcuIo ll: La renuncia a la actividad de capacitacin de algn participante, cualquiera
sea la causal, debe hacerse 48 horas antes del inicio de la actividad, de lo contrario, se
obliga al pago del l00% del valor de este.
ArtcuIo l2: El participante asistente en las actividades de capacitacin puede
manifestar de manera formal, su descontento con la actividad dentro de las primeras tres
clases del curso, detallando las razones de su descontento , para ello tiene a su
disposicin el correo servicioalcliente@linuxlatinamerica.com, donde podr expresar su
molestia y esta ser atendendida.
TITULO IV
De Ias evaIuaciones y certificaciones
ArtcuIo l3: Los participantes deben cumplir con las evaluaciones pertinentes a la
actividad de capacitacin, siempre y cuando esta as lo requiera.
ArtcuIo l4: Los participantes deben tener una asistencia mnima a las actividades de
capacitacin del 75%.
ArtcuIo l5: El Organismo Tcnico de Capacitacin slo entregar los certificados
pertinentes a los participantes habiendo estos cumplidos con los requisitos sealados en
el artculo l3 y l4 de este reglamento.
CAPITULO1
Introduccin
Asterisk
Que es Asterisk?
Asteriskesuna aplicacin desoftware libre(bajolicenciaGPL)deunacentraltelefnica(PBX).
ComocualquierPBX,sepuedeconectarunnmerodeterminadodetelfonosparahacerllamadas
entreseinclusoconectaraunproveedordeVoIPobienaunaRDSItantobsicoscomoprimarios.
MarkSpencer,de Digium,inicialmentecreAsteriskyactualmenteessuprincipaldesarrollador,
junto con otros programadores que han contribuido a corregir errores y aadir novedades y
funcionalidades. Originalmente desarrollado para el sistema operativo GNU/Linux, Asterisk
actualmentetambinsedistribuyeenversionesparalossistemasoperativosBSD,MacOSXyotros,
aunquelaplataformanativa(GNU/Linux)eslamejorsoportadadetodas.
Asterisk incluye muchas caractersticas anteriormente slo disponibles en sistemas costosos
propietariosPBXcomobuznde voz,conferencias,IVR,distribucinautomticadellamadas,yotras
muchasms.Losusuariospuedencrearnuevasfuncionalidadesescribiendoundialplanenellenguaje
descriptdeAsteriskoaadiendomdulosescritosenlenguajeCoencualquierotrolenguajede
programacinsoportadoporLinux.
Para conectar telfonosestndar analgicos sonnecesarias tarjetas electrnicastelefnicasFXS o
FXOfabricadasporDigiumuotrosproveedores,yaqueparaconectarelservidoraunalneaexterna
nobastaconunsimplemdem.
QuizlomsinteresantedeAsteriskesquesoportamuchosprotocolosVoIPcomopuedenserSIP,
H.323,IAXyMGCP.AsteriskpuedeinteroperarconterminalesIPactuandocomounregistradory
comogatewayentreambos.
LejosdepodercompetirconlascompaasquecomercializansolucionesdeVoIPHw/Swdealta
calidad como AlcatelLucent, Cisco, Avaya Nortel, Asterisk se empieza a adoptar en algunos
entornoscorporativoscomosolucindebajocostejuntoconSER(SipExpressRouter).
Algunas caractersticas de asterisk
CreacindeanexosIP(SIP).
Control,Monitoreoentiemporeal,CDR.
Accesoabasededatos(AstDB,MySQLparaalmacenarelCDR)
InterfazGrafica.
RespuestaInteractivadeVoz(IVR)
Grabacindeconversaciones.
Correodevozemail.
Diagramas (topologa A rquitectura)
FiguraN1
FiguraN2
FiguraN3
FiguraN4
FiguraN5
Protocolos y Codecs usados Telefona IP
Protocolos (SIP, IAX)
SIP(SessionInitiationProtocol)
SessionInitiationProtocol(SIPoProtocolodeIniciodeSesiones)esunprotocolodesarrolladoporel
IETFMMUSICWorkingGroupconlaintencindeserelestndarparalainiciacin,modificaciny
finalizacin de sesiones interactivas de usuario donde intervienen elementos multimedia como el
video,voz,mensajerainstantnea,juegosonlineyrealidadvirtual.EnNoviembredelao2000,SIP
fueaceptadocomoelprotocolodesealizacinde3GPPyelementopermanentedelaarquitectura
IMS(IPMultimediaSubsystem).SIPesunodelosprotocolosdesealizacinparavozsobreIP,otro
esH.323.(VaseCapitulo4)
IAX2(InterAsteriskeXchangeprotocol)
IAX(InterAsteriskeXchangeprotocol)esunodelosprotocolosutilizadoporAsterisk,unservidor
PBX (centralita telefnica) de cdigo abierto patrocinado por Digium. Es utilizado para manejar
conexiones VoIP entre servidores Asterisk, y entre servidores y clientes que tambin utilizan
protocoloIAX.
ElprotocoloIAXahoraserefieregeneralmentealIAX2,lasegundaversindelprotocoloIAX.El
protocolooriginalhaquedadoobsoletoenfavordeIAX2.(VaseCapitulo5)
Codecs (G711, G729, GSM, IBLC)
Dispositivos VoIP
Telfonos IP
Softphone
Adaptadores (ATA)
Gateways (E1-SIP, GSM-SIP)
Hadware Digium
CAPITULO2
Seleccin Hardware Servidor
e
Instalacin S.O
Este captulo nos ayudara a preparar el sistema para la instalacinde Asterisk. Este funciona en
muchas plataformas y sistemas operativos, mas nosotros elegimos mantener las cosas simples y
permanecerenunanicaplataformaydistribucindeLinux.VamosusarladistribucinCentOSen
estecurso.Lasinstruccionesrealizadasenestecursopuedenfuncionarconotrasdistribuciones,pero
estasnohansidotesteadaspornosotros.
Hardware Mnimo
Asteriskpuedeserintensivoenelusodeprocesador,puesusaelpropioprocesadordelservidor(PC)
donde fue instalado para realizar el procesamiento de los canales de voz. Si usted estuviese
construyendounsistemacomplejoconcargaelevadaesimportanteentenderesteconcepto.
Para construir su primer PBX Asterisk unprocesador compatible con Intel igual osuperior a un
PentiumIII600Mhzcon128MBRAMessuficienteparaunsistemadepruebasquesoportehasta5
llamadassimultaneasydondepodamosexplorartodaslasfuncionalidadesdeAsterisk,respectoal
sistemaoperativopodramosoptarporunadistribucindeLinuxcomoCentos4.6,conelobjetivode
ntercomunicarnosconlaredpublicadetelefonia(PSTN)necesitaremosdeunatarjetatelefnicade
hasta 4 canales ZAP, preferente mente una TDM400P con 4 mdulos FXO correspondientes a 4
lineasanalogas.
Asterisknorequieremuchoespacioendisco,cercade100MBsecalculaparaelsistemacalculado,
dondeSIrequerimosespacioesparaelalmacenamientodemensajesdevoz,llamadasgrabadas,CDR
(Basesdedatos).

SiustedusanicamenteVOIP,ningnotrohardwareesnecesario.Sepuedeusarsoftfonescomolos
deCounterpath(XLite)yrealizarentroncamientohaciaproveedoresdetelefonaIP.
AlgunasaplicacionesdeAsteriskcomoelMeetmerequierenunafuentedeclockparaproveerla
temporizacin.NormalmentelafuentedeclockdeAsteriskesunaplacaTDM.Sisusistemanotiene
unaplacaTDM,ustedpuedeusarundriverztdummyqueusaelUSBcomofuentedetemporizacin.
Una pista: Usted puede usar una placa de fax/modem con chipset Intel 537 o MD3200, ella se
comportacomounaDigiumX100P.
Hardware Minimo-Mediano
UnservidorconunprocesadorSempronoCeleronde1Ghzcon256MBdeRAMseriasuficiente
paraunsistemaasteriskquepodrasoportarde5a10llamadassimultaneasconmximodostarjetas
detelefonade4canalesanalgicoscadaunoyunS.OLinuxkernelversin2.6(CentOS4.6).
Hardware Mediano-Grande
Paraunsistemamayorquelogresoportarde10a24llamadassimultaneasloidealesunservidorcon
procesadorPentium4oAthlonde3Ghzcon512MBRAMyeneseunatarjetadehasta24canales
comolaDigiumTDM2406Bqueposee24mdulosFXOpara24lineasanlogas.
Hardware Mediano-Grande
Paraunsistemaquerealice30llamadassimultaneasamaslomasrecomendableessoportarsesobre
sistemasXeonconopcindesegundaCPUademsdetarjetasDigiumTE120PyhastalaTE410Po
similares(Tarjetasdigitalescapacesdesoportade30a120canalesdigitalesdecomunicacin).Para
arquitecturassuperioresesnecesarioelusodemltiplesservidoresyunaarquitecturadistribuida.
Endefinitivalamedicindelhardwareautilizartienedirectarelacinconlacantidaddellamadas
simultaneasarealizarylacantidaddecanalesyaseaanlogosodigitalesausarennuestroservidor.
Montando su sistema
ElegirhardwarenecesarioparaAsterisknoesmuycomplicado.Ustednoprecisadeunatarjetade
vdeo sofisticada o perifricos adicionales. Puertos seriales, paralelos y USB pueden ser
completamente deshabilitados desde la BIOS. Una buena tarjeta de red es esencial para nuestro
sistema.SiustedestuvieseusandounadelastarjetasdetelefonadeDigium,seriabuenoverificarlas
instruccionesdesutarjetamadreparadeterminarsilosSlotsPCIsoportanestastarjetasdetelefona.
Muchas tarjetas madres compartirn interrupciones (IRQ's) en slots PCI. Los conflictos de
interrupciones(IRQ's)sonunafuentepotencialdeproblemasdecalidaddeaudioenAsterisk. Una
maneradeliberarIRQsesdeshabilitardesdeelBIOStodoloquenofueranecesario.
IRQ compartidas
Muchas tarjetas de telefona como la X100P por ejemplo pueden generar grandes cantidades de
interrupciones, atenderlas toma tiempo.Losdriverspuedennoconseguirhacerloatiemposi otro
dispositivoestuvieseprocesandolamismaIRQcompartidaylalineadeIRQnopodrrecibirotra
interrupcin. Esta problemtica tiende a funcionar mejor y ser resuelta en parte en sistemas
multiprocesador. En sistemas monoprocesador se puede tener muchas perdidas de interrupcin y
clockdesfasado.CualquieradelastarjetasdetelefonadeDigiumyotrastarjetasdetelefonapueden
estar sujetas al mismo problema. Comola entregaprecisa de IRQs es unanecesidadprimariaen
telefona, usted no debe compartir IRQs con nada. No siempre ocurre esto, pero se debe prestar
atencinalproblema.SiseestusandouncomputadordedicadoparaAsterisk,deshabiliteelmayor
nmerodedispositivosqueustednovaausar.
LamayoradelasBIOSpermitequeustedmanualmentedesignelasIRQs.VallasehastalaBIOSy
observe en la seccin de IRQs. Es posible que usted consiga configurar las interrupciones
manualmenteporslot.
Escogiendo una distribucion de Linux.
Asterisk fue originalmente desarrollado para ejecutarse bajo plataformas con sistema operativo
Linux,Ahora puedeserusadoenBSD yOSX.Noobstanteesto,lastarjetastelefonicasDigium
fuerondiseadasparatrabajarconLinuxi386.SiustedfuesenuevoconAsteriskprocureusarLinux.
Requisitos de Linux
VriasdistribucionescomoRedHat,Mandrake,Fedora,Debian,SlackwareyGentoofueronusadas
conAsterisk.
DiseotabladeparticionamientotentativaparainstalacindeAsterisk
Asterisk como sistema no requiere mucho espacio en disco, cerca de 100 MB se calcula para el
sistemacompiladoeinstalado,dondeSIrequerimosespacioesparaelalmacenamientodemensajes
devoz,llamadasgrabadas,CDR (Basesdedatos).Porlotantonuestratabladeparticionamiento
deberacontarcomomnimocon4particiones(Tomandocomoejemploundiscode80GB):
En el proceso de instalacin se debe considerar una particin ms asignada para memoria de
intercambioSWAP,eltamaodeestadebersereldobledelamemoriaRAMexistente.
[root@asterisk ~]$ df -h
S.ficheros Tamao Usado Disp Uso% Montado en
/dev/sda1 100M 15M 85M 15% /boot
/dev/sda2 20G 5G 15G 25% /
/dev/sda3 55G 10G 45M 70% /var
tmpfs 248M 0 248M 0% /dev/shm
Eleccinpaquetesydependenciasnecesariasparacompilacindeasterisk.
AntiguamenteexistanalgunospaquetesqueerannecesariosparainstalarAsteriskcomoelreadliney
readlinedevelquenosonnecesarioshoy.Noexistehardwareespecialtalcomounaplacadesonido
yelnicopaquetenecesarioeselpropioAsterisk.SiustedestuvierausandohardwaredeDigiumo
ztdummy,ustedva aprecisardelpaquetezaptel.Elpaquetezaptelesnecesarioparaquealgunas
aplicaciones sean includas en tiempo de compilacin. Si usted escoge compilar Asterisk y no el
zaptel, pero descubre que esta faltando una aplicacin relacionada al paquete zaptel (Como el
Meetme()),ustedtendraquecompilarelzaptelyentoncesseranecesariorecompilarAsteriskpara
que la aplicacin sea includa. Para interfaces T1 y E1 el paquete libpri es necesario. Bison es
necesarioparacompilarelAsterisk.Lospaquetesdedesarrolloncursesyncursesdevelopmentson
necesariossiustedquisieraconstruirnuevasherramientas(Comoelastman).Lasbibliotecaszliby
zlibdevel son necesarias ahora para compilar. Esto se debe a la adhesin del protocolo DUNDi
(DistributedUniversalNumberDiscovery).
LospaquetesnecesitadosparaelsistemaoperativoLinuxCentOSsern:
Kernelsourcesyheaders
gccysusdependencias
bison(necesarioparalosarchivosdeconfiguracion.
ncurses(necesarioparalaconsolaCLI)
opensslyopenssldevolibssldev
libnewt(paraaplicacionestalcomozttool)
libyzlibdevel
La recomendacin es que durante el proceso de instalacin del sistema operativo se debern
seleccionarlossiguientespaquetes:
SeccinDesarrollo:
*HerramientasdeDesarrollo(TODO)
*DesarrollodeSoftwareAnticuado(TODO)
Comoherramientasadicionalestambinsepodrinstalar:
SeccinServidores:
*ServidorWeb
*ServidordeCorreo
*ServidordeBasesdeDatos(MySQLy/oPostgres)
CAPITULO3
Descarga, Compilacin Instalacin de Asterisk
Anteriormenteenelcapitulo2vimosdetallesrespectoalapreparacindeunsistemaparainstalar
Asteriskenel,ademsdeobservacionesyconsideracionesimportantesalahoradeelegirhardware,
enelpresentecapituloveremoscomoobtenereinstalarAsteriskenelsistemaelegidoyutilizando
unadistribucindeLinuxbasadaenRedHat(CentOS)yaqueeslamascomnytambinutilizada
porelequipodedesarrolladoresdeDigium.
Paquetes requeridos relacionados con Asterisk
LainstalacindeAsteriskestacompuestaporcomomnimo4paquetesbsicosquesenecesitarano
noensutotalidadsegnlanecesidadespecificadenuestroproyecto,estosson:asterisk,zaptel,libpri
yasteriskaddons.
Cadaunodelospaquetestienenlossiguientescontenidos:
Asterisk: Incluyeelprogramaprincipaldeasterisk.
Zaptel: IncluyelosdriversparalastarjetastelefnicasZaptel.
LibPri: IncluyelaslibrerasPRInecesariasparaconectarsealRTPC.
Asteriskaddons: Incluyemdulosadicionalesaasterisk,comoporejemploelmodulo
MySQLparaconexinabasesdedatosdeestetipo.
Elnicopaqueteestrictamentenecesarioesasterisk,yaquelibprisolosenecesitaraencasodeque
vallamosautilizarinterfacesPRIyzaptelencasodeutilizartarjetasZAPTEL,encasoderequerir
utilidades que necesiten fuente de temporizacin y no tengamos hardware Zaptel instalado, es
requeridoinstalarelpaquetezaptelactivandopordefectoelmoduloztdummy.
Descarga paquetes de Asterisk
Ladescargadeasteriskysuslibreriaspuedenrealizarseenformadearchivostar.gz,paradescargar
estosarchivoslospodemosencontraren:
http://ftp.digium.com/pub/
Lanomenclaturadeestospaquetesseraasteriskversion.tar.gzporejemplo:
Asterisk > asterisk1.4.x.tar.gz
Zaptel > zaptel1.4.x.tar.gz
Libpri > libpri1.4.x.tar.gz
Asteriskaddons > asteriskaddons1.4.x.tar.gz
Esta descarga se puede realizar atraves de un navegador web como cambien desde la linea de
comandosejecutandoelcomando'wget':
wgethttp://downloads.digium.com/pub/zaptel/releases/zaptel1.4.x.tar.gz
wgethttp://downloads.digium.com/pub/asterisk/releases/asterisk1.4.x.tar.gz
wgethttp://downloads.digium.com/pub/libpri/libpri1.4.x.tar.gz
wgethttp://downloads.digium.com/pub/asterisk/releases/asteriskaddons1.4.x.tar.gz
Sifuerondescargadoslospaquetes.tar.gz,estossedescomprimenejecutandoelcomando'tar'desde
lalineadecomandos:
tarxvzfarchivocomprimido.tar.gz
Esto creara un directorio con el nombre y versin del paquete descomprimidoy dentro estar el
contenidodelpaquete.
Instalacin Asterisk 1.4
Lainstalacindelospaquetesdeasterisksedeberealizarenelsiguienteorden:
1ero. zaptel
2do. libpri
3ero. asterisk
4to. asteriskaddons
Compilacin e Instalacin Zaptel
ParacompilareinstalareldriverZaptelsedebenseguirlossiguientespasoscomousuario'root'.
# cd /usr/src/
# wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.x.tar.gz
# cd /usr/src/zaptel-1.4.x
# ./configure
# make
# make install
# make config
Compilacin e Instalacin Libpri
ParacompilareinstalarLibprisedebenseguirlossiguientespasoscomousuario'root'.
Compilacin e Instalacin Asterisk
ParacompilareinstalarAsterisksedebenseguirlossiguientespasoscomousuario'root'.
Compilacin e Instalacin Asterisk-Adoons
ParacompilareinstalarAsteriskAdoonssedebenseguirlossiguientespasoscomousuario'root'.
Directorios Usados
Acontinuacinlosarchivosydirectoriosmasimportantescreadosenelprocesodeinstalacin.
/etc/asterisk
Enestedirectorioseencuentrantodoslosarchivosnecesariosparaconfigurarlagrancantidadde
serviciosqueAsteriskprovee.Revisaremoslosmasimportantes.
asterisk.conf
Configuraciones generales de la ubicacin de directorios de archivos de configuracion,
# cd /usr/src/
# wget http://downloads.digium.com/pub/libpri/libpri-1.4.x.tar.gz
# cd /usr/src/libpri-1.4.x
# make
# make install
# cd /usr/src/
# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-
1.4.x.tar.gz
# cd /usr/src/asterisk-1.4.x
# ./configure
# make
# make install
# make samples
# make config
# cd /usr/src/
# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-
1.4.x.tar.gz
# cd /usr/src/asterisk-addons-1.4.x
# ./configure
# make
# make install
# make samples
mdulos compilados, voicemails etc. En general es buena idea no modificar estas
configuraciones,salvocasosespeciales.
cdr.conf
Configuracionesreferentesal"CallDetailRecord".LosCDRsonsumamenteimportantes
para las compaas telefnicas. Modificar datos en este archivo puede repercutir en la
integridaddelosCDRsinoseestasegurodeloquesehace.Silainstalacinesnicamente
deprueba,olosCDRnosonmateriaimportante,nohayproblema.
codecs.conf
AmenosqueutilicesSPEEX,oquierashacercosasespecialesconlaformaenlaquelos
codecssecomportan,esmejornomodificarestearchivo.
extensions.conf
TalvezelarchivomasimportantedeAsterisk.Enestearchivosetomanlasdecisionesde
ruteodelasllamadas.Masadelanteveremoslasintaxisdeestearchivo.
features.conf
Estearchivoestambinmuyimportante.Permitehabilitaryconfigurarserviciosgenricos
deunPBXcomolatransferenciaasistidaymonitoreodellamadas.
iax.conf
Importantearchivoparaelfuncionamientodelcanalchan_iaxquelepermiteaAsterisk
interactuarconotrosdispositivosIAX,incluyendootrosPBXAsterisk.
logger.conf
Queniveldeverbosidaddebentenerlosmensajesdelogyadondedebenserenviados.
manager.conf
Configuracin del importante servicio AMI (Asterisk Manager Interface) que permite
conectarnosaunsocketTCPymanejarelPBX.Deciertaformaseencuentrarelacionadocon
elarchivohttp.conf,queproveedeunainterfacesparaprogramaraplicacionesconAJAXque
secomuniquendirectamenteconAMI.
modules.conf
Archivo sumamente importante. Determina que mdulos sern cargados por Asterisk al
iniciar.Esfrecuentequecuandoseinstalaasteriskporprimeravez,noarranquedebidoaque
nopuedecargarunmduloparaelquenotenemossoporte.Estosesolucionacomentandola
lneadelmduloenestearchivo.
sip.conf
Anlogodelarchivoiax.confparaelprotocoloSIP
zapata.conf
ConfiguracindeloscanalesZap.Lasconfiguracionesdeestearchivodebencoincidirconel
hardwareinstaladoylaconfiguracindeldriverzaptel.
voicemail.conf
Configuracindelascasillasdevozcreadasparalosrespectivosanexos.
meetme.conf
Configuracindelassalasdeconferencias.
/var/log/asterisk
EnestedirectorioseencuentranlosarchivosderegistrodelasoperacionesdeAsterisk.Definamos
cadaunodelosarchivosencontradosdentrodeestedirectorio.
cdr.db
EstearchivoseencuentradisponiblesisecuentaconelCDRhandlerparalabasededatos
SQLite.Elarchivocontienelabasededatosdelosregistrosdelasllamadas.
event_log
RegistrodeeventossucedidosenelPBX.
full
Creadoconlaintencindecontenertodoslosmensajesdedebugdelsistema.
messages
Contieneunlistadodelosmensajesdewarning,debugydemsnivelesdelogeo.
queue_log
Archivoutilizadoprincipalmenteporlaaplicacinapp_queue.
/var/lib/asterisk
Directorio con archivos de audio, llaves RSA, scripts AGI(Asterisk Gateway Interface), base de
datosastdbyarchivosparaelpequeoservidorHTTPparaAJAM(AsynchronusJavascriptAsterisk
Manager).Aquiveremosunadescripcindecadaunodelosdirectorios,yaquelosarchivospueden
serirrelevantes.
agibin/
Aqui se contienen programas enC,PHP,Pythonocualquierotrolenguajeconel que se
pretendainteractuardesdeAsterisk.
keys/
DirectorioquecontienellavesRSAparalaautenticacindellamadasconelprotocoloIAX2

sounds/
Directorio con todos los sonidos que sern utilizados por aplicaciones como Playback() y
Background()
Paraasegurarnosqueelprocesodeasteriskyzapteliniciandeformaautomticaconelarranquedel
servidoryencasodereiniciodelS.Ocompletoyparaelprocesodeinicioodetencindeforma
manualdelserviciodebemosejecutarlossiguientescomandosenlainterfazdelineadecomandos:
Para acceder al monitor del sistema o tambien conosido como 'CLI>' ejecutamos el siguiente
comando:
# service zaptel start
# service asterisk start
# chkconfig zaptel on
# chkconfig asterisk on
# asterisk -r
CAPITULO4
Protocolo SIP
SIP (Session Initiation Protocol)
SessionInitiationProtocol(SIPoProtocolodeIniciodeSesiones)esunprotocolodesarrolladoporel
IETFMMUSICWorkingGroupconlaintencindeserelestndarparalainiciacin,modificaciny
finalizacin de sesiones interactivas de usuario donde intervienen elementos multimedia como el
video,voz,mensajerainstantnea,juegosonlineyrealidadvirtual.EnNoviembredelao2000,SIP
fueaceptadocomoelprotocolodesealizacinde3GPPyelementopermanentedelaarquitectura
IMS(IPMultimediaSubsystem).SIPesunodelosprotocolosdesealizacinparavozsobreIP,otro
esH.323.
Funcionamiento del protocolo
ElprotocoloSIPpermiteelestablecimientodesesionesmultimediaentredosomsusuarios.Para
hacerlosevaledelintercambiodemensajesentrelaspartesquequierencomunicarse.
Agentes de Usuario
Los usuarios, que pueden ser seres humanos o aplicaciones de software, utilizan para establecer
sesionesloqueelprotocoloSIPdenomina"Agentesdeusuario".Estosnosonmsquelospuntos
extremosdelprotocolo,esdecirsonlosqueemitenyconsumenlosmensajesdelprotocoloSIP.Un
videotelfono,untelfono,unclientedesoftware(softphone)ycualquierotrodispositivosimilares
para el protocolo SIP un agente de usuario.ElprotocoloSIPnoseocupadelainterfazde estos
dispositivos con el usuario final, slo se interesa en los mensajes que estos generan y cmo se
comportanalrecibirdeterminadosmensajes.
Losagentesdeusuariosecomportancomoclientes(UAC:UserAgentClients)ycomoservidores
(UAS:UserAgentServers).SonUACcuandorealizanunapeticinysonUAScuandolareciben.
PorestolosagentesdeusuariodebenimplementarunUACyunUAS.
Ademsdelosagentesdeusuarioexistenotrasentidadesqueintervienenenelprotocolo,estosson
losServidoresdeRegistrooRegistrar,losProxyylosRedirectores.Acontinuacinsedescribesu
finalidad.
Servidores de Registro o Registrar
ElprotocoloSIPpermiteestablecerlaubicacinfsicadeunusuariodeterminado,estoesenqu
punto dela redest conectado. Para ellosevaledelmecanismoderegistracin.Estemecanismo
funcionacomosigue:
Cadausuariotieneunadireccinlgicaqueesinvariablerespectodelaubicacinfsicadelusuario.
Una direccin lgica del protocolo SIP es delaformausuario@dominio esdecir tiene lamisma
forma que una direccin de correo electrnico. La direccin fsica (denominada "direccin de
contacto")esdependientedellugarendondeelusuarioestconectado(desudireccinIP).Cuando
un usuario inicializa su terminal (por ejemplo conectando su telfono o abriendo su software de
telefonaSIP)elagentedeusuarioSIPqueresideendichoterminalenvaunapeticinconelmtodo
REGISTERaunServidordeRegistro(Registrareningls),informandoaqudireccinfsicadebe
asociarseladireccinlgica delusuario.Elservidorderegistrorealizaentoncesdichaasociacin
(denominada binding). Esta asociacin tieneun perododevigencia ysi noesrenovada, caduca.
Tambin puede terminarse mediante una derregistracin. La forma en que dicha asociacin es
almacenadaenlarednoesdeterminadaporelprotocoloSIP,peroesvitalqueloselementosdelared
SIPaccedanadichainformacin.
Servidores Proxy y de Redireccin
Unconjuntodeusuariosquepertenecenaunacompaaoproveedordeserviciosdecomunicaciones,
conformanundominio.Estedominio,queseindicaenunadireccinSIPdespusdelcaracter"@"es
normalmenteatendidoporunservidor(omsdeuno).Esteservidorrecibelaspeticioneshaciasus
usuarios. Este servidor ser el encargado de determinar la direccin fsica del usuario llamado y
puedeactuardedosmaneras:
ComoProxy,o
ComoRedirector(Redirect).
Al actuar como Proxy el servidor determina la ubicacindel usuariollamadoy enva lapeticin
original a la direccin fsica del usuario llamado. Las respuestas del agente de usuario llamado
tambinsonenviadasalproxyquelasremitehaciaeloriginante.
AlactuarcomoRedirectorelservidorgeneraunarespuestaqueindicaaloriginanteladireccinfsica
delusuarioquebuscaparaqueestepuedarealizarunapeticinyenviarlaaladireccinfsicadel
usuariodeseado.
UnmismoservidorpuedeactuarcomoRedirectorocomoProxydependiendodelasituacin.
Un servidor que recibe laspeticiones destinadasaundominioespecficoesdenominadoservidor
entrante(InboundServer).
Eshabitualtambin,queexistaunservidorquerecibalaspeticionesoriginadasporlosusuariosdeun
dominiohaciaotrosdominios.EsterecibeelnombredeServidorSaliente(OutboundServer).
Un agente de usuario normalmente encamina todos sus pedidos hacia un servidor de su propio
dominio. Es este quien determina (por sus propios medios o valindose de otros servidores) las
ubicacionesdelosusuariosquesonllamadosporelagentedeusuarioencuestin.
Canales SIP
LoscanalesSIP(SessionInitiationProtocol) sonloscanalesutilizadosporlosdispositivosIPque
usanesteprotocolo,aadirnuevosusuariosoconectarconproveedoresSIP.Laconfiguracinpara
estoscanales seencuentraen el elarchivo'sip.conf'ubicadoeneldirectorio'/etc/aserisk/' elcual
debersereditadocomousuario'root'.
Elarchivodeconfiguracin'sip.conf'seleedeformasecuencialdesdearribahaciaabajo.Laseccin
[general]contiene todos los parmetrosdeconfiguracingeneralylaseccin[4000]contienelos
parmetrosdeconfiguracinparaelanexoodispositivoSIP4000enparticular.Acontinuacinun
ejemplopracticoparaconfiguracindeestearchivo:
EngenerallosservidoresSIPescuchanenelpuerto5060UDP.Portantoconfiguramosport=5060.
Enalgunoscasos,porejemplosiutilizamosSER(SipExpressRouter)conAsteriskdebemoscambiar
estepuerto.
DNSesunaformadeconfigurarunadireccinlgicaparaquepuedaserresuelta.Estopermiteque
lasllamadasseanenviadasadiferenteslugaressinnecesidaddecambiarladireccinlgica.Usando
el DNS SRV se ganan las ventajas del DNS mientras que deshabilitandolo no es posible enrutar
llamadasenbaseanombrededominios.Convienetenerloactivado,portantoseponeladirectiva
srvlookup=yes
Cadaextensinestdefinidaporunuserousuario,unpeeroproveedorounfriendoamigoyviene
definidaconunnombreentrecorchetes[].
El tipo (type) "user" se usa para autenticarllamadasentrantes,"peer"para llamadas salientes y
"friend" para ambas. En nuestro caso hemos definido una extensin 4000 como "friend". Puede
realizaryrecibirllamadas.
Secreteslacontraseausadaparalaautenticacin.Enestecasoser"password".
Se puede monitorizar la latencia entre el servidor Asterisk y el telefono con qualify=yes para
; sip.conf
[general]
context=default
port=5060 ; Puerto UDP en el que responder el Asterisk
bindaddr=0.0.0.0 ; Si queremos especificar que Asterisk est en una IP (si
un servidor tiene 3 IPs por ej.) 0.0.0.0 vale para cualquiera
srvlookup=yes ; Habilita servidor DNS SRV
[4000]
type=friend
secret=password
qualify=yes ; Tiempo de latencia no superior a 2000 ms.
nat=yes ; El telefono usa NAT
host=dynamic ; El dispositivo se registra con una IP dinamica
canreinvite=no ; Asterisk por defecto trata de redirigir
context=internal ; El contexto asignado para el anexo
determinarcuandoeldispositivopuedeseralcanzado.EnestecasoAsteriskconsiderapordefecto
que que un dispositivo est presente si su latenciaesmenorde2000ms(2segundos). Se puede
cambiarestevalorponiendoelnumerodemilisegundosenvezdeyes.
SiunaextensinestdetrsdeundispositivoquerealizaNAT(NetworkAddressTranslation)como
un router o firewall se puede configurar nat=yes para forzar a Asterisk a ignorar el campo
informacindecontactoyusarladireccindesdelaquevienenlospaquetes.
Siponemoshost=dynamicquieredecirqueeltelefonosepodrconectardesdecualquierdireccin
IP.PodemoslimitaraquedichousuariosolopuedaaccederconunaIPoconunnombrededominio.
Siponemoshost=staticnoharafaltaqueelusuarioseregistrarconlacontraseaproporcionadaen
"secret",
Tambinse ha puesto canreinvite=no. En SIP los invites se utilizan para establecer llamadas y
redirigirelaudioovdeo.Cualquierinvitedespusdelinviteinicialenlamismaconversacinse
consideraunreinvite.
Cuandodosusuarioshanestablecidolacomunicacinconcanreinvite=yes(pordefecto)lospaquetes
RTP de audio podran ser enviados extremo a extremo sin pasar por el servidor Asterisk. Esto,
normalmente, no suele ser conveniente en casosenlos quehayaNATenalgunodelosclientes.
(NAT=yes).
Usandocanreinvite=nosefuerzaaAsteriskaestarenmedionopermitiendoquelospuntosfinales
intercambienmensajesRTPdirectamente.
Detodosmodos,existennumerosascondicionesenqueAsterisknopermiteelreinviteapesardeque
nopongamosestacondicinyaquenecesitacontrolarelflujoRTP.Porejemplo:Silosclientesusan
codecsdiferentes,sihayopcionesdeMusicOnholdotemporizadoresenlallamada,etc...
Porltimocontext=internalindicaelcontextodondeestlasinstruccionesparadichaextensin.Esto
estrelacionadoconelcontextodelarchivoextensions.confquemarcaelplandenumeracinpara
esecontexto.Portantoelcontextointernaldebeexistirenelficheroextensions.confodelocontrario
deberamoscrearlo.Variosextensionespuedentenerelmismocontexto.
Opciones avanzadas:
Explicacinyopciones
PermitirunaIP
NopermitirunaIP
Contraseaparaelregistro
md5secret md5secret
Defineungrupodellamadas
Limitedellamadassimultaneasparauncliente
Extensindelcontestador
Paradeterminarcuandoeldispositivopuedeseralcanzado
User Peer
context context Indicaelcontextoasociadoeneldialplanparaunusuarioopeer
permit permit
deny deny
secret secret
Contraseaencriptadaconmd5
dtmfmode dtmfmode Elmodoenelquesetransmitenlostonos.Puedenser
"RFC2833"o"INFO"
canreinvite canreinvite Con"no"sefuerzaaAsteriskanopermitirquelospuntosfinales
intercambienmensajesRTPdirectamente.
nat nat IndicasieldispositivoestdetrsdeunNATcon"yes"
callgroup callgroup
pickupgroup pickupgroup Defineelgrupodellamadasvalidasparaunaaplicacionpickup()
language language Definelassealesparaunpais.Debeestarpresenteenelarchi
voindications.conf
allow allow permitehabilitaruncodec.Puedenponersevariosenunmismo
usuarioPosiblesValores:
allow=all
disallow disallow permitedeshabilitaruncodec.Puedetomarlosmismosvalores
queallow
insecure insecure DefinecomomanejarlasconexionesconpeersTienelossiguien
tesvaloresvery|yes|no|invite|portPordefectoes"no"quequiere
decirquehayqueautenticarsesiempre.
trustpid trustpid SilacabeceraRemotePartyIDesdeconfianza.Pordefecto"no"
progressinband progressinband Sisedebengenerarsealesenbandasiempre.Pordefectonever
promiscredir promiscredir Permitesoportarredirecciones302.Pordefecto"no"
callerid Defineelidentificadorcuandonohayningunaotrainformacion
disponible
accountcode Losusuariospuedenestarasociadosconunaccountcode.Se
usaparafacturacion.
amaflags SeusaparaguardarenlosCDRytemasdefacturacin.Puede
ser"default","omit","billing",o"documentation"
incominglimit
restrictcid SeusaparaesconderelIDdelllamante.Anticuadayendesuso
mailbox
username SiAsteriskactuacomoclienteSIPesteeselnombredeusuario
quepresentaenelservidorSIPalquellama
fromdomain PoneelcampoFrom:delosmensajesSIP
regexten
fromuser Poneelnombredeusuarioenelfromporencimadeloquedigael
callerID
host direccinohostdondeseencuentraeldispositivoremoto.Puede
tomarvalores:
UnaIPounhostconcreto
"dynamic"conloquevaldracualquierIPperonecesitacontra
sea
"static"valecualquierIPperonoesnecesariocontrasea
port PuertoUDPenelqueresponderelAsterisk
qualify
defaultip IPpordefectodelclientehost=cuandoesespecificadocomo
"dynamic"
rtptimeout Terminalallamadacuandollegaaesetimeoutsinohahabido
trficortp
rtpholdtimeout Terminalallamadacuandollegaaesetimeoutsinohahabido
trficortp"onhold"
EjemplopracticocreacindeunanexoSIP:
Unavezcreadoelanexoenelarchivo'sip.conf'esnecesariorecargarlaconfiguracinalsistema,
paraestoejecutaremosdentrodelainterfazCLIelcomando'sipreload'yparaobservarsirealmente
secargolaconfiguracionejecutamoselcomando'sipshowpeers':
sipreload
sipshowpeers
PararegistraruntelfonoIPatravessuinterfazwebgenrica,sedebenseguirlossiguientespasos:
1.AsegurarnosqueletelfonotomedireccinIPdeformadinmica(DHCP).
2.AveriguarladireccinIPquetomoeltelfonoyescribirlaenlabarradedireccionesdeun
navegadorwebcualquiera(PorEj.Firefox).
3.Ingresarcontraseayaccederalainterfazwebdeconfiguracin.
4.Ubicarlaseccindeconfiguracinparaunanexosipeingresardatoscomo:
UsuarioSIP.
Contrasea.
DireccinIPdelservidorAsterisk.
etc.
OBS.Paramasdetallesconsultarinstruccionesenmanualdeusuariodeltelfonocorrespondiente.
[root@asterisk ~]# asterisk -r
Asterisk 1.4.x, Copyright (C) 1999 - 2007 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
=========================================================================
Connected to Asterisk 1.4.x currently running on asterisk (pid = 19496)
asterisk*CLI> sip reload
Reloading SIP
== Parsing '/etc/asterisk/sip.conf': Found
asterisk*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
4000/4000 (Unspecified) D N 0 UNKNOWN
; sip.conf
[4000]
context = anexos
dtmfmode = rfc2833
disallow = all
allow = ulaw
allow = ilbc
allow = gsm
type = friend
host = dynamic
username = 4140
Secret = 4140
mailbox = 1000
callerid = "Anexo 4000" <4000>
qualify = yes
nat = yes
Unavezcreadoyregistradoelanexo,nosfaltaraunsolopaso.Estepasoeselquenospermitir
comunicarnoscondichoanexoenotraspalabrasnosfaltaunarutadediscadohacianuestroanexo,
estarutasecreaenelarchivodeconfiguracin'extencions.conf'yformapartedenuestroDialPlan.
(DialPlanqueposteriormenteexplicaremosmasadelanteenestedocumento).
Guardamos los cambios y salimos del archivo, ingresamos en la consola CLI y ejecutamos el
comandoparareleerloscambiosrealizadosenelarchivo'extensions.conf':
asteriskr
extensionsreload
; extensions.conf
[anexos]
exten => 4000,1,Dial(SIP/4000,20)
exten => 4000,2,Hangup
[root@asterisk ~]# asterisk -r
Asterisk 1.4.x, Copyright (C) 1999 - 2007 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
=========================================================================
Connected to Asterisk 1.4.x currently running on asterisk (pid = 19496)
asterisk*CLI> extensions reload
CAPITULO5
Protocolo IAX
IAX (Inter-Asterisk eXchange protoco)
IAX(InterAsteriskeXchangeprotocol)esunodelosprotocolosutilizadoporAsterisk,unservidor
PBX (centralita telefnica) de cdigo abierto patrocinado por Digium. Es utilizado para manejar
conexiones VoIP entre servidores Asterisk, y entre servidores y clientes que tambin utilizan
protocoloIAX.
ElprotocoloIAXahoraserefieregeneralmentealIAX2,lasegundaversindelprotocoloIAX.El
protocolooriginalhaquedadoobsoletoenfavordeIAX2.
Propiedades Bsicas
IAX2esrobusto,llenodenovedadesymuysimpleencomparacinconotrosprotocolos.Permite
manejarunagrancantidaddecdecsyungrannmerodestreams,loquesignificaquepuedeser
utilizadoparatransportarvirtualmentecualquiertipodedato.Estacapacidadlohacemuytilpara
realizarvideoconferenciasorealizarpresentacionesremotas.
IAX2utilizaunnicopuertoUDP,generalmenteel4569,paracomunicacionesentrepuntosfinales
(terminalesVoIP)parasealizacinydatos.Eltrficodevozestransmitidoinband,loquehacea
IAX2unprotocolocasitransparentealoscortafuegosyrealmenteeficazparatrabajardentroderedes
internas. En esto se diferencia de SIP, que utiliza una cadena RTP outofband para entregar la
informacin.
IAX2 soporta Trunking (red), donde un simple enlace permite enviar datos y sealizacin por
mltiplescanales.CuandoserealizaTrunking,losdatosdemltiplesllamadassonmanejadosenun
nicoconjuntodepaquetes,loquesignificaqueundatagramaIPpuedeentregarinformacinpara
msllamadassincrearlatenciaadicional.EstoesunagranventajaparalosusuariosdeVoIP,donde
lascabecerasIPsonungranporcentajedelanchodebandautilizado.
El Inicio de IAX
El protocolo IAX2 fue creado por Mark Spencer para la sealizacin de VoIP en Asterisk. El
protocolo crea sesiones internas y dichas sesiones pueden utilizar cualquier cdec que pueda
transmitir voz o vdeo. El IAX esencialmente provee control y transmisin de flujos de datos
multimediasobreredesIP.IAXesextremadamenteflexibleypuedeserutilizadoconcualquiertipo
dedatoincluidovdeo.
EldiseodeIAXsebasenmuchosestndaresdetransmisindedatos,incluidosSIP(elcualesel
mscomnactualmente),MGCPyRealtimeTransportProtocol.
Objetivos de IAX
ElprincipalobjetivodeIAXhasidominimizarelanchodebandautilizadoenlatransmisindevozy
vdeoatravsdelaredIP,conparticularatencinalcontrolyalasllamadasdevozyproveyendoun
soporte nativo para ser transparente a NAT. La estructura bsica de IAX se fundamenta en la
multiplexacindelasealizacinydelflujodedatossobreunsimplepuertoUDPentredossistemas.
IAXesunprotocolobinarioyestdiseadoyorganizadodemaneraquereducelacargaenflujosde
datosdevoz.Elanchodebandaparaalgunasaplicacionessesacrificaenfavordelanchodebanda
paraVoIP.
Canales IAX
LoscanalesIAX(InterAsteriskeXchange)oncanalesutilizadospordispositivosIPqueutilizaneste
protocolo, aadir nuevos usuarioso conectar con proveedores IAX. La configuracin para estos
canalesseencuentraenelelarchivo'iax.conf'ubicadoeneldirectorio'/etc/aserisk/'elcualdeberser
editadocomousuario'root'.
Elarchivodeconfiguracin'iax.conf'seleedeformasecuencialdesdearribahaciaabajo.Laseccin
[general]contienetodoslosparmetrosdeconfiguracingeneralylaseccin[servidor_A]contiene
los parmetros de configuracin para el usuario o dispositivo IAX [servidor_A] en particular. A
continuacinunejemplopracticoparaconfiguracindeestearchivo:
; iax.conf
[general]
context = inband ; Contexto por defecto
bindaddr= 0.0.0.0 ; Direccion IP donde servidor escucha conexionesIAX
bindport=4569 ; Puerto donde se escuchan las conexiones entrantes
language=es ; Lenguaje espaol
tos=0x18 ; Indicamos que marque los paquetes para QoS
bandwidth=low ; Preferibles codecs con bajo consumo
allow=all ; Usaremos todos los codecs
lo mismo que bandwidth=high
[servidor_A]
type=friend
secret=123
host=direccion.IP.de.servidor_X
permit=direccion.IP.de.servidor_X
auth=md5
disallow=all
allow=ilbc
context=anexos
qualify=yes
En general los servidores IAX escuchan en el puerto 4569 UDP/TCP. Por tanto configuramos
port=4569.
Elparmetro'bindaddr=0.0.0.0'nosindicaqueelservidorestaescuchandoporcualquierdireccin
IPquetengaasignadaencadaunadesusinterfacesdered.
Elparmetro'context=anexos'quieredecirqueelusuario[servidor_A]podrrealizarexclusiva
menteloqueseencuentredentrodeanexos.
Language=escorrespondeallenguajeasignadoparaesteusuario.
IAX Trunking (Interconexion entre 2 servidores Asterisk)
ParainterconectardosomasservidoresAsteriskservidor_Ayservidor_BusandoelprotocoloIAXy
lograrestablecercomunicacindeanexoaanexoentreambosservidores(unanexodelservidor_A
logra comunicarse con un anexo del servidor_B) debemos realizar el siguiente procedimiento de
creacindeusuariosIAXenambosservidores,usuariosquelapostrenosservirnpararealizarel
tunkingentreambosservidoresylograrcomunicacinentres.
Archivo'iax.conf'servidor_A:
Atravesdelosparametros:
'host=direccion.IP.de.servidor_B' y
'permit=direccion.IP.de.servidor_B'
Logramosestablecerunarelacindeconfianzaentreambosautentificandoseentresipermitiendo
quesolamenteservidor_Ayservidor_Bpuedanestablecercomunicacinynadiemas.
; iax.conf
[general]
context=inband ; Contexto por defecto
bindaddr=0.0.0.0 ; Direccion IP donde servidor escucha conexionesIAX
bindport=4569 ; Puerto donde se escuchan las conexiones entrantes
language=es ; Lenguaje espaol
tos=0x18 ; Indicamos que marque los paquetes para QoS
bandwidth=low ; Preferibles codecs con bajo consumo
allow=all ; Usaremos todos los codecs
lo mismo que bandwidth=high
[servidor_A]
type=friend
secret=123 ; El parmetro secret debe ser igual en ambos servidores esto
; para efectos de autenticacin entre los dos servidores.
host=direccion.IP.de.servidor_B
permit=direccion.IP.de.servidor_B
auth=md5 ; Algoritmo de encriptacin para transmicin de las 'secret'
disallow=all
allow=ilbc
context=anexos
qualify=no
Archivo'iax.conf'servidor_B:
Atravesdelosparametros:
'host=direccion.IP.de.servidor_A' y
'permit=direccion.IP.de.servidor_A'
Logramosestablecerunarelacindeconfianzaentreambosautentificandoseentresipermitiendo
quesolamenteservidor_Ayservidor_Bpuedanestablecercomunicacinynadiemas.
UnavezcreadoslosusuariosIAXenelarchivo'iax.conf'esnecesariorecargarlaconfiguracinal
sistema,paraestoejecutaremosdentrodelainterfazCLIelcomando'iax2reload'yparaobservarsi
realmentesecargolaconfiguracionejecutamoselcomando'iax2showpeers':
iax2reload
iax2showpeers
; iax.conf
[general]
context=inband ; Contexto por defecto
bindaddr=0.0.0.0 ; Direccion IP donde servidor escucha conexionesIAX
bindport=4569 ; Puerto donde se escuchan las conexiones entrantes
language=es ; Lenguaje espaol
tos=0x18 ; Indicamos que marque los paquetes para QoS
bandwidth=low ; Preferibles codecs con bajo consumo
allow=all ; Usaremos todos los codecs
lo mismo que bandwidth=high
[servidor_B]
type=friend
secret=123 ; El parmetro secret debe ser igual en ambos servidores esto
; para efectos de autenticacin entre los dos servidores.
host=direccion.IP.de.servidor_A
permit=direccion.IP.del.servidor_A
auth=md5 ; Algoritmo de encriptacin para transmicin de las 'secret'
disallow=all
allow=ilbc
context=anexos
qualify=no
[root@asterisk ~]# asterisk -r
Asterisk 1.4.x, Copyright (C) 1999 - 2007 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
=========================================================================
Connected to Asterisk 1.4.x currently running on asterisk (pid = 19496)
asterisk*CLI> iax2 reload
Reloading SIP
== Parsing '/etc/asterisk/sip.conf': Found
asterisk*CLI> iax2 show peers
Name/Username Host Mask Port Status
fwbm 192.168.0.101 (S) 255.255.255.255 4569 OK (6 ms)
beer-man 192.168.1.4 (S) 255.255.255.255 4569 OK (6 ms)
FinalizadalacreacindelosusuariosIAXenambosservidores,necesitamoscrearlasrutasde
discadoparalacomunicacindeunanexodelservidor_Aconunanexodelservidor_Byviceversa.
Estasrutassecreanenlosarchivosdeconfiguracin'extensions.conf'deambosservidores,por
ejemplo:
Suponiendoquedentrodelservidor_Aseencuentranlosanexosconnumeracin'4000'ydentrodel
servidor_Bseencuentranlosanexosconnumeracin'5000'.
Archivo'extensions.conf'servidor_A:

Archivo'extensions.conf'servidor_B:
Enambosservidoresguardamosloscambiosysalimosdelosarchivos,ingresamosenlasconsolas
CLIyejecutamoselcomadoparareleerloscambiosrealizadosenlosarchivos'extensions.conf':
asteriskr
extensionsreload
; extensions.conf servidor_A
[anexos]
exten => 5000,1,Dial(IAX2/servidor_B@servidor_A/5000)
exten => 5000,2,Hangup
exten => 4000,1,Dial(SIP/4000,20)
exten => 4000,2,Hangup
[root@asterisk ~]# asterisk -r
Asterisk 1.4.x, Copyright (C) 1999 - 2007 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
=========================================================================
Connected to Asterisk 1.4.x currently running on asterisk (pid = 19496)
asterisk*CLI> extensions reload
; extensions.conf servidor_B
[anexos]
exten => 4000,1,Dial(IAX2/servidor_A@servidor_B/4000)
exten => 4000,2,Hangup
exten => 5000,1,Dial(SIP/5000,20)
exten => 5000,2,Hangup
CAPITULO6
Telefona Zaptel
Zaptel Telefona Analgica (FXS, FXO)
Estosdostrminossiemprellevanaconfusindebidoaquesiendoconceptosdiferentessiemprevan
juntos.
FXS es unpuerto usado por las lneas de telefonaanalgica (tambin denominadosPOTS), este
puertoenvasealesdetimbreytonoparatelfonosanalgicos.Esdecir,queemulanaunalnea
telefnicaanalgicatradicional.
FXOestepuertorecibelassealesdelpuertofxs.Untelfonotienesunpuertofxo.Estepuertono
envasealesdetonootimbrado,solorecibelassealesqueenvalosFXS.Funcionacomoterminal
delnea.
Enunacentraltelefnicasiempreseencontrarconestostrminosyenunacentraliptambin.Una
centralIPrecibeunalneafxsenunpuertofxoparaconectarsealserviciodetelefona.
Enelcasodelastarjetasdigium,porejemplotdm400,estastarjetassonmodularesenconsecuenciala
tarjetaTDM400PpuedeestarcompuestapormodulosyaseaFXSoFXO.
Enlaimagentenemosunatarjetadigiumcondosmdulosfxs(colorverde)ydosmdulosfxo(color
rojo).Estastarjetasseusanparacrearcentralitasipconasterisk.
Canales Anlogos y Digitales ZAP
LoscanalesZAP (Zapata/Zaptel) son loscanalesutilizadosporlospuertosFXS/FXOyPRI. Los
canalesZAPsonloscorrespondientesalhardwareZaptel,creadosoriginalmenteporJimDixonensu
proyecto Zapata Telefony. La configuracin para estos canales se encuentran en los archivos
'zaptel.conf' ubicado en el directorio '/etc' y en el archivo 'zapata.conf' ubicado en el directorio
'/etc/aserisk/'ambosdebernsereditadoscomousuario'root'.
Configuracin Tarjeta TDM400P
LatarjetaTDM400PesunatarjetaPCI22fabricadaporDigiumquesoportapuertosFXSyFXO
paraconectardispositivosanlogos(FXS)olneastelefnicas(FXO).Loquepodemosconseguircon
una de estastarjetas es el poder llamardesdenuestraredVoIPhacialosnmerosdelaempresa
telefnicatradicionalusandoAsterisk.
LastarjetaTDMsoportanmdulosFXSoFXOenunnmeromximodecuatro,puedeentoncesuna
tarjetatenerunacombinacindemdulosdeacuerdoanuestrasnecesidades.Enesteejemplotengo
unaTDM22B loque significa que tiene2puertos/mdulosFXSy2puertos/mdulosFXO, el2
indicalosmdulosFXSyelotro2losmduloFXO.Siguiendoconelejemplo,sitenemosunatarjeta
TDM04BquieredecirquenotienemdulosFXSy4mdulosFXO,untarjetaTDM11Btendrun
mduloFXSyunmduloFXO,etc.
EstastarjetasdeberanseralojadasenunslotPCIlibreyenelseconectarlatarjeta,veremosque
tienelosdosmdulosrojosenellaydosverdes.LosmdulosdecolorverdesonFXSylosmdulos
decolorrojosonFXO.
Unavezcolocadalatarjetaensupuertorespectivo,debemossabersiesreconocida:
Acontinuacineditaremoslosarchivosdeconfiguracin'/etc/zaptel.conf'y'/etc/asterisk/zapata.conf'.
Lalneafxoks=12indicaquelosdosprimerosmdulossonFXSyporellodebenllevarsealizacin
FXO,12eslomismoquedecir1y2.Lalineafxsks=34indicaquelosdosltimosmdulosson
FXOyporellodebenllevarsealizacinFXS.LatarjetaseriaFXSFXSFXOFXO.
[root@asterisk ~]# lspci | grepCommunication
0000:06:05.0Communicationcontroller:TigerJetNetworkInc.Tiger3XX
Modem/ISDNinterface
;zaptel.conf
fxoks=1-2
fxsks=3-4
loadzone=cl
defaultzone=cl
SituviesedostarjetasTDM400PconochomdulosFXOdeberatenerunasolalneafxsks=18.Es
importantezaptel.confporqueahsedefinelasealizacinquecadapuertovaatener.Lossiguiente
esejecutarelcomando'ztcfgvvvv'paraconfirmarquenuestraconfiguracinestacorrecta.Sinos
hemos equivocado conla sealizacin de cada puertotendremos un mensaje deerrorque noslo
indicarparapodercorregirlo.
Ahoradeberemoseditarnuestro/etc/asterisk/zapata.confparanuestrosdoscanalesFXSydoscanales
FXO:
[root@asterisk ~]# ztcfg -vvvv
Zaptel Configuration
======================
Channel map:
Channel 01: FXO Kewlstart (Default) (Slaves: 01)
Channel 02: FXO Kewlstart (Default) (Slaves: 02)
Channel 03: FXS Kewlstart (Default) (Slaves: 03)
Channel 04: FXS Kewlstart (Default) (Slaves: 04)
4 channels configured.
;zapata.conf
[channels]
usecallerid=yes
hidecallerid=no
inmediate=no
; configuramos el primer canal FXS
context=anexos
signalling=fxo_ks
echocancel=yes
group=1
callerid="Anexo Analogo 4050" <4050>
channel => 1
; configuramos el segundo canal FXS
context=anexos
signalling=fxo_ks
echocancel=yes
group=2
callerid="Anexo Analogo 4051" <4051>
channel => 2
; configuramos el tercer canal FXO
context=from-pstn1
signalling=fxs_ks
echocancel=yes
group=3
callerid="Linea Analogica" <2744040>
channel => 3
; configuramos el cuarto canal FXO
context=from-pstn2
signalling=fxs_ks
echocancel=yes
callerid="Linea Analogica" <2744040>
group=4
channel => 4
Finalizadalaedicinyconfiguracindelarchivo'zapata.conf'esnecesariorecargarlaconfiguracin
alsistema,paraestodebemosdetenerelservicioasteriskyluegovolverainiciarlo:
serviceasteriskstop
serviceasteriskstart.
OBS.Elprocesodereiniciodelserviciodebedeserobligatoriamentecomoestaarriba,estoquiere
decirprimerodetenerloyluegoiniciarlo.
Comoultimopaso,parahacerusodeestoscanales,necesitamoscrearlasrutasdediscadodesdela
PSTNhaciaelservidor,desdeelservidorhacialaPSTNyentreanexosanalgicos(FXS).Estasrutas
secreanenlosarchivosdeconfiguracin'extensions.conf'deambosservidores,porejemplo:
LlamadasdesdelaPSTNhaciaelservidor:
LlamadasdesdeelservidorhacialaPSTN:
LlamadadeanexoaanexoZAP.
;extensions.conf
[from-pstn1] ; Linea analgica numero 1
exten => s,1,Dial(SIP/4000,20)
exten => s,2,Hangup
[from-pstn2] : Linea analgica numero 2
exten => s,1,Dial(SIP/4000,20)
exten => s,2,Hangup
;extensions.conf
[anexos]
exten => _XXXXXXX,1,Dial(Zap/g3/${EXTEN},20)
exten => _XXXXXXX,2,Hangup
exten => _XXXXXXX,1,Dial(Zap/g4/${EXTEN},20)
exten => _XXXXXXX,2,Hangup
;extensions.conf
[anexos]
exten => 4050,1,Dial(Zap/g1,20)
exten => 4050,2,Hangup
exten => 4051,1,Dial(Zap/g2,20)
exten => 4051,2,Hangup
; Para llamar al anexos SIP 4000
exten => 4000,1,Dial(SIP/4000,20)
exten => 4000,2,Hangup
Zaptel Telefona Digital (E1 PRI)
Configuracin Tarjeta digital TE120P
LaTE120Pesunatarjetadeinterfazdigitaldealtorendimiento,esunainterfaztelefoncacapazde
interconectarsistemastradicionalesdelatelefonaconlastecnologasemergentesdeVozsobreIP.
UsadajuntoconAsterisk,laTE120Ppuedeusarseparaproporcionarunamplioconjuntode
serviciosdePBX.LatarjetaTE120Pesfacildeexpandir,pudiendoconfigurarlacomoT1(24
canales),E1(32canales),oJ1(24canales).
EstastarjetasdebernseralojadasenunslotPCIlibreyenelseconectarlatarjeta.Unavezcolocada
latarjetaensupuertorespectivo,debemossabersiesreconocida:
Acontinuacineditaremoslosarchivosdeconfiguracin'/etc/zaptel.conf'y'/etc/asterisk/zapata.conf'.
[root@asterisk ~]# lspci | grepCommunication
07:04.0Communicationcontroller:Digium,Inc.WildcardTE120P(rev02)
;zaptel.conf
span=1,0,0,ccs,hdb3
bchan=1-15
dchan=16
bchan=17-31
loadzone=cl
defaultzone=cl
Los siguiente es ejecutar el comando 'ztcfg vvvv' para confirmar que nuestra configuracin esta
correcta.Sinoshemosequivocadoconlasealizacindecadapuertotendremosunmensajedeerror
quenosloindicarparapodercorregirlo.
[root@asterisk ~]# ztcfg -vvvv
Zaptel Configuration
======================
SPAN 1: CCS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)
Channel map:
Channel 01: Clear channel (Default) (Slaves: 01)
Channel 02: Clear channel (Default) (Slaves: 02)
Channel 03: Clear channel (Default) (Slaves: 03)
Channel 04: Clear channel (Default) (Slaves: 04)
Channel 05: Clear channel (Default) (Slaves: 05)
Channel 06: Clear channel (Default) (Slaves: 06)
Channel 07: Clear channel (Default) (Slaves: 07)
Channel 08: Clear channel (Default) (Slaves: 08)
Channel 09: Clear channel (Default) (Slaves: 09)
Channel 10: Clear channel (Default) (Slaves: 10)
Channel 11: Clear channel (Default) (Slaves: 11)
Channel 12: Clear channel (Default) (Slaves: 12)
Channel 13: Clear channel (Default) (Slaves: 13)
Channel 14: Clear channel (Default) (Slaves: 14)
Channel 15: Clear channel (Default) (Slaves: 15)
Channel 16: D-channel (Default) (Slaves: 16)
Channel 17: Clear channel (Default) (Slaves: 17)
Channel 18: Clear channel (Default) (Slaves: 18)
Channel 19: Clear channel (Default) (Slaves: 19)
Channel 20: Clear channel (Default) (Slaves: 20)
Channel 21: Clear channel (Default) (Slaves: 21)
Channel 22: Clear channel (Default) (Slaves: 22)
Channel 23: Clear channel (Default) (Slaves: 23)
Channel 24: Clear channel (Default) (Slaves: 24)
Channel 25: Clear channel (Default) (Slaves: 25)
Channel 26: Clear channel (Default) (Slaves: 26)
Channel 27: Clear channel (Default) (Slaves: 27)
Channel 28: Clear channel (Default) (Slaves: 28)
Channel 29: Clear channel (Default) (Slaves: 29)
Channel 30: Clear channel (Default) (Slaves: 30)
Channel 31: Clear channel (Default) (Slaves: 31)
31 channels configured.
Ahoradeberemoseditarnuestro/etc/asterisk/zapata.confparanuestrosdoscanalesFXSydoscanales
FXO:
Finalizadalaedicinyconfiguracindelarchivo'zapata.conf'esnecesariorecargarlaconfiguracin
alsistema,paraestodebemosdetenerelservicioasteriskyluegovolverainiciarlo:
serviceasteriskstop
serviceasteriskstart.
OBS.Elprocesodereiniciodelserviciodebedeserobligatoriamentecomoseplanteaarriva,esto
quieredecirprimerodetenerloyluegoiniciarlo.
Comoultimopaso,parahacerusodeestoscanales,necesitamoscrearlasrutasdediscadodesdela
PSTNhaciaelservidor,desdeelservidorhacialaPSTNyentreanexosanalgicos(FXS).Estasrutas
secreanenlosarchivosdeconfiguracin'extensions.conf'deambosservidores,porejemplo:
LlamadasdesdelaPSTNhaciaelservidor:
;zapata.conf
[channels]
;----------------------------
;Configuracion E1 TE120P
;----------------------------
language=cl
switchtype=euroisdn
pridialplan=local
prilocaldialplan=unknown
priindication=outofband
signalling=pri_cpe
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
rxgain=0.0
txgain=0.0
inmediate=no
context=from-pstn
group = 1
channel => 1-15
channel => 17-31
;extensions.conf
; Para el caso de numeracin 4834000 hasta 4834099 de GTD.
[from-pstn]
exten => _40XX,1,Dial(SIP/${EXTEN},20)
exten => _40XX,2,Hangup
OBS.Estaconfiguracinvadependerabsolutamentedelacompaatelefnicaconlaquetengamos
contratadoslosserviciosdetelefona.
LlamadasdesdeelservidorhacialaPSTN:
Respecto al orden de los dispositivos Zap.
Losdispositivosaparecerncomocanalesparazaptelenelordenenquehayansidocargados.Por
ejemplosi tiene un puerto FXO y unpuertoFXSenelsistemaunopuedecargareldriver FXO
seguidodeldriverFXSyeldispositivoFXOseraelcanal1mientraselFXSseraelcanal2.
LosdispositivosE1/T1debencargarseprimeroquelosFXOoFXS,assielsistemacontieneunE1y
ademsunpuertoFXO,entoncesloscanales1al31pertenesernalE1yelpuertoFXOseraelcanal
32.
;extensions.conf
[anexos]
exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},20)
exten => _XXXXXXX,2,Hangup
exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},20)
exten => _XXXXXXX,2,Hangup
CAPITULO7
Plan de Marcacin: Conceptos Generales
Elplandemarcacineselencargadodeenrutarcadallamadaenelsistemadesdesuorigenaun
destinopredeterminado.LaconfiguracindelplandemarcacindelossistemasAsteriskserealizaen
elarchivo'extensions.conf'.
El plan de marcacin es la pieza central de cualquiersistema de telefona, ya queeste define la
manera que se maneja elflujo ya sea entrante osaliente dellamadas.Elplande marcacin esta
compuestoporunalistainstruccionesopasosqueelsistemadebedeseguir.
Para definir un plan de marcacin en un sistema Asterisk es absolutamente importante que se
comprendaelfuncionamientodelmismo.
Componentes de un Plan de Marcacin
Gran porcentaje del plan de marcacin se define en el archivo 'extensions.conf', este archivo se
componedecuatroentidadesprincipales:contextos,extensiones,prioridadesyaplicaciones.
Acontinuacinsedescribircadaunodeestoscomponentesycomofuncionanjuntosparacrearun
plandemarcacinfuncional.Enlamayoradesistemasestearchivoestaubicadoeneldirectorio
'/etc/asterisk'.
Contextos
Los contextos definen la organizacin y alcance de la informacin o parmetros del plan de
marcaciondefinidosencada unodeellos.Enlapracticaloscontextospuedenserutilizadospara
hacerqueunsistemaAsteriskcontestedemaneradiferentecadalineatelefnica.
Loscontextossedefinenporsunombreentrecorchetes,porejemploparacrearuncontextollamado
'anexos'paramanejarlasllamadasentreanexoslodefiniramosas:
[anexos]
Todas las instrucciones colocadas despus de la definicin del contexto se consideran parte del
contextohastaquesedefinaunonuevo.Existelaposibilidaddeinclusionesdecontextosdentrode
otroscontextos,paraestoharamosusodelainstruccin:
include=>'contexto'
Extensiones
Enelinteriordecadacontextosedefinenunaomasextensiones,estasdeterminanelflujolallamada.
Cadaunadelasextensionessedefineporlapalabra'exten'segidadeunsigno'=>'estoformadopor
unsignoigualyunsignomayorque,comosemuestra:
exten=>
Seguidoaestesignosedefineelnumeroonombredelaextensin,laprioridadylaaplicacina
ejecutartodosseparadosporcomas:
[nombredelcontexto]
exten=>extensin,prioridad,aplicacin
Una extensin es identificada por un carcter alfanumrico y puede contener nmeros, letras y
caracteresespecialestalescomo*y#,ejlaextensin2050seriadelasiguienteforma:
exten=>2050,1,Goto(default,s,1)
Algunosnombresdeextensionesestnreservadasysemuestranacontinuacin:
s
start; una llamada que no tiene algn digito asociado con ella, por ejemplo una lnea anloga
loopstart,comienzacon.s.
t
Timeout; cuando una llamador en un men de voz no ingresa el numero correcto de dgitos, la
extensinexecutaeltimeout
T
absolute timeout;cuando una llamada excedeelvalorllevadoacaboenunavariableabsolutade
timeout
i
invalid;seejecutacuandounllamadoringresaunaextensininvalida
h
Hangup;seejecutaalfinaldeunallamadacuandoelllamadorcuelga,lasaplicacionesejecutadasen
esta extensin no pueden tener acceso al canal cerrado, es muy util para registrar o ejecutar
comandos.
Patterns
Unprefijodeextensinprecedidoporelcaracterunderscoreindicaunpatrndeconcordancia,por
ejemplo
_NXXXXX
lossiguientessonlospatronesutilizadosparadefinirunaextensin
Ncualquierdigitodesde2a9
Xcualquierdigitodesde0a9
Zcualquierdigitodesde1a9
[1268]cualquierdigitoentrecorchetes,enestecaso1,2,6,7y8
.cualquiercarcter1omas
Prioridades
Las prioridades son pasos numerados paradefinir elorden deejecucinde cada extensin. Cada
prioridadpuedellamaraunaaplicacinespecifica.Lasprioridadesempiezanenconun1ysevan
incrementandodeunoenuno,otambinestalaopcindeircolocando'n'envesdelosnmeros
incrementales.
Aplicaciones
Lasaplicasionessonlosprogramasquerealizanciertasaccionestalessobreuncanaldevoz,estas
acciones pueden ser, reproduccion de sonidos (archivos de audio), aceptar tonos de marcado,
contestarunallamadaocortarunallamada.
Variables Globales
Dentrodelarchivo'extensions.conf'existeunaseccindenominada[globals]dentrodeestaseccin
sepuedendefinirvariablesglobalesparasuposteriorusoenelplandemarcacin:
;extensions.conf
[globals]
CONSOLE=Console/dsp
IAXTRUNK=IAX2/servidor_B@servidor_A
E1GTD=Zap/g1
E1PBX=Zap/g2
[anexos]
exten => _XXXXXXX,1,Dial(${E1GTD}/${EXTEN},20)
exten => _XXXXXXX,2,Hangup
exten => _5000,1,Dial(${IAXTRUNK}/${EXTEN},20)
exten => _5000,2,Hangup
Parahacerusodeestasvariablesestasdebenirentrelossignos${VARIABLE}obligariamente,tal
cualcomoloobservamosenelejemplo.
Creando un DialPlan
En este ejemplo tenemos 2 extensiones, y prestemos atencin a la forma en que se definen las
prioridadesdelallamada
Tenemos el contexto [enviar] en el cual tenemos la extensin 5555, si nosotros ingresamos la
extension 5555 desde nuestro telfono IP o softphone como prioridad numero 1 ejecutara la
aplicacin Goto y saltara al contexto entrantes a la extensin 's' prioridad 1, luego se ejecuta la
aplicacinAnswer,unavezejecutadaestaaplicacinautomticamentepasaraalasiguienteprioridad
2 y ejecutara la aplicacin Playback luego una vez ejecutada esta aplicacin pasara a la ultima
prioridadla3yejecutaralaaplicacinHangup,oseacortaralallamada.
Lavariable${EXTEN}tomaelvalorquenosotrosingresamosenlaextensin,porejemplo:
Sidiscamos4000paracomunicarnosconelanexo4000entonceslallamadacaerenla
extensinexten=>_40XX,1,Dial(SIP/${EXTEN},20)ylavariable${EXTEN}tomarade
formaautomticaelvalor4000queelnumerosediscooriginalmente.
Deestaformanoslogramosdarcuentadelaformaencomoseejecutanlasextensionessiguiendoun
determinadoconjuntodeprioridadesyejecutandodeterminadasaplicaciones.
OBS.ElanexoSIPdesdeelcualserealizaestapruebadedealgunaformateneraccesoalcontexto
[enviar].
;extensions.conf
[enviar]
exten => 5555,1,Goto(entrantes,s,1)
[entrantes]
exten => s,1,Answer
exten => s,2,Playback(...)
exten => s,3,Hangup
[anexos]
exten => _40XX,1,Dial(SIP/${EXTEN},20)
exten => _40XX,2,Hangup
CAPITULO8
Plan de Marcacin: Construyendo
En este capitulo haremos uso de todos los conceptos aprendidos en el capitulo anterior, ya que
construiremosunplandemarcacinpracticoyfuncional.
Caso de Uso Practico
Enunaempresaexisten6tiposdellamadas:
1.LlamadasentreanexosSIP(anexostipocitofono).
2.Llamadaslocales.
3.Llamadaslargadistancianacional.(LDI)
4.Llamadaslargadistanciainternacional.(LDN)
5.Llamadasacelulares
6.Llamadasanumeros600y800.
Ademasexisten5tiposderestricciones:
1.Llamadasacualquierlugar.
2.LlamadasacualquierlugarmenosLDI
3.Llamadasnumeroslocales,numeroscelulares,entreanexosSIPy600y800.
4.Llamadasnumeroslocales,entreanexosSIP,600y800.
5.LlamadasentreanexosSIP.
Crear5anexos,porejemploel4080,4081,4082,4083y4084.
Asignarlealprimeranexolarestriccinnumerouno.
Asignarlealsegundoanexolarestriccinnumerodos.
Asignarlealterceranexolarestriccinnumerotres.
Asignarlealcuartoanexolarestriccinnumerocuatro.
Asignarlealquintoanexolarestriccinnumerocinco.
Solucin:
Primero.
Enelarchivoextensions.confcrear6contextosindependientesunoparacadaunadelostiposde
llamadas:
anexos
locales
LDI
LDN
celulares
600800

;extensions.conf
[anexos]
exten => _40XX,1,Dial(SIP/${EXTEN},30)
exten => _40XX,2,Hangup
[locales]
exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},20)
exten => _XXXXXXX,2,Hangup
[LDN]
exten => _1XXNXXXXXXX,1,Dial(Zap/g1/${EXTEN},20)
exten => _1XXNXXXXXXX,n,Congestion
exten => _1XXNXXXXXXXX,1,Dial(Zap/g1/${EXTEN},20)
exten => _1XXNXXXXXXXX,n,Congestion
[LDI]
exten => _1XX0.,1,Dial(Zap/g1/${EXTEN},20)
exten => _1XX0.,n,Congestion
[celulares]
exten => _09XXXXXXXX,1,Dial(Zap/g1/${EXTEN},20)
exten => _09XXXXXXXX,n,Congestion
[800_600]
exten => _600NXXXXXX,1,Dial(Zap/g1/${EXTEN},20)
exten => _600NXXXXXX,n,Congestion()
exten => _800NXXXXX,1,Dial(Zap/g1/${EXTEN},20)
exten => _800NXXXXX,n,Congestion()
Segundo.
Agrupardeacuerdoanuestrasrestricciones,paraestocreamosotroscontextos:
;extensions.conf
[R1]
include => anexos
include => locales
include => LDN
include => LDI
include => celulares
include => 800_600
[R2]
include => anexos
include => locales
include => LDN
include => celulares
include => 800_600
[R3]
include => anexos
include => locales
include => celulares
include => 800_600
[R4]
include => anexos
include => locales
include => 800_600
[R5]
include => anexos
Tercero.
AsignamosloscontextosrestriccionesanuestrosanexosSIP,creadosenelarchivosip.conf.
[4080]
disallow=all
allow=gsm
allow=ilbc
allow=ulaw
type=friend
host=dynamic
username=4180
secret=4180
dtmfmode=rfc2833
context=R1
callerid="Anexo4180"<4180>
qualify=1000
[4081]
disallow=all
allow=gsm
allow=ilbc
allow=ulaw
type=friend
host=dynamic
username=4181
secret=4181
dtmfmode=rfc2833
context=R2
callerid="Anexo4181"<4181>
qualify=1000
[4082]
disallow=all
allow=gsm
allow=ilbc
allow=ulaw
type=friend
host=dynamic
username=4182
secret=4182
dtmfmode=rfc2833
context=R3
callerid="Anexo4182"<4182>
qualify=1000
[4083]
disallow=all
allow=gsm
allow=ilbc
allow=ulaw
type=friend
host=dynamic
username=4183
secret=4183
dtmfmode=rfc2833
context=R4
callerid="Anexo4183"<4183>
qualify=1000
[4184]
disallow=all
allow=gsm
allow=ilbc
allow=ulaw
type=friend
host=dynamic
username=4183
secret=4183
dtmfmode=rfc2833
context=R5
callerid="Anexo4183"<4183>
qualify=1000
CAPITULO9
Voicemail
Los voicemail se configuran atraves del archivo de configuracin 'voicemail.conf' ubicado en el
directorio'/etc/asterisk/',enestearchivoseconfiguraelfuncionamientodelbuzndevozqueposee
cadaextensin.Cuandosedefinaelcontexto,estedeberserelmismoquehemosdefinidoenel
parmetromailboxenelarchivo'sip.conf'.Elfuncionamientodelvoicemailconsisteenquesiuna
llamadahaciaunanexonofuesecontestadaentoncescomoprioridadsiguientesaltaraalalbuznde
voz,dondeescucharemosunagrabacinindicandoquenosencontramosenelbuznycuandosuene
lasealpodramosdejarunmensajedevoz,elcualseraenviadoaunadireccindecorreoelectrnico
quehayamosdefinido.
OBS.EnnuestroservidorasteriskdebeexistirunMTA(MailTranferAgentServiciodecorreo)que
seacapasdeenviarcorreoselectrnicosaotradireccindecorreoelectrnico.
Acontinuacinlosparmetrosdeconfiguracinparaesteservicio:
;voicemail.conf
[general]
format=wav49|gsm|wav ; Formatos para grabar mensajes.
serveremail=root@localhost.localdomain ; Usuario y servidor
que van a mandar los correos con los mensajes.
language=es ; Lenguaje.
attach=yes ; Permitir que nos envi los mensajes
de audio adjuntos.
maxmessage=180 ; Tamao mximo de mensaje de vos en
segundos.
Minmessage=3 ; Tamao minimo de mensaje de vos en
segundos.
skipms=3000
maxsilence=3 ; Cuntos segundos del silencio antes
de que terminemos la grabacin
silencethreshold=128
maxlogins=3 ; Numero mximo de intentos de logeo
para recuperar mensajes a travs
del telfono
fromstring="Central Telefonica Asterisk Linux Center"
emailsubject=[PBX] Recibido mensaje numero ${VM_MSGNUM} en su
buzon de voz ${VM_MAILBOX} .
emailbody=\n\n\n***** Este es un mensaje automatico de la
central de VoIp de *****\n* **** Linux
Center *****\n\n\n\n\t
Tiene un mensaje nuevo en su buzon de voz,
con el numero ${VM_MSGNUM}, recibido desde
el numero de telefono ${VM_CALLERID} el
${VM_DATE} . Dicho mensaje se adjunta a
este email, pero no obstante Vd. debe de
llamar a su buzon de voz y eliminarlo tras
su escucha. Si no conoce como acceder a su
buzon de voz, por favor contacte con el
departamento a cargo.\n\n\t Gracias.\n\n\t
Central telefonica Asterisk.\n
Dentrodelcontexto[default]vandefinidaslascasillasdevozconsusrespectivascuentasdecorreo,
contraseaynombredeusuario.Lasintaxisdeestaconfiguracineslasiguiente:
Anexo=>Contrasea,Nombre_del_Usuario,Email_al_que_enviara_mensaje
Una vez realizada esta configuracin veremos la forma de como dejar mensajes en caso nuestro
anexonoestedisponible,estoserealizaenelarchivo'extensions.conf':

Conestoencasodenocontestarelanexopor20segundosencasodeestarocupadonuestroanexo
lallamadapasaraautomticamentealasiguienteprioridadoseapasaraalbuzndevoz.
Pararecargarestaconfiguracinesnecesarioreleerlosarchivosdeconfiguracin:
asteriskr
reload
;voicemail.conf (continuacin)
[default]
4140 => 4140, Usuario N1, usuario_N1@dominio.cl
4141 => 4141, Usuario N2 ,usuario_N2@dominio.cl
4142 => 4142, Usuario N3 ,usuario_N3@dominio.cl
;extensions.conf
[anexos]
exten => _40XX,1,Dial(SIP/${EXTEN},20)
exten => _40XX,2,Voicemail(${EXTEN})
exten => _40XX,3,Hangup
CAPITULO10
Meetme (Salas de Conferencias)
Configuracion del mdulo de conferencia MeetMe de asterisk se realiza en el archivo de
configuracin'meetme.conf'yestaubicadoeneldirectorio'/etc/asterisk'.
ElarchivodeconfiguracinparalassalasdeconferenciasdeMeetMesedefiniriadelasiguiente
forma:
Lasintaxisdelarchivoeslasiguiente:
Conelcontexto[rooms]damosinicioaladefinicindenuestrassalasdeconferencia.Luegopara
crearunasaladeconferenciainiciamosconelcomando'conf=>',seguidodelnumerodelasalade
conferencia y la contrasea para dicha sala, si queremos acceder a esta sala sin una contrasea
entoncessedejasoloelnumerodelasala.
conf=>numero_sala,contrasea_sala
Posteriormenteunavezrealizadosestoscambiosenelarchivo'meetme.conf',veremoslaformade
accederaestassalasestoserealizaenelarchivo'extensions.conf':

Conestoencasodemarcarlaextensin60000entoncescomoprioridadnumerounoejecutarala
aplicacinMeetmeyaccederemosalasaladeconferencia6000.
;meetme.conf
[rooms]
;
; Usage is conf => confno[,pin][,adminpin]
;
conf => 60000
conf => 60001,1234
;extensions.conf
[anexos]
exten => 60000,1,Meetme(60000)
CAPITULO11
Evaluacin
Laevaluacinsellevaraacaboen2.5hrs,esdecarcternetamentepracticoyseracapazdemedirlos
conocimientosadquiridosporlosalumnosalcabodelcapitulo10.
CAPITULO12
IVR (Interactive Voice Response)
RespuestaInteractivadeVoz(IVR):(InteractiveVoiceResponse)nospermitepresentarunmen,a
lapersonaquellama,atravsdeltecladodeltelfono,pormediodelcualpodrescogerlaopcinque
encasillelarespuestaoserviciobuscado.Ademspuedesonarmensajesgrabadosparalasllamadas
enespera,parareforzarlaimagendemarcaotransmitirinformacinadicionalalapersonaquellama.
En asterisk un IVR es presentado como un conjunto de contextos que se interrelacionan entre si
dependiendodelasopcionesqueestenosdeaelegir.ElarchivodeconfiguracinparaunIVResel
archivo'extensions.conf'.
ParaejemplificarelusodeunIVRtomemoselsiguientecaso:
UnaempresaXqueprestaserviciosdeventasysoportedeseadesarrollarunIVRparaatenderlas
llamadasdesusclientes,ademsesteIVRtienequesercapazdetomardecisionesrespectoalhorario
yaqueestaempresatrabajoenhorariosdeLunesaViernesde09.00a18.30.
AcontinuacinunejemplopracticodeIVR:
;extensions.conf
[anexos]
exten => 9999,1,Goto(menu,s,1)
[menu]
exten => s,1,Answer
exten => s,2,Wait,1
exten => s,3,Background(lc/mymessage-500)
exten => s,4,GotoifTime(9:00-18:30|mon-fri|*|*?menu,s,7)
exten => s,5,Background(lc/mymessage-509)
exten => s,6,Hangup()
exten => s,7,Background(lc/mymessage-501)
exten => s,n,Background(lc/mymessage-502)
exten => s,n,Background(lc/mymessage-503)
exten => s,n,WaitExten(5)
exten => s,n,Dial(SIP/4000,40)
exten => t,1,Hangup()
exten => i,1,Goto(menu,s,3)
exten => 1,1,Goto(menu-ventas,s,1)
exten => 2,1,Goto(menu-soporte,s,1)
exten => 0,1,SetCallerID("del menu de voz")
exten => 0,n,Dial(SIP/4000,40)
OBS.Losarchivosdeaudiodebernsergrabadosenelcurso.
;extensions.conf
[menu-ventas]
exten => s,1,Answer
exten => s,n,Wait,1
exten => s,n,Background(lc/mymessage-504)
exten => s,n,WaitExten(3)
exten => s,n,Background(lc/mymessage-504)
exten => s,n,WaitExten(3)
exten => s,n,Goto(menu,s,3)
exten => 1,1,SetCallerID("Ventas Capacitacion")
exten => 1,n,Dial(SIP/4001,20)
exten => 1,n,Dial(SIP/4002,20)
exten => 2,1,SetCallerID("Ventas de Proyectos")
exten => 2,n,Dial(SIP/4003,20)
exten => 2,n,Dial(SIP/4003,20)
exten => 2,n,Dial(SIP/4005,20)
exten => 2,n,Dial(SIP/4006,20)
exten => 2,n,Dial(SIP/4007,20)
exten => 3,1,SetCallerID("Ventas de Productos")
exten => 3,n,Dial(SIP/4008,20,tr)
exten => 3,n,Dial(SIP/4009,20,tr)
exten => 4,1,SetCallerID("Soporte por Eventos")
exten => 4,n,Dial(SIP/4003,20)
exten => 4,n,Dial(SIP/4003,20)
exten => 4,n,Dial(SIP/4005,20)
exten => 4,n,Dial(SIP/4006,20)
exten => 4,n,Dial(SIP/4007,20)
exten => t,1,Goto(menu,s,1)
exten => i,1,Goto(menu,s,1)
[menu-soporte]
exten => s,1,Answer
exten => s,n,Wait,1
exten => s,n,Background(lc/mymessage-505)
exten => s,n,WaitExten(3)
exten => s,n,Background(lc/mymessage-505)
exten => s,n,WaitExten(3)
exten => s,n,Goto(menu,s,1)
exten => 1,1,SetCallerID("Soporte Contrato")
exten => 1,n,Dial(SIP/4010,20,tr)
exten => 1,n,Dial(SIP/4011,20,tr)
exten => 2,1,SetCallerID("Soporte Garantia")
exten => 2,n,Dial(SIP/4012,20,tr)
exten => 2,n,Dial(SIP/4013,20,tr)
exten => 3,1,SetCallerID("Otro tipo de soporte")
exten => 3,n,Dial(SIP/4014,20,tr)
exten => 3,n,Dial(SIP/4015,20,tr)
exten => t,1,Goto(menu,s,1)
exten => i,1,Goto(menu,s,1)
Definiciones de las funciones ejecutadas en el IVR
Answer: Descuelgainmediatamente.
Wait: Esperauntiempoexpresadoensegundosantesdecontinuar.
Parmetros: Segundos... SegundosdeEspera.
Background:Reproduceunamelodaomensajedeaudiomientrasseesperalamarcacinde
lasteclas.
Parmetros: Archivo... EspecificaelarchivoquecontienelaMelodao
Mensaje.
WaitExten: Esperalossegundosexpresados,quesemarqueunanuevaextensinantesde
continuar.
Parmetros: Tiempo.... SegundosdeEspera.
Hangup: Cuelgainmediatamente.
GotoIfTime: Desvaelflujodelallamadaauncontextoyextensinespecificados,SOLO
cuandoseestendentrodelrangofechahoraespecificadoenlosparmetros
(Unsmbolo*indicatodoelrangoposibleenelparmetro).
Parmetros: RangoHorario.... Enformatode24Horas,yconunahora
decomienzoyotradefinal(Porejemplo:
0814.Las24horasseindicancon*).
DasSemana... IndicaunnumerodeDiashbilesenla
semana(0y7indicanDomingo;*indica
todos).
DasdelMes.... Indicaquediasdelmessedesean(*
indicatodos).
Meses.... Indicaquemesessedesean(*indica
todos).
RegladeSaltoTrue.. NmerodelaReglaalaquesaltaencaso
deserVerdaderalaExpresin.
RegladeSaltoFalse.. NmerodelaReglaalaquesaltaencaso
deserFalsalaExpresin.
Dial: Realizaunallamadaalaextensinonmerodeterminadoenelcampo
"Num.Llamada",esperandounacantidaddesegundosparaqueseestablezcala
comunicacin.Encasodequenoseestablezcalacomunicacinpasarala
siguienteregla,perosilacomunicacinnoseestableceporestarocupadoel
interlocutor,saltaralareglan+101.
Parametros: CanalComunicacin..Tipodetecnologaqueseusaenla
llamada:Zap,SIP,IAX,H323.
Extension/Nmero... Aunaextensininternasloindicarla
Extensin. Si es una llamada externa:
Recurso/${EXTEN}(oNmeroalquese
llama).
Segundosdeespera... Segundosdeesperaaqueseestablezcala
comunicacin.
Goto: Envaelflujodelallamadaaunadeterminadaposicindeldialplan,
establecidaporlosparmetrosdeContexto+Extensin+Prioridad.Entrelos
contextoshayquetenerencuentaqueademsdeloscreadosporelusuario
existenotrosdecreacinautomtica:defaultcontroladodesde lapestaa
"ControlIVR";voiph323:controlalasextensionesdelsistema;outgoingque
gestionatodaslasextensionesdesalidacreadasdentrodelaopcin
"Comunicacin Exterior";servicios contexto administradodesdela ventana
homnima(Tenerencuentalasmaysculasyminsculas).
Parmetros: Contexto... .Contextoalquesedesvalallamada.Los
contextos:default,servicios,outgoing,voip
h323;soncreadosporelsistema,ypueden
referenciarse.
Extension.... Especificalaextensin,dentrodelContexto,ala
quesedesva(sinoseespecificanada,irala
extensin"s"start.
Prioridad... Ultimoniveldedetallealquesepuedellegar,y
expresaelndicedeunaregladentrodelasdela
extensin.
SetCallerID: EstableceunnuevovalorparaelCallerIDdelallamada.
Parmetros: CID... NuevoCID.
CAPITULO13
Funciones especiales
Funcin de Autenticacin para Llamadas
EstafuncinnospermiteAuthenticaraunusuarioconunacontraseamarcadaenelinstanteenel
quevamosarealizarunallamada,estallamadapuedeserdecualquiertipo,porejemplollamadas
larga distancias o llamadas a celulares, dicha contrasea sera pedida al usuario para seguir el
procedimientodelallamada.
Authenticate: Pidealinterlocutorqueintroduzcaunaclavevlidaparacontinuar.
Parametros: Password... Contraseavlida,quepuedeserunarchivo
conteniendocontraseas.
Ejemplopractico:
Necesitamos que algunos anexos se autentifiquen a travs de una contrasea para poder realizar
llamadas.
Enelarchivoextensions.confcreamosuncontexto:
Un anexo que puede ejecutar lo que se encuentra dentro del contexto Llamadas_autenticadas,
cuandovaamarcarel9999,comoprimeraprioridadvaaejecutarlafuncinAuthenticateynos
va a preguntar por una contrasea que nosotros definimos en un archivo dentro del directorio
/etc/asterisk/passwords/yllamadodelamismaformaqueelanexodesdeelcualestamosllamando.
OBS: Eldirectorio/etc/asterisk/passwords/vaacontenerarchivosnombradosdelamismaforma
quelosanexosquenecesitanautentificarseparapoderrealizarllamadas:
/etc/asterisk/passwords/4000;Estearchivodebecontenerunapassword
/etc/asterisk/passwords/4000;
/etc/asterisk/passwords/4000;
etc....
;extensions.conf
[Llamadas_autenticadas]
exten => _9999,1,Authenticate(/etc/asterisk/passwords/${CALLERID(num)})
exten => _9999,2,Disa,(no-password|Llamar)
exten => _9999,3,Hangup
[Llamar]
exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},10)
exten => _XXXXXXX,2,Hangup
Dentrodecadaarchivodebemosdeescribirlacontraseadeautenticacindelanexocorrespondiente.
Silapasswordescorrectaentoncespasaraalasegundaprioridad,lacualnosdartonodemarcadoy
nosenviaraautomticamentealcontextoLlamaryunavesqueescuchamoseltonodemarcado
ingresamoselnumeroexternohaciaelcualnosqueremoscomunicarporejemploel4834000yse
lallamadaserealizar.SilaPasswordesincorrectanoslavolverapreguntar.
Funcin para grabacin de Llamadas
EstaaplicacinnospermitegrabarunaconversacindetelefnicarealizadaporunanexoXhacia
archivosdeaudio.
Lafuncinmonitorsedefinerespectoasusintaxisdelasiguienteforma:
Monitor: GrabalacomunicacinencursoenunformatodeAudio(wav,gsm)yla
almacenaenunarchivodeaudiolasalidayenotrolaentrada..amenosquese
seleccionelaopcin"m",encuyocasosonmezcladoslosarchivosenunosolo.
Otraopcin,"b"indicaquenosequierengrabarlossaltosdeunaextensina
otra,encasodequeseproduzcan.
Parametros: FormatoAudio.. EspecificasisedesaalmacenarelAudio
enformatowav,gsm.
Archivo... Nombreconelquesealmacena(se
puedenusarnombredeVariables).
Opciones... mmezclasonidosdeentradaysalida;b
nograbamientrashayunatransferenciaa
otrocanal.
Laaplicacinmonitorcomienzaagrabaruncanalmientrasesteestaencomunicacin.Lospaquetes
devozdelaentradaydelasalidadelcanalsevanalmacenandoenunarchivodesonido.Sino
especificasunatrayectoriacomoparmetrodelaaplicacin,elarchivoseralmacenadoenel
subdirectoriodelmonitordelarutaespecificadaconelastspooldirenasterisk.conf(asquepor
defectolosarchivosdeaudiosernalmacenadosen/var/spool/asterisk/monitor).
;extensions.conf
[llamadas-grabadas]
exten => _40XX,1,Monitor(wav,archivo-grabacion,m)
exten => _40XX,2,Dial(SIP/${EXTEN},20)
exten => _40XX,3,Hangup
Funcin de llamadas con limites de tiempo
Estafuncineslaaplicacin'Dial'conunparmetroadicionalquenospermitirtenercontrolde
cuantosminutospodrhablardeterminadoanexo.
Dial(type1/identifier1[&type2/identifier2[&type3/identifier3...]],timeout)
Donde: type1 >SIP,IAX2,Zap
identified >4000or${EXTEN}
timeout >OpcinL(::)
Laopcin'L(x:y:z)'quieredecirquelimitaralallamadaa"x"milisegundos,notificndocuandofalten
"y"milisegundosyrepitindolocada"z"milisegundos,endondesolo"x"esindispensableparasu
funcionamiento.
Ejemplopractico:
ParaelcasodelejemplosignificaqueelcomandoDiallimitaralallamadaa3600000ms(1hora)y
notificaraquelallamadallegaaesetiempocuandofalte61000(1minutoy1segundo)yesaalarma
serepetircada30000ms(30segundos).
;extensions.conf
[llamadas-con-tiempo]
exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},L(3600000:61000:30000))
exten => _XXXXXXX,2,Hangup
CAPITULO14
Asterisk AstDB
AsteriskincorporaunaBDtipoBerkleyDBv2,enellaelpropioAsteriskalmacenadiversosvalores
como:
RegistrosSIP,IAX.
Informacinsobrecolas.
Nosotros como desarrolladores y programadores de nuestro dialplan tambin podemos almacenar
informacinenellayconsultarladesdeelmismodialplan.
AstDBposeeunaorganizacinreferenteafamilias,ydentrodeunafamiliasepuedentenerdiversas
keys,yparacadakeyunsolovalor.AcontinuacinunejemplodecreacindeunaDBasterisk.
LaformademanipularestaDBcreadaanteriormenteeliminandoelcontenidoyasignndoleotroes
lasiguiente:
NOTA:
Loscaptulos15,16y17sernabsolutaycompletamenteabordadosenclaserealizandodecadauno
de estosun laboratoriodonde se instalar,configuraryarafuncionarcadaunodelossoftwares
seleccionados para sus correspondientes labores (MySQLAsteriskStats ; Flash Operator Panel ;
TrixboxAsteriskNowsegnconveniencia).
[root@asterisk ~]# asterisk -r
asterisk*CLI> database put MIFAMILIA mikey 1234
Updated database successfully
asterisk*CLI> database show MIFAMILIA
/MIFAMILIA/mikey : 1234
asterisk*CLI> database put MIFAMILIA mikey 4567
Updated database successfully
asterisk*CLI> database show MIFAMILIA
/MIFAMILIA/mikey : 4567
; extensions.conf
[AstDB]
exten => _XXXX,1,Set(valrespassadmin=${DB_DELETE(MIFAMILIA/mikey)})
exten => _XXXX,2,Set(DB(MIFAMILIA/mykey)=${EXTEN})
exten => _XXXX,3,Set(pass1=${DB(MIFAMILIA/mykey)})
exten => _XXXX,6,Hangup()

Potrebbero piacerti anche