Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Asterisk
Manual Asterisk
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 propietariosPBXcomobuznde oz,conferencias,IVR,distribucinautomticadellamadas,yotras v 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 entornoscorporativoscomoso lucindebajocostejuntoconSER(SipExpressRouter).
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
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 comportacomounaDigiu mX100P.
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). Lospaquetesnecesitadospara elsistemaoperativoLinuxCentOSsern: 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.
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
/var/log/asterisk EnestedirectorioseencuentranlosarchivosderegistrodelasoperacionesdeAsterisk.Definamos cadaunodelosarchivosencontradosdentrodeestedirectorio. cdr.db EstearchivoseencuentradisponiblesisecuentaconelCDRhandlerparalabasededatos SQLite.Elarchivocontienelabasededatosdelosregistrosdelasllamadas. event_log RegistrodeeventossucedidosenelPBX. full Creadoconlaintencindecontenertodoslosmensajesdedebugdelsistema. messages Contieneunlistadodelosmensajesdewarning,debugydemsnivelesdelogeo. queue_log Archivoutilizadoprincipalmenteporlaaplicacinapp_queue.
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 [4000] type=friend secret=password qualify=yes nat=yes host=dynamic canreinvite=no context=internal
; ; 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
; ; ; ; ;
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(NetworkAddressTranslatio n)como un router o firewall se puede configurar nat=yes para forzar a Asterisk a ignorar el campo informacindecontactoy sarladireccindesdelaquevienenlospaquetes. u 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 context permit deny secret md5secret dtmfmode canreinvite nat callgroup pickupgroup language allow allow=all disallow insecure
Peer context permit deny secret md5secret dtmfmode canreinvite nat callgroup pickupgroup language allow
Explicacinyopciones Indicaelcontextoasociadoeneldialplanparaunusuarioopeer PermitirunaIP NopermitirunaIP Contraseaparaelregistro Contraseaencriptadaconmd5 Elmodoenelquesetransmitenlostonos.Puedenser "RFC2833"o"INFO" Con"no"sefuerzaaAsteriskanopermitirquelospuntosfinales intercambienmensajesRTPdirectamente. IndicasieldispositivoestdetrsdeunNATcon"yes" Defineungrupodellamadas Defineelgrupodellamadasvalidasparaunaaplicacionpickup() Definelassealesparaunpais.Debeestarpresenteenelarchi voindications.conf permitehabilitaruncodec.Puedenponersevariosenunmismo usuarioPosiblesValores: permitedeshabilitaruncodec.Puedetomarlosmismosvalores queallow DefinecomomanejarlasconexionesconpeersTienelossiguien tesvaloresvery|yes|no|invite|portPordefectoes"no"quequiere decirquehayqueautenticarsesiempre. SilacabeceraRemotePartyIDesdeconfianza.Pordefecto"no"
disallow insecure
trustpid
progressinband Sisedebengenerarsealesenbandasiempre.Pordefectonever promiscredir Permitesoportarredirecciones302.Pordefecto"no" Defineelidentificadorcuandonohayningunaotrainformacion disponible Losusuariospuedenestarasociadosconunaccountcode.Se usaparafacturacion. SeusaparaguardarenlosCDRytemasdefacturacin.Puede ser"default","omit","billing",o"documentation" Limitedellamadassimultaneasparauncliente SeusaparaesconderelIDdelllamante.Anticuadayendesuso mailbox username fromdomain regexten fromuser host Poneelnombredeusuarioenelfromporencimadeloquedigael callerID direccinohostdondeseencuentraeldispositivoremoto.Puede tomarvalores: UnaIPounhostconcreto "dynamic"conloquevaldracualquierIPperonecesitacontra sea "static"valecualquierIPperonoesnecesariocontrasea port qualify defaultip rtptimeout rtpholdtimeout PuertoUDPenelqueresponderelAsterisk Paradeterminarcuandoeldispositivopuedeseralcanzado IPpordefectodelclientehost=cuandoesespecificadocomo "dynamic" Terminalallamadacuandollegaaesetimeoutsinohahabido trficortp Terminalallamadacuandollegaaesetimeoutsinohahabido trficortp"onhold" Extensindelcontestador SiAsteriskactuacomoclienteSIPesteeselnombredeusuario quepresentaenelservidorSIPalquellama PoneelcampoFrom:delosmensajesSIP
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
PararegistraruntelfonoIPatravessuinterfazwebgenrica,sedebenseguirlossiguientespasos: 1.AsegurarnosqueletelfonotomedireccinIPdeformadinmica(DHCP). 2.AveriguarladireccinIPquetomoeltelfonoyescribirlaenlabarradedireccionesdeun navegadorwebcualquiera(PorEj.Firefox). 3.Ingresarcontraseayaccederalainterfazwebdeconfiguracin. 4.Ubicarlaseccindeconfiguracinparaunanexosipeingresardatoscomo: UsuarioSIP. Contrasea. DireccinIPdelservidorAsterisk. etc. OBS.Paramasdetallesconsultarinstruccionesenmanualdeusuariodeltelfonocorrespondiente.
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
Atravesdelosparametros:
'host=direccion.IP.de.servidor_B' y 'permit=direccion.IP.de.servidor_B'
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'
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
CAPITULO6
Telefona Zaptel
Zaptel Telefona Analgica (FXS, FXO)
Estosdostrminossiemprellevanaconfusindebidoaquesiendoconceptosdiferentessiemprevan juntos. FXSesunpuertousadoporlaslneasdetelefonaanalgica(tambindenominadosPOTS),este puertoenvasealesdetimbreytonoparatelfonosanalgicos.Esdecir,queemulanaunalnea telefnicaanalgicatradicional. FXOestepuertorecibelassealesdelpuertofxs.Untelfonotienesunpuertofxo.Estepuertono envasealesdetonootimbrado,solorecibelassealesqueenvalosFXS.Funcionacomoterminal delnea.
Enlaimagentenemosunatarjetadigiumcondosmdulosfxs(colorverde)ydosmdulosfxo(color rojo).Estastarjetasseusanparacrearcentralitasipconasterisk.
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
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
Finalizadalaedicinyconfiguracindelarchivozapata.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
31 channels configured.
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
Respecto al orden de los dispositivos Zap. Losdispositivosaparecerncomocanalesparazaptelenelordenenquehayansidocargados.Por ejemplositieneunpuertoFXOyunpuertoFXSenelsistemaunopuedecargareldriverFXO seguidodeldriverFXSyeldispositivoFXOseraelcanal1mientraselFXSseraelcanal2. LosdispositivosE1/T1debencargarseprimeroquelosFXOoFXS,assielsistemacontieneunE1y ademsunpuertoFXO,entoncesloscanales1al31pertenesernalE1yelpuertoFXOseraelcanal 32.
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) Algunosnombresdeextensionesestnreservadas ysemuestranacontinuacin: 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
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 [R2] include include include include include [R3] include include include include
[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
[anexos] exten => _40XX,1,Dial(SIP/${EXTEN},20) exten => _40XX,2,Voicemail(${EXTEN}) exten => _40XX,3,Hangup
CAPITULO10
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)
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)
[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: Wait: Descuelgainmediatamente. 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:defaultcontroladodesdeapestaa l "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.
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 quelosanexosquenecesitanautentif carseparapoderrealizarllamadas: i /etc/asterisk/passwords/4000;Estearchivodebecontenerunapassword /etc/asterisk/passwords/4000; /etc/asterisk/passwords/4000; etc....
Opciones...
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 =>
NOTA: Loscaptulos15,16y17sernabsolutaycompletamenteabordadosenclaserealizandodecadauno deestosunlaboratoriodondeseinstalar,configuraryarafuncionarcadaunodelossoftwares seleccionados para sus correspondientes labores (MySQLAsteriskStats ; Flash Operator Panel ; TrixboxAsteriskNowsegnconveniencia).