manual asterisk

Upload: ramon-navarrete-henriquez

Post on 13-Jul-2015

804 views

Category:

Documents


1 download

TRANSCRIPT

Resumen EjecutivoMisinLinux Latin Amrica es la empresapionera y lder en servicios globales de TI basados enplataforma Linux y software libre. Proveemosservicios de capacitacin,consultora, soluciones,soporte tcnico e integracin de productos innovadores y de primer nivel en base a Sistema OperativoLINUX para asegurar, resguardar y rentabilizar los procesos tecnolgicos degrandes ymedianasorganizaciones, quienes nos premian con relaciones de largo plazo.VisinLinux Latin Amrica ser el proveedor latinoamericano lder de servicios globales de TI enplataforma Linux. Tecnologa que ser altamente demandada por los gobiernos yprincipales empresasdelaregin.Paralograrlo,nosconcentraremosenelevadosnivelesdecalidad,innovacinyespecializacin de nuestros profesionales.Principios que nos inspiran- Enfoque al cliente- Liderazgo Especializado- Participacin del personal- Mejora Continua- Relaciones Beneficiosas con el proveedor- Responsabilidad SocialPresentacin Corporativa Linux Latin Amrica 2008Presentacin Corporativa Linux Latin Amrica 2008Su poltica de CalidadLinux Latin America logra la s atisfaccin de sus clientes a traves de la entrega de servicios desoporte e ingeniera en forma efectiva, ajustando a los requerimientos, buscando estar de acuerdo asumisinyvisinyatendiendoanuestrocompromisopermanentedemejoracontinua.Sus objetivos de Calidad- Lograr que el indicador satisfaccin de sus clientes tenga un valor igual o superior a los planificados por la alta gerencia.- Que sus tcnicos y profesionales tengan una evaluacin, por parte de sus clientes,igualo superior a lo planificado por la alta gerencia.- Cumplir satisfactoriamente los tiempos estipulados.- Que sus ejecutivos comerciales tengan una evaluacin por parte de sus clientes igualo superior a la estipulada por la alta gerencia.Qu servicios ofrecemos?ConsultoraLos proyectos de migracin realizados por Linux Latin America estn basados en un anlisis previodel 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 diferentesy mltiples servicios que en su totalidad permiten conseguir una implantacin final satisfactoria.Levantamiento y Detalle de Requerimientos - Fase Inicial de AsesoraDiseo e Implementacin de la solucin- Fase de EjecucinCapacitacin de S.O. Linux - Fase CapacitacinSoporte y Asistencia Tcnica- Fase Soporte y AsistenciaEstudios de viabilidad tcnica y econmica '95 Planes de Migracin '95 Pilotos y PrototiposPresentacin Corporativa Linux Latin Amrica 2008Presentacin Corporativa Linux Latin Amrica 2008Implementacin de Soluciones Opensource- Mensajera.- Servidores de Correo con herramientas de colaboracin- Agenda Compartida Webmail-Mensajera Instantnea Encriptada-Foros de Discusin-Libreta de Direcciones Corporativa.- Soluciones de Telefona y Voz sobre IP con Asterisk.- Servidores de Archivos-Controladores de Dominio (Samba / OpenLDAP)-Single Sign - On.- Seguridad. Firewall- VPNs-Detector de Intrusos -Anlisis Forense- Proxy-Filtros de Internet.- Herramientas de Monitoreo de Servidores y Red. Nagios-Cacti-MRTG -Ethereal- NTOP.- Mon-Tunni ngparaservi doresdebasesdedatosOracl eySybase.- Clusterizacin de Servidores : Alta Disponibilidad-Balanceo de Carga -Oracle RAC.Implementacin de Soluciones Comerciales para LinuxNovell Groupwise-Novell e-Directory -Oracle-RedHat Cluster Suite - RedHat GFS-Solucin Corporativa Retail Novell Linux Point-of-Sales.Soporte y Asistencia TcnicaAsistencia Telefnica- Presencial en dependencias del cliente- Acceso remoto seguro -Asistencia va e-mail.Capacitacin y CertificacinContamos con una amplia gama de cursos en plataformas Linux y Software libre, con salastotalmente equipadas para realizar una capacitacin prctica e interactiva. Todos nuestros cursoscuentan con Franquicia Sence.Por otro lado el reconocimiento que Red Hat nos ha entregado por ser el nico centro decapacitacin en Chile que puede entregar los cursos de certificacin (RHCE-RHCT), nos sitan comoprincipal proveedor de capacitacin y consultoras relativas al software libre en Chile y Latinoamrica.Por qu elegir Linux Latin Amrica?- Dado su concentrado foco de negocios, somos slo especialistas en ofrecer solucionesdeinfraestructurabasadasenplataformalinuxyherramientasdesoftwarelibre.- Es la empresa chilena con ms experiencia en soluciones linux en el mercado nacional.Es la que posee el mayor nmero de ingenieros certificados RHCE (Certified Engineer)y RHCX (Certified Examiner). Business Partner RedHat (http://www.redhat.com).- Cuenta con la base de servidores linux instalados ms amplia en el sector corporativo.- Para ofrecer los ms altos estndares de calidad, Linux Latin America se encuentra certificada ISO9001/2000.- La solidez de nuestras alianzas con los ms importantes fabricantes de tecnologa y otrasempresas especializadas, nos permiten abordar todo tipo de proyectos.http://www.linuxlatinamerica.comArgentina: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 4834100Mexico:Insurgentes Sur N 2384 Col. Chimalistac. Deleg. lvaro Obregn. Mexico D.F.Tl: +52 55 [email protected] Corporativa Linux Latin Amrica 2008Sea libre, use Linux.Sistemas OperativosLinux Bsico LC ADM 101 Los participantes aprendern los conceptos de Linux, este curso esta dirigido a usuarios que desean usar Linux en sus actividades diarias.Duracin: 12 HrsAdministracin Linux -LC ADM 100 Proporciona al participante los conocimientos y procedimientos para administrar un servidor Linux y servicios de red asociados, como administracin, correo, web, servicio de archivo, DNS, FTP.Duracin: 40 hrs.Resolucin de problemas- LC ADM 200 Proporciona al participante los conocimientos y procedimientos para la administracin avanzada de un servidor Linux,incluyendo los tpicos de red y ruteo, lista de control de acceso, respaldos y recuperacin, programacin de Scripts, SSH y resolucin de problemas.Duracin: 24 hrs.Seguridad Linux LC SEG 200 El participante sera capaz de dominar la operacin, configuracin de Linux con las caractersticas necesarias para mantener actualizado y seguro un servidor proxy, router y/o firewall LinuxDuracin: 36 hrs.Infraestructura LC INF 300 Los participantes podrn disear, implementar los servicios de infraestructura sobre LinuxDuracin: 36 HrsAplicacionesSamba Ldap -Postfix Este curso esta orientado a la centralizacin de autentificacin de servicios de la red corporativaDuracin: 24 HorasMonitoreo de Red LC SEG 201 El participante podr monitorear el estado de la red (trficos de paquetes, estado de servicios, utilizacin ancho de banda).Duracin: 24 horas.VPN- LC SEG 200 El participante ser capaz de crear redes primarias virtuales, es decir, interconectar dos redes remotas a travs de un tnel seguro.Duracin: 24 hrsCluster- LC CLU 300 El participante lograr realizar el balanceo de carga y alta disponibilidad de servicios de Red.Duracin 12 hrs.Asterisk - LC AST 300 El participante lograr integrar plantas telefnicas anlogas y digitales, PABXS virtuales, Routers de llamada, discadores automticos IVR, tarificacin todo implementado con tecnologa open SourceDuracin: 40 hrs.OfimticaOpen office LC ADM102 Proporciona a los participantes un manejo bsico de los conceptos prcticos, tericos, fundamentales para la utilizacin de esta suite ofimtica compuesta por: procesador de texto, planilla de calculo y base de dato.Duracin: 24 horasOpenOffice.orgAsteriskwww. l i n u x l a t i n a me r i c a . c o mV P NMEXICOInsurgentes Sur N 2384 Col. ChimalistacDelg. lvaro Obregn - C.P 01070. Mexico, D.F.Tel: +52 (55) 53507487 / +52 (55) 53507496.ARGENTINAVictoria OcampoN 360, 3 pisoC1107BGA - Puerto Madero - Buenos AiresTel: +54 (11) 45156332CHILEMariano Snchez Fontecilla 310, Edificio Birmann - 2 pisoCP7550515 - Las Condes - SantiagoTel: +56 2 483 4000 - Fax: +56 2 4834050DesarrolloUML- LC UML 100 El participante conocer los conceptos propios del modelo orientado al objeto, tambin aplicar las diversas tcnicas del anlisis y diseo orientado a objeto. Construir la especificacin de un sistema utilizando objetos.Duracin: 24 hrs.XML- lC XML 100 El objetivo es familiarizar al participante con el uso XML en Internet, se mostrara como escribir documentos XML , como presentarlas usando hojas de estilo o aplicndole transformaciones.Duracin: 36 hrs.Java LC JAV 200 Prepara al participante en tcnicas y herramientas de programacin JAVADuracin: 30 hrs.J2EE LC J2E 400 Proporciona toda la informacin necesaria para crear aplicaciones basadas en el estndar J2EE, adoptado globalmente por las grandes empresas como plataformas de desarrollo.Duracion: 40 hrs.DesarrolloPHP 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 PHPDuracin: 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 horasPerl 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 datosMysql(Intermedio y Avanzado)Aprender a Manejar, Administrar y migrar base de datos a MySQLDuracin: 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 hrsCertificacionesRed Hat:Introduccin a Redhat Linux (RH033) - Administracin del sistema Red Hat Linux y examen RHCT (RH133) - Red Hat Linux Networking y seguridad (RH253) - Rapid Track (RH-300).w w w . l i n u x l a t i n a m e r i c a . c o mNovell - Suse:Fundamental de SUSE LINUX (curso 3071) - administracion de Suse Linux (Curso 3072) - Administracin avanzada Suse Linux (3073) - Examen profesional del practicum de la certificacin (Novell CLP)XML TITULO I REGLAMENTO INTERNOCENTRO LINUX S.A.

Disposiciones GeneraIes ArtcuIo l: Para efectos del presente reglamento se entender por: "AIumnooParticipante": Toda persona natural que participe en actividades de capacitacin. Puedenserempresarios, trabajadoresopblicoengeneral, quedeseen capacitarse en temas propios del quehacer empresarial. "SENCE": ServicioNacional deCapacitacinyEmpleo; organismopblicoqueentre otrascosastienelaresponsabilidadde: aprobar programasyotorgar cdigoSence; fiscalizar la ejecucin de los cursos; y finalmente aprobar o autorizar la devolucin de los fondos invertidos por los participantes con cargo a su correspondiente franquicia tributaria."OTEC" Organismo Tcnico de Capacitacin, Las personas jurdicas que tengan como nico objeto social el Servicio de Capacitacin. Se extiende a Universidades,lnstitutos ProfesionalesyCentrosdeFormacinTcnica, inscritosenel RegistroNacional de Organismos Tcnicos de Capacitacin del Servicio Nacional de Capacitacin y Empleo. ArticuIo2:Laresponsabilidadsobre la planificacin, ejecuciny evaluacin delas actividades de capacitacin contenidas en el programa de capacitacin corresponden al Organismo Tcnico de Capacitacin Centro Linux S.A. ArticuIo 3:El Organismo Tcnico de Capacitacin se compromete a velar por la calidad del servicio ofrecido. TITULO IIDe Ia admisin aI programa de capacitacin ArtcuIo 4: Las actividades de capacitacin organizadas por Centro Linux estn dirigidas aempresarios y trabajadores delaGran, Medianay pequeaempresas y atodas aquellas personas que se interesen por las temticas que abarcamos. ArticuIo 5: Elrea comercial ser la responsable del proceso de difusin, postulacin e inscripcin de participantes a las actividades de capacitacin de nuestra OTEC. ArtcuIo6: El Organismo TcnicodeCapacitacinseguardael derechoanegarelservicio cuando, quien asista no cumpla con las medidas disciplinarias mnimas, exigidas por nuestro organismo. Estas medidas son: Quien asista a una actividad de capacitacin no debe estar bajo la influencia del alcohol. Quien asista a una actividad de capacitacin no debe encontrarse bajo los efectos de las drogas, ni consumirlas en las dependencias donde se realiza la actividad de capacitacin. Quien asista debe guardar una actitud de respeto hacia sus compaeros y hacia el lnstructor. Quien asista a una actividad de capacitacin no debe manifestar conductas inmorales u obscenas. Otra causal para negar el servicio es,para quien asista auna actividad de capacitacin y no se encuentre previamente inscrito, con sus datos registrados en la ficha de inscripcin u ordenes de compras. El Organismo Tcnico de Capacitacin, solicita a quienes se inscriban en cursos y/o seminarios, llegar puntualmente a la actividad, considerndose hasta l5 minutos despus de iniciada la clase, como perodo lmite apropiado para ingresar al saln. Sesolicitaalosparticipantesmantener lostelfonosmvilesapagadososinvolumen durante las clases, a fin de no interrumpir o distraer alrelator y/o a los dems participantes a la actividad. TITULO IIIDeI pago por concepto de capacitacin ArtcuIo 7: Los costos asociados a las actividades de capacitacin contemplan la forma prevista en el prrafo 4 de la Ley N l9.5l8. ArtcuIo8: El valor del programaesfijadodeacuerdoalacantidaddehorasde duracin, y las condiciones requeridas para impartir la actividad. ArtcuIo9:Aquelloscontribuyentesquetenganunaplanillaanual deremuneraciones menor a 45 UTMy mayor de 35 UTM, que registren cotizaciones provisionalesefectivamente pagadas, podrn deducir hasta 7 UTM en el ao. Aquellos contribuyentes que tengan una planilla anual de remuneraciones imponibles que sea inferior a 35 UTM, notendrnderechoal crditofiscal por costosdecapacitacinefectuadosparasus trabajadores, concarga a la franquicia tributaria por capacitacin. ArtcuIol0:El pago del valor del programasepodr efectuar bajo alguna delas siguientes formas: a) Pago total al contado al momento de inscribirse. b) Pago contra factura c) Pago con cheque; un cheque al da, ms un cheque a 30 das. d) Otros. ArtcuIo ll: La renuncia a la actividad de capacitacin de algn participante, cualquiera sea la causal, debe hacerse 48 horas antes del inicio de la actividad, de lo contrario, seobliga al pago del l00% del valor de este. ArtcuIo l2: El participante asistente en las actividades de capacitacin puede manifestar de manera formal, su descontento con la actividad dentro de las primeras tres clasesdel curso, detallandolasrazonesdesudescontento, paraellotieneasudisposicin elcorreo [email protected], donde podr expresar su molestia y esta ser atendendida.TITULO IVDe Ias evaIuaciones y certificaciones ArtcuIol3: Losparticipantesdebencumplir conlasevaluacionespertinentesala actividad de capacitacin, siempre y cuando esta as lo requiera. ArtcuIo l4: Los participantes deben tener una asistencia mnima a las actividades de capacitacin del 75%.ArtcuIol5: El OrganismoTcnicodeCapacitacinsloentregarlos certificados pertinentes a los participantes habiendo estos cumplidos con los requisitos sealados enel artculo l3 y l4 de este reglamento. CAPITULO1IntroduccinAsteriskQue es Asterisk?Asteriskesuna aplicacin desoftware libre(bajolicenciaGPL)deunacentraltelefnica(PBX).ComocualquierPBX,sepuedeconectarunnmerodeterminadodetelfonosparahacerllamadasentreseinclusoconectaraunproveedordeVoIPobienaunaRDSItantobsicoscomoprimarios.MarkSpencer,de Digium,inicialmentecreAsteriskyactualmenteessuprincipaldesarrollador,junto con otros programadores que han contribuido a corregir errores y aadir novedades yfuncionalidades. Originalmente desarrollado para el sistema operativo GNU/Linux, AsteriskactualmentetambinsedistribuyeenversionesparalossistemasoperativosBSD,MacOSXyotros,aunquelaplataformanativa(GNU/Linux)eslamejorsoportadadetodas.Asterisk incluye muchas caractersticas anteriormente slo disponibles en sistemas costosospropietariosPBXcomobuznde voz,conferencias,IVR,distribucinautomticadellamadas,yotrasmuchasms.LosusuariospuedencrearnuevasfuncionalidadesescribiendoundialplanenellenguajedescriptdeAsteriskoaadiendomdulosescritosenlenguajeCoencualquierotrolenguajedeprogramacinsoportadoporLinux.Para conectar telfonosestndar analgicos sonnecesarias tarjetas electrnicastelefnicasFXS oFXOfabricadasporDigiumuotrosproveedores,yaqueparaconectarelservidoraunalneaexternanobastaconunsimplemdem.QuizlomsinteresantedeAsteriskesquesoportamuchosprotocolosVoIPcomopuedenserSIP,H.323,IAXyMGCP.AsteriskpuedeinteroperarconterminalesIPactuandocomounregistradorycomogatewayentreambos.LejosdepodercompetirconlascompaasquecomercializansolucionesdeVoIPHw/Swdealtacalidad como AlcatelLucent, Cisco, Avaya Nortel, Asterisk se empieza a adoptar en algunosentornoscorporativoscomosolucindebajocostejuntoconSER(SipExpressRouter).Algunas caractersticas de asterisk CreacindeanexosIP(SIP). Control,Monitoreoentiemporeal,CDR. Accesoabasededatos(AstDB,MySQLparaalmacenarelCDR) InterfazGrafica. RespuestaInteractivadeVoz(IVR) Grabacindeconversaciones. Correodevozemail.Diagramas (topologa A rquitectura)FiguraN1FiguraN2FiguraN3FiguraN4FiguraN5Protocolos y Codecs usados Telefona IPProtocolos (SIP, IAX)SIP(SessionInitiationProtocol)SessionInitiationProtocol(SIPoProtocolodeIniciodeSesiones)esunprotocolodesarrolladoporelIETFMMUSICWorkingGroupconlaintencindeserelestndarparalainiciacin,modificacinyfinalizacin de sesiones interactivas de usuario donde intervienen elementos multimedia como elvideo,voz,mensajerainstantnea,juegosonlineyrealidadvirtual.EnNoviembredelao2000,SIPfueaceptadocomoelprotocolodesealizacinde3GPPyelementopermanentedelaarquitecturaIMS(IPMultimediaSubsystem).SIPesunodelosprotocolosdesealizacinparavozsobreIP,otroesH.323.(VaseCapitulo4)IAX2(InterAsteriskeXchangeprotocol)IAX(InterAsteriskeXchangeprotocol)esunodelosprotocolosutilizadoporAsterisk,unservidorPBX (centralita telefnica) de cdigo abierto patrocinado por Digium. Es utilizado para manejarconexiones VoIP entre servidores Asterisk, y entre servidores y clientes que tambin utilizanprotocoloIAX.ElprotocoloIAXahoraserefieregeneralmentealIAX2,lasegundaversindelprotocoloIAX.ElprotocolooriginalhaquedadoobsoletoenfavordeIAX2.(VaseCapitulo5)Codecs (G711, G729, GSM, IBLC)Dispositivos VoIPTelfonos IPSoftphoneAdaptadores (ATA)Gateways (E1-SIP, GSM-SIP)Hadware DigiumCAPITULO2Seleccin Hardware Servidor e Instalacin S.OEste captulo nos ayudara a preparar el sistema para la instalacinde Asterisk. Este funciona enmuchas plataformas y sistemas operativos, mas nosotros elegimos mantener las cosas simples ypermanecerenunanicaplataformaydistribucindeLinux.VamosusarladistribucinCentOSenestecurso.Lasinstruccionesrealizadasenestecursopuedenfuncionarconotrasdistribuciones,peroestasnohansidotesteadaspornosotros.Hardware MnimoAsteriskpuedeserintensivoenelusodeprocesador,puesusaelpropioprocesadordelservidor(PC)donde fue instalado para realizar el procesamiento de los canales de voz. Si usted estuvieseconstruyendounsistemacomplejoconcargaelevadaesimportanteentenderesteconcepto.Para construir su primer PBX Asterisk unprocesador compatible con Intel igual osuperior a unPentiumIII600Mhzcon128MBRAMessuficienteparaunsistemadepruebasquesoportehasta5llamadassimultaneasydondepodamosexplorartodaslasfuncionalidadesdeAsterisk,respectoalsistemaoperativopodramosoptarporunadistribucindeLinuxcomoCentos4.6,conelobjetivodentercomunicarnosconlaredpublicadetelefonia(PSTN)necesitaremosdeunatarjetatelefnicadehasta 4 canales ZAP, preferente mente una TDM400P con 4 mdulos FXO correspondientes a 4lineasanalogas.Asterisknorequieremuchoespacioendisco,cercade100MBsecalculaparaelsistemacalculado,dondeSIrequerimosespacioesparaelalmacenamientodemensajesdevoz,llamadasgrabadas,CDR(Basesdedatos).SiustedusanicamenteVOIP,ningnotrohardwareesnecesario.SepuedeusarsoftfonescomolosdeCounterpath(XLite)yrealizarentroncamientohaciaproveedoresdetelefonaIP.AlgunasaplicacionesdeAsteriskcomoelMeetmerequierenunafuentedeclockparaproveerlatemporizacin.NormalmentelafuentedeclockdeAsteriskesunaplacaTDM.SisusistemanotieneunaplacaTDM,ustedpuedeusarundriverztdummyqueusaelUSBcomofuentedetemporizacin.Una pista: Usted puede usar una placa de fax/modem con chipset Intel 537 o MD3200, ella secomportacomounaDigiumX100P.Hardware Minimo-MedianoUnservidorconunprocesadorSempronoCeleronde1Ghzcon256MBdeRAMseriasuficienteparaunsistemaasteriskquepodrasoportarde5a10llamadassimultaneasconmximodostarjetasdetelefonade4canalesanalgicoscadaunoyunS.OLinuxkernelversin2.6(CentOS4.6).Hardware Mediano-GrandeParaunsistemamayorquelogresoportarde10a24llamadassimultaneasloidealesunservidorconprocesadorPentium4oAthlonde3Ghzcon512MBRAMyeneseunatarjetadehasta24canalescomolaDigiumTDM2406Bqueposee24mdulosFXOpara24lineasanlogas.Hardware Mediano-GrandeParaunsistemaquerealice30llamadassimultaneasamaslomasrecomendableessoportarsesobresistemasXeonconopcindesegundaCPUademsdetarjetasDigiumTE120PyhastalaTE410Posimilares(Tarjetasdigitalescapacesdesoportade30a120canalesdigitalesdecomunicacin).Paraarquitecturassuperioresesnecesarioelusodemltiplesservidoresyunaarquitecturadistribuida.Endefinitivalamedicindelhardwareautilizartienedirectarelacinconlacantidaddellamadassimultaneasarealizarylacantidaddecanalesyaseaanlogosodigitalesausarennuestroservidor.Montando su sistemaElegirhardwarenecesarioparaAsterisknoesmuycomplicado.Ustednoprecisadeunatarjetadevdeo sofisticada o perifricos adicionales. Puertos seriales, paralelos y USB pueden sercompletamente deshabilitados desde la BIOS. Una buena tarjeta de red es esencial para nuestrosistema.SiustedestuvieseusandounadelastarjetasdetelefonadeDigium,seriabuenoverificarlasinstruccionesdesutarjetamadreparadeterminarsilosSlotsPCIsoportanestastarjetasdetelefona.Muchas tarjetas madres compartirn interrupciones (IRQ's) en slots PCI. Los conflictos deinterrupciones(IRQ's)sonunafuentepotencialdeproblemasdecalidaddeaudioenAsterisk. UnamaneradeliberarIRQsesdeshabilitardesdeelBIOStodoloquenofueranecesario.IRQ compartidasMuchas tarjetas de telefona como la X100P por ejemplo pueden generar grandes cantidades deinterrupciones, atenderlas toma tiempo.Losdriverspuedennoconseguirhacerloatiemposi otrodispositivoestuvieseprocesandolamismaIRQcompartidaylalineadeIRQnopodrrecibirotrainterrupcin. Esta problemtica tiende a funcionar mejor y ser resuelta en parte en sistemasmultiprocesador. En sistemas monoprocesador se puede tener muchas perdidas de interrupcin yclockdesfasado.CualquieradelastarjetasdetelefonadeDigiumyotrastarjetasdetelefonapuedenestar sujetas al mismo problema. Comola entregaprecisa de IRQs es unanecesidadprimariaentelefona, usted no debe compartir IRQs con nada. No siempre ocurre esto, pero se debe prestaratencinalproblema.SiseestusandouncomputadordedicadoparaAsterisk,deshabiliteelmayornmerodedispositivosqueustednovaausar.LamayoradelasBIOSpermitequeustedmanualmentedesignelasIRQs.VallasehastalaBIOSyobserve en la seccin de IRQs. Es posible que usted consiga configurar las interrupcionesmanualmenteporslot.Escogiendo una distribucion de Linux.Asterisk fue originalmente desarrollado para ejecutarse bajo plataformas con sistema operativoLinux,Ahora puedeserusadoenBSD yOSX.Noobstanteesto,lastarjetastelefonicasDigiumfuerondiseadasparatrabajarconLinuxi386.SiustedfuesenuevoconAsteriskprocureusarLinux.Requisitos de LinuxVriasdistribucionescomoRedHat,Mandrake,Fedora,Debian,SlackwareyGentoofueronusadasconAsterisk.DiseotabladeparticionamientotentativaparainstalacindeAsteriskAsterisk como sistema no requiere mucho espacio en disco, cerca de 100 MB se calcula para elsistemacompiladoeinstalado,dondeSIrequerimosespacioesparaelalmacenamientodemensajesdevoz,llamadasgrabadas,CDR (Basesdedatos).Porlotantonuestratabladeparticionamientodeberacontarcomomnimocon4particiones(Tomandocomoejemploundiscode80GB):En el proceso de instalacin se debe considerar una particin ms asignada para memoria deintercambioSWAP,eltamaodeestadebersereldobledelamemoriaRAMexistente.[root@asterisk ~]$ df -hS.ficherosTamao UsadoDisp Uso% Montado en/dev/sda1 100M 15M 85M15% /boot/dev/sda220G5G 15G25% //dev/sda355G 10G 45M70% /vartmpfs 248M 0248M 0% /dev/shmEleccinpaquetesydependenciasnecesariasparacompilacindeasterisk.AntiguamenteexistanalgunospaquetesqueerannecesariosparainstalarAsteriskcomoelreadlineyreadlinedevelquenosonnecesarioshoy.NoexistehardwareespecialtalcomounaplacadesonidoyelnicopaquetenecesarioeselpropioAsterisk.SiustedestuvierausandohardwaredeDigiumoztdummy,ustedva aprecisardelpaquetezaptel.Elpaquetezaptelesnecesarioparaquealgunasaplicaciones sean includas en tiempo de compilacin. Si usted escoge compilar Asterisk y no elzaptel, pero descubre que esta faltando una aplicacin relacionada al paquete zaptel (Como elMeetme()),ustedtendraquecompilarelzaptelyentoncesseranecesariorecompilarAsteriskparaque la aplicacin sea includa. Para interfaces T1 y E1 el paquete libpri es necesario. Bison esnecesarioparacompilarelAsterisk.Lospaquetesdedesarrolloncursesyncursesdevelopmentsonnecesariossiustedquisieraconstruirnuevasherramientas(Comoelastman).Lasbibliotecaszlibyzlibdevel son necesarias ahora para compilar. Esto se debe a la adhesin del protocolo DUNDi(DistributedUniversalNumberDiscovery).LospaquetesnecesitadosparaelsistemaoperativoLinuxCentOSsern:Kernelsourcesyheadersgccysusdependenciasbison(necesarioparalosarchivosdeconfiguracion.ncurses(necesarioparalaconsolaCLI)opensslyopenssldevolibssldevlibnewt(paraaplicacionestalcomozttool)libyzlibdevelLa recomendacin es que durante el proceso de instalacin del sistema operativo se debernseleccionarlossiguientespaquetes:SeccinDesarrollo:*HerramientasdeDesarrollo(TODO)*DesarrollodeSoftwareAnticuado(TODO)Comoherramientasadicionalestambinsepodrinstalar:SeccinServidores:*ServidorWeb*ServidordeCorreo*ServidordeBasesdeDatos(MySQLy/oPostgres)CAPITULO3Descarga, Compilacin Instalacin de AsteriskAnteriormenteenelcapitulo2vimosdetallesrespectoalapreparacindeunsistemaparainstalarAsteriskenel,ademsdeobservacionesyconsideracionesimportantesalahoradeelegirhardware,enelpresentecapituloveremoscomoobtenereinstalarAsteriskenelsistemaelegidoyutilizandounadistribucindeLinuxbasadaenRedHat(CentOS)yaqueeslamascomnytambinutilizadaporelequipodedesarrolladoresdeDigium.Paquetes requeridos relacionados con AsteriskLainstalacindeAsteriskestacompuestaporcomomnimo4paquetesbsicosquesenecesitaranonoensutotalidadsegnlanecesidadespecificadenuestroproyecto,estosson:asterisk,zaptel,libpriyasteriskaddons.Cadaunodelospaquetestienenlossiguientescontenidos:Asterisk: Incluyeelprogramaprincipaldeasterisk.Zaptel: IncluyelosdriversparalastarjetastelefnicasZaptel.LibPri: IncluyelaslibrerasPRInecesariasparaconectarsealRTPC.Asteriskaddons: Incluyemdulosadicionalesaasterisk,comoporejemploelmoduloMySQLparaconexinabasesdedatosdeestetipo.Elnicopaqueteestrictamentenecesarioesasterisk,yaquelibprisolosenecesitaraencasodequevallamosautilizarinterfacesPRIyzaptelencasodeutilizartarjetasZAPTEL,encasoderequerirutilidades que necesiten fuente de temporizacin y no tengamos hardware Zaptel instalado, esrequeridoinstalarelpaquetezaptelactivandopordefectoelmoduloztdummy.Descarga paquetes de AsteriskLadescargadeasteriskysuslibreriaspuedenrealizarseenformadearchivostar.gz,paradescargarestosarchivoslospodemosencontraren:http://ftp.digium.com/pub/Lanomenclaturadeestospaquetesseraasteriskversion.tar.gzporejemplo:Asterisk > asterisk1.4.x.tar.gzZaptel > zaptel1.4.x.tar.gzLibpri > libpri1.4.x.tar.gzAsteriskaddons > asteriskaddons1.4.x.tar.gzEsta descarga se puede realizar atraves de un navegador web como cambien desde la linea decomandosejecutandoelcomando'wget':wgethttp://downloads.digium.com/pub/zaptel/releases/zaptel1.4.x.tar.gzwgethttp://downloads.digium.com/pub/asterisk/releases/asterisk1.4.x.tar.gzwgethttp://downloads.digium.com/pub/libpri/libpri1.4.x.tar.gzwgethttp://downloads.digium.com/pub/asterisk/releases/asteriskaddons1.4.x.tar.gzSifuerondescargadoslospaquetes.tar.gz,estossedescomprimenejecutandoelcomando'tar'desdelalineadecomandos:tarxvzfarchivocomprimido.tar.gzEsto creara un directorio con el nombre y versin del paquete descomprimidoy dentro estar elcontenidodelpaquete.Instalacin Asterisk 1.4Lainstalacindelospaquetesdeasterisksedeberealizarenelsiguienteorden:1ero. zaptel2do. libpri3ero. asterisk4to. asteriskaddonsCompilacin e Instalacin ZaptelParacompilareinstalareldriverZaptelsedebenseguirlossiguientespasoscomousuario'root'.# cd /usr/src/# wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.x.tar.gz# cd /usr/src/zaptel-1.4.x# ./configure# make# make install# make configCompilacin e Instalacin LibpriParacompilareinstalarLibprisedebenseguirlossiguientespasoscomousuario'root'.Compilacin e Instalacin AsteriskParacompilareinstalarAsterisksedebenseguirlossiguientespasoscomousuario'root'.Compilacin e Instalacin Asterisk-AdoonsParacompilareinstalarAsteriskAdoonssedebenseguirlossiguientespasoscomousuario'root'.Directorios UsadosAcontinuacinlosarchivosydirectoriosmasimportantescreadosenelprocesodeinstalacin./etc/asteriskEnestedirectorioseencuentrantodoslosarchivosnecesariosparaconfigurarlagrancantidaddeserviciosqueAsteriskprovee.Revisaremoslosmasimportantes.asterisk.confConfiguraciones generales de la ubicacin de directorios de archivos de configuracion, # cd /usr/src/# wget http://downloads.digium.com/pub/libpri/libpri-1.4.x.tar.gz# cd /usr/src/libpri-1.4.x# make# make install# cd /usr/src/# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.x.tar.gz# cd /usr/src/asterisk-1.4.x# ./configure# make# make install# make samples# make config# cd /usr/src/# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.4.x.tar.gz# cd /usr/src/asterisk-addons-1.4.x# ./configure# make# make install# make samplesmdulos compilados, voicemails etc. En general es buena idea no modificar estas configuraciones,salvocasosespeciales.cdr.confConfiguracionesreferentesal"CallDetailRecord".LosCDRsonsumamenteimportantespara las compaas telefnicas. Modificar datos en este archivo puede repercutir en la integridaddelosCDRsinoseestasegurodeloquesehace.Silainstalacinesnicamentedeprueba,olosCDRnosonmateriaimportante,nohayproblema.codecs.confAmenosqueutilicesSPEEX,oquierashacercosasespecialesconlaformaenlaquelos codecssecomportan,esmejornomodificarestearchivo.extensions.confTalvezelarchivomasimportantedeAsterisk.Enestearchivosetomanlasdecisionesderuteodelasllamadas.Masadelanteveremoslasintaxisdeestearchivo.features.confEstearchivoestambinmuyimportante.PermitehabilitaryconfigurarserviciosgenricosdeunPBXcomolatransferenciaasistidaymonitoreodellamadas.iax.confImportantearchivoparaelfuncionamientodelcanalchan_iaxquelepermiteaAsteriskinteractuarconotrosdispositivosIAX,incluyendootrosPBXAsterisk.logger.confQueniveldeverbosidaddebentenerlosmensajesdelogyadondedebenserenviados.manager.confConfiguracin del importante servicio AMI (Asterisk Manager Interface) que permite conectarnosaunsocketTCPymanejarelPBX.Deciertaformaseencuentrarelacionadoconelarchivohttp.conf,queproveedeunainterfacesparaprogramaraplicacionesconAJAXquesecomuniquendirectamenteconAMI.modules.confArchivo sumamente importante. Determina que mdulos sern cargados por Asterisk al iniciar.Esfrecuentequecuandoseinstalaasteriskporprimeravez,noarranquedebidoaquenopuedecargarunmduloparaelquenotenemossoporte.Estosesolucionacomentandolalneadelmduloenestearchivo.sip.confAnlogodelarchivoiax.confparaelprotocoloSIPzapata.confConfiguracindeloscanalesZap.Lasconfiguracionesdeestearchivodebencoincidirconelhardwareinstaladoylaconfiguracindeldriverzaptel.voicemail.confConfiguracindelascasillasdevozcreadasparalosrespectivosanexos.meetme.confConfiguracindelassalasdeconferencias./var/log/asteriskEnestedirectorioseencuentranlosarchivosderegistrodelasoperacionesdeAsterisk.Definamoscadaunodelosarchivosencontradosdentrodeestedirectorio.cdr.dbEstearchivoseencuentradisponiblesisecuentaconelCDRhandlerparalabasededatosSQLite.Elarchivocontienelabasededatosdelosregistrosdelasllamadas.event_logRegistrodeeventossucedidosenelPBX.fullCreadoconlaintencindecontenertodoslosmensajesdedebugdelsistema.messagesContieneunlistadodelosmensajesdewarning,debugydemsnivelesdelogeo.queue_logArchivoutilizadoprincipalmenteporlaaplicacinapp_queue./var/lib/asteriskDirectorio con archivos de audio, llaves RSA, scripts AGI(Asterisk Gateway Interface), base dedatosastdbyarchivosparaelpequeoservidorHTTPparaAJAM(AsynchronusJavascriptAsteriskManager).Aquiveremosunadescripcindecadaunodelosdirectorios,yaquelosarchivospuedenserirrelevantes.agibin/Aqui se contienen programas enC,PHP,Pythonocualquierotrolenguajeconel que se pretendainteractuardesdeAsterisk.keys/DirectorioquecontienellavesRSAparalaautenticacindellamadasconelprotocoloIAX2sounds/Directorio con todos los sonidos que sern utilizados por aplicaciones como Playback() yBackground()ParaasegurarnosqueelprocesodeasteriskyzapteliniciandeformaautomticaconelarranquedelservidoryencasodereiniciodelS.Ocompletoyparaelprocesodeinicioodetencindeformamanualdelserviciodebemosejecutarlossiguientescomandosenlainterfazdelineadecomandos:Para acceder al monitor del sistema o tambien conosido como 'CLI>' ejecutamos el siguientecomando:# service zaptel start# service asterisk start# chkconfig zaptel on# chkconfig asterisk on# asterisk -rCAPITULO4Protocolo SIPSIP (Session Initiation Protocol)SessionInitiationProtocol(SIPoProtocolodeIniciodeSesiones)esunprotocolodesarrolladoporelIETFMMUSICWorkingGroupconlaintencindeserelestndarparalainiciacin,modificacinyfinalizacin de sesiones interactivas de usuario donde intervienen elementos multimedia como elvideo,voz,mensajerainstantnea,juegosonlineyrealidadvirtual.EnNoviembredelao2000,SIPfueaceptadocomoelprotocolodesealizacinde3GPPyelementopermanentedelaarquitecturaIMS(IPMultimediaSubsystem).SIPesunodelosprotocolosdesealizacinparavozsobreIP,otroesH.323.Funcionamiento del protocoloElprotocoloSIPpermiteelestablecimientodesesionesmultimediaentredosomsusuarios.Parahacerlosevaledelintercambiodemensajesentrelaspartesquequierencomunicarse.Agentes de UsuarioLos usuarios, que pueden ser seres humanos o aplicaciones de software, utilizan para establecersesionesloqueelprotocoloSIPdenomina"Agentesdeusuario".Estosnosonmsquelospuntosextremosdelprotocolo,esdecirsonlosqueemitenyconsumenlosmensajesdelprotocoloSIP.Unvideotelfono,untelfono,unclientedesoftware(softphone)ycualquierotrodispositivosimilarespara el protocolo SIP un agente de usuario.ElprotocoloSIPnoseocupadelainterfazde estosdispositivos con el usuario final, slo se interesa en los mensajes que estos generan y cmo secomportanalrecibirdeterminadosmensajes.Losagentesdeusuariosecomportancomoclientes(UAC:UserAgentClients)ycomoservidores(UAS:UserAgentServers).SonUACcuandorealizanunapeticinysonUAScuandolareciben.PorestolosagentesdeusuariodebenimplementarunUACyunUAS.Ademsdelosagentesdeusuarioexistenotrasentidadesqueintervienenenelprotocolo,estossonlosServidoresdeRegistrooRegistrar,losProxyylosRedirectores.Acontinuacinsedescribesufinalidad.Servidores de Registro o RegistrarElprotocoloSIPpermiteestablecerlaubicacinfsicadeunusuariodeterminado,estoesenqupunto dela redest conectado. Para ellosevaledelmecanismoderegistracin.Estemecanismofuncionacomosigue:Cadausuariotieneunadireccinlgicaqueesinvariablerespectodelaubicacinfsicadelusuario.Una direccin lgica del protocolo SIP es delaformausuario@dominio esdecir tiene lamismaforma que una direccin de correo electrnico. La direccin fsica (denominada "direccin decontacto")esdependientedellugarendondeelusuarioestconectado(desudireccinIP).Cuandoun usuario inicializa su terminal (por ejemplo conectando su telfono o abriendo su software detelefonaSIP)elagentedeusuarioSIPqueresideendichoterminalenvaunapeticinconelmtodoREGISTERaunServidordeRegistro(Registrareningls),informandoaqudireccinfsicadebeasociarseladireccinlgica delusuario.Elservidorderegistrorealizaentoncesdichaasociacin(denominada binding). Esta asociacin tieneun perododevigencia ysi noesrenovada, caduca.Tambin puede terminarse mediante una derregistracin. La forma en que dicha asociacin esalmacenadaenlarednoesdeterminadaporelprotocoloSIP,peroesvitalqueloselementosdelaredSIPaccedanadichainformacin.Servidores Proxy y de RedireccinUnconjuntodeusuariosquepertenecenaunacompaaoproveedordeserviciosdecomunicaciones,conformanundominio.Estedominio,queseindicaenunadireccinSIPdespusdelcaracter"@"esnormalmenteatendidoporunservidor(omsdeuno).Esteservidorrecibelaspeticioneshaciasususuarios. Este servidor ser el encargado de determinar la direccin fsica del usuario llamado ypuedeactuardedosmaneras:ComoProxy,oComoRedirector(Redirect).Al actuar como Proxy el servidor determina la ubicacindel usuariollamadoy enva lapeticinoriginal a la direccin fsica del usuario llamado. Las respuestas del agente de usuario llamadotambinsonenviadasalproxyquelasremitehaciaeloriginante.AlactuarcomoRedirectorelservidorgeneraunarespuestaqueindicaaloriginanteladireccinfsicadelusuarioquebuscaparaqueestepuedarealizarunapeticinyenviarlaaladireccinfsicadelusuariodeseado.UnmismoservidorpuedeactuarcomoRedirectorocomoProxydependiendodelasituacin.Un servidor que recibe laspeticiones destinadasaundominioespecficoesdenominadoservidorentrante(InboundServer).Eshabitualtambin,queexistaunservidorquerecibalaspeticionesoriginadasporlosusuariosdeundominiohaciaotrosdominios.EsterecibeelnombredeServidorSaliente(OutboundServer).Un agente de usuario normalmente encamina todos sus pedidos hacia un servidor de su propiodominio. Es este quien determina (por sus propios medios o valindose de otros servidores) lasubicacionesdelosusuariosquesonllamadosporelagentedeusuarioencuestin.Canales SIPLoscanalesSIP(SessionInitiationProtocol)sonloscanalesutilizadosporlosdispositivosIPqueusanesteprotocolo,aadirnuevosusuariosoconectarconproveedoresSIP.Laconfiguracinparaestoscanales seencuentraen el elarchivo'sip.conf'ubicadoeneldirectorio'/etc/aserisk/' elcualdebersereditadocomousuario'root'.Elarchivodeconfiguracin'sip.conf'seleedeformasecuencialdesdearribahaciaabajo.Laseccin[general]contiene todos los parmetrosdeconfiguracingeneralylaseccin[4000]contienelosparmetrosdeconfiguracinparaelanexoodispositivoSIP4000enparticular.Acontinuacinunejemplopracticoparaconfiguracindeestearchivo:EngenerallosservidoresSIPescuchanenelpuerto5060UDP.Portantoconfiguramosport=5060.Enalgunoscasos,porejemplosiutilizamosSER(SipExpressRouter)conAsteriskdebemoscambiarestepuerto.DNSesunaformadeconfigurarunadireccinlgicaparaquepuedaserresuelta.Estopermitequelasllamadasseanenviadasadiferenteslugaressinnecesidaddecambiarladireccinlgica.Usandoel DNS SRV se ganan las ventajas del DNS mientras que deshabilitandolo no es posible enrutarllamadasenbaseanombrededominios.Convienetenerloactivado,portantoseponeladirectivasrvlookup=yesCadaextensinestdefinidaporunuserousuario,unpeeroproveedorounfriendoamigoyvienedefinidaconunnombreentrecorchetes[].El tipo (type) "user" se usa para autenticarllamadasentrantes,"peer"para llamadas salientes y"friend" para ambas. En nuestro caso hemos definido una extensin 4000 como "friend". Puederealizaryrecibirllamadas.Secreteslacontraseausadaparalaautenticacin.Enestecasoser"password". Se puede monitorizar la latencia entre el servidor Asterisk y el telefono con qualify=yes para; sip.conf[general]context=defaultport=5060; Puerto UDP en el que responder el Asterisk bindaddr=0.0.0.0; Si queremos especificar que Asterisk est en una IP (si un servidor tiene 3 IPs por ej.) 0.0.0.0 vale para cualquiera srvlookup=yes; Habilita servidor DNS SRV[4000]type=friendsecret=passwordqualify=yes; Tiempo de latencia no superior a 2000 ms. nat=yes; El telefono usa NAT host=dynamic; El dispositivo se registra con una IP dinamica canreinvite=no; Asterisk por defecto trata de redirigir context=internal; El contexto asignado para el anexodeterminarcuandoeldispositivopuedeseralcanzado.EnestecasoAsteriskconsiderapordefectoque que un dispositivo est presente si su latenciaesmenorde2000ms(2segundos). Se puedecambiarestevalorponiendoelnumerodemilisegundosenvezdeyes.SiunaextensinestdetrsdeundispositivoquerealizaNAT(NetworkAddressTranslation)comoun router o firewall se puede configurar nat=yes para forzar a Asterisk a ignorar el campoinformacindecontactoyusarladireccindesdelaquevienenlospaquetes.Siponemoshost=dynamicquieredecirqueeltelefonosepodrconectardesdecualquierdireccinIP.PodemoslimitaraquedichousuariosolopuedaaccederconunaIPoconunnombrededominio.Siponemoshost=staticnoharafaltaqueelusuarioseregistrarconlacontraseaproporcionadaen"secret", Tambinse ha puesto canreinvite=no. En SIP los invites se utilizan para establecer llamadas yredirigirelaudioovdeo.Cualquierinvitedespusdelinviteinicialenlamismaconversacinseconsideraunreinvite.Cuandodosusuarioshanestablecidolacomunicacinconcanreinvite=yes(pordefecto)lospaquetesRTP de audio podran ser enviados extremo a extremo sin pasar por el servidor Asterisk. Esto,normalmente, no suele ser conveniente en casosenlos quehayaNATenalgunodelosclientes.(NAT=yes).Usandocanreinvite=nosefuerzaaAsteriskaestarenmedionopermitiendoquelospuntosfinalesintercambienmensajesRTPdirectamente.Detodosmodos,existennumerosascondicionesenqueAsterisknopermiteelreinviteapesardequenopongamosestacondicinyaquenecesitacontrolarelflujoRTP.Porejemplo:Silosclientesusancodecsdiferentes,sihayopcionesdeMusicOnholdotemporizadoresenlallamada,etc...Porltimocontext=internalindicaelcontextodondeestlasinstruccionesparadichaextensin.Estoestrelacionadoconelcontextodelarchivoextensions.confquemarcaelplandenumeracinparaesecontexto.Portantoelcontextointernaldebeexistirenelficheroextensions.confodelocontrariodeberamoscrearlo.Variosextensionespuedentenerelmismocontexto.Opciones avanzadas:ExplicacinyopcionesPermitirunaIPNopermitirunaIPContraseaparaelregistromd5secret md5secretDefineungrupodellamadasLimitedellamadassimultaneasparaunclienteExtensindelcontestadorParadeterminarcuandoeldispositivopuedeseralcanzadoUser Peercontext context Indicaelcontextoasociadoeneldialplanparaunusuarioopeerpermit permitdeny denysecret secretContraseaencriptadaconmd5dtmfmode dtmfmode Elmodoenelquesetransmitenlostonos.Puedenser"RFC2833"o"INFO"canreinvite canreinvite Con"no"sefuerzaaAsteriskanopermitirquelospuntosfinalesintercambienmensajesRTPdirectamente.nat nat IndicasieldispositivoestdetrsdeunNATcon"yes"callgroup callgrouppickupgroup pickupgroup Defineelgrupodellamadasvalidasparaunaaplicacionpickup()language language Definelassealesparaunpais.Debeestarpresenteenelarchivoindications.confallow allow permitehabilitaruncodec.PuedenponersevariosenunmismousuarioPosiblesValores:allow=alldisallow disallow permitedeshabilitaruncodec.Puedetomarlosmismosvaloresqueallowinsecure insecure DefinecomomanejarlasconexionesconpeersTienelossiguientesvaloresvery|yes|no|invite|portPordefectoes"no"quequieredecirquehayqueautenticarsesiempre.trustpid trustpid SilacabeceraRemotePartyIDesdeconfianza.Pordefecto"no"progressinband progressinband Sisedebengenerarsealesenbandasiempre.Pordefectoneverpromiscredir promiscredir Permitesoportarredirecciones302.Pordefecto"no"callerid Defineelidentificadorcuandonohayningunaotrainformaciondisponibleaccountcode Losusuariospuedenestarasociadosconunaccountcode.Seusaparafacturacion.amaflags SeusaparaguardarenlosCDRytemasdefacturacin.Puedeser"default","omit","billing",o"documentation"incominglimitrestrictcid SeusaparaesconderelIDdelllamante.Anticuadayendesusomailboxusername SiAsteriskactuacomoclienteSIPesteeselnombredeusuarioquepresentaenelservidorSIPalquellamafromdomain PoneelcampoFrom:delosmensajesSIPregextenfromuser PoneelnombredeusuarioenelfromporencimadeloquedigaelcallerIDhost direccinohostdondeseencuentraeldispositivoremoto.Puedetomarvalores:UnaIPounhostconcreto"dynamic"conloquevaldracualquierIPperonecesitacontrasea"static"valecualquierIPperonoesnecesariocontraseaport PuertoUDPenelqueresponderelAsteriskqualifydefaultip IPpordefectodelclientehost=cuandoesespecificadocomo"dynamic"rtptimeout Terminalallamadacuandollegaaesetimeoutsinohahabidotrficortprtpholdtimeout Terminalallamadacuandollegaaesetimeoutsinohahabidotrficortp"onhold"EjemplopracticocreacindeunanexoSIP:Unavezcreadoelanexoenelarchivo'sip.conf'esnecesariorecargarlaconfiguracinalsistema,paraestoejecutaremosdentrodelainterfazCLIelcomando'sipreload'yparaobservarsirealmentesecargolaconfiguracionejecutamoselcomando'sipshowpeers':sipreloadsipshowpeersPararegistraruntelfonoIPatravessuinterfazwebgenrica,sedebenseguirlossiguientespasos:1.AsegurarnosqueletelfonotomedireccinIPdeformadinmica(DHCP).2.AveriguarladireccinIPquetomoeltelfonoyescribirlaenlabarradedireccionesdeunnavegadorwebcualquiera(PorEj.Firefox).3.Ingresarcontraseayaccederalainterfazwebdeconfiguracin.4.Ubicarlaseccindeconfiguracinparaunanexosipeingresardatoscomo:UsuarioSIP.Contrasea.DireccinIPdelservidorAsterisk.etc.OBS.Paramasdetallesconsultarinstruccionesenmanualdeusuariodeltelfonocorrespondiente.[root@asterisk ~]# asterisk -rAsterisk 1.4.x, Copyright (C) 1999 - 2007 Digium, Inc. and others.Created by Mark Spencer =========================================================================Connected to Asterisk 1.4.x currently running on asterisk (pid = 19496)asterisk*CLI> sip reload Reloading SIP== Parsing '/etc/asterisk/sip.conf': Foundasterisk*CLI> sip show peersName/usernameHostDyn Nat ACL Port Status4000/4000(Unspecified)D N0UNKNOWN ; sip.conf[4000]context= anexos dtmfmode = rfc2833 disallow = all allow= ulawallow= ilbcallow= gsm type = friend host = dynamic username = 4140 Secret = 4140 mailbox= 1000 callerid = "Anexo 4000" qualify= yes nat= yes Unavezcreadoyregistradoelanexo,nosfaltaraunsolopaso.Estepasoeselquenospermitircomunicarnoscondichoanexoenotraspalabrasnosfaltaunarutadediscadohacianuestroanexo,estarutasecreaenelarchivodeconfiguracin'extencions.conf'yformapartedenuestroDialPlan.(DialPlanqueposteriormenteexplicaremosmasadelanteenestedocumento).Guardamos los cambios y salimos del archivo, ingresamos en la consola CLI y ejecutamos elcomandoparareleerloscambiosrealizadosenelarchivo'extensions.conf':asteriskrextensionsreload; extensions.conf[anexos]exten => 4000,1,Dial(SIP/4000,20)exten => 4000,2,Hangup[root@asterisk ~]# asterisk -rAsterisk 1.4.x, Copyright (C) 1999 - 2007 Digium, Inc. and others.Created by Mark Spencer =========================================================================Connected to Asterisk 1.4.x currently running on asterisk (pid = 19496)asterisk*CLI> extensions reloadCAPITULO5Protocolo IAXIAX (Inter-Asterisk eXchange protoco)IAX(InterAsteriskeXchangeprotocol)esunodelosprotocolosutilizadoporAsterisk,unservidorPBX (centralita telefnica) de cdigo abierto patrocinado por Digium. Es utilizado para manejarconexiones VoIP entre servidores Asterisk, y entre servidores y clientes que tambin utilizanprotocoloIAX.ElprotocoloIAXahoraserefieregeneralmentealIAX2,lasegundaversindelprotocoloIAX.ElprotocolooriginalhaquedadoobsoletoenfavordeIAX2.Propiedades BsicasIAX2esrobusto,llenodenovedadesymuysimpleencomparacinconotrosprotocolos.Permitemanejarunagrancantidaddecdecsyungrannmerodestreams,loquesignificaquepuedeserutilizadoparatransportarvirtualmentecualquiertipodedato.Estacapacidadlohacemuytilpararealizarvideoconferenciasorealizarpresentacionesremotas.IAX2utilizaunnicopuertoUDP,generalmenteel4569,paracomunicacionesentrepuntosfinales(terminalesVoIP)parasealizacinydatos.Eltrficodevozestransmitidoinband,loquehaceaIAX2unprotocolocasitransparentealoscortafuegosyrealmenteeficazparatrabajardentroderedesinternas. En esto se diferencia de SIP, que utiliza una cadena RTP outofband para entregar lainformacin.IAX2 soporta Trunking (red), donde un simple enlace permite enviar datos y sealizacin pormltiplescanales.CuandoserealizaTrunking,losdatosdemltiplesllamadassonmanejadosenunnicoconjuntodepaquetes,loquesignificaqueundatagramaIPpuedeentregarinformacinparamsllamadassincrearlatenciaadicional.EstoesunagranventajaparalosusuariosdeVoIP,dondelascabecerasIPsonungranporcentajedelanchodebandautilizado.El Inicio de IAXEl protocolo IAX2 fue creado por Mark Spencer para la sealizacin de VoIP en Asterisk. Elprotocolo crea sesiones internas y dichas sesiones pueden utilizar cualquier cdec que puedatransmitir voz o vdeo. El IAX esencialmente provee control y transmisin de flujos de datosmultimediasobreredesIP.IAXesextremadamenteflexibleypuedeserutilizadoconcualquiertipodedatoincluidovdeo.EldiseodeIAXsebasenmuchosestndaresdetransmisindedatos,incluidosSIP(elcualeselmscomnactualmente),MGCPyRealtimeTransportProtocol.Objetivos de IAXElprincipalobjetivodeIAXhasidominimizarelanchodebandautilizadoenlatransmisindevozyvdeoatravsdelaredIP,conparticularatencinalcontrolyalasllamadasdevozyproveyendounsoporte nativo para ser transparente a NAT. La estructura bsica de IAX se fundamenta en lamultiplexacindelasealizacinydelflujodedatossobreunsimplepuertoUDPentredossistemas.IAXesunprotocolobinarioyestdiseadoyorganizadodemaneraquereducelacargaenflujosdedatosdevoz.ElanchodebandaparaalgunasaplicacionessesacrificaenfavordelanchodebandaparaVoIP.Canales IAXLoscanalesIAX(InterAsteriskeXchange)oncanalesutilizadospordispositivosIPqueutilizanesteprotocolo, aadir nuevos usuarioso conectar con proveedores IAX. La configuracin para estoscanalesseencuentraenelelarchivo'iax.conf'ubicadoeneldirectorio'/etc/aserisk/'elcualdebersereditadocomousuario'root'.Elarchivodeconfiguracin'iax.conf'seleedeformasecuencialdesdearribahaciaabajo.Laseccin[general]contienetodoslosparmetrosdeconfiguracingeneralylaseccin[servidor_A]contienelos parmetros de configuracin para el usuario o dispositivo IAX [servidor_A] en particular. Acontinuacinunejemplopracticoparaconfiguracindeestearchivo:; iax.conf[general]context = inband ; Contexto por defectobindaddr= 0.0.0.0 ; Direccion IP donde servidor escucha conexionesIAXbindport=4569 ; Puerto donde se escuchan las conexiones entranteslanguage=es ; Lenguaje espaoltos=0x18 ; Indicamos que marque los paquetes para QoSbandwidth=low; Preferibles codecs con bajo consumoallow=all ; Usaremos todos los codecs lo mismo que bandwidth=high[servidor_A]type=friendsecret=123host=direccion.IP.de.servidor_Xpermit=direccion.IP.de.servidor_Xauth=md5disallow=allallow=ilbccontext=anexosqualify=yes En general los servidores IAX escuchan en el puerto 4569 UDP/TCP. Por tanto configuramosport=4569.Elparmetro'bindaddr=0.0.0.0'nosindicaqueelservidorestaescuchandoporcualquierdireccinIPquetengaasignadaencadaunadesusinterfacesdered.Elparmetro'context=anexos'quieredecirqueelusuario[servidor_A]podrrealizarexclusivamenteloqueseencuentredentrodeanexos.Language=escorrespondeallenguajeasignadoparaesteusuario.IAX Trunking (Interconexion entre 2 servidores Asterisk)ParainterconectardosomasservidoresAsteriskservidor_Ayservidor_BusandoelprotocoloIAXylograrestablecercomunicacindeanexoaanexoentreambosservidores(unanexodelservidor_Alogra comunicarse con un anexo del servidor_B) debemos realizar el siguiente procedimiento decreacindeusuariosIAXenambosservidores,usuariosquelapostrenosservirnpararealizareltunkingentreambosservidoresylograrcomunicacinentres.Archivo'iax.conf'servidor_A:Atravesdelosparametros:'host=direccion.IP.de.servidor_B'y'permit=direccion.IP.de.servidor_B'Logramosestablecerunarelacindeconfianzaentreambosautentificandoseentresipermitiendoquesolamenteservidor_Ayservidor_Bpuedanestablecercomunicacinynadiemas.; iax.conf[general]context=inband ; Contexto por defectobindaddr=0.0.0.0 ; Direccion IP donde servidor escucha conexionesIAXbindport=4569 ; Puerto donde se escuchan las conexiones entranteslanguage=es ; Lenguaje espaoltos=0x18 ; Indicamos que marque los paquetes para QoSbandwidth=low; Preferibles codecs con bajo consumoallow=all ; Usaremos todos los codecs lo mismo que bandwidth=high[servidor_A]type=friendsecret=123 ; El parmetro secret debe ser igual en ambos servidores esto ; para efectos de autenticacin entre los dos servidores.host=direccion.IP.de.servidor_Bpermit=direccion.IP.de.servidor_Bauth=md5 ; Algoritmo de encriptacin para transmicin de las 'secret'disallow=allallow=ilbccontext=anexosqualify=noArchivo'iax.conf'servidor_B:Atravesdelosparametros:'host=direccion.IP.de.servidor_A'y'permit=direccion.IP.de.servidor_A'Logramosestablecerunarelacindeconfianzaentreambosautentificandoseentresipermitiendoquesolamenteservidor_Ayservidor_Bpuedanestablecercomunicacinynadiemas.UnavezcreadoslosusuariosIAXenelarchivo'iax.conf'esnecesariorecargarlaconfiguracinalsistema,paraestoejecutaremosdentrodelainterfazCLIelcomando'iax2reload'yparaobservarsirealmentesecargolaconfiguracionejecutamoselcomando'iax2showpeers':iax2reloadiax2showpeers; iax.conf[general]context=inband ; Contexto por defectobindaddr=0.0.0.0 ; Direccion IP donde servidor escucha conexionesIAXbindport=4569 ; Puerto donde se escuchan las conexiones entranteslanguage=es ; Lenguaje espaoltos=0x18 ; Indicamos que marque los paquetes para QoSbandwidth=low; Preferibles codecs con bajo consumoallow=all ; Usaremos todos los codecs lo mismo que bandwidth=high[servidor_B]type=friendsecret=123 ; El parmetro secret debe ser igual en ambos servidores esto ; para efectos de autenticacin entre los dos servidores.host=direccion.IP.de.servidor_Apermit=direccion.IP.del.servidor_Aauth=md5 ; Algoritmo de encriptacin para transmicin de las 'secret'disallow=allallow=ilbccontext=anexosqualify=no[root@asterisk ~]# asterisk -rAsterisk 1.4.x, Copyright (C) 1999 - 2007 Digium, Inc. and others.Created by Mark Spencer =========================================================================Connected to Asterisk 1.4.x currently running on asterisk (pid = 19496)asterisk*CLI> iax2 reload Reloading SIP== Parsing '/etc/asterisk/sip.conf': Foundasterisk*CLI> iax2 show peersName/UsernameHost Mask PortStatusfwbm 192.168.0.101 (S)255.255.255.2554569OK (6 ms) beer-man 192.168.1.4 (S)255.255.255.2554569OK (6 ms)FinalizadalacreacindelosusuariosIAXenambosservidores,necesitamoscrearlasrutasdediscadoparalacomunicacindeunanexodelservidor_Aconunanexodelservidor_Byviceversa.Estasrutassecreanenlosarchivosdeconfiguracin'extensions.conf'deambosservidores,porejemplo:Suponiendoquedentrodelservidor_Aseencuentranlosanexosconnumeracin'4000'ydentrodelservidor_Bseencuentranlosanexosconnumeracin'5000'.Archivo'extensions.conf'servidor_A:Archivo'extensions.conf'servidor_B:Enambosservidoresguardamosloscambiosysalimosdelosarchivos,ingresamosenlasconsolasCLIyejecutamoselcomadoparareleerloscambiosrealizadosenlosarchivos'extensions.conf':asteriskrextensionsreload; extensions.conf servidor_A[anexos]exten => 5000,1,Dial(IAX2/servidor_B@servidor_A/5000)exten => 5000,2,Hangupexten => 4000,1,Dial(SIP/4000,20)exten => 4000,2,Hangup[root@asterisk ~]# asterisk -rAsterisk 1.4.x, Copyright (C) 1999 - 2007 Digium, Inc. and others.Created by Mark Spencer =========================================================================Connected to Asterisk 1.4.x currently running on asterisk (pid = 19496)asterisk*CLI> extensions reload; extensions.conf servidor_B[anexos]exten => 4000,1,Dial(IAX2/servidor_A@servidor_B/4000)exten => 4000,2,Hangupexten => 5000,1,Dial(SIP/5000,20)exten => 5000,2,HangupCAPITULO6Telefona ZaptelZaptel Telefona Analgica (FXS, FXO) Estosdostrminossiemprellevanaconfusindebidoaquesiendoconceptosdiferentessiemprevanjuntos.FXS es unpuerto usado por las lneas de telefonaanalgica (tambin denominadosPOTS), estepuertoenvasealesdetimbreytonoparatelfonosanalgicos.Esdecir,queemulanaunalneatelefnicaanalgicatradicional.FXOestepuertorecibelassealesdelpuertofxs.Untelfonotienesunpuertofxo.Estepuertonoenvasealesdetonootimbrado,solorecibelassealesqueenvalosFXS.Funcionacomoterminaldelnea.Enunacentraltelefnicasiempreseencontrarconestostrminosyenunacentraliptambin.UnacentralIPrecibeunalneafxsenunpuertofxoparaconectarsealserviciodetelefona.Enelcasodelastarjetasdigium,porejemplotdm400,estastarjetassonmodularesenconsecuencialatarjetaTDM400PpuedeestarcompuestapormodulosyaseaFXSoFXO.Enlaimagentenemosunatarjetadigiumcondosmdulosfxs(colorverde)ydosmdulosfxo(colorrojo).Estastarjetasseusanparacrearcentralitasipconasterisk.Canales Anlogos y Digitales ZAPLoscanalesZAP (Zapata/Zaptel) son loscanalesutilizadosporlospuertosFXS/FXOyPRI. LoscanalesZAPsonloscorrespondientesalhardwareZaptel,creadosoriginalmenteporJimDixonensuproyecto Zapata Telefony. La configuracin para estos canales se encuentran en los archivos'zaptel.conf' ubicado en el directorio '/etc' y en el archivo 'zapata.conf' ubicado en el directorio'/etc/aserisk/'ambosdebernsereditadoscomousuario'root'.Configuracin Tarjeta TDM400PLatarjetaTDM400PesunatarjetaPCI22fabricadaporDigiumquesoportapuertosFXSyFXOparaconectardispositivosanlogos(FXS)olneastelefnicas(FXO).Loquepodemosconseguirconuna de estastarjetas es el poder llamardesdenuestraredVoIPhacialosnmerosdelaempresatelefnicatradicionalusandoAsterisk.LastarjetaTDMsoportanmdulosFXSoFXOenunnmeromximodecuatro,puedeentoncesunatarjetatenerunacombinacindemdulosdeacuerdoanuestrasnecesidades.EnesteejemplotengounaTDM22B loque significa que tiene2puertos/mdulosFXSy2puertos/mdulosFXO, el2indicalosmdulosFXSyelotro2losmduloFXO.Siguiendoconelejemplo,sitenemosunatarjetaTDM04BquieredecirquenotienemdulosFXSy4mdulosFXO,untarjetaTDM11BtendrunmduloFXSyunmduloFXO,etc.EstastarjetasdeberanseralojadasenunslotPCIlibreyenelseconectarlatarjeta,veremosquetienelosdosmdulosrojosenellaydosverdes.LosmdulosdecolorverdesonFXSylosmdulosdecolorrojosonFXO.Unavezcolocadalatarjetaensupuertorespectivo,debemossabersiesreconocida:Acontinuacineditaremoslosarchivosdeconfiguracin'/etc/zaptel.conf'y'/etc/asterisk/zapata.conf'.Lalneafxoks=12indicaquelosdosprimerosmdulossonFXSyporellodebenllevarsealizacinFXO,12eslomismoquedecir1y2.Lalineafxsks=34indicaquelosdosltimosmdulossonFXOyporellodebenllevarsealizacinFXS.LatarjetaseriaFXSFXSFXOFXO.[root@asterisk ~]# lspci | grepCommunication0000:06:05.0Communicationcontroller:TigerJetNetworkInc.Tiger3XXModem/ISDNinterface;zaptel.conffxoks=1-2fxsks=3-4loadzone=cldefaultzone=clSituviesedostarjetasTDM400PconochomdulosFXOdeberatenerunasolalneafxsks=18.Esimportantezaptel.confporqueahsedefinelasealizacinquecadapuertovaatener.Lossiguienteesejecutarelcomando'ztcfgvvvv'paraconfirmarquenuestraconfiguracinestacorrecta.Sinoshemos equivocado conla sealizacin de cada puertotendremos un mensaje deerrorque nosloindicarparapodercorregirlo.Ahoradeberemoseditarnuestro/etc/asterisk/zapata.confparanuestrosdoscanalesFXSydoscanalesFXO:[root@asterisk ~]# ztcfg -vvvvZaptel Configuration======================Channel map:Channel 01: FXO Kewlstart (Default) (Slaves: 01)Channel 02: FXO Kewlstart (Default) (Slaves: 02)Channel 03: FXS Kewlstart (Default) (Slaves: 03)Channel 04: FXS Kewlstart (Default) (Slaves: 04)4 channels configured.;zapata.conf[channels]usecallerid=yeshidecallerid=noinmediate=no; configuramos el primer canal FXScontext=anexossignalling=fxo_ksechocancel=yesgroup=1callerid="Anexo Analogo 4050" channel => 1; configuramos el segundo canal FXScontext=anexossignalling=fxo_ksechocancel=yesgroup=2callerid="Anexo Analogo 4051" channel => 2; configuramos el tercer canal FXOcontext=from-pstn1signalling=fxs_ksechocancel=yesgroup=3callerid="Linea Analogica" channel => 3; configuramos el cuarto canal FXOcontext=from-pstn2signalling=fxs_ksechocancel=yescallerid="Linea Analogica" group=4channel => 4Finalizadalaedicinyconfiguracindelarchivo'zapata.conf'esnecesariorecargarlaconfiguracinalsistema,paraestodebemosdetenerelservicioasteriskyluegovolverainiciarlo:serviceasteriskstopserviceasteriskstart.OBS.Elprocesodereiniciodelserviciodebedeserobligatoriamentecomoestaarriba,estoquieredecirprimerodetenerloyluegoiniciarlo.Comoultimopaso,parahacerusodeestoscanales,necesitamoscrearlasrutasdediscadodesdelaPSTNhaciaelservidor,desdeelservidorhacialaPSTNyentreanexosanalgicos(FXS).Estasrutassecreanenlosarchivosdeconfiguracin'extensions.conf'deambosservidores,porejemplo:LlamadasdesdelaPSTNhaciaelservidor:LlamadasdesdeelservidorhacialaPSTN:LlamadadeanexoaanexoZAP.;extensions.conf[from-pstn1] ; Linea analgica numero 1exten => s,1,Dial(SIP/4000,20)exten => s,2,Hangup[from-pstn2] : Linea analgica numero 2exten => s,1,Dial(SIP/4000,20)exten => s,2,Hangup;extensions.conf[anexos]exten => _XXXXXXX,1,Dial(Zap/g3/${EXTEN},20)exten => _XXXXXXX,2,Hangupexten => _XXXXXXX,1,Dial(Zap/g4/${EXTEN},20)exten => _XXXXXXX,2,Hangup;extensions.conf[anexos]exten => 4050,1,Dial(Zap/g1,20)exten => 4050,2,Hangupexten => 4051,1,Dial(Zap/g2,20)exten => 4051,2,Hangup; Para llamar al anexos SIP 4000exten => 4000,1,Dial(SIP/4000,20)exten => 4000,2,HangupZaptel Telefona Digital (E1 PRI) Configuracin Tarjeta digital TE120PLaTE120Pesunatarjetadeinterfazdigitaldealtorendimiento,esunainterfaztelefoncacapazdeinterconectarsistemastradicionalesdelatelefonaconlastecnologasemergentesdeVozsobreIP.UsadajuntoconAsterisk,laTE120PpuedeusarseparaproporcionarunamplioconjuntodeserviciosdePBX.LatarjetaTE120Pesfacildeexpandir,pudiendoconfigurarlacomoT1(24canales),E1(32canales),oJ1(24canales).EstastarjetasdebernseralojadasenunslotPCIlibreyenelseconectarlatarjeta.Unavezcolocadalatarjetaensupuertorespectivo,debemossabersiesreconocida:Acontinuacineditaremoslosarchivosdeconfiguracin'/etc/zaptel.conf'y'/etc/asterisk/zapata.conf'.[root@asterisk ~]# lspci | grepCommunication07:04.0Communicationcontroller:Digium,Inc.WildcardTE120P(rev02);zaptel.confspan=1,0,0,ccs,hdb3bchan=1-15dchan=16bchan=17-31loadzone=cldefaultzone=clLos siguiente es ejecutar el comando 'ztcfg vvvv' para confirmar que nuestra configuracin estacorrecta.Sinoshemosequivocadoconlasealizacindecadapuertotendremosunmensajedeerrorquenosloindicarparapodercorregirlo.[root@asterisk ~]# ztcfg -vvvvZaptel Configuration======================SPAN 1: CCS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)Channel map:Channel 01: Clear channel (Default) (Slaves: 01)Channel 02: Clear channel (Default) (Slaves: 02)Channel 03: Clear channel (Default) (Slaves: 03)Channel 04: Clear channel (Default) (Slaves: 04)Channel 05: Clear channel (Default) (Slaves: 05)Channel 06: Clear channel (Default) (Slaves: 06)Channel 07: Clear channel (Default) (Slaves: 07)Channel 08: Clear channel (Default) (Slaves: 08)Channel 09: Clear channel (Default) (Slaves: 09)Channel 10: Clear channel (Default) (Slaves: 10)Channel 11: Clear channel (Default) (Slaves: 11)Channel 12: Clear channel (Default) (Slaves: 12)Channel 13: Clear channel (Default) (Slaves: 13)Channel 14: Clear channel (Default) (Slaves: 14)Channel 15: Clear channel (Default) (Slaves: 15)Channel 16: D-channel (Default) (Slaves: 16)Channel 17: Clear channel (Default) (Slaves: 17)Channel 18: Clear channel (Default) (Slaves: 18)Channel 19: Clear channel (Default) (Slaves: 19)Channel 20: Clear channel (Default) (Slaves: 20)Channel 21: Clear channel (Default) (Slaves: 21)Channel 22: Clear channel (Default) (Slaves: 22)Channel 23: Clear channel (Default) (Slaves: 23)Channel 24: Clear channel (Default) (Slaves: 24)Channel 25: Clear channel (Default) (Slaves: 25)Channel 26: Clear channel (Default) (Slaves: 26)Channel 27: Clear channel (Default) (Slaves: 27)Channel 28: Clear channel (Default) (Slaves: 28)Channel 29: Clear channel (Default) (Slaves: 29)Channel 30: Clear channel (Default) (Slaves: 30)Channel 31: Clear channel (Default) (Slaves: 31)31 channels configured.Ahoradeberemoseditarnuestro/etc/asterisk/zapata.confparanuestrosdoscanalesFXSydoscanalesFXO:Finalizadalaedicinyconfiguracindelarchivo'zapata.conf'esnecesariorecargarlaconfiguracinalsistema,paraestodebemosdetenerelservicioasteriskyluegovolverainiciarlo:serviceasteriskstopserviceasteriskstart.OBS.Elprocesodereiniciodelserviciodebedeserobligatoriamentecomoseplanteaarriva,estoquieredecirprimerodetenerloyluegoiniciarlo.Comoultimopaso,parahacerusodeestoscanales,necesitamoscrearlasrutasdediscadodesdelaPSTNhaciaelservidor,desdeelservidorhacialaPSTNyentreanexosanalgicos(FXS).Estasrutassecreanenlosarchivosdeconfiguracin'extensions.conf'deambosservidores,porejemplo:LlamadasdesdelaPSTNhaciaelservidor:;zapata.conf[channels];----------------------------;Configuracion E1 TE120P;----------------------------language=clswitchtype=euroisdnpridialplan=localprilocaldialplan=unknownpriindication=outofbandsignalling=pri_cpeusecallerid=yeshidecallerid=nocallwaiting=yesusecallingpres=yescallwaitingcallerid=yesthreewaycalling=yestransfer=yescancallforward=yescallreturn=yesechocancel=yesechocancelwhenbridged=norxgain=0.0txgain=0.0inmediate=nocontext=from-pstngroup = 1channel => 1-15channel => 17-31;extensions.conf; Para el caso de numeracin 4834000 hasta 4834099 de GTD.[from-pstn]exten => _40XX,1,Dial(SIP/${EXTEN},20)exten => _40XX,2,HangupOBS.Estaconfiguracinvadependerabsolutamentedelacompaatelefnicaconlaquetengamoscontratadoslosserviciosdetelefona.LlamadasdesdeelservidorhacialaPSTN:Respecto al orden de los dispositivos Zap.Losdispositivosaparecerncomocanalesparazaptelenelordenenquehayansidocargados.Porejemplosi tiene un puerto FXO y unpuertoFXSenelsistemaunopuedecargareldriver FXOseguidodeldriverFXSyeldispositivoFXOseraelcanal1mientraselFXSseraelcanal2.LosdispositivosE1/T1debencargarseprimeroquelosFXOoFXS,assielsistemacontieneunE1yademsunpuertoFXO,entoncesloscanales1al31pertenesernalE1yelpuertoFXOseraelcanal32.;extensions.conf[anexos]exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},20)exten => _XXXXXXX,2,Hangupexten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},20)exten => _XXXXXXX,2,HangupCAPITULO7Plan de Marcacin: Conceptos GeneralesElplandemarcacineselencargadodeenrutarcadallamadaenelsistemadesdesuorigenaundestinopredeterminado.LaconfiguracindelplandemarcacindelossistemasAsteriskserealizaenelarchivo'extensions.conf'.El plan de marcacin es la pieza central de cualquiersistema de telefona, ya queeste define lamanera que se maneja elflujo ya sea entrante osaliente dellamadas.Elplande marcacin estacompuestoporunalistainstruccionesopasosqueelsistemadebedeseguir.Para definir un plan de marcacin en un sistema Asterisk es absolutamente importante que secomprendaelfuncionamientodelmismo.Componentes de un Plan de MarcacinGran porcentaje del plan de marcacin se define en el archivo 'extensions.conf', este archivo secomponedecuatroentidadesprincipales:contextos,extensiones,prioridadesyaplicaciones.Acontinuacinsedescribircadaunodeestoscomponentesycomofuncionanjuntosparacrearunplandemarcacinfuncional.Enlamayoradesistemasestearchivoestaubicadoeneldirectorio'/etc/asterisk'.ContextosLos contextos definen la organizacin y alcance de la informacin o parmetros del plan demarcaciondefinidosencada unodeellos.EnlapracticaloscontextospuedenserutilizadosparahacerqueunsistemaAsteriskcontestedemaneradiferentecadalineatelefnica.Loscontextossedefinenporsunombreentrecorchetes,porejemploparacrearuncontextollamado'anexos'paramanejarlasllamadasentreanexoslodefiniramosas:[anexos]Todas las instrucciones colocadas despus de la definicin del contexto se consideran parte delcontextohastaquesedefinaunonuevo.Existelaposibilidaddeinclusionesdecontextosdentrodeotroscontextos,paraestoharamosusodelainstruccin:include=>'contexto'ExtensionesEnelinteriordecadacontextosedefinenunaomasextensiones,estasdeterminanelflujolallamada.Cadaunadelasextensionessedefineporlapalabra'exten'segidadeunsigno'=>'estoformadoporunsignoigualyunsignomayorque,comosemuestra:exten=>Seguidoaestesignosedefineelnumeroonombredelaextensin,laprioridadylaaplicacinaejecutartodosseparadosporcomas:[nombredelcontexto]exten=>extensin,prioridad,aplicacinUna extensin es identificada por un carcter alfanumrico y puede contener nmeros, letras ycaracteresespecialestalescomo*y#,ejlaextensin2050seriadelasiguienteforma:exten=>2050,1,Goto(default,s,1)Algunosnombresdeextensionesestnreservadasysemuestranacontinuacin:sstart; una llamada que no tiene algn digito asociado con ella, por ejemplo una lnea anlogaloopstart,comienzacon.s.tTimeout; cuando una llamador en un men de voz no ingresa el numero correcto de dgitos, laextensinexecutaeltimeoutTabsolute timeout;cuando una llamada excedeelvalorllevadoacaboenunavariableabsolutadetimeoutiinvalid;seejecutacuandounllamadoringresaunaextensininvalidahHangup;seejecutaalfinaldeunallamadacuandoelllamadorcuelga,lasaplicacionesejecutadasenesta extensin no pueden tener acceso al canal cerrado, es muy util para registrar o ejecutarcomandos.Patterns Unprefijodeextensinprecedidoporelcaracterunderscoreindicaunpatrndeconcordancia,porejemplo_NXXXXXlossiguientessonlospatronesutilizadosparadefinirunaextensinNcualquierdigitodesde2a9Xcualquierdigitodesde0a9Zcualquierdigitodesde1a9[1268]cualquierdigitoentrecorchetes,enestecaso1,2,6,7y8.cualquiercarcter1omasPrioridadesLas prioridades son pasos numerados paradefinir elorden deejecucinde cada extensin. Cadaprioridadpuedellamaraunaaplicacinespecifica.Lasprioridadesempiezanenconun1ysevanincrementandodeunoenuno,otambinestalaopcindeircolocando'n'envesdelosnmerosincrementales.AplicacionesLasaplicasionessonlosprogramasquerealizanciertasaccionestalessobreuncanaldevoz,estasacciones pueden ser, reproduccion de sonidos (archivos de audio), aceptar tonos de marcado,contestarunallamadaocortarunallamada.Variables GlobalesDentrodelarchivo'extensions.conf'existeunaseccindenominada[globals]dentrodeestaseccinsepuedendefinirvariablesglobalesparasuposteriorusoenelplandemarcacin:;extensions.conf[globals]CONSOLE=Console/dsp IAXTRUNK=IAX2/servidor_B@servidor_AE1GTD=Zap/g1 E1PBX=Zap/g2[anexos]exten => _XXXXXXX,1,Dial(${E1GTD}/${EXTEN},20)exten => _XXXXXXX,2,Hangupexten => _5000,1,Dial(${IAXTRUNK}/${EXTEN},20)exten => _5000,2,HangupParahacerusodeestasvariablesestasdebenirentrelossignos${VARIABLE}obligariamente,talcualcomoloobservamosenelejemplo.Creando un DialPlanEn este ejemplo tenemos 2 extensiones, y prestemos atencin a la forma en que se definen lasprioridadesdelallamadaTenemos el contexto [enviar] en el cual tenemos la extensin 5555, si nosotros ingresamos laextension 5555 desde nuestro telfono IP o softphone como prioridad numero 1 ejecutara laaplicacin Goto y saltara al contexto entrantes a la extensin 's' prioridad 1, luego se ejecuta laaplicacinAnswer,unavezejecutadaestaaplicacinautomticamentepasaraalasiguienteprioridad2 y ejecutara la aplicacin Playback luego una vez ejecutada esta aplicacin pasara a la ultimaprioridadla3yejecutaralaaplicacinHangup,oseacortaralallamada.Lavariable${EXTEN}tomaelvalorquenosotrosingresamosenlaextensin,porejemplo:Sidiscamos4000paracomunicarnosconelanexo4000entonceslallamadacaerenla extensinexten=>_40XX,1,Dial(SIP/${EXTEN},20)ylavariable${EXTEN}tomaradeformaautomticaelvalor4000queelnumerosediscooriginalmente.Deestaformanoslogramosdarcuentadelaformaencomoseejecutanlasextensionessiguiendoundeterminadoconjuntodeprioridadesyejecutandodeterminadasaplicaciones.OBS.ElanexoSIPdesdeelcualserealizaestapruebadedealgunaformateneraccesoalcontexto[enviar].;extensions.conf[enviar]exten => 5555,1,Goto(entrantes,s,1)[entrantes]exten => s,1,Answerexten => s,2,Playback(...)exten => s,3,Hangup[anexos]exten => _40XX,1,Dial(SIP/${EXTEN},20)exten => _40XX,2,HangupCAPITULO8Plan de Marcacin: ConstruyendoEn este capitulo haremos uso de todos los conceptos aprendidos en el capitulo anterior, ya queconstruiremosunplandemarcacinpracticoyfuncional.Caso de Uso PracticoEnunaempresaexisten6tiposdellamadas:1.LlamadasentreanexosSIP(anexostipocitofono).2.Llamadaslocales. 3.Llamadaslargadistancianacional.(LDI)4.Llamadaslargadistanciainternacional.(LDN)5.Llamadasacelulares 6.Llamadasanumeros600y800.Ademasexisten5tiposderestricciones:1.Llamadasacualquierlugar.2.LlamadasacualquierlugarmenosLDI3.Llamadasnumeroslocales,numeroscelulares,entreanexosSIPy600y800.4.Llamadasnumeroslocales,entreanexosSIP,600y800.5.LlamadasentreanexosSIP.Crear5anexos,porejemploel4080,4081,4082,4083y4084.Asignarlealprimeranexolarestriccinnumerouno.Asignarlealsegundoanexolarestriccinnumerodos.Asignarlealterceranexolarestriccinnumerotres.Asignarlealcuartoanexolarestriccinnumerocuatro.Asignarlealquintoanexolarestriccinnumerocinco.Solucin:Primero.Enelarchivoextensions.confcrear6contextosindependientesunoparacadaunadelostiposdellamadas:anexoslocalesLDILDNcelulares600800;extensions.conf[anexos]exten => _40XX,1,Dial(SIP/${EXTEN},30)exten => _40XX,2,Hangup[locales]exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},20)exten => _XXXXXXX,2,Hangup[LDN]exten => _1XXNXXXXXXX,1,Dial(Zap/g1/${EXTEN},20)exten => _1XXNXXXXXXX,n,Congestionexten => _1XXNXXXXXXXX,1,Dial(Zap/g1/${EXTEN},20)exten => _1XXNXXXXXXXX,n,Congestion[LDI]exten => _1XX0.,1,Dial(Zap/g1/${EXTEN},20)exten => _1XX0.,n,Congestion[celulares]exten => _09XXXXXXXX,1,Dial(Zap/g1/${EXTEN},20)exten => _09XXXXXXXX,n,Congestion[800_600]exten => _600NXXXXXX,1,Dial(Zap/g1/${EXTEN},20)exten => _600NXXXXXX,n,Congestion()exten => _800NXXXXX,1,Dial(Zap/g1/${EXTEN},20)exten => _800NXXXXX,n,Congestion()Segundo.Agrupardeacuerdoanuestrasrestricciones,paraestocreamosotroscontextos:;extensions.conf[R1]include => anexosinclude => localesinclude => LDNinclude => LDIinclude => celularesinclude => 800_600[R2]include => anexosinclude => localesinclude => LDNinclude => celularesinclude => 800_600[R3]include => anexosinclude => localesinclude => celularesinclude => 800_600[R4]include => anexosinclude => localesinclude => 800_600[R5]include => anexosTercero.AsignamosloscontextosrestriccionesanuestrosanexosSIP,creadosenelarchivosip.conf.[4080]disallow=allallow=gsmallow=ilbcallow=ulawtype=friendhost=dynamicusername=4180secret=4180dtmfmode=rfc2833context=R1callerid="Anexo4180"qualify=1000[4081]disallow=allallow=gsmallow=ilbcallow=ulawtype=friendhost=dynamicusername=4181secret=4181dtmfmode=rfc2833context=R2callerid="Anexo4181"qualify=1000[4082]disallow=allallow=gsmallow=ilbcallow=ulawtype=friendhost=dynamicusername=4182secret=4182dtmfmode=rfc2833context=R3callerid="Anexo4182"qualify=1000[4083]disallow=allallow=gsmallow=ilbcallow=ulawtype=friendhost=dynamicusername=4183secret=4183dtmfmode=rfc2833context=R4callerid="Anexo4183"qualify=1000[4184]disallow=allallow=gsmallow=ilbcallow=ulawtype=friendhost=dynamicusername=4183secret=4183dtmfmode=rfc2833context=R5callerid="Anexo4183"qualify=1000CAPITULO9VoicemailLos voicemail se configuran atraves del archivo de configuracin 'voicemail.conf' ubicado en eldirectorio'/etc/asterisk/',enestearchivoseconfiguraelfuncionamientodelbuzndevozqueposeecadaextensin.Cuandosedefinaelcontexto,estedeberserelmismoquehemosdefinidoenelparmetromailboxenelarchivo'sip.conf'.Elfuncionamientodelvoicemailconsisteenquesiunallamadahaciaunanexonofuesecontestadaentoncescomoprioridadsiguientesaltaraalalbuzndevoz,dondeescucharemosunagrabacinindicandoquenosencontramosenelbuznycuandosuenelasealpodramosdejarunmensajedevoz,elcualseraenviadoaunadireccindecorreoelectrnicoquehayamosdefinido.OBS.EnnuestroservidorasteriskdebeexistirunMTA(MailTranferAgentServiciodecorreo)queseacapasdeenviarcorreoselectrnicosaotradireccindecorreoelectrnico.Acontinuacinlosparmetrosdeconfiguracinparaesteservicio:;voicemail.conf[general]format=wav49|gsm|wav ; Formatos para grabar [email protected] ; 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=3000maxsilence=3 ; Cuntos segundos del silencio antes de que terminemos la grabacinsilencethreshold=128maxlogins=3; Numero mximo de intentos de logeo para recuperar mensajes a travs del telfonofromstring="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 lacentral de VoIp de *****\n* **** LinuxCenter *****\n\n\n\n\tTiene un mensaje nuevo en su buzon de voz,con el numero ${VM_MSGNUM}, recibido desdeel numero de telefono ${VM_CALLERID} el${VM_DATE} . Dicho mensaje se adjunta aeste email, pero no obstante Vd. debe dellamar a su buzon de voz y eliminarlo trassu escucha. Si no conoce como acceder a subuzon de voz, por favor contacte con eldepartamento a cargo.\n\n\t Gracias.\n\n\tCentral telefonica Asterisk.\nDentrodelcontexto[default]vandefinidaslascasillasdevozconsusrespectivascuentasdecorreo,contraseaynombredeusuario.Lasintaxisdeestaconfiguracineslasiguiente:Anexo=>Contrasea,Nombre_del_Usuario,Email_al_que_enviara_mensajeUna vez realizada esta configuracin veremos la forma de como dejar mensajes en caso nuestroanexonoestedisponible,estoserealizaenelarchivo'extensions.conf':Conestoencasodenocontestarelanexopor20segundosencasodeestarocupadonuestroanexolallamadapasaraautomticamentealasiguienteprioridadoseapasaraalbuzndevoz.Pararecargarestaconfiguracinesnecesarioreleerlosarchivosdeconfiguracin:asteriskrreload;voicemail.conf (continuacin)[default]4140 => 4140, Usuario N1, [email protected] => 4141, Usuario N2 ,[email protected] => 4142, Usuario N3 ,[email protected];extensions.conf [anexos]exten => _40XX,1,Dial(SIP/${EXTEN},20)exten => _40XX,2,Voicemail(${EXTEN})exten => _40XX,3,HangupCAPITULO10Meetme (Salas de Conferencias)Configuracion del mdulo de conferencia MeetMe de asterisk se realiza en el archivo deconfiguracin'meetme.conf'yestaubicadoeneldirectorio'/etc/asterisk'.ElarchivodeconfiguracinparalassalasdeconferenciasdeMeetMesedefiniriadelasiguienteforma:Lasintaxisdelarchivoeslasiguiente:Conelcontexto[rooms]damosinicioaladefinicindenuestrassalasdeconferencia.Luegoparacrearunasaladeconferenciainiciamosconelcomando'conf=>',seguidodelnumerodelasaladeconferencia y la contrasea para dicha sala, si queremos acceder a esta sala sin una contraseaentoncessedejasoloelnumerodelasala.conf=>numero_sala,contrasea_salaPosteriormenteunavezrealizadosestoscambiosenelarchivo'meetme.conf',veremoslaformadeaccederaestassalasestoserealizaenelarchivo'extensions.conf':Conestoencasodemarcarlaextensin60000entoncescomoprioridadnumerounoejecutaralaaplicacinMeetmeyaccederemosalasaladeconferencia6000.;meetme.conf [rooms];; Usage is conf => confno[,pin][,adminpin];conf => 60000conf => 60001,1234;extensions.conf [anexos]exten => 60000,1,Meetme(60000)CAPITULO11EvaluacinLaevaluacinsellevaraacaboen2.5hrs,esdecarcternetamentepracticoyseracapazdemedirlosconocimientosadquiridosporlosalumnosalcabodelcapitulo10.CAPITULO12IVR (Interactive Voice Response)RespuestaInteractivadeVoz(IVR):(InteractiveVoiceResponse)nospermitepresentarunmen,alapersonaquellama,atravsdeltecladodeltelfono,pormediodelcualpodrescogerlaopcinqueencasillelarespuestaoserviciobuscado.Ademspuedesonarmensajesgrabadosparalasllamadasenespera,parareforzarlaimagendemarcaotransmitirinformacinadicionalalapersonaquellama.En asterisk un IVR es presentado como un conjunto de contextos que se interrelacionan entre sidependiendodelasopcionesqueestenosdeaelegir.ElarchivodeconfiguracinparaunIVReselarchivo'extensions.conf'.ParaejemplificarelusodeunIVRtomemoselsiguientecaso:UnaempresaXqueprestaserviciosdeventasysoportedeseadesarrollarunIVRparaatenderlasllamadasdesusclientes,ademsesteIVRtienequesercapazdetomardecisionesrespectoalhorarioyaqueestaempresatrabajoenhorariosdeLunesaViernesde09.00a18.30.AcontinuacinunejemplopracticodeIVR:;extensions.conf[anexos]exten => 9999,1,Goto(menu,s,1)[menu]exten => s,1,Answerexten => s,2,Wait,1exten => s,3,Background(lc/mymessage-500)exten => s,4,GotoifTime(9:00-18:30|mon-fri|*|*?menu,s,7)exten => s,5,Background(lc/mymessage-509)exten => s,6,Hangup()exten => s,7,Background(lc/mymessage-501)exten => s,n,Background(lc/mymessage-502)exten => s,n,Background(lc/mymessage-503)exten => s,n,WaitExten(5)exten => s,n,Dial(SIP/4000,40)exten => t,1,Hangup()exten => i,1,Goto(menu,s,3)exten => 1,1,Goto(menu-ventas,s,1)exten => 2,1,Goto(menu-soporte,s,1)exten => 0,1,SetCallerID("del menu de voz")exten => 0,n,Dial(SIP/4000,40)OBS.Losarchivosdeaudiodebernsergrabadosenelcurso.;extensions.conf[menu-ventas]exten => s,1,Answerexten => s,n,Wait,1exten => s,n,Background(lc/mymessage-504)exten => s,n,WaitExten(3)exten => s,n,Background(lc/mymessage-504)exten => s,n,WaitExten(3)exten => s,n,Goto(menu,s,3)exten => 1,1,SetCallerID("Ventas Capacitacion")exten => 1,n,Dial(SIP/4001,20)exten => 1,n,Dial(SIP/4002,20)exten => 2,1,SetCallerID("Ventas de Proyectos")exten => 2,n,Dial(SIP/4003,20)exten => 2,n,Dial(SIP/4003,20)exten => 2,n,Dial(SIP/4005,20)exten => 2,n,Dial(SIP/4006,20)exten => 2,n,Dial(SIP/4007,20)exten => 3,1,SetCallerID("Ventas de Productos")exten => 3,n,Dial(SIP/4008,20,tr)exten => 3,n,Dial(SIP/4009,20,tr)exten => 4,1,SetCallerID("Soporte por Eventos")exten => 4,n,Dial(SIP/4003,20)exten => 4,n,Dial(SIP/4003,20)exten => 4,n,Dial(SIP/4005,20)exten => 4,n,Dial(SIP/4006,20)exten => 4,n,Dial(SIP/4007,20)exten => t,1,Goto(menu,s,1)exten => i,1,Goto(menu,s,1)[menu-soporte]exten => s,1,Answerexten => s,n,Wait,1exten => s,n,Background(lc/mymessage-505)exten => s,n,WaitExten(3)exten => s,n,Background(lc/mymessage-505)exten => s,n,WaitExten(3)exten => s,n,Goto(menu,s,1)exten => 1,1,SetCallerID("Soporte Contrato")exten => 1,n,Dial(SIP/4010,20,tr)exten => 1,n,Dial(SIP/4011,20,tr)exten => 2,1,SetCallerID("Soporte Garantia")exten => 2,n,Dial(SIP/4012,20,tr)exten => 2,n,Dial(SIP/4013,20,tr)exten => 3,1,SetCallerID("Otro tipo de soporte")exten => 3,n,Dial(SIP/4014,20,tr)exten => 3,n,Dial(SIP/4015,20,tr)exten => t,1,Goto(menu,s,1)exten => i,1,Goto(menu,s,1)Definiciones de las funciones ejecutadas en el IVRAnswer: Descuelgainmediatamente.Wait: Esperauntiempoexpresadoensegundosantesdecontinuar.Parmetros: Segundos... SegundosdeEspera.Background:Reproduceunamelodaomensajedeaudiomientrasseesperalamarcacindelasteclas.Parmetros: Archivo... EspecificaelarchivoquecontienelaMelodaoMensaje.WaitExten: Esperalossegundosexpresados,quesemarqueunanuevaextensinantesdecontinuar.Parmetros: Tiempo.... SegundosdeEspera.Hangup: Cuelgainmediatamente.GotoIfTime: Desvaelflujodelallamadaauncontextoyextensinespecificados,SOLOcuandoseestendentrodelrangofechahoraespecificadoenlosparmetros(Unsmbolo*indicatodoelrangoposibleenelparmetro).Parmetros: RangoHorario.... Enformatode24Horas,yconunahoradecomienzoyotradefinal(Porejemplo:0814.Las24horasseindicancon*).DasSemana... IndicaunnumerodeDiashbilesenlasemana(0y7indicanDomingo;*indicatodos).DasdelMes.... Indicaquediasdelmessedesean(*indicatodos).Meses.... Indicaquemesessedesean(*indicatodos).RegladeSaltoTrue.. NmerodelaReglaalaquesaltaencasodeserVerdaderalaExpresin.RegladeSaltoFalse.. NmerodelaReglaalaquesaltaencasodeserFalsalaExpresin.Dial: Realizaunallamadaalaextensinonmerodeterminadoenelcampo"Num.Llamada",esperandounacantidaddesegundosparaqueseestablezcalacomunicacin.Encasodequenoseestablezcalacomunicacinpasaralasiguienteregla,perosilacomunicacinnoseestableceporestarocupadoelinterlocutor,saltaralareglan+101.Parametros: CanalComunicacin..Tipodetecnologaqueseusaenlallamada:Zap,SIP,IAX,H323.Extension/Nmero... Aunaextensininternasloindicarla Extensin. Si es una llamada externa: Recurso/${EXTEN}(oNmeroalquesellama).Segundosdeespera... Segundosdeesperaaqueseestablezcalacomunicacin.Goto: Envaelflujodelallamadaaunadeterminadaposicindeldialplan,establecidaporlosparmetrosdeContexto+Extensin+Prioridad.Entreloscontextoshayquetenerencuentaqueademsdeloscreadosporelusuarioexistenotrosdecreacinautomtica:defaultcontroladodesde lapestaa"ControlIVR";voiph323:controlalasextensionesdelsistema;outgoingquegestionatodaslasextensionesdesalidacreadasdentrodelaopcin"Comunicacin Exterior";servicios contexto administradodesdela ventana homnima(Tenerencuentalasmaysculasyminsculas).Parmetros: Contexto... .Contextoalquesedesvalallamada.Loscontextos:default,servicios,outgoing,voiph323;soncreadosporelsistema,ypuedenreferenciarse.Extension.... Especificalaextensin,dentrodelContexto,alaquesedesva(sinoseespecificanada,iralaextensin"s"start.Prioridad... Ultimoniveldedetallealquesepuedellegar,yexpresaelndicedeunaregladentrodelasdelaextensin.SetCallerID: EstableceunnuevovalorparaelCallerIDdelallamada.Parmetros: CID... NuevoCID.CAPITULO13Funciones especialesFuncin de Autenticacin para LlamadasEstafuncinnospermiteAuthenticaraunusuarioconunacontraseamarcadaenelinstanteenelquevamosarealizarunallamada,estallamadapuedeserdecualquiertipo,porejemplollamadaslarga distancias o llamadas a celulares, dicha contrasea sera pedida al usuario para seguir elprocedimientodelallamada.Authenticate: Pidealinterlocutorqueintroduzcaunaclavevlidaparacontinuar.Parametros: Password... Contraseavlida,quepuedeserunarchivoconteniendocontraseas.Ejemplopractico:Necesitamos que algunos anexos se autentifiquen a travs de una contrasea para poder realizarllamadas.Enelarchivoextensions.confcreamosuncontexto:Un anexo que puede ejecutar lo que se encuentra dentro del contexto Llamadas_autenticadas,cuandovaamarcarel9999,comoprimeraprioridadvaaejecutarlafuncinAuthenticateynosva a preguntar por una contrasea que nosotros definimos en un archivo dentro del directorio/etc/asterisk/passwords/yllamadodelamismaformaqueelanexodesdeelcualestamosllamando.OBS: Eldirectorio/etc/asterisk/passwords/vaacontenerarchivosnombradosdelamismaformaquelosanexosquenecesitanautentificarseparapoderrealizarllamadas:/etc/asterisk/passwords/4000;Estearchivodebecontenerunapassword/etc/asterisk/passwords/4000;/etc/asterisk/passwords/4000;etc....;extensions.conf [Llamadas_autenticadas]exten => _9999,1,Authenticate(/etc/asterisk/passwords/${CALLERID(num)})exten => _9999,2,Disa,(no-password|Llamar)exten => _9999,3,Hangup[Llamar]exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},10)exten => _XXXXXXX,2,HangupDentrodecadaarchivodebemosdeescribirlacontraseadeautenticacindelanexocorrespondiente.Silapasswordescorrectaentoncespasaraalasegundaprioridad,lacualnosdartonodemarcadoynosenviaraautomticamentealcontextoLlamaryunavesqueescuchamoseltonodemarcadoingresamoselnumeroexternohaciaelcualnosqueremoscomunicarporejemploel4834000yselallamadaserealizar.SilaPasswordesincorrectanoslavolverapreguntar.Funcin para grabacin de LlamadasEstaaplicacinnospermitegrabarunaconversacindetelefnicarealizadaporunanexoXhaciaarchivosdeaudio.Lafuncinmonitorsedefinerespectoasusintaxisdelasiguienteforma:Monitor: GrabalacomunicacinencursoenunformatodeAudio(wav,gsm)ylaalmacenaenunarchivodeaudiolasalidayenotrolaentrada..amenosqueseseleccionelaopcin"m",encuyocasosonmezcladoslosarchivosenunosolo.Otraopcin,"b"indicaquenosequierengrabarlossaltosdeunaextensinaotra,encasodequeseproduzcan.Parametros: FormatoAudio.. EspecificasisedesaalmacenarelAudioenformatowav,gsm.Archivo... Nombreconelquesealmacena(sepuedenusarnombredeVariables).Opciones... mmezclasonidosdeentradaysalida;bnograbamientrashayunatransferenciaaotrocanal.Laaplicacinmonitorcomienzaagrabaruncanalmientrasesteestaencomunicacin.Lospaquetesdevozdelaentradaydelasalidadelcanalsevanalmacenandoenunarchivodesonido.Sinoespecificasunatrayectoriacomoparmetrodelaaplicacin,elarchivoseralmacenadoenelsubdirectoriodelmonitordelarutaespecificadaconelastspooldirenasterisk.conf(asquepordefectolosarchivosdeaudiosernalmacenadosen/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,HangupFuncin de llamadas con limites de tiempoEstafuncineslaaplicacin'Dial'conunparmetroadicionalquenospermitirtenercontroldecuantosminutospodrhablardeterminadoanexo.Dial(type1/identifier1[&type2/identifier2[&type3/identifier3...]],timeout)Donde: type1 >SIP,IAX2,Zapidentified >4000or${EXTEN}timeout >OpcinL(::)Laopcin'L(x:y:z)'quieredecirquelimitaralallamadaa"x"milisegundos,notificndocuandofalten"y"milisegundosyrepitindolocada"z"milisegundos,endondesolo"x"esindispensableparasufuncionamiento.Ejemplopractico:ParaelcasodelejemplosignificaqueelcomandoDiallimitaralallamadaa3600000ms(1hora)ynotificaraquelallamadallegaaesetiempocuandofalte61000(1minutoy1segundo)yesaalarmaserepetircada30000ms(30segundos).;extensions.conf [llamadas-con-tiempo]exten => _XXXXXXX,1,Dial(Zap/g1/${EXTEN},L(3600000:61000:30000))exten => _XXXXXXX,2,HangupCAPITULO14Asterisk AstDBAsteriskincorporaunaBDtipoBerkleyDBv2,enellaelpropioAsteriskalmacenadiversosvalorescomo:RegistrosSIP,IAX.Informacinsobrecolas.Nosotros como desarrolladores y programadores de nuestro dialplan tambin podemos almacenarinformacinenellayconsultarladesdeelmismodialplan.AstDBposeeunaorganizacinreferenteafamilias,ydentrodeunafamiliasepuedentenerdiversaskeys,yparacadakeyunsolovalor.AcontinuacinunejemplodecreacindeunaDBasterisk.LaformademanipularestaDBcreadaanteriormenteeliminandoelcontenidoyasignndoleotroeslasiguiente:NOTA:Loscaptulos15,16y17sernabsolutaycompletamenteabordadosenclaserealizandodecadaunode estosun laboratoriodonde se instalar,configuraryarafuncionarcadaunodelossoftwaresseleccionados para sus correspondientes labores (MySQLAsteriskStats ; Flash Operator Panel ;TrixboxAsteriskNowsegnconveniencia).[root@asterisk ~]# asterisk -rasterisk*CLI> database put MIFAMILIA mikey 1234Updated database successfullyasterisk*CLI> database show MIFAMILIA/MIFAMILIA/mikey : 1234asterisk*CLI> database put MIFAMILIA mikey 4567Updated database successfullyasterisk*CLI> database show MIFAMILIA/MIFAMILIA/mikey : 4567; extensions.conf[AstDB]exten => _XXXX,1,Set(valrespassadmin=${DB_DELETE(MIFAMILIA/mikey)})exten => _XXXX,2,Set(DB(MIFAMILIA/mykey)=${EXTEN})exten => _XXXX,3,Set(pass1=${DB(MIFAMILIA/mykey)})exten => _XXXX,6,Hangup()