Anda di halaman 1dari 38

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.

org
Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0

ConceptosdeTelefoniayVoIP VoIP

VoIP(VoiceoverInternetProtocol),llamadoenespaolVozsobreIPesungrupoderecursosque hacenposiblequelasealdevozviajeatravsdeInternetempleandounprotocoloIP.Esto significaqueseenvalasealdevozenformadigitalenpaquetesenlugardeenviarla(en formadigitaloanalgica)atravsdecircuitosutilizablessloparatelefonacomouna compaatelefnicaconvencionaloPSTN(acrnimodePublicSwitchedTelephoneNetwork,Red TelefnicaPblicaConmutada).

LosProtocolosquesonusadosparallevarlassealesdevozsobrelaredIPsoncomnmentereferidos comoprotocolosdeVozsobreIPoprotocolosIP.Puedenservistoscomoimplementacionescomercialesde la"RedexperimentaldeProtocolodeVoz"(1973),inventadaporARPANET.EltrficodeVozsobreIP puedecircularporcualquierredIP,incluyendoaquellasconectadasaInternet,comoporejemploredes derealocal(LAN). EsmuyimportantediferenciarentreVozsobreIP(VoIP)yTelefonasobreIP(NoconfundirconToIP, TextoverIP).

VoIPeselconjuntodenormas,dispositivos,protocolos,endefinitivalatecnologaquepermite latransmisindelavozsobreelprotocoloIP. TelefonasobreIPeselconjuntodenuevasfuncionalidadesdelatelefona,esdecirenloque seconviertelatelefonatradicionaldebidolosserviciosquefinalmentesepuedenllegara ofrecergraciasapoderportarlavozsobreelprotocoloIPenredesdedatos.

Ventajas
Laprincipalventajadeestetipodeserviciosesqueevitaloscargosaltosdetelefona (principalmentedelargadistancia)quesonusualesdelascompaasdelaRedPblicaTelefnica Conmutada(PSTN).Algunosahorrosenelcostosondebidosautilizarunamismaredparallevarvozy datos,especialmentecuandolosusuariostienensinutilizartodalacapacidaddeunaredyaexistente enlacualpuedenusarparaVoIPsinuncostoadicional.LasllamadasdeVoIPaVoIPentrecualquier proveedorsongeneralmentegratis,encontrasteconlasllamadasdeVoIPaPSTNquegeneralmente cuestanalusuariodeVoIP.

HaydostiposdeserviciodePSTNaVoIP:"LlamadasLocalesDirectas"(DirectInwardDialling:DID)y "Nmerosdeacceso".DIDconectaaquienhacelallamadadirectamentealusuarioVoIPmientrasquelos NmerosdeAccesorequierenqueesteintroduzcaelnmerodeextensindelusuariodeVoIP.LosNmeros deaccesosonusualmentecobradoscomounallamadalocalparaquienhizolallamadadesdelaPSTNy gratisparaelusuariodeVoIP.

Funcionalidad
VoIPpuedefacilitartareasqueseranmsdifcilesderealizarusandolasredestelefnicascomunes:

LasllamadastelefnicaslocalespuedenserautomticamenteenrutadasauntelfonoVoIP,sin importardndeseestconectadoalared.UnopodrallevarconsigountelfonoVoIPenun viaje,yencualquiersitioconectadoaInternet,sepodrarecibirllamadas. NmerostelefnicosgratuitosparausarconVoIPestndisponiblesenEstadosUnidosdeAmrica, ReinoUnidoyotrospasesdeorganizacionescomoUsuarioVoIP.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0

LosagentesdeCallCenterusandotelfonosVoIPpuedentrabajarencualquierlugarconconexin aInternetlosuficientementerpida. AlgunospaquetesdeVoIPincluyenlosserviciosextraporlosquePSTN(RedTelefnica Conmutada)normalmentecobrauncargoextra,oquenoseencuentrandisponiblesenalgunos pases,comosonlasllamadasde3alavez,retornodellamada,remarcadoautomtica,o identificacindellamadas.

Movilidad
LosusuariosdeVoIPpuedenviajaracualquierlugarenelmundoyseguirhaciendoyrecibiendo llamadasdelasiguienteforma:

Lossubscriptoresdelosserviciosdelaslneastelefnicaspuedenhaceryrecibirllamadas localesfueradesulocalidad.Porejemplo,siunusuariotieneunnmerotelefnicoenla ciudaddeNuevaYorkyestviajandoporEuropayalguienllamaasunmerotelefnico,estase recibirenEuropa.AdemssiunallamadaeshechadeEuropaaNuevaYork,estasercobrada comollamadalocal,porsupuestoelusuariodeviajeporEuropadebetenerunaconexina Internetdisponible. LosusuariosdeMensajeraInstantneabasadaenserviciosdeVoIPpuedentambinviajara cualquierlugardelmundoyhaceryrecibirllamadastelefnicas. LostelfonosVoIPpuedenintegrarseconotrosserviciosdisponiblesenInternet,incluyendo videoconferencias,intercambiodedatosymensajesconotrosserviciosenparaleloconla conversacin,audioconferencias,administracindelibrosdedireccioneseintercambiode informacinconotros(amigos,compaeros,etc).

ElEstndarVoIP(H.323)
Definidoen1996porlaUIT(UninInternacionaldeTelecomunicaciones)proporcionaalosdiversos fabricantesunaseriedenormasconelfindequepuedanevolucionarenconjunto.

Caractersticasprincipales Porsuestructuraelestndarproporcionalassiguientesventajas:

Permitecontrolareltrficodelared,porloquesedisminuyenlasposibilidadesdequese produzcancadasimportantesenelrendimiento.LasredessoportadasenIPpresentanlas siguientesventajasadicionales:

Esindependientedeltipoderedfsicaquelosoporta.Permitelaintegracinconlas grandesredesdeIPactuales. Esindependientedelhardwareutilizado. Permiteserimplementadotantoensoftwarecomoenhardware,conlaparticularidadde queelhardwaresupondraeliminarelimpactoinicialparaelusuariocomn.. PermitelaintegracindeVideoyTPV

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
IPnoesunservicio,esunatecnologa Enmuchospasesdelmundo,IPhageneradomltiplesdiscordias,entreloterritorialylolegalsobre estatecnologa,estclaroydebequedarclaroquelatecnologadeVoIPnoesunserviciocomotal, sinounatecnologaqueusaelProtocolodeInternet(IP)atravsdelacualsecomprimeny descomprimendemaneraaltamenteeficientepaquetesdedatosodatagramas,parapermitirla comunicacindedosomsclientesatravsdeunaredcomolareddeInternet.Conestatecnologa puedenprestarseserviciosdeTelefonaoVideoconferencia,entreotros.

Arquitecturadered ElpropioEstndardefinetreselementosfundamentalesensuestructura:

Terminales:Sonlossustitutosdelosactualestelfonos.Sepuedenimplementartantoen softwarecomoenhardware. Gatekeepers:SonelcentrodetodalaorganizacinVoIP,yseranelsustitutoparalasactuales centrales.Normalmenteimplementadasensoftware,encasodeexistir,todaslascomunicaciones pasaranporl. Gateways:Setratadelenlaceconlaredtelefnicatradicional,actuandodeformatransparente paraelusuario.

Conestostreselementos,laestructuradelaredVoIPpodraserlaconexindedosdelegacionesde unamismaempresa.Laventajaesinmediata:todaslascomunicacionesentrelasdelegacionesson completamentegratuitas.Estemismoesquemasepodraaplicarparaproveedores,conelconsiguiente ahorroqueestoconlleva.

ProtocolosdeVoIP:EsellenguajequeutilizarnlosdistintosdispositivosVoIPparasu conexin.Estaparteesimportanteyaquedeelladependerlaeficaciaylacomplejidaddela comunicacin.

Porordendeantigedad(demsantiguoamsnuevo): H.323ProtocolodefinidoporlaITUT SIPProtocolodefinidoporlaIETF Megaco(TambinconocidocomoH.248)yMGCPProtocolosdecontrol SkinnyClientControlProtocolProtocolopropiedaddeCisco MiNetProtocolopropiedaddeMitel CorNetIPProtocolopropiedaddeSiemens IAXProtocolooriginalparalacomunicacinentrePBXsAsterisk(obsoleto) SkypeProtocolopropietariopeertopeerutilizadoenlaaplicacinSkype IAX2ProtocoloparalacomunicacinentrePBXsAsteriskenreemplazodeIAX JingleProtocoloabiertoutilizadoentecnologaJabber MGCPProtocolopropietariodeCisco

ComohemosvistoVoIPpresentaunagrancantidaddeventajas,tantoparalasempresascomoparalos usuarioscomunes.Lapreguntaseraporqunosehaimplantadoanestatecnologa?.Acontinuacin analizaremoslosaparentesmotivos,porlosqueVoIPannosehaimpuestoalastelefonas convencionales.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
ParmetrosdelaVoIP EsteeselprincipalproblemaquepresentahoyendalapenetracintantodeVoIPcomodetodaslas aplicacionesdeIP.GarantizarlacalidaddeserviciosobreunaredIP,pormedioderetardosyancho debanda,actualmentenoesposible;poreso,sepresentandiversosproblemasencuantoagarantizarla calidaddelservicio..

Cdecs LavozhadecodificarseparapodersertransmitidaporlaredIP.ParaellosehaceusodeCdecsque garanticenlacodificacinycompresindelaudioodelvdeoparasuposteriordecodificaciny descompresinantesdepodergenerarunsonidooimagenutilizable.SegnelCdecutilizadoenla transmisin,seutilizarmsomenosanchodebanda.Lacantidaddeanchodebandasueleser directamenteproporcionalalacalidaddelosdatostransmitidos. EntreloscodecsutilizadosenVoIPencontramoslosG.711,G.723.1yelG.729(especificadosporla ITUT)

Retardoolatencia Unavezestablecidoslosretardosdetrnsitoyelretardodeprocesadolaconversacinseconsidera aceptablepordebajodelos150ms.

Calidaddelservicio Lacalidaddeesteservicioseestlograndobajolossiguientescriterios: Lasupresindesilencios,otorgamseficienciaalahoraderealizarunatransmisindevoz,yaque seaprovechamejorelanchodebandaaltransmitirmenosinformacin. CompresindecabecerasaplicandolosestndaresRTP/RTCP. Priorizacindelospaquetesquerequieranmenorlatencia.Lastendenciasactualesson: CQ(CustomQueuing):Asignaunporcentajedelanchodebandadisponible. PQ(PriorityQueuing):Estableceprioridadenlascolas. WFQ(WeightFairQueuing):Seasignalaprioridadaltrficodemenoscarga. DiffServ:Evitatablasdeencaminadosintermediosyestablecedecisionesderutasporpaquete. LaimplantacindeIPv6queproporcionamayorespaciodedireccionamientoylaposibilidadde tunneling.

PrincipalesprotocolosdeVoIP
H.323 ElprotocoloH.323secreoriginalmenteparaproveerdeunmecanismoparaeltransportede aplicacionesmultimediaenLANs(Redesderealocal)perohaevolucionadorpidamentepara dirigirlascrecientesnecesidadesdelasredesdeVoIP. UnpuntofuertedeH.323eralarelativaytempranadisponibilidaddeungrupodeestndares,no solodefiniendoelmodelobsicodellamada,sinoqueademsdefinaserviciossuplementarios, necesariosparadirigirlasexpectativasdecomunicacionescomerciales.H.323fueelprimer estndardeVoIPenadoptarelestndardeIETFdeRTP(ProtocolodeTransporteentiempoReal)

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
paratransportaraudioyvdeosobreredesIP. H.323estbasadoenelprotocoloRDSIQ.931yestadaptadoparasituacionesenlasquese combinaeltrabajoentreIPyRDSI,yrespectivamenteentreIPyQSIG.Unmodelodellamada, similaralmodelodeRDSI,facilitalaintroduccindelaTelefonaIPenlasredesexistentes deRDSIbasadasensistemasPBX.Porestoesposibleelproyectodeunamigracinsinproblemas haciaelIPbasadoensistemasPBX. DentrodelcontextodeH.323,unIPbasadoenPBXes,enpalabrassencillas,unGatekeeperms algunosserviciossuplementarios. H.323esunarecomendacindelITUT(InternationalTelecommunicationUnion),quedefinelos protocolosparaproveersesionesdecomunicacinaudiovisualsobrepaquetesdered.Apartirdel ao2000seencuentraimplementadaporvariasaplicacionesdeinternetquefuncionanentiempo realcomoMicrosoftNetmeetingyGnomeMeeting(EsteltimoutilizalaimplementacinOpenH323). EsunapartedelaseriedeprotocolosH.32x,loscualestambindirigenlascomunicaciones sobreRDSI,RTCoSS7. H.323esutilizadocomnmenteparaVozsobreIP(VoIP,TelefonadeinternetoTelefonaIP)y paravideoconferenciabasadaenIP.Esunconjuntodenormas(recomendacinparaguas)ITUpara comunicacionesmultimediaquehacenreferenciaalosterminales,equiposyservicios estableciendounasealizacinenredesIP.Nogarantizaunacalidaddeservicio,yenel transportededatospuede,ono,serfiable;enelcasodevozovdeo,nuncaesfiable.Adems, esindependientedelatopologadelaredyadmitepasarelas,permitiendousarmsdeuncanal decadatipo(voz,vdeo,datos)almismotiempo. DiferenteselementosqueconformanlatopologaclsicadeunaredbasadaenH323.

Portero:realizaelcontroldellamadaenunazona.Esopcionalperosuusoest recomendado,demodoquesiexiste,suusoserobligatorio.Traducedirecciones,ofrece serviciodedirectorio,controldeadmisindeterminales,controldeconsumode recursosyprocesalaautorizacindellamadas,ascomotambinpuedeencaminarla sealizacin. Pasarela:eselaccesoaotrasredes,demodoquerealizafuncionesdetranscodificacin ytraduccindesealizacin. MCU:soportemulticonferencia.Seencargadelanegociacindecapacidades.

Protocolos H.323tienereferenciashaciaalgunosotrosprotocolosdeITUTcomo:

H.225.0Protocoloutilizadoparadescribirlasealdellamada,elmedio(audioy video),elempaquetamientodelastramas,lasincronizacindetramasdemedioylos formatosdelosmensajesdecontrol. H.245Protocolodecontrolparacomunicacionesmultimedia.Describelosmensajesy procedimientosutilizadosparaabrirycerrarcanaleslgicosparaaudio,videoydatos, capacidaddeintercambio,controleindicaciones. H.450DescribelosServiciosSuplementarios. H.235DescribelaseguridaddeH.323. H.239Describeelusodeladobletramaenvideoconferencia,normalmenteunopara videoentiemporealylaotroparapresentacin. H.281DescribeelcontroldecmaralejanaparamovimientosPTZ(PanTiltZoom)

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
SIP SessionInitiationProtocol(SIPoProtocolodeIniciodeSesiones)esunprotocolodesarrollado porelIETFMMUSICWorkingGroupconlaintencindeserelestndarparalainiciacin, modificacinyfinalizacindesesionesinteractivasdeusuariodondeintervienenelementos multimediacomoelvideo,voz,mensajerainstantnea,juegosonlineyrealidadvirtual. LasintaxisdesusoperacionesseasemejaalasdeHTTPySMTP,losprotocolosutilizadosenlos serviciosdepginasWebydedistribucindeemailsrespectivamente.Estasimilitudesnatural yaqueSIPfuediseadoparaquelatelefonasevuelvaunserviciomsenlaInternet. EnNoviembredelao2000,SIPfueaceptadocomoelprotocolodesealizacinde3GPPyelemento permanentedelaarquitecturaIMS(IPMultimediaSubsystem).SIPesunodelosprotocolosde sealizacinparavozsobreIP,otroesH.323.

Diseo ElprotocoloSIPfuediseadoporelIETFconelconceptode"cajadeherramientas",esdecir, elprotocoloSIPsevaledelasfuncionesaportadasporotrosprotocolos,lasquedaporhechas ynovuelveadesarrollarlas.DebidoaesteconceptoSIPfuncionaencolaboracinconotros muchosprotocolos.ElprotocoloSIPseconcentraenelestablecimiento,modificaciny terminacindelassesiones,secomplementa,entreotros,conelSDP,quedescribeelcontenido multimediadelasesin,porejemploqudireccionesIP,puertosycdecsseusarndurantela comunicacin.TambinsecomplementaconelRTP(RealtimeTransportProtocol).RTPesel verdaderoportadorparaelcontenidodevozyvideoqueintercambianlosparticipantesenuna sesinestablecidaporSIP. Otroconceptoimportanteensudiseoeseldeextensibilidad.Estosignificaquelasfunciones bsicasdelprotocolo,definidasenlaRFC3261,puedenserextendidasmedianteotrasRFC (RequestsforComments)dotandoalprotocolodefuncionesmspotentes. Lasfuncionesbsicasdelprotocoloincluyen:

Determinarlaubicacindelosusuarios,proveyendonomadicidad. Establecer,modificaryterminarsesionesmultipartitasentreusuarios.

ElprotocoloSIPadoptaelmodeloclienteservidoryestransaccional.Elclienterealiza peticiones(requests)queelservidoratiendeygeneraunaomsrespuestas(dependiendodela naturaleza,Mtodo,delapeticin).Porejemploparainiciarunasesinelclienterealizauna peticinconelmtodoINVITEendondeindicaconquusuario(orecurso)quiereestablecerla sesin.Elservidorrespondeyasearechazandooaceptandoesapeticinenunaseriede respuestas.Lasrespuestasllevanuncdigodeestadoquebrindaninformacinacercadesilas peticionesfueronresueltasconxitoosiseprodujounerror.Lapeticininicialytodassus respuestasconstituyenunatransaccin. Losservidores,pordefecto,utilizanelpuerto5060enTCP(TransmissionControlProtocol)y UDP(UserDatagramProtocol)pararecibirlaspeticionesdelosclientesSIP. ComounadelasprincipalesaplicacionesdelprotocoloSIPeslatelefona,unobjetivodeSIP fueaportarunconjuntodelasfuncionesdeprocesamientodellamadasycapacidadespresentesen laredpblicaconmutadadetelefona.As,implementfuncionestpicasdedichared,comoson: llamaraunnmero,provocarqueuntelfonosuenealserllamado,escucharlasealdetonoo deocupado.LaimplementacinyterminologaenSIPsondiferentes. SIPtambinimplementamuchasdelasmsavanzadascaractersticasdelprocesamientodellamadas deSS7,aunquelosdosprotocolossonmuydiferentes.SS7esaltamentecentralizado, caracterizadoporunacomplejaarquitecturacentralderedyunosterminalestontos(los tradicionalestelfonosdeauricular).SIPesunprotocolopeertopeer(tambinllamadop2p). Comotalrequiereunncleoderedsencillo(yaltamenteescalable)coninteligenciadistribuida enlosextremosdelared,incluidaenlosterminales(yaseamediantehardwareosoftware). MuchascaractersticasdeSIPsonimplementadasenlosterminalesenoposicinalas

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
tradicionalescaractersticasdeSS7,quesonimplementadasenlared. AunqueexistenmuchosotrosprotocolosdesealizacinparaVoIP,SIPsecaracterizaporquesus promotorestienensusracesenlacomunidadIPynoenlaindustriadelastelecomunicaciones. SIPhasidoestandarizadoydirigidoprincipalmenteporelIETFmientrasqueelprotocolode VoIPH.323hasidotradicionalmentemsasociadoconlaUninInternacionalde Telecomunicaciones.Sinembargo,lasdosorganizacioneshanpromocionadoambosprotocolosdel mismomodo. SIPessimilaraHTTPycomparteconlalgunosdesusprincipiosdediseo:eslegiblepor humanosysigueunaestructuradepeticinrespuesta.LospromotoresdeSIPafirmanqueesms simplequeH.323.Sinembargo,aunqueoriginalmenteSIPtenacomoobjetivolasimplicidad,en suestadoactualsehavueltotancomplejocomoH.323.SIPcompartemuchoscdigosdeestadode HTTP,comoelfamiliar'404noencontrado'(404notfound).SIPyH.323noselimitana comunicacionesdevozypuedenmediarencualquiertipodesesincomunicativadesdevozhasta vdeoofuturasaplicacionestodavasinrealizar.

Funcionamiento ElprotocoloSIPpermiteelestablecimientodesesionesmultimediaentredosomsusuarios. Parahacerlosevaledelintercambiodemensajesentrelaspartesquequierencomunicarse.

AgentesdeUsuario Losusuarios,quepuedensersereshumanosoaplicacionesdesoftware,utilizanparaestablecer sesionesloqueelprotocoloSIPdenomina"Agentesdeusuario".Estosnosonmsquelospuntos extremosdelprotocolo,esdecirsonlosqueemitenyconsumenlosmensajesdelprotocoloSIP. Unvideotelfono,untelfono,unclientedesoftware(softphone)ycualquierotrodispositivo similaresparaelprotocoloSIPunagentedeusuario.ElprotocoloSIPnoseocupadela interfazdeestosdispositivosconelusuariofinal,sloseinteresaenlosmensajesqueestos generanycmosecomportanalrecibirdeterminadosmensajes. Losagentesdeusuariosecomportancomoclientes(UAC:UserAgentClients)ycomoservidores (UAS:UserAgentServers).SonUACcuandorealizanunapeticinysonUAScuandolareciben.Por estolosagentesdeusuariodebenimplementarunUACyunUAS. Ademsdelosagentesdeusuarioexistenotrasentidadesqueintervienenenelprotocolo,estos sonlosServidoresdeRegistrooRegistrar,losProxyylosRedirectores.Acontinuacinse describesufinalidad.

ServidoresdeRegistrooRegistrar ElprotocoloSIPpermiteestablecerlaubicacinfsicadeunusuariodeterminado,estoesen qupuntodelaredestconectado.Paraellosevaledelmecanismoderegistro.Estemecanismo funcionacomosigue: Cadausuariotieneunadireccinlgicaqueesinvariablerespectodelaubicacinfsicadel usuario.UnadireccinlgicadelprotocoloSIPesdelaformausuario@dominioesdecirtienela mismaformaqueunadireccindecorreoelectrnico.Ladireccinfsica(denominada"direccin decontacto")esdependientedellugarendondeelusuarioestconectado(desudireccinIP). Cuandounusuarioinicializasuterminal(porejemploconectandosutelfonooabriendosu softwaredetelefonaSIP)elagentedeusuarioSIPqueresideendichoterminalenvauna peticinconelmtodoREGISTERaunServidordeRegistro(Registrareningls),informandoa qudireccinfsicadebeasociarseladireccinlgicadelusuario.Elservidorderegistro realizaentoncesdichaasociacin(denominadabinding).Estaasociacintieneunperodode vigenciaysinoesrenovada,caduca.Tambinpuedeterminarsemedianteundesregistro.Laforma enquedichaasociacinesalmacenadaenlarednoesdeterminadaporelprotocoloSIP,peroes vitalqueloselementosdelaredSIPaccedanadichainformacin.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
ServidoresProxyydeRedireccin Paraencaminarunmensajeentreunagentedeusuarioclienteyunagentedeusuarioservidor normalmenteserecurrealosservidores.Estosservidorespuedenactuardedosmaneras: 1.ComoProxy,encaminandoelmensajehaciadestino, 2.ComoRedirector(Redirect)generandounarespuestaqueindicaaloriginanteladireccin deldestinoodeotroservidorqueloacerquealdestino. LaprincipaldiferenciaesqueelservidorproxyquedaformandopartedelcaminoentreelUACy el(olos)UAS,mientrasqueelservidorderedireccinunavezqueindicaalUACcmoencaminar elmensajeyanointervienems. UnmismoservidorpuedeactuarcomoRedirectorocomoProxydependiendodelasituacin.

Casostpicosdeservidores Unconjuntodeusuariosquepertenecenaunacompaaoproveedordeserviciosde comunicaciones,conformanundominio.Estedominio,queseindicaenunadireccinSIPdespus delcarcter"@"esnormalmenteatendidoporunservidor(omsdeuno).Esteservidorrecibe laspeticioneshaciasususuarios.Esteservidorserelencargadodedeterminarladireccin fsicadelusuariollamado.Unservidorquerecibelaspeticionesdestinadasaundominio especficoesdenominadoservidorentrante(InboundServer). Eshabitualtambin,queexistaunservidorquerecibalaspeticionesoriginadasporlos usuariosdeundominiohaciaotrosdominios.EsterecibeelnombredeServidorSaliente (OutboundServer). Unagentedeusuarionormalmenteencaminatodossuspedidoshaciaunservidordesupropio dominio.Esestequiendetermina(porsuspropiosmediosovalindosedeotrosservidores)las ubicacionesdelosusuariosquesonllamadosporelagentedeusuarioencuestin.

Formatodelosmensajes LosmensajesqueseintercambianenelprotocoloSIPpuedenserpeticionesorespuestas. Laspeticionestienenunalneadepeticin,unaseriedeencabezadosyuncuerpo. Lasrespuestastienenunalneaderespuesta,unaseriedeencabezadosyuncuerpo. Enlalneadepeticinseindicaelpropsitodelapeticinyeldestinatariodelapeticin. Laspeticionestienendistintasfunciones.Elpropsitodeunapeticinestdeterminadoporlo quesedenominaelMtodo(Method)dedichapeticin,quenoesmsqueunidentificadordel propsitodelapeticin.Enla[RFC3261]sedefinenlosmtodosbsicosdelprotocolo.Existen otrosmtodosdefinidosenextensionesalprotocoloSIP. Enlalneaderespuestaseindicaelcdigodeestadodelarespuestaqueesunnmeroindica elresultadodelprocesamientodelapeticin. Losencabezadosdepeticionesyrespuestasseutilizanparadiversasfuncionesdelprotocolo relacionadasconelencaminamientodelosmensajes,autenticacindelosusuarios,entreotras. Laextensibilidaddelprotocolopermitecrearnuevosencabezadosparalosmensajesagregandode estamanerafuncionalidad. Elcuerpodelosmensajesesopcionalyseutilizaentreotrascosasparatransportarlas descripcionesdelassesionesquesequierenestablecer,utilizandolasintaxisdelprotocolo SDP.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Flujodeestablecimientodeunasesin ElflujohabitualdelestablecimientodeunasesinmedianteelprotocoloSIPeselsiguiente, enesteejemplotodoslosservidoresactancomoproxy: Unusuarioingresaladireccinlgicadelapersonaconlaquequierecomunicarse,puede indicaralterminaltambinlascaractersticasdelassesinquequiereestablecer(vozy video,etc.),oestaspuedenestarimplcitasporeltipodeterminaldelquesetrate.El agentedeusuarioSIPqueresideenelterminal,actuandocomoUACenvalapeticin(eneste casoconelmtodoINVITE)alservidorquetieneconfigurado.Esteservidorsevaledelsistema DNSparadeterminarladireccindelservidorSIPdeldominiodeldestinatario.Eldominiolo conocepuesespartedeladireccinlgicadeldestinatario.Unavezobtenidaladireccindel servidordeldominiodestino,encaminahaciaalllapeticin.Elservidordeldominiodestino establecequelapeticinesparaunusuariodesudominioyentoncessevaledelainformacin deregistracindedichousuarioparaestablecersuubicacinfsica.Silaencuentra,entonces encaminalapeticinhaciadichadireccin.Elagentedeusuariodestinosiseencuentra desocupadocomenzaraalertaralusuariodestinoyenvaunarespuestahaciaelusuario originanteconuncdigodeestadoqueindicaestasituacin(180enestecaso).Larespuesta sigueelcaminoinversohaciaeloriginante.Cuandoelusuariodestinofinalmenteaceptala invitacin,segeneraunarespuestaconuncdigodeestado(el200)queindicaquelapeticin fueaceptada.LarecepcindelarespuestafinalesconfirmadaporelUACoriginantemediante unapeticinconelmtodoACK(deAcknowledgement),estapeticinnogenerarespuestasy completalatransaccindeestablecimientodelasesin. NormalmentelapeticinconelmtodoINVITEllevauncuerpodondeviajaunadescripcindela sesinquequiereestablecer,estadescripcinesrealizadaconelprotocoloSDP.Enellase indicaeltipodecontenidoaintercambiar(voz,video,etc.)ysuscaractersticas(cdecs, direcciones,puertosdondeseesperarecibirlos,velocidadesdetransmisin,etc.).Estose conocecomo"ofertadesesinSDP".Larespuestaaestaofertaviaja,enestecaso,enelcuerpo delarespuestadefinitivaalapeticinconelmtodoINVITE.Lamismacontieneladescripcin delasesindesdeelpuntodevistadeldestinatario.Silasdescripcionesfueran incompatibles,lasesindebeterminarse(medianteunapeticinconelmtodoBYE). Alterminarlasesin,loquepuedehacercualquieradelaspartes,elagentedeusuariodela partequeterminlasesin,actuandocomoUAC,envahacialaotraunapeticinconelmtodo BYE.CuandolorecibeelUASgeneralarespuestaconelcdigodeestadocorrespondiente. Sibiensedescribielcasodeunasesinbipartita,elprotocolopermiteelestablecimientode sesionesmultipartitas.Tambinpermitequeunusuarioestregistradoendiferentesubicaciones pudiendorealizarlabsquedaenparaleloosecuencialentretodasellas.

IAX2 IAX(InterAsteriskeXchangeprotocol)esunodelosprotocolosutilizadoporAsterisk,un servidorPBX(centraltelefnica)decdigoabiertopatrocinadoporDigium.Esutilizadopara manejarconexionesVoIPentreservidoresAsterisk,yentreservidoresyclientesquetambin utilizanprotocoloIAX. ElprotocoloIAXahoraserefieregeneralmentealIAX2,lasegundaversindelprotocoloIAX.El protocolooriginalhaquedadoobsoletoenfavordeIAX2. ElprincipalobjetivodeIAXhasidominimizarelanchodebandautilizadoenlatransmisinde vozyvdeoatravsdelaredIP,conparticularatencinalcontrolyalasllamadasdevozy proveyendounsoportenativoparasertransparenteaNAT.LaestructurabsicadeIAXse fundamentaenlamultiplexacindelasealizacinydelflujodedatossobreunsimplepuerto UDPentredossistemas. IAXesunprotocolobinarioyestdiseadoyorganizadodemaneraquereducelacargaenflujos dedatosdevoz.Elanchodebandaparaalgunasaplicacionessesacrificaenfavordelanchode bandaparaVoIP.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Caractersticas

IAX2esrobusto,llenodenovedadesymuysimpleencomparacinconotrosprotocolos. Permitemanejarunagrancantidaddecdecsyungrannmerodestreams,loque significaquepuedeserutilizadoparatransportarvirtualmentecualquiertipodedato. Estacapacidadlohacemuytilpararealizarvideoconferenciasorealizar presentacionesremotas. IAX2utilizaunnicopuertoUDP,generalmenteel4569,paracomunicacionesentrepuntos finales(terminalesVoIP)parasealizacinydatos.Eltrficodevozestransmitido inband,loquehaceaIAX2unprotocolocasitransparentealoscortafuegosyrealmente eficazparatrabajardentroderedesinternas.EnestosediferenciadeSIP,queutiliza unacadenaRTPoutofbandparaentregarlainformacin. IAX2soportaTrunking(red),dondeunsimpleenlacepermiteenviardatosysealizacin pormltiplescanales.CuandoserealizaTrunking,losdatosdemltiplesllamadasson manejadosenunnicoconjuntodepaquetes,loquesignificaqueundatagramaIPpuede entregarinformacinparamsllamadassincrearlatenciaadicional.Estoesunagran ventajaparalosusuariosdeVoIP,dondelascabecerasIPsonungranporcentajedel anchodebandautilizado.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Asterisk Asteriskesunaaplicacindesoftwarelibre(bajolicenciaGPL)queproveefuncionalidadesde unacentraltelefnica(PBX).ComocualquierPBX,sepuedeconectarunnmerodeterminadode telfonosparahacerllamadasentreseinclusoconectaraunproveedordeVoIPobienauna RDSItantobsicoscomoprimarios. MarkSpencer,deDigium,inicialmentecreAsteriskyactualmenteessuprincipaldesarrollador, juntoconotrosprogramadoresquehancontribuidoacorregirerroresyaadirnovedadesy funcionalidades.OriginalmentedesarrolladoparaelsistemaoperativoGNU/Linux,Asterisk actualmentetambinsedistribuyeenversionesparalossistemasoperativosBSD,MacOSX,Solaris yMicrosoftWindows,aunquelaplataformanativa(GNU/Linux)eslamejorsoportadadetodas. Asteriskincluyemuchascaractersticasanteriormenteslodisponiblesencostosossistemas propietariosPBXcomobuzndevoz,conferencias,IVR,distribucinautomticadellamadas,y otrasmuchasms.Losusuariospuedencrearnuevasfuncionalidadesescribiendoundialplanenel lenguajedescriptdeAsteriskoaadiendomdulosescritosenlenguajeCoencualquierotro lenguajedeprogramacinsoportadoporLinux. ParaconectartelfonosestndaranalgicossonnecesariastarjetaselectrnicastelefnicasFXS oFXOfabricadasporDigiumuotrosproveedores,yaqueparaconectarelservidoraunalnea externanobastaconunsimplemdem. QuizlomsinteresantedeAsteriskesquesoportamuchosprotocolosVoIPcomopuedenserSIP, H.323,IAXyMGCP.AsteriskpuedeinteroperarconterminalesIPactuandocomounregistradory comogatewayentreambos.

ConceptosBasicos Canal:Esunaconexionqueconduceunallamadaentranteosalienteenelsistemaasterisk.Laconexion puedevenirosalirhaciatelefoniatradicionalanalogicaodigital,oVoIP. Dialplan:Setratadelaconfiguraciondelacentraldeasteriskqueindicaelitinerarioquesigueuna llamadadesdequeentraosaledelsistemahastaquellegaasupuntofinal.Setrataenlineas generalesdelcomportamientologicodelacentral. Extension:Entelefoniatradicional,lasextensionesseasociancontelefonos,interfacesomenues.En asterisk,unaextensionesunalistadecomandosaejecutar.Lasextensionesseaccedencuando:

Serecibeunallamadaentranteporuncanaldado. Elusuarioquehallamadomarcalaextension Seejecutaunsaltodeextensionesdesdeeldialplandeasterisk.

Contexto:Eldialplanologicadecomportamientodeasterisksedivideenunoovarioscontextos.Un contextoesunacolecciondeextensiones.Loscontextosexistenparapoderdiferenciarellugardonde seencuentraunallamada. Aplicacion:Asteriskejecutasecuencialmenteloscomandosasociadosacadaextension.Esoscomandosson realmenteaplicacionesquecontrolanelcomportamientodelallamadaydelsistemaensi.Ejemplos:

Hangup:Colgarlallamada Dial:Realizaunallamadasaliente Playback:Reproduceunarchivodesonido

Masadelantehablaremosmasafondodeaplicaciones.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
EstructuradeDirectorios /etc/asterisk:Contienelosarchivosdeconfiguracin.Sialcompilarejecutamosmakesamples, tendremosejemplosenestedirectorio. /usr/lib/asterisk/modules:ContienelosmdulosdeAsteriskquehemoscompilado. /var/lib/asterisk:ContienediferenteslibrerasdeAsterisk. /var/lib/asterisk/agibin:DirectorioparacontenerlosAGI. /var/spool/asterisk:DirectorioparaarchivosquegeneraAsterisk(voicemail,etc.) /var/log/asterisk:AquseguardanloslogdeAsterisk. ArchivosdeConfiguracion extensions.conf:elpropioDialplan. features.conf:dialplanparamtodoscomplementarios(transferencias,callparking,grabacinde llamadasbajodemanda,etc.). meetme.conf:paraconferencias. Musiconhold.conf:configuraciondelamusicaenespera. Queues.conf:configuraciondecolasdellamadas. Voicemail.conf:configuraciondelosbuzonesdevoz. Asteriskseconfiguradesdemultiplesarchivosdeconfiguracion,cadaunoparaunadeterminadaarea. Losmasimportantesson: Archivodeconfiguracionmaestro:asterisk.conf Archivodeconfiguraciondemodulos:modules.conf Canales: iax.conf:CanalesIAX(InterAsteriskeXchange) sip.conf:CanalesSIP zapata.conf:TelefoniaAnalogicaydigital. InstalaciondeAsterisk2.4.19enCentos5 Requerimientos Losrequerimientosparainstalarasterisksondeacuerdoalanecesidaddelusuariopodramosponer unosrequerimientoaunquepodraserirrelevantedadoquelosrequerimientosvaranconstantementede acuerdoalanecesidaddelusuario. Asteriskutilizaelprocesadorparaprocesarlasllamadasestoquieredecirquedeacuerdoanuestra necesidadnecesitaremosunprocesadordegrancapacidadparaprocesarungrancapacidaddellamadas simultaneas. Requerimientodepaquetesparacompilarzaptellibpriasterisk yuminstallygcc yuminstallyncursesdevel yuminstallylibtermcapdevel yuminstallykerneldevel yuminstallykernelsmpdevel yuminstallygccc++ yuminstallyopenssldevel yuminstallynewtdevel yuminstallyzlibdevel yuminstallyunixODBCdevel yuminstallylibtool yuminstallymake

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Nota:nosotrosvamosanecesitarhacerusodeldirectorio/usr/src/paraextraerycompilarzaptel libpriasterisk,usaremoswgetparadescargarlosfuentesdedigium. [root@blackangel~]#cd/usr/src/ [root@blackangelsrc]#wgethttp://downloads.digium.com/pub/asterisk/asterisk1.4.19.tar.gz [root@blackangelsrc]#wgethttp://downloads.digium.com/pub/libpri/libpri1.4.3.tar.gz [root@blackangelsrc]#wgethttp://downloads.digium.com/pub/zaptel/zaptel1.4.9.2.tar.gz

Extrayendoloscdigosfuentes [root@blackangelsrc]#tarxzvfasterisk1.4.19.tar.gz [root@blackangelsrc]#tarxzvflibpri1.4.3.tar.gz [root@blackangelsrc]#tarxzvfzaptel1.4.9.2.tar.gz CompilandoZaptel [root@blackangelsrc]#cdzaptel1.4.9.2 [root@blackangelsrc]#./configure [root@blackangelsrc]#makemenuselect [root@blackangelsrc]#make [root@blackangelsrc]#makeinstall [root@blackangelsrc]#makeconfig CompilandoLibpri [root@blackangelsrc]#cdlibpri1.4.3 [root@blackangelsrc]#make [root@blackangelsrc]#makeinstall CompilandoAsterisk [root@blackangelsrc]#cdasterisk1.4.19 [root@blackangelsrc]#./configure [root@blackangelsrc]#makemenuselect [root@blackangelsrc]#make [root@blackangelsrc]#makeinstall [root@blackangelsrc]#makesamples [root@blackangelsrc]#makeprogdocs [root@blackangelsrc]#makeconfig
MasadelanteexplicaremoscomoconfigurarlatarjetaFXO.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
ConfigurandoAsteriskPBX Elarchivoextensions.confeslapartecentraldetodalaconfiguracin,dadoqueesdondesedefineel dialplandeAsterisk.Secomponede4partesprincipales:contextos,extensiones,prioridadesy aplicaciones. Eldialplansedivideenseccionesdenominadascontextos,queestnrotuladasycontienenungrupo deextensiones. Loscontextossedefinencolocandosunombreentrecorchetes([]).Estenombrepuedecontener caracteresalfanumricosademsdelguinyelguinbajo.Ejemplo: [interno] Todaslasinstruccionessonpartedelcontextohastaqueelprximocontextoesdefinido.Existendos contextosespeciales: [general](variablespredefinidas) [globals](variablesnopredefinidas). UnaextensinesunainstruccinqueserseguidaporAsterisk,luegodeserdisparadaporunallamada entranteobienpordgitosdiscadosenuncanal,definidaenelmarcodeuncontexto. Lasintaxisdeunaextensinesla siguiente: exten=>nombre,prioridad,aplicacion() Ejemplo: exten=>101,1,answer() Extensins(start):esunaextensinespecialqueesutilizadasiunallamadaentraauncontextosin unaextensindestinoespecfica(porejemplounallamadaenunpuertoFXO);lallamadatratadeentrar automticamentealaextensins. [interno] exten=>s,1,answer() Unaextensinpuedetenervariospasos,denominadosprioridades.Lasprioridadescomienzancon1yse ejecutanenordennumrico.SinoexistelaprioridadN+1,Asterisknosaltaalasiguienteprioridad (N+2).Cadaprioridadejecutaunanicaaplicacin. Ejemplo: exten=>101,1,Answer() exten=>101,2,Hangup() Prioridadessinnumerar:Asteriskintroduceelusodelaprioridadn(next).CadavezqueAsterisk encuentraunaprioridadn,tomaelnmerodelaprioridadanteriorylesuma1.Simplificaelproceso deescrituradeldialplan,evitandotenerquevolveranumerarlasprioridadesalinsertarunaprioridad paralamismaexten. Ejemplo: exten=>103,1,Answer() exten=>103,n,hagoalgo exten=>103,n,Hangup() Notesecomoelordennumerico(1,2,3,etc)esreemplazadoporlaletran. Aplicaciones Lasaplicacionesrealizanunaaccindeterminadaenelcanalactual,controlandoelcomportamiento delallamadaydelsistemaens. Algunosejemplos: answer():contestaunallamada. hangup():cuelgaunallamada. dial():realizaunallamadasaliente.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
playback():reproduceunarchivodesonido. Ciertasaplicacionesrequierendelpasajedeparmetros,estosseincluyendentrodelos parntesis,separadospor,. ARRANCAMOSCONASTERISK....... MiprimerDialplan. Luegodetantoblablablafinalmentecomenzamosaecharlemanosaesto.Crearemosundialplansimple basandonosentodalateoriaanterior(ESPEREMOSLAHAYANLEIDO)eiremoscreandoextensionesparair realizandoslosescenarios. LoprimeroesquecrearemoslasextensionesSIP101y102pararegistrarnosenasteriskdelasiguiente manera: vim/etc/asterisk/sip.conf agregar: [101] type=friend callerid=cris context=extensiones username=101 secret=101 host=dynamic [102] type=friend callerid=carlos context=extensiones username=102 secret=102 host=dynamic ;Indicaquepuedeenviaryrecibirllamadas ;CallerId ;Contextopordefectoalquepertenecera ;Usuario ;Clavequeserautilizadaparaelsoftphoneoelhardphone ;Eldispositivotieneunaipdinamica ;Indicaquepuedeenviaryrecibirllamadas ;CallerId ;Contextopordefectoalquepertenecera.Relacionadoconextensions.conf ;Usuario ;Clavequeserautilizadaparaelsoftphoneoelhardphone ;Eldispositivotieneunaipdinamica

Conestosminimosdatosyapodemosiralarchivoextensions.confycrearnuestrodialplan. [root@familyasterisk]#vim/etc/asterisk/extensions.conf [extensiones] exten=>100,1,Answer();Contestalallamada exten=>100,2,Playback(helloworld);Suenaelarchivohelloworld exten=>100,3,Hangup() ;Cuelgalallamada Indicaquecuandocualquieradelosusuariosregistrados(101o102)marquelaextension100se iniciaraunasecuenciadeaplicacionesdondelaprimeraesAnswer,luegoescucharaunagrabacion (helloworld)yfinalmentecolgara. Masaplicaciones Background:LaaplicacionBackgroundreproduceunamelodiaomensajemientrasseesperaelmarcadode cualquiertecla.Adiferenciadeplaybackestapermiteelmarcadodeteclasmientrasqueplaybackno. [extensiones] exten=>100,1,Answer();contestalallamada exten=>100,n,Background(enterextofperson);esperadigitosypasaalaextensionenelmismo contexto exten=>100,n,Hangup()

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Aquilounicoquehaceesquecuandomarcamoslaextension100.Asimplevistaresultaconigual funcionamientoquePlaybackperoyaveranquenoesasi. AplicacionDial:Realizaunallamadaalaextensiononumerodeterminadoenelcampo.Utiliza diferentestiposdetecnologia(SIP,IAX,ZAP,etc).LasintaxisdeDialesunpoquitomascomplejaque lasanterioresperonomenosimportantes.Porejemplo,Parahabilitarquelasextensiones101y102 puedanmarcarseentresicolocamoslosiguiente: [extensiones] exten=>101,1,Dial(SIP/101,10);Marcaalaextension101yespera10segundosparapasasala siguienteprioridad. exten=>101,n,Playback(vmnobodyavail) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/101,10);Marcaalaextension101yespera10segundosparapasasala siguienteprioridad. exten=>102,n,Playback(vmnobodyavail) exten=>102,n,Hangup() Cuandolaextension101digitela102,sonaraenlaextension102porunperiodode10segundos,sien esos10segundosnadiecontestairaalaproximaprioridadquetocaunmensajedenodisponibley finalmentecuelga. Tambiendialpuedellamaraotrotipodetecnologia(IAX,ZAP,etc). Ejemplo; exten=>102,1,Dial(IAX/1,10,m) exten=>102,n,Playback(vmnobodyavail) exten=>102,n,Hangup() Enestecasolaopcionllamaraalaextension102usandoIAXymientrassuenalaopcionmtocaraun musicadefondo. OtrasopcionesdeDial() T:Permitequienllamapuedatransferirlallamadacon# t:Permitequequiencontestapuedatransferirlallamadacon# r:Generaunringtonealquellamayesperaagenerarelcanaldeaudiocuandoconteste w:Permitealquellamagrabarlacomunicacioncon*1 AplicacionGoto:Enviaflujodelallamadaaundeterminadaposiciondeldialplan,establecidaporlos parametrosdecontexto+extension+prioridad.Ejemplo Ejemplo: exten=>100,1,Answer();contestalallamada exten=>100,n,Background(enterextofperson);esperadigitosypasaalaextensionenelmismo contexto exten=>100,n,WaitExten(10) exten=>100,n,Goto(101,1);Sinodigitaningunaextension,vaalaextension101prioridad1. exten=>100,n,Hangup() exten=>101,1,Dial(SIP/101,10) exten=>101,n,Playback(vmnobodyavail) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/101,10) exten=>102,n,Playback(vmnobodyavail) exten=>102,n,Hangup()

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
OtroEjemplo: exten=>100,1,Answer();contestalallamada exten=>100,n,Background(enterextofperson);esperadigitosypasaalaextensionenelmismo contexto exten=>100,n,WaitExten(10) exten=>100,n,Goto(hastaluego,200,1);Sinodigitaningunaextension,vaalcontextohastaluego extension200prioridad1. exten=>100,n,Hangup() Entradasinvalidasytimeouts Cuandoelusuariotecleaunaentradainvlida,lallamadaesenviadaalaextensini.Cuandoel usuarionotecleaningunaopcin,esnecesariotenerunaextensinquenospermitamanejaresta situacin.Pordefecto,sinosetecleanadadespusde10segundosdehaberseterminadodereproducir elarchivolallamadaesenviadaalaextensint.Sisetecleaundigito,espera5segundoshastael siguiente,onumeral(#)paraterminardetipearnumeros. Ejemplo: exten=>100,1,Answer();contestalallamada exten=>100,n,Background(enterextofperson);esperadigitosypasaalaextensionenelmismo contexto exten=>100,n,WaitExten(10) exten=>100,n,Hangup() exten=>101,1,Dial(SIP/101,10) exten=>101,n,Playback(vmnobodyavail) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/101,10) exten=>102,n,Playback(vmnobodyavail) exten=>102,n,Hangup() exten=>i,1,Playback(pbxinvalid);Suenaunmensajequeindicaextensioninvalida exten=>i,n,Playback(vmgoodbye);Otromensajedeadios exten=>i,n,Hangup() ;Cuelgalallamada exten=>t,1,Playback(vmgoodbye);mensajedeadios exten=>t,n,Hangup() ;Cuelgalallamada Enelejemploanterior,elusuariomarcalaextension100yelcontextoentradaleindicaquedigitele numerodeextensiondeseado,sielusuariodigitaunnumerodeextensiondiferentea101o102entonces iradirectamentealaextensioninvalida.Siesperauntiemposinhacernadaentoncesloenviaala extensiontyterminalallamada. Variables EneldialplandeAsteriskexistenvariables,quepuedensermodificadasporelpropioAsteriskensu ejecucinlgicaoporcomandosexpresos(aplicaciones)deldialplan.Lasvariablesreducenla escritura,agreganclaridadaldialplanyleaportanlgica.Lostiposdevariablesson: Globales:declaradasenextensions.conf(oporcomando). Canal:asociadasconuncanalparticular. Entorno:variablesdeentorno(UNIXLike). Variablesglobales Permitequesepuedahacerreferenciaaellasentodosloscontextos,entodaslasextensiones,a diferenciadelasvariablesconvencionalesqueslotienenvalidezenelcanalactual.Estilpara tenerclaridadmanejabilidadeneldialplan. Sepuedendefinirenelcontexto[globals]aliniciodeextensions.conf

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
[globals] CRIS=Sip/101 CARLOS=Iax/102 Lasintaxisdeunavariablees: ${variable} Asignaciondevariables: set(Variable=valor) set(GLOBAL(Variable)=Valor);Cambiamoselvalordeunavariableglobal AgregarVariablesalDialplan Asumiendoquelasvariablesglobalesfuerondeclaradasenelejemploanteriorpodemossimularlo siguiente: exten=>100,1,Answer();contestalallamada exten=>100,n,Background(enterextofperson);esperadigitosypasaalaextensionenelmismo contexto exten=>100,n,Hangup() exten=>101,1,Dial(${CRIS},10);ReferenciaalavariableCRIScuyovaloresSIP/101 exten=>101,n,Playback(vmnobodyavail) exten=>101,n,Hangup() exten=>102,1,Dial(${CARLOS},10);ReferenciaalavariableCARLOScuyovaloresSIP/102 exten=>102,n,Playback(vmnobodyavail) exten=>102,n,Hangup() Algunasvariablesdefinidasautomaticamenteporasterisk Listadodevariablesmsimportantes: ${CALLERID}:callerIDactual,nombreynmero. ${CONTEXT}:contextoactual. ${EXTEN}:extensinactual. ${CHANNEL}:canalactual. ${DIALSTATUS}:estadodelallamada:unavailable,congestion,busy,noanswer,answer,cancel, hangup. ${DATETIME}:horaactual. UncomandotilparaverelcontenidoesNoOp: NoOp(${VARIABLE});MostrarenelCLIelvalor. Variable${EXTEN} Permitesaberculeslaextensinquefuemarcada.Seutilizacomunmenteparaeliminardgitos marcados:${EXTEN:x} Sixespositivo,quitalosprimerosxdgitosmarcados exten=>_XXX,1,SayDigits(${EXTEN:1}) Sixesnegativo,devuelvelosltimosxdgitosmarcados exten=>_XXX,1,SayDigits(${EXTEN:1}) Patrones Seutilizanprincipalmenteparallamadassalientes.Comienzanconelsigno_.LedicenaAsteriskque hagamatchconunpatrnynoconunnmerodeextensin. X.Hacematchconcualquierdgitode0a9. ZHacematchconcualquierdgitode1a9. NHacematchconcualquierdgitodel2al9. [157]Hacematchconelrangodedgitosespecificados,enesteejemplomatchealosnmeros 1,5,6,7.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
.(punto)Hacematchconunoomascaracteres. exten=>_NXX,1,Playback(auththankyou) SiAsteriskencuentramsde1patrnparaunaextensinmarcada,seusalamsespecfica: exten=>_555XXXX,1,Playback(digits/1) exten=>_55512XX,1,Playback(digits/1) Includes Asteriskposeeunacaracteristicaparausarlasextensionesdeuncontextosinperteneceraeste.Esto esutilizadoparacontrolarelaccesoadiferentesseccionesdeldialplan. Porejemplo,podriamoshabilitarotrocontextollamadoextensiones2conlosusuarios103y104, naturalmentelosusuariospertenecientesalcontextoextensionesnopodranaccedernillamaralos usuariosdelcontextoextensiones2,Aquiesdondeentrainclude. Ejemplo: [extensiones] include=>extensiones2 exten=>101,1,Dial(SIP/101,10) exten=>101,n,Playback(vmnobodyavail) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/101,10) exten=>102,n,Playback(vmnobodyavail) exten=>102,n,Hangup() [extensiones2] include=>extensiones2 exten=>103,1,Dial(SIP/103,10) exten=>103,n,Playback(vmnobodyavail) exten=>103,n,Hangup() exten=>104,1,Dial(SIP/104,10) exten=>104,n,Playback(vmnobodyavail) exten=>104,n,Hangup() Conestosincludesyaamboscontextospodrancomunicarsesinproblemas. Manipulaciondeexpresionesyvariables Lasexpresionessonunacombinacindevariables,operadoresyvaloresquearrojanunresultado. Sintaxis: $[expr1operadorexpr2] Operadoreslgicos:|(or),&(AND) Operadoresdecomparacin:=,!=,<,>,<=,>= Operadoresaritmticos:+,,*,/,% [...],Ejemplo: exten=>4003,1,Set(COUNT=3) exten=>4003,2,Set(NEWCOUNT=$[${COUNT}+1]) exten=>4003,3,SayNumber(${NEWCOUNT}) Bifurcacincondicional Permitetomardesicionesdentrodeldialplan. AplicacinGotoIf() GotoIf(expresion1?destino1:destino2)

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Silaexpresinevaluadaesverdadera,lallamadaesenviadaadestino1,delocontrarioesenviadaa destino2.Unacadenavacayelnmero0sonevaluadoscomofalso,cualquierotrovaloresverdadero. Cualquieradelosdestinospuedeseromitido,perodebeestaralgunodelos2.Sieldestinoomitidoes elcaminoquedebeseguirlallamada,elflujoquesesigueeslasiguienteprioridaddentrodela extensinactual. EjemploGotoIf [extensiones] exten=>105,1,Set(TEST=1) exten=>105,2,GotoIf($[${TEST}=1]?10,3) exten=>105,3,Playback(weaselseatenphonesys) exten=>105,4,Playback(officeiguanas) exten=>105,5,Set(COUNT=10) exten=>105,6,GotoIf($[${COUNT}>0]?:10) exten=>105,7,SayNumber(${COUNT}) exten=>105,8,Set(COUNT=${COUNT}1) exten=>105,9,Goto(2) exten=>105,10,Hangup() exten=>105,11,GotoIf($[${CALLERIDNUM}=8094767758]?12:10) exten=>105,12,Dial(SIP/102) exten=>105,13,Playback(abandonallhope) exten=>105,14,Hangup() Bifurcacincondicionalbasadaentiempo Verificalahoraactualdelservidor,permitiendotomardecisionesbasadasentiempo.Seutilizacuando sequieredarunabienvenidadiferenteenhorariosdetrabajoyfueradetrabajo. GotoIfTime(hora,dias_de_semana,dias_del_mes,meses?etiqueta)Envalallamadaaetiquetasilafechay horaactualconcuerdanconelcriterioespecificadoporlosparmetros. Hora.Listadeunoomsrangosdehorarioenformatode24horas.09:0017:00 Dias_de_semana.Listadeunoomsdasdelasemanamon,tue Dias_del_mes.Danumricodelmes712,15 Meses.Listadeunoomsmesesdelaoun,apr,jul *Matcheaconcualquiervalor Etiquetapuedeserunaprioridaddentrodeunamismaextensin,unaprioridadyextensindentrodel mismocontextoouncontexto,extensinyprioridad. Ejemplo: [inicio] exten=>222,1,GotoIfTime(06:0017:59),monfri,*,*?entrada,s,1) exten=>222,n,Goto(afterhours,s,1) Elejemploanteriorindicaquecuandosemarquelaextension222,sielusuariomarcaentrelas6amy 5:59pmdelunesaviernesiraalcontextoentrada,prioridad1.Delocontrarioiraalcontexto afterhours,prioridad1.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
ConfigurandoHardwareTelefonico EnestetemaconfiguraremosunatarjetaFXODigiumTDM04Bparaconectarasteriskaunalineaanaloga, esdecir,habilitaremoslalineaparacuandoalguienllameal8094767758asteriskrespondadeacuerdo aldialplanquehayamosdefinido. Paraesto,hemoscompiladopreviamentelospaquetesdezaptel.Ahoraprocederemosasuconfiguracion. /etc/zaptel.conf Elarchivozaptelesdondeconfiguraslosparametrosdelatarjeta,ennuestrocasolaTDM04B.Esleido porelprograma/sbin/ztcfgEstosarchivossoninstaladosporelpaquetezaptel. [root@blackangel~]#vim/etc/zaptel.conf fxsks=14;Seespecificalacantidaddepuertosquetendrasutarjeta.Ennuestrocasoposee4. loadzone=us;significaquetustarjetasdeinterfazserncargadascontonosdelaindicacindelos E.E.U.U.Puedescargarmsdeunsistemadetonosenuninterfazparapermitirquegenerestonosde diversaszonasdandounalistacomaseparadadedoscdigosdepasdelaletra. defaultzone=us;losmediosutilizanlostonosparaestazonapordefecto(cuandonoseespecifica ningunaotrazona. ConfigurandoZapata EnestearchivoseconfiguranlosparametrosautilizarporloscanalesZAPparaasterisk.Cuando alguienllamealnumero8094767758asteriskleeraestearchivodeconfiguracionyaplicaratodoslos parametrosestablecidosenel. Ejemplos [root@blackangel~]#vim/etc/asterisk/zapata.conf [channels] language=en usecallerid=yes;Identificaraelnumerodequienllama hidecallerid=no; callwaiting=yes;Habilitado,asteriskgeneraratonoscuandotengasunaconversacionyalguienmaseste tratandodellamar callwaitingcallerid=yes;Asteriskenviaraelcalleriddequienespera. threewaycalling=yes;Siestahabilitada,puedescolocarllamadasenhold. echocancel=yes;Habilitaechocancellation echocancelwhenbridged=yes rxgain=0.0 txgain=0.0 group=1 callgroup=1 pickupgroup=1 immediate=no;Esteparametroaceleraelmarcadoypordefectomandalasllamadasentrantesala extensions busydetect=no callprogress=no musiconhold=default context=entrada;TodaslasllamadasquelleguenporlaslineasZAPiranalcontextoentrada. signalling=fxs_ks;Tipodesenalizacion channel=>14;Canalesautilizar modprobezaptel modprobewctdm [root@blackangel~]#lsmod|grepiwctdm Useelcomandosiguienteparaversielcanalasidoconfigurando

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
[root@blackangel~]#ztcfgvv [root@blackangel~]#ztscan [root@blackangel~]#zttool parainiciarzaptelejecuteelsiguientecomando servicezaptelstart paradetenerlo servicezaptelstop Podemosagregaruncontextodepruebaenelextensions.confparaconfirmarquenuestralineaanaloga estaconfigurada agregarlassiguienteslineasenextensions.conf: [entrada] exten=>s,1,Answer() exten=>s,n,Playback(democongrats) exten=>s,n,Hangup() Indicaquecuandoalguienllameal8094767758asteriskentraraalcontextoentradayseescucharauna grabaciondemocongratsyluegocolgara.Sipuedeescucharestoentoncessehaconfiguradolatarjeta exitosamente. HabilitandollamadassalientesatravesdelcanalZAP Siqueremoshabilitarllamadasporlalineaanaloga,lohacemosfacilmente,simplementeagregamosun contextoconpatronesdesalidaylohabilitaremosennuestrocontexto[extensiones],escomosigue: Definimosenladefiniciondevariables,elcanalZAP: TRUNKDESALIDA=Zap/1 [extensiones] include=>llamadaslocales exten=>101,1,Dial(SIP/101,10) exten=>101,n,Playback(vmnobodyavail) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/101,10) exten=>102,n,Playback(vmnobodyavail) exten=>102,n,Hangup() [llamadaslocales] exten=>_9NXXXXXX,1,Dial(${TRUNKDESALIDA}/${EXTEN}:1) exten=>_9NXXXXXX,2,Congestion() exten=>_9NXXXXXX,102,Congestion() Asicuandolaextension101o102marquenel9+unnumerodetelefono,sehabilitaraeltonoenla lineaanalogaypodrarealizarllamadas.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
InteractiveVoiceResponse IVRsonlassiglasdeInteractiveVoiceResponse,quesetraducedelinglscomoRespuestadeVoz Interactiva.TambinseutilizaeltrminoVRU(VoiceResponseUnit). Consisteenunsistematelefnicoqueescapazderecibirunallamadaeinteractuarconelhumanoa travsdegrabacionesdevoz.Esunsistemaderespuestainteractiva,orientadoaentregary/ocapturar informacinautomatizadaatravsdeltelfonopermitiendoelaccesoalosserviciosdeinformaciny operacionesautorizadas,las24horasdelda. ElIVReslatpicamquinaquenosrespondeconunavozgrabadacuandollamamosaunacentraloque nosrecibeenlabancatelefnica.Segnlasopcionesqueelusuarioleingresaloderivaauncentro deatencintelefnicaoaotracentraltelefnica. LasempresassuelenusarlatecnologadeIVRparaenrutarunallamadaentrantehacaundepartamentou otro,sinlanecesidaddeintervencinhumana,asreduciendoeltiempodeesperadesusclientes. Enloscentrosdeatencintelefnicoalcliente,seusanlosIVR'sparaguiarelllamantehacialos agentesconmayorconocimientodeunamateriaespecifica,reduciendoaseltiempodelallamaday evitandolanecesidaddehacertransferenciasentreagentes. Elusuariorealizaunallamadaaunnmerodetelfono,elsistemadeaudiorespuestacontestala llamadaylepresentaalusuariounaseriedeaccionesarealizar,estosehacemediantemensajes (mensdeopciones)previamentegrabadosenficherosdeaudio(Porejemplo"Pulseunoparaventas,dos paraadministracin").Elusuarioeligelaopcinarealizarintroduciendounnmeroeneltecladodel telfonoynavegaporlosdiferentesmenshastaencontrarlainformacinsolicitadaoqueelsistema enrutalallamadaaldestinatarioelegido. ParalaconfiguraciondesuIVRustednecesitaraprimerograbaralgunosmensajes.Paraellodebera utilizarcualquiergrabadordesonidosdeacuerdoalacomplejidaddesuivr. InicialmenteiremosfabricandounIVRsencilloyatravesdetodalaclaseseiracolocandomas complejoconlaideadeteneralfinaldelostemasuncompletosistemadeIVR. Utilizaremosmuchosdelosconceptosaprendidospreviamenteasicomolasvariablesdeasterisk. PracticamenteestaremosjuntandoloTODO. Ejemplo1: [entrada] include=>extensiones exten=>222,1,Answer() exten=>222,n,Background(demoechodone) exten=>222,n,WaitExten(5) exten=>222,n,Playback(vmgoodbye) exten=>222,n,Hangup() [extensiones] include=>entrada exten=>101,1,Dial(SIP/101,20) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/102,20) exten=>102,n,Hangup() Cuandolallamadaentraalaextension222respondenuestroIVRconunmensajedeBienvenidae indicandoquemarquelaextensiondeseada,espera5segundosparaqueelclientemarquelaextension deseadaparatransferirlo.Sielclientenodigitanadalallamadaesterminada.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Agregandolasextensionesiyt AgregaremosentonceslasextensionesianuestrodialplanyunGotoparaqueelclienteregreseal inicioencasodigitarunaextensioninvalida. [entrada] include=>extensiones exten=>222,1,Answer() exten=>222,n,Background(demoechodone) exten=>222,n,WaitExten(5) exten=>222,n,Playback(vmgoodbye) exten=>222,n,Hangup() exten=>i,1,Playback(pbxinvalid) exten=>i,n,Goto(entrada,222,1) [extensiones] include=>entrada exten=>101,1,Dial(SIP/101,20) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/102,20) exten=>102,n,Hangup() Cuandoelclientedigiteunaextensioninvalidaescucharaunmensajedeinvalidoyvolveraalmenu principal. AgregandounContadoryGotoIfanuestroIVR. Enelcontextoi,crearemosuncontadorquecalcularaunnumeromaximode3extensionesinvalidaspara luegoterminarlallamada.AquitambienempleamoslaaplicacionGotoIfcondicionaraelcontextopara decidiradondeir. Escomosigue: [entrada] include=>extensiones exten=>222,1,Set(COUNT=1) exten=>222,1,GotoIf($[${COUNT}>3]?fin:inicio) exten=>222,n(inicio),Answer() exten=>222,n,Background(demoechodone) exten=>222,n,WaitExten(5) exten=>222,n,Goto(i,1) exten=>222,n(fin),Playback(vmgoodbye) exten=>222,n,Hangup() exten=>i,1,Playback(pbxinvalid) exten=>i,n,Set(COUNT=$[${COUNT}]+1]) exten=>i,n,Goto(entrada,222,2) [extensiones] include=>entrada exten=>101,1,Dial(SIP/101,20) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/102,20) exten=>102,n,Hangup() Enelejemploanterior,agregamostambienlabelsalcontextoparaindicardondeiraelGotoifcuandose

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
cumplaunacondiciondeterminada.FijensecomohacemosunGotohaciaelcontextoentrada,222,2,estoes porquesilaenviamosal1lavariable$COUNTsemantendrareiniciadaynuncaelcontadorsumara. AgregandoGotoIfTime Siqueremosestablecerunhorarioenelqueelclientepodracomunicarseconnuestrosrepresentantes utilizamoslaaplicacionGotoIfTime.Conestaloqueharemosesuncontextodentrodeunhorario especificoodelocontrarioqueejecuteotrocontextoquediraquenoestanlaborando. Escomosigue: [inicio] exten=>222,1,GotoIfTime(09:0017:59),monfri,*,*?entrada,s,1) exten=>222,n,Goto(afterhours,s,1) [entrada] include=>extensiones exten=>s,1,Set(COUNT=1) exten=>s,n,GotoIf($[${COUNT}>3]?fin:inicio) exten=>s,n(inicio),Answer() exten=>s,n,Background(demoechodone) exten=>s,n,WaitExten(5) exten=>s,n,Goto(i,1) exten=>s,n(fin),Playback(vmgoodbye) exten=>s,n,Hangup() exten=>i,1,Playback(pbxinvalid) exten=>i,n,Set(COUNT=$[${COUNT}]+1]) exten=>i,n,SayNumber(${COUNT}) exten=>i,n,Goto(entrada,s,2) [extensiones] include=>inicio include=>entrada exten=>101,1,Dial(SIP/101,20) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/102,20) exten=>102,n,Hangup() [afterhours] exten=>s,1,Playback(hours) exten=>s,n,Hangup() EnesteejemplocambiatotalmentenuestroIVR.Agregamosuncontextoiniciodondelasllamadasmarcadas al222entraranenestecontextoyencontraranlacondicionGotoIfTime(09:0017:59),monfri,*,*? entrada,s,1).Indicaquedelunesaviernesenhorario09:0017:59decualquierdiaycualquiermesse enviaraalcontextoentradaprioridad1.Silacondicionnoestacumplidaseejecutaralasiguiente prioridadqueenestecasoesGoto(afterhours,s,1)dondeseejecutaraunmensajediciendoquela empresalaboraenhorariodelunesaviernesde9ama6pm. ConestotenemosunIVRbastanteflexibleparatratarlosclientes.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Voicemail Unadelascaracteristicasmaspopularesenlatelefoniamodernaeslacapacidaddedejarmensajesde vozparaserrecogidosmastardeencasodequeelusuarioaquiensellamanoestedisponible. Naturalmente,asteriskposeeunvoicemailbastanteflexibleconlassiguientescaracteristicas: Ilimitadaprotecciondepasswords. Diferentessaludosparalosdistintostiposdeestado(Busy,Noanswer,Unavailable,etc) Saludospordefectoytambienpersonalizados Notificacionporcorreoyconlaopciondeadjuntarelmensajedevozenelmismo. Indicadordequetieneunmensajedevoz.Aplicadoparadistintostiposdetelefonosip. Directoriodelacompaniabasadoenlosbuzonesdevoz Laconfiguraciondelvoicemailesmuyfacial,acontinuacionpasoapasodeunamaneramuydecriptiva comocrearelbuzondevozysusdistintasopciones: Paralaconfiguracionbasicadelvoicemailseveranafectadoslosarchivosdeconfiguracion voicemail.conf,sip.confyextensions.conf Primerodeclaramoselcontextoalfinaldelarchivovoicemail.confquecontendralosbuzonesdevoz correspondientesalasextensiones101y102.Lasintaxises: voicemail.conf [buzon] 101=>1234,Cristhian,cristhian@codigolibre.org 102=>5678,Carlos,ccastro@codigolibre.org Donde 101=Eselnumerooextensionalcualseleasignaraelbuzon 1234=Eslaclavequeserausadaparaaccederalbuzondevoz Cristhian=Nombreasociadoalbuzon cristhian@codigolibre.org=Correodonderecibiralasnotificaciones Ahoraeditamoselarchivosip.confdondelediremosalasextensiones101y102cualesseransus buzones.Quedaradelasiguientemanera: sip.conf [101] type=friend;Friendsplacecallsandreceivecalls callerid=cris context=extensiones username=101 secret=101 host=dynamic;Thispeerregisterwithus mailbox=101@buzon [102] type=friend;Friendsplacecallsandreceivecalls callerid=carlos context=extensiones username=102 secret=102 host=dynamic;Thispeerregisterwithus mailbox=102@buzon Notesecomoseleasignaacadausuariounnumerodebuzonenelcontextobuzon.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
ConfiguramoslaaplicacionVoicemaileneldiaplancorrespondientealosusuarios.Deigualmodo, tambienhabilitamoslaextensionparallamarelbuzondevozelcualseraennuestrocasolaextension 888.Elcontextoextensionesquedariaasi: extensions.conf [extensiones] include=>inicio include=>entrada exten=>101,1,Dial(SIP/101,20) exten=>101,n,VoiceMail(101@buzon) exten=>101,n,Playback(vmgoodbye) exten=>101,n,Hangup() exten=>102,1,Dial(SIP/102,20) exten=>101,n,VoiceMail(102@buzon) exten=>101,n,Playback(vmgoodbye) exten=>102,n,Hangup() ;Voicemail exten=>888,1,VoiceMailMain(@buzon) LasLineasennegritashabilitanelbuzondevozparalosusuarios101y102ylaextension888 habilitalaaplicacionVoiceMailMainlacualeslaadministraciondelbuzondevoz. Laopcion(@buzon)muestralainterfazdeadministracionparaelcontextobuzoncreadoenelarchivo voicemail.conf.Estoindicaquecuandoelusuariollamelaextension888selesolicitaraunnumerode buzonyunaclaveparapoderacceder.Yadentrodelbuzontendravariasopcionesparaadministrarsus mensajes.Losmensajessegrabaneneldirectorio/var/spool/asterisk/voicemail/ Esteeselmenumostradoalusuarioparalaadministraciondesusmensajesatravesdelaaplicacion VoiceMailAdmin: 1MensajesLeidos 3OpcionesAvanzadas 1Responder 2Devolverlallamada 3Sobre 4LlamadaSaliente 5Dejarunmensaje *Regresaralmenuprincipal 4Escucharmensajesanteriores 5Repetirmensajeactual 6Tocarelproximomensaje 7Borrarelactualmensaje 8Reenviarelmensajeaotrobuzondevoz 9Guardarelmensajeenunfolder *Ayuda #Salir 2Cambiarfolder 3Opcionesavanzadas 0Opcionesdelbuzon 1Grabarmensajedenodisponible 2Grabarmensajecuandoelstatusseaocupado 3Grabarsunombre 4Cambiarsupassword

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
*Regresaralmenuprincipal *Ayuda #Salir Ahoraestamoslistospararecibirmensajesdevozypoderescucharlosatravesdelvoicemailadmin. Editandolasopcionesdelarchivovoicemail.conf Podemoseditaralgunasopcionesenelarchivovoicemail.conf,algunasson:enviarnotificacionpor correo,adjuntarelarchivodegrabacionenelcorreo,establecerunnumeromaximodemensajespor buzon,estableceruntiempomaximoominimodegrabaciondemensajes,estableceruncuerpodelmensaje aenviar,etc. serveremail=asterisk@fcld.local:Indicaelusuarioqueenviaelmensaje. attach=yes:Establecidoayeselusuariorecibiraviaelmensajegrabado maxmsg=100:Maximonumerodemensajesqueselepermitiraalduenodelbuzon. maxmessage=180:Tiempomaximopermitidaparalagrabaciondelmensaje. maxsilence=10:Elservidorespera10segundosdesilencioantesdeterminarlallamada. maxlogins=3:Numeromaximodeintentosfallidos. emailsubject=[PBX]:MensajeNuevo${VM_MSGNUM}enelbuzondevoz${VM_MAILBOX}:Correspondealasunto queseramostradocuandolellegueuncorreoalusuario.Notesecomoseutilizanvariablesdemailbox, masadelantehablaremosdeellas. emailbody=:Indicaelcuerpodelmensajequerecibiraelusuarioalsernotificado. emaildateformat=%A,%B%d,%Yat%r:FormatodeFechadonde: %A=Diadelasemana %B=Mes %d=Dia %Y=Ano %r=hora Yatenemosbuzondevozhabilitadoennuestroasterisk. Queues(colas) LascolassonutilizadasporlossistemasPSTNparamantenerlassolicitudesdesusclienteshastaque algunrecursoestedisponible.Significaquetodoeltraficoentrantequeexcedalacapacidad disponiblesecolocaranenlineahastaquepuedanseratendidos. Lascolasbasicamenteconsistenen: Llamadasentrantessoncolocadasenlacola Miembrosquerespondenlacola(Extensionesousuariosqueselogueancomoagentes) Unaestrategiadecomomanejarlascolasydividirlasllamadasentrelosmeimbros Musicamientrasesperanencola Anunciosparamiembrosyclientes Existendosmanerasdecrearcolasenasterisk:

Estatica:dondenonecesitasutilizarelarchivoagents.conf Enestaconfiguracion,seespecificaradirectamentecualesseranlosusuariosqueresponderanlas llamadascorrespondienteaunacolaespecifica.PorEjemplo,losusuariosSIP/101,SIP/102ySIP/103 seranlosresponsablesderesponderalacola[micola]. Ventajas:NonecesitasutilizarlasaplicacionesAgentLoginyAgentBackloginparaquelos usuariosselogueen.Elusuarioseregistraraautomaticamenteenestacolacuandoingrese.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0

Dinamica:Utilizaciondeagents.conf Adiferenciadelaestatica,aquidebemosescribirnoelnumerodelusuarioperosielnumerodel agentequeestaregistradoenelarchivoagents.conf.Porejemplo,member=>Agent/1001,member=> Agent/1002,member=>Agent/1003,indicaquelosagentes1001,1002y1003perteneceranaesacola.Si sedecideutilizarestemetodoentonceslasaplicacionesAgentloginyAgentCallbacklogin. Ventajas:Laventajaprincipalesqueelusuariopodrialoguearsedesdecualquierterminalo extensionconsolodigitarsuusuarioyclaveenlaaplicacionAsterisklogin. OpcionesdeQueues.conf: strategy:Determinacomoencualordenlasllamadasentraranalosagentes.Lasopcionesson: ringall:Lallamadaentraentodoslosagentesycualquierapodraresponder roundrobin:Lallamadaentraencadaagentedisponible leastrecent:Lallamadaentraalagenteconmastiemposincontestar fewestcalls:Lallamadaentraalagenteconmenostiemposincontestar random:Seleccionaalagentedemaneraaleatoriasinningunparametro rrmemory:roundrobinconmemoria.Inicialaserieenaquelultimoquecontesto periodicannounce:Realizamensajesperiodicos(Ejemplo:sullamadaesimportanteparanosotros...) periodicannouncefrequency:Establececonquefrecuenciaanuncialosmensajes joinempty:Estaopcioncontrolasilasllamadasentrantespuedenentraraunacolasinmiembros.Las opcionesdisponiblesson: yes:Llamadasentrantespuedeningresaraunacolasinmiembrosoestosnodisponibles. No:Llamadasentrantesnopuedeningresaraunacolasinmiembros strict:Llamadasentrantesnopuedeningresaraunacolasinmiembrosoestosnodisponibles. Music:Establecelamusicaparalaespera timeout:Cuantotiemposelepermitealtelefonodeunagentesonarantesdeconsiderarsetimeout retry:Eltiempoaesperarantesdeintentarconlosagentesnuevamente maxlen:Numeromaximodellamadasentrantespermitidasenunacola.0esilimitado Ahorallevaremosestoalapractica: CreandoColasEstaticas Paralacreaciondecolasestaticasseeditanlosarchivosqueues.confyextensions.conf. Queues.conf Seagregarauncontextoconelnombre[micola]conlossiguientesparametros [micola] context=extensiones periodicannounce=fcldagentsbusy periodicannouncefrequency=60 joinempty=strict music=default strategy=rrmemory timeout=15 retry=2 maxlen=0 member=>SIP/101;Especificamosestaticamentecualesseranlasextensionesregistradasenestacola. member=>SIP/102 member=>SIP/103

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Luegonosdirigimosaextensions.confparahabilitarlacola extensions.conf exten=>999,1,Answer() exten=>999,n,Ringing exten=>999,n,Wait(2) exten=>999,n,Queue(micola) exten=>999,n,HangUp Asicuandounusuariollameala999suenaylocolocaenlacola[micola].Mientrasestaalaespera deseratendidoestaraporunodelosagentesregistradosenesacolayescuchandolamusicapor defectoestablecidaasicomolosanunciosperiodicos. CreandoColasDinamicas Launicadiferenciaenestetemaeslainclusiondelarchivoagents.conf.Enestesecreanlosagentes quemasadelanteserandefinidosenqueues.conf agents.conf Agregamoslossiguientesagentes: agent=>1001,1234,CristhianNunez agent=>1002,1234,CarlosCastro agent=>1003,1234,JophielEspaillat yagregamosenextensions.confunaextensionconlaaplicacionAgentloginparaquepuedanregistrarse losagentes. Extensions.conf ;AgentLogin exten=>888,1,AgentCallbacklogin(||${CALLERIDNUM@extensiones) ;AgentLogout exten=>889,1,AgentCallbacklogin(||l) Cuandoelagentedigite888,laaplicacionlepreguntaraporunusuario(1001)yunaclave(1234)yla extensiondonderecibiralasllamadas.Luegodeestotodaslasllamadasseranenrutadashaciala extensionespecificadaporelagente. Cuandoelagentedigite889selepreguntaranuevamenteporunusuario,claveyextension.Elagente puedeentrarunanuevaextensionparaquelasllamadasseanenrutadashaciaestaultima.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
AsteriskCommandLineInterface Paraaccederaasteriskcommandlineinterface(CLI)desdealshellejecuteelcomandoasterisk pasandolelassiguienteopcionesrqueproveeunaconexinalaconsoladeasterisksielprosesode asteriskyaestacorriendoteproveeunainterfaceparacontrolarlaconsoladeasterisk. [root@blackangel~]#asteriskrvv blackangel*CLI> laopcionvproporcionamasinformaciondeasteriskentremasvagregamosmasinformacionnos mostrara. !EsparapoderejecutarcomandosdeelshellsobreelCLIdeasterisk. blackangel*CLI>!ifconfigeth0 eth0Linkencap:EthernetHWaddr00:1B:24:2A:43:34 BROADCASTPROMISCMULTICASTMTU:1500Metric:1 RXpackets:0errors:0dropped:0overruns:0frame:0 TXpackets:0errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:0(0.0b)TXbytes:0(0.0b) Interrupt:20Baseaddress:0xec00 dialplanaddextensioncontieneunoscuantossubcomandoquelepermiteagregaralgunasfuncionalidades atuPBXsineditardirectamentelosarchivosdeconfiguracion. blackangel*CLI>dialplanaddextension112,1,Dial,SIP/112/|20|Ttintophone dialplanshowmuestraeldialplanparauncontextoenespecifico. blackangel*CLI>dialplanshowphone '112'=>1.Dial(SIP/112/|20|Tt)[pbx_config] dialplanaddincludeincluyeuncontextoenotrocontexto. blackangel*CLI>dialplanaddincludesalidaintoentrada Context'salida'includedin'entrada'context Includingcontext'salida'incontext'entrada' dialplanreloadrecargasoloelarchivoextenxion.confsolamente. blackangel*CLI>dialplanreload dialplanremoveextensionremueveunaextension. blackangel*CLI>dialplanremoveextension101@phone Wholeextension101@phoneremoved aborthaltCancelaunhaltcorriendo blackangel*CLI>aborthalt agentlogoffconfiguraunaagenteoffline blackangel*CLI>agentlogoffsip/112 showagentsmuestralosagentesconfigurados. blackangel*CLI>showagents showagentsonlinemuestralosagentesonline blackangel*CLI>showagentsonline cdrmysqlstatusmuestraelstatusdelaconexiondecdr_mysql

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
blackangel*CLI>cdrmysqlstatus Connectedtoasteriskcdrdb@localhost,port3306usingtablecdrfor32minutes,4seconds. Wrote0recordssincelastrestart. cdrstatusmuestraelstatusdelosCDR. blackangel*CLI>cdrstatus CDRlogging:enabled CDRmode:simple CDRoutputunansweredcalls:no CDRregisteredbackend:mysql CDRregisteredbackend:csv CDRregisteredbackend:cdr_manager CDRregisteredbackend:cdrcustom consoleactiveconfiguraeldisplayenlaconsoleactiva blackangel*CLI>consoleactive activeconsoleis[dsp] consoleanswerrespondeaunaentradadeunallamaenlaconsole. blackangel*CLI>consoleanswer Nooneiscallingus coreshowapplicationsmuestralasaplicacionesreguistradas paraeldialplan. blackangel*CLI>coreshowapplications coreshowapplicationmuestraunadescripciondelaaplicacion. blackangel*CLI>coreshowapplicationdial coreshowchannelsmuestralainformacionenloscanales. blackangel*CLI>coreshowchannels ChannelLocationStateApplication(Data) 0activechannels 0activecalls coreshowchanneltypesmuestralainformaciondetipodecanal. blackangel*CLI>coreshowchanneltypes TypeDescriptionDevicestateIndicationsTransfer SIPSessionInitiationProtocol(SIP)yesyesyes ConsoleOSSConsoleChannelDrivernoyesno OOH323ObjectiveSystemsH323ChannelDrivernoyesno SkinnySkinnyClientControlProtocol(Skinny)noyesno showcodecsmuestralaslistadetodosloscodecs. blackangel*CLI>coreshowcodecs Disclaimer:thiscommandisforinformationalpurposesonly. Itdoesnotindicateanythingaboutyourconfiguration. INTBINARYHEXTYPENAMEDESC 1(1<<0)(0x1)audiog723(G.723.1) 2(1<<1)(0x2)audiogsm(GSM) 4(1<<2)(0x4)audioulaw(G.711ulaw) 8(1<<3)(0x8)audioalaw(G.711Alaw)

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
coreshowcodecmuestrauncodecenespecifico. blackangel*CLI>coreshowcodec2 2(1<<1)GSM featureshowmuestralosfeaturesconfigurados. blackangel*CLI>featureshow BuiltinFeatureDefaultCurrent Pickup*8*8 BlindTransfer## AttendedTransfer OneTouchMonitor DisconnectCall** ParkCall blackangel*CLI> DynamicFeatureDefaultCurrent (none)ngel*CLI> blackangel*CLI> Callparking LI> Parkingextension:700 Parkingcontext:parkedcalls Parkedcallextensions:701720 httpshowstatusmuestraelstatusdelserverHTTP blackangel*CLI>httpshowstatus HTTPServerStatus: Prefix:/asterisk ServerDisabled EnabledURI's: /asterisk/httpstatus=>AsteriskHTTPGeneralStatus /asterisk/static/...=>AsteriskHTTPStaticDelivery iax2reloadrecargalaconfiguraciondeliax2file. blackangel*CLI>iax2reload iax2setdebughabilitaeldebugparaiax2. blackangel*CLI>iax2setdebug IAX2DebuggingEnabled iax2setdebugoffdeshabilitaeldebugparaiax2. blackangel*CLI>iax2setdebugoff IAX2DebuggingDisabled iaxsetdebugjbhabilitaeldebugparaeljitterbuffer blackangel*CLI>iax2setdebugjb IAX2JitterbufferDebuggingEnabled iax2setdebugjboffdeshabilitaeldebugparaeljitterbuffer. blackangel*CLI>iax2setdebugjboff IAX2JitterbufferDebuggingDisabled iax2setdebugtrunkhabilitaeldebugparaeltroncal. blackangel*CLI>iax2setdebugtrunk IAX2TrunkDebugRequested iax2setdebugtrunkoffdeshabilitaeldebugparaeltroncal.

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
blackangel*CLI>iax2setdebugtrunkoff IAX2TrunkDebuggingDisabled iax2showcachemuestraelcachedeldialplan. blackangel*CLI>iax2showcache Peer/ContextExtenExp.Wait.Flags iax2showchannelsmuestratodosloscanalesactivos. blackangel*CLI>iax2showchannels ChannelPeerUsernameID(Lo/Rem)Seq(Tx/Rx)LagJitterJitBuf Format (None)192.168.61.250(None)12413/0000000005/0000000000ms0001ms0000ms unknow 1activeIAXchannel iax2showfirmwaremuestraelfirmwaredisponible. blackangel*CLI>iax2showfirmware DeviceVersionSize iaxy2339360 iax2shownetstatsmuestraloscanalesactivosdeiax2netstats. blackangel*CLI>iax2shownetstats LOCALREMOTE ChannelRTTJitDelLost%DropOOOKpktsJitDelLost%DropOOO Kpkts 0activeIAXchannels iax2showpeersmuestratodoslospeersdefinidoseniax2.conf. blackangel*CLI>iax2showpeers Name/UsernameHostMaskPortStatus blackangel/aste(Unspecified)(D)255.255.255.2550Unmonitored 1iax2peers[0online,0offline,1unmonitored] iax2showpeermuestraunpeerenespecifico. blackangel*CLI>iax2showpeerblackangel *Name:blackangel Secret:<Set> Context:entrada Mailbox: Dynamic:Yes Callerid:""<> Expire:1 ACL:Yes Addr>IP:(Unspecified)Port0 Defaddr>IP:0.0.0.0Port4569 Username:asterisk Codecs:0xe783(g723|gsm|lpc10|g729|speex|ilbc) CodecOrder:(none) Status:Unmonitored Qualify:every60000mswhenOK,every10000mswhenUNREACHABLE(samplesmoothingOff) iax2showprovisioningmuestraiaxprovisioning blackangel*CLI>iax2showprovisioning =default==I> BaseTempl:<none> Username:<unspecified> Secret:<unspecified>

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Language:<unspecified> BindPort:4569 Server:<unspecified> ServerPort:4569 Alternate:<unspecified> Flags:register,heartbeat Format:ulaw TOS:0x0 iax2showregistrymuestraelstatusdelosregistros. blackangel*CLI>iax2showregistry HostdnsmgrUsernamePerceivedRefreshState 192.168.61.250:4569Nasterisk<Unregistered>60RequestSent iax2showstatsmuestralasestadisticas. blackangel*CLI>iax2showstats IAXStatistics Outstandingframes:1(0ingress,1egress) Packetsintransmitqueue:0dead,0final,1total iax2showusersmuestrainformacionsobrelosusuarios. blackangel*CLI>iax2showusers UsernameSecretAuthenDef.ContextA/CCodecPref blackangelmcjocc600000000000000002entradaYesHost moduleloadcargaunmoduloparaasterisk. blackangel*CLI>moduleloadcdr_addon_mysql.so ==Parsing'/etc/asterisk/cdr_mysql.conf':Found Loadedcdr_addon_mysql.so=>(MySQLCDRBackend) moduleunloaddescargaunmoduloparaasterisk. blackangel*CLI>moduleunloadcdr_addon_mysql.so ==Unregistered'mysql'CDRbackend modulereloadrecargaunmoduloparaasterisk. blackangel*CLI>modulereloadcdr_csv.so Reloadingmodule'cdr_csv.so'(CommaSeparatedValuesCDRBackend) ==Parsing'/etc/asterisk/cdr.conf':Found moduleshowmuestratodoslomodulosquecontieneasterisk. blackangel*CLI>showmodules ModuleDescriptionUseCount res_musiconhold.soMusicOnHoldResource0 res_indications.soIndicationsResource0 res_smdi.soSimplifiedMessageDeskInterface(SMDI)0 sipreloadrecargalaconfiguraciondelarchivosip.conf blackangel*CLI>sipreload ReloadingSIP ==Parsing'/etc/asterisk/sip.conf':Found ==Parsing'/etc/asterisk/users.conf':Found ==Parsing'/etc/asterisk/sip_notify.conf':Found sipsetdebugajustaeldebugparaelcanalsip. blackangel*CLI>sipsetdebug SIPDebuggingenabled

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
sipsetdebugoffdehsabilitaeldebugparaelcanalsip. blackangel*CLI>sipsetdebugoff SIPDebuggingDisabled sipsetdebugpeerconfiguraeldebugparaunpeer. blackangel*CLI>sipsetdebugpeer101 sipshowchannelsmuestratodoloscanalesactivos. blackangel*CLI>sipshowchannels PeerUser/ANRCallIDSeq(Tx/Rx)FormatHoldLastMessage 0activeSIPchannels sipshowpeersmuestratodolospeersagregadosenelsip.conf. blackangel*CLI>sipshowpeers Name/usernameHostDynNatACLPortStatus 107(Unspecified)DN0Unmonitored 106(Unspecified)DN0Unmonitored 105(Unspecified)DN0Unmonitored 104(Unspecified)DN0Unmonitored 103(Unspecified)DN0Unmonitored 102(Unspecified)DN0Unmonitored 101/101(Unspecified)DN0Unmonitored 7sippeers[Monitored:0online,0offlineUnmonitored:0online,7offline] sipshowregistrymuestraelstatusdelosregistros. blackangel*CLI>sipshowregistry sipshowsettingsmuestralaconfiguracionglobaldesip. blackangel*CLI>sipshowsettings GlobalSettings: SIPPort:5060 Bindaddress:0.0.0.0 Videosupport:No AutoCreatePeer:No Allowunknownaccess:Yes Allowsubscriptions:Yes Allowoverlapdialing:No Promsic.redir:No SIPdomainsupport:No Calltononlocaldom.:Yes sipshowsubscriptionsmuestralacantidaddesubscriptions. blackangel*CLI>sipshowsubscriptions sipshowusersmuestratodolosusuariosdesip blackangel*CLI>sipshowusers UsernameSecretAccountcodeDef.ContextACLNAT 1072775phoneNoAlways 1062775phoneNoAlways 1052775phoneNoAlways 1042775phoneNoAlways 1032775phoneNoAlways 1022775phoneNoAlways 1012775phoneNoAlways voicemailshowusersmuestralacantidaddeusuariosconvoicemail blackangel*CLI>voicemailshowusers

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
ContextMboxUserZoneNewMsg defaultgeneralNewUser0 default101realty10 default102realty20 default103realty30 default104realty40 default105realty50 default106realty60 default107realty70 voicemailshowzonemuestralazonaparaelformatodelmensaje. blackangel*CLI>voicemailshowzones ZoneTimezoneMessageFormat europeanEurope/Copenhagen'vmreceived'adb'digits/at'HM militaryZulu'vmreceived'q'digits/at'HN'hours''phonetic/z_p' central24America/Chicago'vmreceived'q'digits/at'HN'hours' centralAmerica/Chicago'vmreceived'Q'digits/at'IMp easternAmerica/New_York'vmreceived'Q'digits/at'IMp zapdestroychanneldestruyeuncanal. blackangel*CLI>zapdestroychannel1 zaprestartcompletamentereiniciaeltodosloscanales. blackangel*CLI>zaprestart Destroyingchannelsandreloadingzaptelconfiguration. ==Parsing'/etc/asterisk/zapata.conf':Found Automaticallygeneratedpseudochannel ==Parsing'/etc/asterisk/users.conf':Found zapshowcadencesmuestraloscadences. blackangel*CLI>zapshowcadences r1:125,125,2000,4000 r2:250,250,500,1000,250,250,500,4000 r3:125,125,125,125,125,4000 r4:1000,500,2500,5000 zapshowchannelsmuestratodosloscanalesactivos. blackangel*CLI>zapshowchannels ChanExtensionContextLanguageMOHInterpret pseudodefaultdefault zapshowstatusmuestraelstatusdelatarjeta. blackangel*CLI>zapshowstatus restartgracefullyreiniciaasteriskconcortesia. blackangel*CLI>restartgracefully blackangel*CLI> DisconnectedfromAsteriskserver Executinglastminutecleanups restartnowreiniciainmediatamenteaasterisk. ackangel*CLI>restartnow blackangel*CLI> DisconnectedfromAsteriskserver Executinglastminutecleanups restartwheconvenientreiniciaasteriskcuandoselimpienelvolumendellamadas. blackangel*CLI>restartwhenconvenient

FUNDACIONCODIGOLIBREDOMINICANA DIVISIONDEINGENIERIAYPROYECTOS www.codigolibre.org


Modulo:Asterisk Autores:CristhianNunez(cristhian@codigolibre.org) CarlosCastro(ccastro@codigolibre.org) JophielEspaillat(jespaillat@codigolibre.org) Versin:1.0
Waitingforinactivitytoperformrestart blackangel*CLI> DisconnectedfromAsteriskserver Executinglastminutecleanups showparkedcallsmuestratodaslasllamdasparqueadas. blackangel*CLI>showparkedcalls NumChannel(ContextExtensionPri)Timeout 0parkedcalls. mohreloadreiniciamusichold. blackangel*CLI>mohreload ==Parsing'/etc/asterisk/musiconhold.conf':Found mohshowclassesmuestraellistadodeMOHClasses. blackangel*CLI>mohshowclasses Class:default> Mode:files Directory:/var/lib/asterisk/moh UseCount:0 mohshowfilesmuestraellistadodelosarchivosdemusichold. blackangel*CLI>mohshowfiles Class:default> File:/var/lib/asterisk/moh/fpmcalmriver File:/var/lib/asterisk/moh/fpmworldmix

Anda mungkin juga menyukai