Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
Enfoque al cliente
Liderazgo Especializado
Participacin del personal
Mejora Continua
Relaciones Beneficiosas con el proveedor
Responsabilidad Social
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.
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.
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
Diseo e Implementacin de la solucin
Capacitacin de S.O. Linux
Soporte y Asistencia Tcnica
Estudios de viabilidad tcnica y econmica '95 Planes de Migracin '95 Pilotos y Prototipos
Seguridad. Firewall - VPNs - Detector de Intrusos - Anlisis Forense - Proxy Filtros de Internet.
Mon
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.
Para ofrecer los ms altos estndares de calidad, Linux Latin America se encuentra
certificada ISO9001/2000.
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
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
Asterisk
Ofimtica
OpenOffice.org
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
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
*$+,$*+
$
'
(
"
#7
89
(
*
*
(
#7
,*+
0")
:;
)#!;8<98=
1" $
#
2"1
#
:9 -3 # #
>9 -3
&
?-3
4
1
#
>9-3
(
!!")
:=
8AAB
4
5 67
!)" )
#
*
!-")
*
?9B
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).
CreacindeanexosIP(SIP).
Control,Monitoreoentiemporeal,CDR.
Accesoabasededatos(AstDB,MySQLparaalmacenarelCDR)
InterfazGrafica.
RespuestaInteractivadeVoz(IVR)
Grabacindeconversaciones.
Correodevozemail.
FiguraN1
FiguraN2
FiguraN3
FiguraN4
FiguraN5
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)
Dispositivos VoIP
Telfonos IP
Softphone
Adaptadores (ATA)
Hadware Digium
CAPITULO2
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.
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
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
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.
zaptel
libpri
asterisk
asteriskaddons
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
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
Directorios Usados
Acontinuacinlosarchivosydirectoriosmasimportantescreadosenelprocesodeinstalacin.
/etc/asterisk
Enestedirectorioseencuentrantodoslosarchivosnecesariosparaconfigurarlagrancantidadde
serviciosqueAsteriskprovee.Revisaremoslosmasimportantes.
asterisk.conf
Configuraciones generales de la ubicacin de directorios de archivos de configuracion,
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:
#
#
#
#
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.
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
;
[4000]
type=friend
secret=password
qualify=yes
nat=yes
host=dynamic
canreinvite=no
context=internal
;
;
;
;
;
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.
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.
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
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:
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
CAPITULO7
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
CAPITULO8
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]
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
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
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)
;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)
=>
=>
=>
=>
=>
=>
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)
=>
=>
=>
=>
=>
=>
[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.
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
Dentrodecadaarchivodebemosdeescribirlacontraseadeautenticacindelanexocorrespondiente.
Silapasswordescorrectaentoncespasaraalasegundaprioridad,lacualnosdartonodemarcadoy
nosenviaraautomticamentealcontextoLlamaryunavesqueescuchamoseltonodemarcado
ingresamoselnumeroexternohaciaelcualnosqueremoscomunicarporejemploel4834000yse
lallamadaserealizar.SilaPasswordesincorrectanoslavolverapreguntar.
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
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).