Está en la página 1de 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

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.

Presentacin Corporativa Linux Latin Amrica 2008

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
Diseo e Implementacin de la solucin
Capacitacin de S.O. Linux
Soporte y Asistencia Tcnica

- Fase Inicial de Asesora


- Fase de Ejecucin
- Fase Capacitacin
- Fase Soporte y Asistencia

Estudios de viabilidad tcnica y econmica '95 Planes de Migracin '95 Pilotos y Prototipos

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

Clusterizacin de Servidores : Alta Disponibilidad - Balanceo de Carga - Oracle RAC.

- Tunning para servidores de bases de datos Oracle y Sybase.

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.

Presentacin Corporativa Linux Latin Amrica 2008

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

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

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
OpenOffice.org

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

www.linuxlatinamerica.com

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

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).

CHILE
Mariano Snchez Fontecilla 310,
Edificio Birmann - 2 piso
CP7550515 - Las Condes - Santiago
Tel: +56 2 483 4000 - Fax: +56 2 4834050

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)

ARGENTINA
Victoria Ocampo N 360, 3 piso
C1107BGA - Puerto Madero - Buenos Aires
Tel: +54 (11) 45156332

MEXICO
Insurgentes Sur N 2384 Col. Chimalistac
Delg. lvaro Obregn - C.P 01070. Mexico, D.F.
Tel: +52 (55) 53507487 / +52 (55) 53507496.

w w w . l i n u x l a t i n a m e r i c a . c o m


 


 
   
  



 !"
     
   

#
 $    %&  
  
                   
       
 
 
 
     
    

    
# &  
 !
    "   #  $ 
% 
 
  
    

  
       
       
  
  # 

   
 %
  &  

%#  


&  
 



 


   

 
 
    
' & ' 
(
 " ) 
 *   






   
 "  ,  -    .  


 
   #  " 
   /
  (   
     0 
 !
  
' 
(
 "    
!
  " #$ 


   (")   
    
         #        
      
    
  
 
  
' 
(
 " " 
), 1

 )"$ ' 


(
 "  

  
    
  





*$+,$*+

 -")       


&  
" 
),    
   
 #  
      2  3   #  4     #   
 
  
    
     


 ."$ 


    
    

   
 
               '$"

 /" $ ' 


(
 "     



  
 
         * ,  

 

 
$     



6       


  
  
    



6       


 
  



   
 
        
   & 
     

6         


  
4
# 
. 


6                   


      
   

  
  

'     


      
 #
    

   
 

   
   
 

$ ' 
(
 " 
    
#7

 
        
  
 89

 (      

*

 * 

    

 
    
       
  (

    

 

        
 
    
#7


        





,*+

 0")




        
   

  
:;  )#!;8<98=

   1"  $  
    
    
   
           
  
#  
 
        

 2"1

 #       
 

    :9  -3  #  #
    >9  -3       
&
  
 
 
    
   ?-3 4
1

 #  
     
 
   
>9-3

    
   ( 
    
  

       
    

 
   
 

   !3;$  


   
    
    
     
       
  
 
@

  
 
 

   
@

  
@

%  * >A * 
@' 


 !!")           
     :=
     
      

 
 

  
  8AAB  
  

   !("   $                          


  
    
 

      
      
      
     
   &
       
 
     
     
 
 

 
   C ,  
 
 
,  

 #      

4
5 67

   !)"  )
          
     
        
      #
  *


 !-")
       *       
   ?9B

   !."  $  ' 


 (
   "   
   
  

   
   

 


 
 4 

  *
8>;#8:;   


CAPITULO1

Introduccin

Asterisk
Que es Asterisk?
Asteriskesunaaplicacindesoftwarelibre(bajolicenciaGPL)deunacentraltelefnica(PBX).
ComocualquierPBX,sepuedeconectarunnmerodeterminadodetelfonosparahacerllamadas
entreseinclusoconectaraunproveedordeVoIPobienaunaRDSItantobsicoscomoprimarios.
MarkSpencer,deDigium,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
propietariosPBXcomobuzndevoz,conferencias,IVR,distribucinautomticadellamadas,yotras
muchasms.Losusuariospuedencrearnuevasfuncionalidadesescribiendoundialplanenellenguaje
descriptdeAsteriskoaadiendomdulosescritosenlenguajeCoencualquierotrolenguajede
programacinsoportadoporLinux.
ParaconectartelfonosestndaranalgicossonnecesariastarjetaselectrnicastelefnicasFXSo
FXOfabricadasporDigiumuotrosproveedores,yaqueparaconectarelservidoraunalneaexterna
nobastaconunsimplemdem.
QuizlomsinteresantedeAsteriskesquesoportamuchosprotocolosVoIPcomopuedenserSIP,
H.323,IAXyMGCP.AsteriskpuedeinteroperarconterminalesIPactuandocomounregistradory
comogatewayentreambos.
LejosdepodercompetirconlascompaasquecomercializansolucionesdeVoIPHw/Swdealta
calidad como AlcatelLucent, Cisco,Avaya Nortel, Asteriskse empiezaa adoptaren 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
finalizacindesesionesinteractivasdeusuariodondeintervienenelementosmultimediacomoel
video,voz,mensajerainstantnea,juegosonlineyrealidadvirtual.EnNoviembredelao2000,SIP
fueaceptadocomoelprotocolodesealizacinde3GPPyelementopermanentedelaarquitectura
IMS(IPMultimediaSubsystem).SIPesunodelosprotocolosdesealizacinparavozsobreIP,otro
esH.323.(VaseCapitulo4)

IAX2(InterAsteriskeXchangeprotocol)
IAX(InterAsteriskeXchangeprotocol)esunodelosprotocolosutilizadoporAsterisk,unservidor
PBX(centralitatelefnica)decdigoabiertopatrocinadoporDigium.Esutilizadoparamanejar
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

EstecaptulonosayudaraaprepararelsistemaparalainstalacindeAsterisk.Estefuncionaen
muchas plataformasysistemasoperativos, masnosotros elegimosmantenerlascosas 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.
ParaconstruirsuprimerPBXAsteriskunprocesadorcompatibleconInteligualosuperioraun
PentiumIII600Mhzcon128MBRAMessuficienteparaunsistemadepruebasquesoportehasta5
llamadassimultaneasydondepodamosexplorartodaslasfuncionalidadesdeAsterisk,respectoal
sistemaoperativopodramosoptarporunadistribucindeLinuxcomoCentos4.6,conelobjetivode
ntercomunicarnosconlaredpublicadetelefonia(PSTN)necesitaremosdeunatarjetatelefnicade
hasta4canalesZAP,preferentementeunaTDM400Pcon4mdulosFXOcorrespondientesa4
lineasanalogas.
Asterisknorequieremuchoespacioendisco,cercade100MBsecalculaparaelsistemacalculado,
dondeSIrequerimosespacioesparaelalmacenamientodemensajesdevoz,llamadasgrabadas,CDR
(Basesdedatos).

SiustedusanicamenteVOIP,ningnotrohardwareesnecesario.Sepuedeusarsoftfonescomolos
deCounterpath(XLite)yrealizarentroncamientohaciaproveedoresdetelefonaIP.
AlgunasaplicacionesdeAsteriskcomoelMeetmerequierenunafuentedeclockparaproveerla
temporizacin.NormalmentelafuentedeclockdeAsteriskesunaplacaTDM.Sisusistemanotiene
unaplacaTDM,ustedpuedeusarundriverztdummyqueusaelUSBcomofuentedetemporizacin.
Una pista: Ustedpuedeusarunaplaca defax/modemconchipsetIntel537oMD3200,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
completamentedeshabilitadosdesde la BIOS. Una buena tarjeta de redesesencial 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 tarjetasdetelefonacomolaX100Pporejemplopuedengenerargrandescantidades de
interrupciones,atenderlastomatiempo.Losdriverspuedennoconseguirhacerloatiemposiotro
dispositivoestuvieseprocesandolamismaIRQcompartidaylalineadeIRQnopodrrecibirotra
interrupcin. Esta problemtica tiende a funcionar mejor y ser resuelta en parte en sistemas
multiprocesador.Ensistemasmonoprocesadorsepuedetenermuchasperdidasdeinterrupciny
clockdesfasado.CualquieradelastarjetasdetelefonadeDigiumyotrastarjetasdetelefonapueden
estarsujetasalmismoproblema.ComolaentregaprecisadeIRQsesunanecesidadprimariaen
telefona,ustednodebecompartirIRQsconnada.Nosiempreocurreesto,perosedebeprestar
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,AhorapuedeserusadoenBSDyOSX.Noobstanteesto,lastarjetastelefonicasDigium
fuerondiseadasparatrabajarconLinuxi386.SiustedfuesenuevoconAsteriskprocureusarLinux.

Requisitos de Linux
VriasdistribucionescomoRedHat,Mandrake,Fedora,Debian,SlackwareyGentoofueronusadas
conAsterisk.
DiseotabladeparticionamientotentativaparainstalacindeAsterisk
Asteriskcomosistemanorequieremuchoespacioendisco,cercade100MBsecalculaparael
sistemacompiladoeinstalado,dondeSIrequerimosespacioesparaelalmacenamientodemensajes
devoz,llamadasgrabadas,CDR (Basesdedatos).Porlotantonuestratabladeparticionamiento
deberacontarcomomnimocon4particiones(Tomandocomoejemploundiscode80GB):
[root@asterisk ~]$ df -h
S.ficheros
Tamao Usado
/dev/sda1
100M
15M
/dev/sda2
20G
5G
/dev/sda3
55G
10G
tmpfs
248M
0

Disp Uso% Montado en


85M 15% /boot
15G 25% /
45M 70% /var
248M
0% /dev/shm

En el proceso de instalacin se debe considerar una particin ms asignada para memoria de


intercambioSWAP,eltamaodeestadebersereldobledelamemoriaRAMexistente.

Eleccinpaquetesydependenciasnecesariasparacompilacindeasterisk.
AntiguamenteexistanalgunospaquetesqueerannecesariosparainstalarAsteriskcomoelreadliney
readlinedevelquenosonnecesarioshoy.Noexistehardwareespecialtalcomounaplacadesonido
yelnicopaquetenecesarioeselpropioAsterisk.SiustedestuvierausandohardwaredeDigiumo
ztdummy,ustedva aprecisardelpaquetezaptel.Elpaquetezaptelesnecesarioparaquealgunas
aplicacionesseanincludasentiempodecompilacin.SiustedescogecompilarAsteriskynoel
zaptel, pero descubre que esta faltando una aplicacin relacionada al paquete zaptel (Como el
Meetme()),ustedtendraquecompilarelzaptelyentoncesseranecesariorecompilarAsteriskpara
quelaaplicacinseaincluda. ParainterfacesT1yE1elpaquetelibpriesnecesario.Bisones
necesarioparacompilarelAsterisk.Lospaquetesdedesarrolloncursesyncursesdevelopmentson
necesariossiustedquisieraconstruirnuevasherramientas(Comoelastman).Lasbibliotecaszliby
zlibdevelsonnecesariasahoraparacompilar.EstosedebealaadhesindelprotocoloDUNDi
(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
Estocrearaundirectorioconelnombreyversindelpaquetedescomprimidoydentroestarel
contenidodelpaquete.

Instalacin Asterisk 1.4


Lainstalacindelospaquetesdeasterisksedeberealizarenelsiguienteorden:
1ero.
2do.
3ero.
4to.

zaptel
libpri
asterisk
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'.
#
#
#
#
#

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

Compilacin e Instalacin Asterisk


ParacompilareinstalarAsterisksedebenseguirlossiguientespasoscomousuario'root'.
# cd /usr/src/
# wget http://downloads.digium.com/pub/asterisk/releases/asterisk1.4.x.tar.gz
# cd /usr/src/asterisk-1.4.x
# ./configure
# make
# make install
# make samples
# make config

Compilacin e Instalacin Asterisk-Adoons


ParacompilareinstalarAsteriskAdoonssedebenseguirlossiguientespasoscomousuario'root'.
# cd /usr/src/
# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons1.4.x.tar.gz
# cd /usr/src/asterisk-addons-1.4.x
# ./configure
# make
# make install
# make samples

Directorios Usados
Acontinuacinlosarchivosydirectoriosmasimportantescreadosenelprocesodeinstalacin.
/etc/asterisk
Enestedirectorioseencuentrantodoslosarchivosnecesariosparaconfigurarlagrancantidadde
serviciosqueAsteriskprovee.Revisaremoslosmasimportantes.
asterisk.conf
Configuraciones generales de la ubicacin de directorios de archivos de configuracion,

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
Directorioconarchivosdeaudio,llavesRSA,scriptsAGI(AsteriskGatewayInterface),basede
datosastdbyarchivosparaelpequeoservidorHTTPparaAJAM(AsynchronusJavascriptAsterisk
Manager).Aquiveremosunadescripcindecadaunodelosdirectorios,yaquelosarchivospueden
serirrelevantes.
agibin/
AquisecontienenprogramasenC,PHP,Pythonocualquierotrolenguajeconelquese
pretendainteractuardesdeAsterisk.

keys/
DirectorioquecontienellavesRSAparalaautenticacindellamadasconelprotocoloIAX2
sounds/
DirectoriocontodoslossonidosquesernutilizadosporaplicacionescomoPlayback()y
Background()

Paraasegurarnosqueelprocesodeasteriskyzapteliniciandeformaautomticaconelarranquedel
servidoryencasodereiniciodelS.Ocompletoyparaelprocesodeinicioodetencindeforma
manualdelserviciodebemosejecutarlossiguientescomandosenlainterfazdelineadecomandos:
#
#
#
#

service zaptel start


service asterisk start
chkconfig zaptel on
chkconfig asterisk on

Para acceder al monitor del sistema o tambien conosido como 'CLI>' ejecutamos el siguiente
comando:
# asterisk -r

CAPITULO4

Protocolo SIP
SIP (Session Initiation Protocol)
SessionInitiationProtocol(SIPoProtocolodeIniciodeSesiones)esunprotocolodesarrolladoporel
IETFMMUSICWorkingGroupconlaintencindeserelestndarparalainiciacin,modificaciny
finalizacindesesionesinteractivasdeusuariodondeintervienenelementosmultimediacomoel
video,voz,mensajerainstantnea,juegosonlineyrealidadvirtual.EnNoviembredelao2000,SIP
fueaceptadocomoelprotocolodesealizacinde3GPPyelementopermanentedelaarquitectura
IMS(IPMultimediaSubsystem).SIPesunodelosprotocolosdesealizacinparavozsobreIP,otro
esH.323.

Funcionamiento del protocolo


ElprotocoloSIPpermiteelestablecimientodesesionesmultimediaentredosomsusuarios.Para
hacerlosevaledelintercambiodemensajesentrelaspartesquequierencomunicarse.
Agentes de Usuario
Losusuarios,quepuedensersereshumanosoaplicacionesdesoftware,utilizanparaestablecer
sesionesloqueelprotocoloSIPdenomina"Agentesdeusuario".Estosnosonmsquelospuntos
extremosdelprotocolo,esdecirsonlosqueemitenyconsumenlosmensajesdelprotocoloSIP.Un
videotelfono,untelfono,unclientedesoftware(softphone)ycualquierotrodispositivosimilares
paraelprotocoloSIPunagentedeusuario.ElprotocoloSIPnoseocupadelainterfazdeestos
dispositivos conelusuariofinal,sloseinteresaenlosmensajesqueestosgeneranycmo se
comportanalrecibirdeterminadosmensajes.
Losagentesdeusuariosecomportancomoclientes(UAC:UserAgentClients)ycomoservidores
(UAS:UserAgentServers).SonUACcuandorealizanunapeticinysonUAScuandolareciben.
PorestolosagentesdeusuariodebenimplementarunUACyunUAS.
Ademsdelosagentesdeusuarioexistenotrasentidadesqueintervienenenelprotocolo,estosson
losServidoresdeRegistrooRegistrar,losProxyylosRedirectores.Acontinuacinsedescribesu
finalidad.
Servidores de Registro o Registrar
ElprotocoloSIPpermiteestablecerlaubicacinfsicadeunusuariodeterminado,estoesenqu
puntodelaredestconectado.Paraellosevaledelmecanismoderegistracin.Estemecanismo
funcionacomosigue:

Cadausuariotieneunadireccinlgicaqueesinvariablerespectodelaubicacinfsicadelusuario.
UnadireccinlgicadelprotocoloSIPesdelaformausuario@dominioesdecirtienelamisma
forma que una direccin de correo electrnico. La direccin fsica (denominada "direccin de
contacto")esdependientedellugarendondeelusuarioestconectado(desudireccinIP).Cuando
unusuarioinicializasuterminal(porejemploconectandosutelfonooabriendosusoftwarede
telefonaSIP)elagentedeusuarioSIPqueresideendichoterminalenvaunapeticinconelmtodo
REGISTERaunServidordeRegistro(Registrareningls),informandoaqudireccinfsicadebe
asociarseladireccinlgicadelusuario.Elservidorderegistrorealizaentoncesdichaasociacin
(denominadabinding).Estaasociacintieneunperododevigenciaysinoesrenovada,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.Esteservidorserelencargadodedeterminarladireccinfsicadelusuariollamadoy
puedeactuardedosmaneras:
ComoProxy,o
ComoRedirector(Redirect).
AlactuarcomoProxyelservidordeterminalaubicacindelusuariollamadoyenvalapeticin
original a la direccinfsicadel usuario llamado.Las respuestas delagente deusuariollamado
tambinsonenviadasalproxyquelasremitehaciaeloriginante.
AlactuarcomoRedirectorelservidorgeneraunarespuestaqueindicaaloriginanteladireccinfsica
delusuarioquebuscaparaqueestepuedarealizarunapeticinyenviarlaaladireccinfsicadel
usuariodeseado.
UnmismoservidorpuedeactuarcomoRedirectorocomoProxydependiendodelasituacin.
Unservidorquerecibelaspeticionesdestinadasaundominioespecficoesdenominadoservidor
entrante(InboundServer).
Eshabitualtambin,queexistaunservidorquerecibalaspeticionesoriginadasporlosusuariosdeun
dominiohaciaotrosdominios.EsterecibeelnombredeServidorSaliente(OutboundServer).
Un agente de usuarionormalmente encamina todos sus pedidos hacia un servidor de su propio
dominio. Es estequiendetermina(porsuspropiosmediosovalindosedeotrosservidores) las
ubicacionesdelosusuariosquesonllamadosporelagentedeusuarioencuestin.

Canales SIP
LoscanalesSIP(SessionInitiationProtocol) sonloscanalesutilizadosporlosdispositivosIPque
usanesteprotocolo,aadirnuevosusuariosoconectarconproveedoresSIP.Laconfiguracinpara
estoscanalesseencuentraenelelarchivo'sip.conf'ubicadoeneldirectorio'/etc/aserisk/'elcual
debersereditadocomousuario'root'.
Elarchivodeconfiguracin'sip.conf'seleedeformasecuencialdesdearribahaciaabajo.Laseccin
[general]contienetodoslosparmetrosdeconfiguracingeneralylaseccin[4000]contienelos
parmetrosdeconfiguracinparaelanexoodispositivoSIP4000enparticular.Acontinuacinun
ejemplopracticoparaconfiguracindeestearchivo:
; sip.conf
[general]
context=default
port=5060
bindaddr=0.0.0.0
un servidor tiene
srvlookup=yes

;
;
3
;

Puerto UDP en el que responder el Asterisk


Si queremos especificar que Asterisk est en una IP (si
IPs por ej.) 0.0.0.0 vale para cualquiera
Habilita servidor DNS SRV

[4000]
type=friend
secret=password
qualify=yes
nat=yes
host=dynamic
canreinvite=no
context=internal

;
;
;
;
;

Tiempo de latencia no superior a 2000 ms.


El telefono usa NAT
El dispositivo se registra con una IP dinamica
Asterisk por defecto trata de redirigir
El contexto asignado para el anexo

EngenerallosservidoresSIPescuchanenelpuerto5060UDP.Portantoconfiguramosport=5060.
Enalgunoscasos,porejemplosiutilizamosSER(SipExpressRouter)conAsteriskdebemoscambiar
estepuerto.
DNSesunaformadeconfigurarunadireccinlgicaparaquepuedaserresuelta.Estopermiteque
lasllamadasseanenviadasadiferenteslugaressinnecesidaddecambiarladireccinlgica.Usando
elDNSSRVsegananlasventajasdelDNSmientrasquedeshabilitandolonoesposibleenrutar
llamadasenbaseanombrededominios.Convienetenerloactivado,portantoseponeladirectiva
srvlookup=yes
Cadaextensinestdefinidaporunuserousuario,unpeeroproveedorounfriendoamigoyviene
definidaconunnombreentrecorchetes[].
Eltipo(type)"user"seusaparaautenticarllamadasentrantes,"peer"parallamadassalientesy
"friend" para ambas.Ennuestrocasohemosdefinidounaextensin4000como"friend".Puede
realizaryrecibirllamadas.
Secreteslacontraseausadaparalaautenticacin.Enestecasoser"password".
Se puede monitorizarlalatenciaentreel servidorAsteriskyeltelefonoconqualify=yes para

determinarcuandoeldispositivopuedeseralcanzado.EnestecasoAsteriskconsiderapordefecto
quequeundispositivoestpresentesisulatenciaesmenorde2000ms(2segundos).Sepuede
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",
Tambinsehapuestocanreinvite=no.EnSIPlosinvitesseutilizanparaestablecerllamadasy
redirigirelaudioovdeo.Cualquierinvitedespusdelinviteinicialenlamismaconversacinse
consideraunreinvite.
Cuandodosusuarioshanestablecidolacomunicacinconcanreinvite=yes(pordefecto)lospaquetes
RTP de audiopodranserenviadosextremoaextremosinpasarporelservidorAsterisk. Esto,
normalmente,nosueleserconvenienteencasosenlosquehayaNATenalgunodelosclientes.
(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:

User

Peer

Explicacinyopciones

context

context

Indicaelcontextoasociadoeneldialplanparaunusuarioopeer

permit

permit

PermitirunaIP

deny

deny

NopermitirunaIP

secret

secret

Contraseaparaelregistro

md5secret

md5secret

Contraseaencriptadaconmd5

dtmfmode

dtmfmode

Elmodoenelquesetransmitenlostonos.Puedenser
"RFC2833"o"INFO"

canreinvite

canreinvite

Con"no"sefuerzaaAsteriskanopermitirquelospuntosfinales
intercambienmensajesRTPdirectamente.

nat

nat

IndicasieldispositivoestdetrsdeunNATcon"yes"

callgroup

callgroup

Defineungrupodellamadas

pickupgroup

pickupgroup

Defineelgrupodellamadasvalidasparaunaaplicacionpickup()

language

language

Definelassealesparaunpais.Debeestarpresenteenelarchi
voindications.conf

allow

allow

permitehabilitaruncodec.Puedenponersevariosenunmismo
usuarioPosiblesValores:

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

allow=all

Permitesoportarredirecciones302.Pordefecto"no"

callerid

Defineelidentificadorcuandonohayningunaotrainformacion
disponible

accountcode

Losusuariospuedenestarasociadosconunaccountcode.Se
usaparafacturacion.

amaflags

SeusaparaguardarenlosCDRytemasdefacturacin.Puede
ser"default","omit","billing",o"documentation"

incominglimit

Limitedellamadassimultaneasparauncliente

restrictcid

SeusaparaesconderelIDdelllamante.Anticuadayendesuso
mailbox

Extensindelcontestador

username

SiAsteriskactuacomoclienteSIPesteeselnombredeusuario
quepresentaenelservidorSIPalquellama

fromdomain

PoneelcampoFrom:delosmensajesSIP

regexten
fromuser

Poneelnombredeusuarioenelfromporencimadeloquedigael
callerID

host

direccinohostdondeseencuentraeldispositivoremoto.Puede
tomarvalores:
UnaIPounhostconcreto
"dynamic"conloquevaldracualquierIPperonecesitacontra
sea
"static"valecualquierIPperonoesnecesariocontrasea

port

PuertoUDPenelqueresponderelAsterisk

qualify

Paradeterminarcuandoeldispositivopuedeseralcanzado

defaultip

IPpordefectodelclientehost=cuandoesespecificadocomo
"dynamic"

rtptimeout

Terminalallamadacuandollegaaesetimeoutsinohahabido
trficortp

rtpholdtimeout

Terminalallamadacuandollegaaesetimeoutsinohahabido
trficortp"onhold"

EjemplopracticocreacindeunanexoSIP:
; sip.conf
[4000]
context
dtmfmode
disallow
allow
allow
allow
type
host
username
Secret
mailbox
callerid
qualify
nat

=
=
=
=
=
=
=
=
=
=
=
=
=
=

anexos
rfc2833
all
ulaw
ilbc
gsm
friend
dynamic
4140
4140
1000
"Anexo 4000" <4000>
yes
yes

Unavezcreadoelanexoenelarchivo'sip.conf'esnecesariorecargarlaconfiguracinalsistema,
paraestoejecutaremosdentrodelainterfazCLIelcomando'sipreload'yparaobservarsirealmente
secargolaconfiguracionejecutamoselcomando'sipshowpeers':
sipreload
sipshowpeers
[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

PararegistraruntelfonoIPatravessuinterfazwebgenrica,sedebenseguirlossiguientespasos:
1.AsegurarnosqueletelfonotomedireccinIPdeformadinmica(DHCP).
2.AveriguarladireccinIPquetomoeltelfonoyescribirlaenlabarradedireccionesdeun
navegadorwebcualquiera(PorEj.Firefox).
3.Ingresarcontraseayaccederalainterfazwebdeconfiguracin.
4.Ubicarlaseccindeconfiguracinparaunanexosipeingresardatoscomo:
UsuarioSIP.
Contrasea.
DireccinIPdelservidorAsterisk.
etc.
OBS.Paramasdetallesconsultarinstruccionesenmanualdeusuariodeltelfonocorrespondiente.

Unavezcreadoyregistradoelanexo,nosfaltaraunsolopaso.Estepasoeselquenospermitir
comunicarnoscondichoanexoenotraspalabrasnosfaltaunarutadediscadohacianuestroanexo,
estarutasecreaenelarchivodeconfiguracin'extencions.conf'yformapartedenuestroDialPlan.
(DialPlanqueposteriormenteexplicaremosmasadelanteenestedocumento).
; extensions.conf
[anexos]
exten => 4000,1,Dial(SIP/4000,20)
exten => 4000,2,Hangup

Guardamos los cambios y salimos del archivo, ingresamos en la consola CLI y ejecutamos el
comandoparareleerloscambiosrealizadosenelarchivo'extensions.conf':
asteriskr
extensionsreload
[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(centralitatelefnica)decdigoabiertopatrocinadoporDigium.Esutilizadoparamanejar
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 estosediferenciadeSIP,queutilizaunacadenaRTPoutofbandparaentregar 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, aadirnuevosusuariosoconectarconproveedoresIAX.Laconfiguracinparaestos
canalesseencuentraenelelarchivo'iax.conf'ubicadoeneldirectorio'/etc/aserisk/'elcualdeberser
editadocomousuario'root'.
Elarchivodeconfiguracin'iax.conf'seleedeformasecuencialdesdearribahaciaabajo.Laseccin
[general]contienetodoslosparmetrosdeconfiguracingeneralylaseccin[servidor_A]contiene
losparmetrosdeconfiguracinparaelusuarioodispositivoIAX[servidor_A]enparticular.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

EngenerallosservidoresIAXescuchanenelpuerto4569UDP/TCP.Portantoconfiguramos
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
logracomunicarseconunanexodelservidor_B)debemosrealizarelsiguienteprocedimientode
creacindeusuariosIAXenambosservidores,usuariosquelapostrenosservirnpararealizarel
tunkingentreambosservidoresylograrcomunicacinentres.
Archivo'iax.conf'servidor_A:
; 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

Atravesdelosparametros:
'host=direccion.IP.de.servidor_B' y
'permit=direccion.IP.de.servidor_B'

Logramosestablecerunarelacindeconfianzaentreambosautentificandoseentresipermitiendo
quesolamenteservidor_Ayservidor_Bpuedanestablecercomunicacinynadiemas.

Archivo'iax.conf'servidor_B:
; 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

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
[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:

; 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

Archivo'extensions.conf'servidor_B:
; 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

Enambosservidoresguardamosloscambiosysalimosdelosarchivos,ingresamosenlasconsolas
CLIyejecutamoselcomadoparareleerloscambiosrealizadosenlosarchivos'extensions.conf':
asteriskr
extensionsreload
[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

CAPITULO6

Telefona Zaptel
Zaptel Telefona Analgica (FXS, FXO)
Estosdostrminossiemprellevanaconfusindebidoaquesiendoconceptosdiferentessiemprevan
juntos.
FXSesunpuertousadoporlaslneasdetelefonaanalgica(tambindenominadosPOTS),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)sonloscanalesutilizadosporlospuertosFXS/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
unadeestastarjetaseselpoderllamardesdenuestraredVoIPhacialosnmerosdelaempresa
telefnicatradicionalusandoAsterisk.
LastarjetaTDMsoportanmdulosFXSoFXOenunnmeromximodecuatro,puedeentoncesuna
tarjetatenerunacombinacindemdulosdeacuerdoanuestrasnecesidades.Enesteejemplotengo
unaTDM22Bloquesignificaque tiene2puertos/mdulosFXSy2puertos/mdulosFXO,el2
indicalosmdulosFXSyelotro2losmduloFXO.Siguiendoconelejemplo,sitenemosunatarjeta
TDM04BquieredecirquenotienemdulosFXSy4mdulosFXO,untarjetaTDM11Btendrun
mduloFXSyunmduloFXO,etc.
EstastarjetasdeberanseralojadasenunslotPCIlibreyenelseconectarlatarjeta,veremosque
tienelosdosmdulosrojosenellaydosverdes.LosmdulosdecolorverdesonFXSylosmdulos
decolorrojosonFXO.
Unavezcolocadalatarjetaensupuertorespectivo,debemossabersiesreconocida:
[root@asterisk ~]# lspci | grepCommunication
0000:06:05.0Communicationcontroller:TigerJetNetworkInc.Tiger3XX
Modem/ISDNinterface

Acontinuacineditaremoslosarchivosdeconfiguracin'/etc/zaptel.conf'y'/etc/asterisk/zapata.conf'.
;zaptel.conf
fxoks=1-2
fxsks=3-4
loadzone=cl
defaultzone=cl

Lalneafxoks=12indicaquelosdosprimerosmdulossonFXSyporellodebenllevarsealizacin
FXO,12eslomismoquedecir1y2.Lalineafxsks=34indicaquelosdosltimosmdulosson
FXOyporellodebenllevarsealizacinFXS.LatarjetaseriaFXSFXSFXOFXO.

SituviesedostarjetasTDM400PconochomdulosFXOdeberatenerunasolalneafxsks=18.Es
importantezaptel.confporqueahsedefinelasealizacinquecadapuertovaatener.Lossiguiente
esejecutarelcomando'ztcfgvvvv'paraconfirmarquenuestraconfiguracinestacorrecta.Sinos
hemosequivocadoconlasealizacindecadapuertotendremosunmensajedeerrorquenoslo
indicarparapodercorregirlo.
[root@asterisk ~]# ztcfg -vvvv
Zaptel Configuration
======================
Channel map:
Channel
Channel
Channel
Channel

01:
02:
03:
04:

FXO
FXO
FXS
FXS

Kewlstart
Kewlstart
Kewlstart
Kewlstart

(Default)
(Default)
(Default)
(Default)

(Slaves:
(Slaves:
(Slaves:
(Slaves:

01)
02)
03)
04)

4 channels configured.

Ahoradeberemoseditarnuestro/etc/asterisk/zapata.confparanuestrosdoscanalesFXSydoscanales
FXO:
;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:
;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

LlamadasdesdeelservidorhacialaPSTN:
;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

LlamadadeanexoaanexoZAP.
;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:
[root@asterisk ~]# lspci | grepCommunication
07:04.0Communicationcontroller:Digium,Inc.WildcardTE120P(rev02)

Acontinuacineditaremoslosarchivosdeconfiguracin'/etc/zaptel.conf'y'/etc/asterisk/zapata.conf'.
;zaptel.conf
span=1,0,0,ccs,hdb3
bchan=1-15
dchan=16
bchan=17-31
loadzone=cl
defaultzone=cl

Lossiguienteesejecutarelcomando'ztcfgvvvv'paraconfirmarquenuestraconfiguracinesta
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
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel

01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:

Clear channel (Default) (Slaves:


Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
D-channel (Default) (Slaves: 16)
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:
Clear channel (Default) (Slaves:

31 channels configured.

01)
02)
03)
04)
05)
06)
07)
08)
09)
10)
11)
12)
13)
14)
15)
17)
18)
19)
20)
21)
22)
23)
24)
25)
26)
27)
28)
29)
30)
31)

Ahoradeberemoseditarnuestro/etc/asterisk/zapata.confparanuestrosdoscanalesFXSydoscanales
FXO:
;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

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:
;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:
;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

Respecto al orden de los dispositivos Zap.


Losdispositivosaparecerncomocanalesparazaptelenelordenenquehayansidocargados.Por
ejemplositieneunpuertoFXOyunpuertoFXSenelsistemaunopuedecargareldriverFXO
seguidodeldriverFXSyeldispositivoFXOseraelcanal1mientraselFXSseraelcanal2.
LosdispositivosE1/T1debencargarseprimeroquelosFXOoFXS,assielsistemacontieneunE1y
ademsunpuertoFXO,entoncesloscanales1al31pertenesernalE1yelpuertoFXOseraelcanal
32.

CAPITULO7

Plan de Marcacin: Conceptos Generales


Elplandemarcacineselencargadodeenrutarcadallamadaenelsistemadesdesuorigenaun
destinopredeterminado.LaconfiguracindelplandemarcacindelossistemasAsteriskserealizaen
elarchivo'extensions.conf'.
Elplandemarcacineslapiezacentraldecualquiersistemadetelefona,yaqueestedefinela
maneraquesemanejaelflujoyaseaentranteosalientedellamadas.Elplandemarcacinesta
compuestoporunalistainstruccionesopasosqueelsistemadebedeseguir.
Para definir un plan de marcacin en un sistema Asterisk es absolutamente importante que se
comprendaelfuncionamientodelmismo.

Componentes de un Plan de Marcacin


Gran porcentajedelplandemarcacinsedefineenelarchivo'extensions.conf',estearchivose
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
marcaciondefinidosencadaunodeellos.Enlapracticaloscontextospuedenserutilizadospara
hacerqueunsistemaAsteriskcontestedemaneradiferentecadalineatelefnica.
Loscontextossedefinenporsunombreentrecorchetes,porejemploparacrearuncontextollamado
'anexos'paramanejarlasllamadasentreanexoslodefiniramosas:
[anexos]
Todas las instrucciones colocadas despusdela 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 extensinesidentificadaporuncarcteralfanumricoypuedecontenernmeros,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;cuandounallamadorenunmendevoznoingresaelnumerocorrectodedgitos,la
extensinexecutaeltimeout
T
absolutetimeout;cuandounallamadaexcedeelvalorllevadoacaboenunavariableabsolutade
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
Lasprioridadessonpasosnumeradosparadefinirelordendeejecucindecadaextensin.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 2extensiones, yprestemos atencinalaformaenquese definen las
prioridadesdelallamada
;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

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
aplicacinGotoysaltaraalcontextoentrantesalaextensin's'prioridad1,luegoseejecutala
aplicacinAnswer,unavezejecutadaestaaplicacinautomticamentepasaraalasiguienteprioridad
2 y ejecutara laaplicacinPlayback luegouna vezejecutadaestaaplicacinpasara ala ultima
prioridadla3yejecutaralaaplicacinHangup,oseacortaralallamada.
Lavariable${EXTEN}tomaelvalorquenosotrosingresamosenlaextensin,porejemplo:
Sidiscamos4000paracomunicarnosconelanexo4000entonceslallamadacaerenla
extensinexten=>_40XX,1,Dial(SIP/${EXTEN},20)ylavariable${EXTEN}tomarade
formaautomticaelvalor4000queelnumerosediscooriginalmente.
Deestaformanoslogramosdarcuentadelaformaencomoseejecutanlasextensionessiguiendoun
determinadoconjuntodeprioridadesyejecutandodeterminadasaplicaciones.
OBS.ElanexoSIPdesdeelcualserealizaestapruebadedealgunaformateneraccesoalcontexto
[enviar].

CAPITULO8

Plan de Marcacin: Construyendo


En este capituloharemosusodetodoslos conceptosaprendidosenelcapituloanterior,yaque
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
include
include
include
include
include

=>
=>
=>
=>
=>
=>

anexos
locales
LDN
LDI
celulares
800_600

[R2]
include
include
include
include
include

=>
=>
=>
=>
=>

anexos
locales
LDN
celulares
800_600

[R3]
include
include
include
include

=>
=>
=>
=>

anexos
locales
celulares
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 voicemailseconfiguranatravesdelarchivodeconfiguracin'voicemail.conf'ubicadoen 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

;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

Dentrodelcontexto[default]vandefinidaslascasillasdevozconsusrespectivascuentasdecorreo,
contraseaynombredeusuario.Lasintaxisdeestaconfiguracineslasiguiente:
Anexo=>Contrasea,Nombre_del_Usuario,Email_al_que_enviara_mensaje
Unavezrealizadaestaconfiguracinveremoslaformadecomodejarmensajesencasonuestro
anexonoestedisponible,estoserealizaenelarchivo'extensions.conf':
;extensions.conf

[anexos]
exten => _40XX,1,Dial(SIP/${EXTEN},20)
exten => _40XX,2,Voicemail(${EXTEN})
exten => _40XX,3,Hangup

Conestoencasodenocontestarelanexopor20segundosencasodeestarocupadonuestroanexo
lallamadapasaraautomticamentealasiguienteprioridadoseapasaraalbuzndevoz.
Pararecargarestaconfiguracinesnecesarioreleerlosarchivosdeconfiguracin:
asteriskr
reload

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:
;meetme.conf
[rooms]
;
; Usage is conf => confno[,pin][,adminpin]
;
conf => 60000
conf => 60001,1234

Lasintaxisdelarchivoeslasiguiente:
Conelcontexto[rooms]damosinicioaladefinicindenuestrassalasdeconferencia.Luegopara
crearunasaladeconferenciainiciamosconelcomando'conf=>',seguidodelnumerodelasalade
conferencia y lacontraseaparadichasala,siqueremosaccederaestasalasinunacontrasea
entoncessedejasoloelnumerodelasala.
conf=>numero_sala,contrasea_sala
Posteriormenteunavezrealizadosestoscambiosenelarchivo'meetme.conf',veremoslaformade
accederaestassalasestoserealizaenelarchivo'extensions.conf':
;extensions.conf

[anexos]
exten => 60000,1,Meetme(60000)

Conestoencasodemarcarlaextensin60000entoncescomoprioridadnumerounoejecutarala
aplicacinMeetmeyaccederemosalasaladeconferencia6000.

CAPITULO11

Evaluacin
Laevaluacinsellevaraacaboen2.5hrs,esdecarcternetamentepracticoyseracapazdemedirlos
conocimientosadquiridosporlosalumnosalcabodelcapitulo10.

CAPITULO12

IVR (Interactive Voice Response)


RespuestaInteractivadeVoz(IVR):(InteractiveVoiceResponse)nospermitepresentarunmen,a
lapersonaquellama,atravsdeltecladodeltelfono,pormediodelcualpodrescogerlaopcinque
encasillelarespuestaoserviciobuscado.Ademspuedesonarmensajesgrabadosparalasllamadas
enespera,parareforzarlaimagendemarcaotransmitirinformacinadicionalalapersonaquellama.
EnasteriskunIVRespresentadocomounconjuntodecontextosqueseinterrelacionanentresi
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 =>
exten =>
exten =>
exten =>
exten =>
exten =>
exten =>
exten =>
exten =>
exten =>
exten =>

s,1,Answer
s,2,Wait,1
s,3,Background(lc/mymessage-500)
s,4,GotoifTime(9:00-18:30|mon-fri|*|*?menu,s,7)
s,5,Background(lc/mymessage-509)
s,6,Hangup()
s,7,Background(lc/mymessage-501)
s,n,Background(lc/mymessage-502)
s,n,Background(lc/mymessage-503)
s,n,WaitExten(5)
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)

;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
exten
exten
exten
exten
exten

=>
=>
=>
=>
=>
=>

2,1,SetCallerID("Ventas de Proyectos")
2,n,Dial(SIP/4003,20)
2,n,Dial(SIP/4003,20)
2,n,Dial(SIP/4005,20)
2,n,Dial(SIP/4006,20)
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
exten
exten
exten
exten
exten

=>
=>
=>
=>
=>
=>

4,1,SetCallerID("Soporte por Eventos")


4,n,Dial(SIP/4003,20)
4,n,Dial(SIP/4003,20)
4,n,Dial(SIP/4005,20)
4,n,Dial(SIP/4006,20)
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)

OBS.Losarchivosdeaudiodebernsergrabadosenelcurso.

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:defaultcontroladodesdelapestaa
"ControlIVR";voiph323:controlalasextensionesdelsistema;outgoingque
gestionatodaslasextensionesdesalidacreadasdentrodelaopcin
"ComunicacinExterior";servicioscontextoadministradodesdelaventana
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:
Necesitamosquealgunosanexosseautentifiquenatravsdeunacontraseaparapoderrealizar
llamadas.
Enelarchivoextensions.confcreamosuncontexto:
;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

Un anexo quepuede ejecutar lo que seencuentradentro del contextoLlamadas_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....

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
identified
timeout

>SIP,IAX2,Zap
>4000or${EXTEN}
>OpcinL(::)

Laopcin'L(x:y:z)'quieredecirquelimitaralallamadaa"x"milisegundos,notificndocuandofalten
"y"milisegundosyrepitindolocada"z"milisegundos,endondesolo"x"esindispensableparasu
funcionamiento.
Ejemplopractico:
;extensions.conf
[llamadas-con-tiempo]
exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},L(3600000:61000:30000))
exten => _XXXXXXX,2,Hangup

ParaelcasodelejemplosignificaqueelcomandoDiallimitaralallamadaa3600000ms(1hora)y
notificaraquelallamadallegaaesetiempocuandofalte61000(1minutoy1segundo)yesaalarma
serepetircada30000ms(30segundos).

CAPITULO14

Asterisk AstDB
AsteriskincorporaunaBDtipoBerkleyDBv2,enellaelpropioAsteriskalmacenadiversosvalores
como:
RegistrosSIP,IAX.
Informacinsobrecolas.
Nosotroscomodesarrolladoresyprogramadoresdenuestrodialplantambinpodemosalmacenar
informacinenellayconsultarladesdeelmismodialplan.
AstDBposeeunaorganizacinreferenteafamilias,ydentrodeunafamiliasepuedentenerdiversas
keys,yparacadakeyunsolovalor.AcontinuacinunejemplodecreacindeunaDBasterisk.
[root@asterisk ~]# asterisk -r
asterisk*CLI> database put MIFAMILIA mikey
Updated database successfully
asterisk*CLI> database show MIFAMILIA
/MIFAMILIA/mikey
:
asterisk*CLI> database put MIFAMILIA mikey
Updated database successfully
asterisk*CLI> database show MIFAMILIA
/MIFAMILIA/mikey
:

1234

1234
4567

4567

LaformademanipularestaDBcreadaanteriormenteeliminandoelcontenidoyasignndoleotroes
lasiguiente:
; extensions.conf
[AstDB]
exten =>
exten =>
exten =>
exten =>

_XXXX,1,Set(valrespassadmin=${DB_DELETE(MIFAMILIA/mikey)})
_XXXX,2,Set(DB(MIFAMILIA/mykey)=${EXTEN})
_XXXX,3,Set(pass1=${DB(MIFAMILIA/mykey)})
_XXXX,6,Hangup()

NOTA:
Loscaptulos15,16y17sernabsolutaycompletamenteabordadosenclaserealizandodecadauno
deestosunlaboratoriodondeseinstalar,configuraryarafuncionarcadaunodelossoftwares
seleccionados para sus correspondientes labores (MySQLAsteriskStats ; Flash Operator Panel ;
TrixboxAsteriskNowsegnconveniencia).

También podría gustarte