You are on page 1of 34

ASTERISKLAB MODULO3

INSTALACINDEASTERISKYCOMPONENTES

EQUIPONECESARIOPARAELCURSO Para este curso necesitamos estar familiarizados con el sistema operativo Linux, en concreto con Debian4. A partir de un sistema base con Debian 4, debemos instalar los siguientes paquetes para poder accederremotamentealaconsoladesdecualquierequipo. Lo primero que debemos hacer es actualizar el sistema operativo, tecleando lo siguiente en la consola. aptgetupdate aptgetupgrade Una vez actualizado el sistema, instalamos el servidor SSH para que acepte conexiones remotas y poderconfigurarelsistema,dadoquenosiempretenemosaccesoalaconsola. aptgetinstallopensshserver APLICACIONESNECESARIAS No siempre tenemos disponible el acceso a la consola del servidor, por lo que es necesario descargarse algn programa cliente SSH para conectarnos al servidor. En este curso utilizaremos putty,ylopodemosdescargarde: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

PREPARACINDELENTORNO Primero vamos a configurar el entorno Linux, para que nos muestre los ficheros con colores, para diferenciaslosficherosdesololecturadelosejecutables. Paraellodebemoseditarelfichero/root/.bashrc

Escribimosodescomentamosenelarchivolassiguienteslneas. exportLS_OPTIONS='color=auto' aliasls='ls$LS_OPTIONS'

PREPARACIONDELSISTEMAPARALAINSTALACINDEASTERISK Para instalar Asterisk, debemos tener instalados una serie de paquetes para poder compilarlo y ejecutarlo. Primeroejecutaremoslaordenaptgetinstallbuildessential

QuenosinstalarlospaquetesnecesariosparacompilarAsterisk. Lo siguiente que debemos realizar es bajar las fuentes del kernel de nuestro servidor para poder compilardahdiyAsterisk,ejecutandoelsiguientecomando aptgetinstalllinuxheaders$(unamer) Tambindebemosinstalarlaslibrerasdeterminalejecutandoelsiguientecomando: aptgetinstalllibncurses5dev Unavezinstaladoslospaquetesnecesarios,vamosacrearundirectorioparaalmacenarlasdescargas deAsterisk,quedeberemoscompilar. Crearemosunacarpetaen/usr/srcdelasiguienteforma: cd/usr/src mkdirasterisk cdasterisk

Dentrodeestacarpeta,descargaremoslospaquetesnecesariosparacompilarasterisk.(ELnmero deversindelospaquetespuedediferirdelosindicadosenesemanual) Todoslospaqueteslosobtendremosdehttp://downloads.asterisk.org/pub/telephony/ Noshacenfaltalossiguientespaquetes: Asterisk1.6: wget current.tar.gz LibPri: wgethttp://downloads.asterisk.org/pub/telephony/libpri/libpri1.4current.tar.gz Dahdi wget http://downloads.asterisk.org/pub/telephony/dahdilinuxcomplete/dahdilinux completecurrent.tar.gz http://downloads.asterisk.org/pub/telephony/asterisk/asterisk1.6.0

Elordendecompilacinesmuyimportante,ysedebencompilarenelsiguienteorden: 1. Libpri 2. Dahdi 3. Asterisk

Comenzamosconlibpriejecutandolasiguienteorden: tarzxvflibpri1.4current.tar.gz tarzxvfdahdilinuxcompletecurrent.tar.gz tarzxvfasterisk1.6.0current.tar.gz Al ejecutar estos comandos, nos descomprimir y crear un directorio para cada una de las aplicaciones.

COMPILARLIBPRI Ibprinosdarasoporteparalasconexionesdigitales(RDSI). Debemoscompilarloeinstalarlodelasiguienteforma: cdlibpri1.4.10.1/ makeclean makeinstall cd..

COMPILARDAHDI Dahdi es el soporte para las tarjetas RDSI. En la versin 1.4 de Asterisk, exista ZAPTEL para las tarjetasdeDigiumycadafabricantetenasuspropiosdrivers,loquesignificabaquedependiendode la tarjeta RDSI que tuvisemos tenamos que descargar los drivers correspondientes, y a veces modificarelcdigofuentedeAsteriskparaquefuncionase.TodoestosesimplificaconDahdi. Debemoscompilarloeinstalarlodelasiguienteforma: cddahdilinuxcomplete2.2.0.2+2.2.0/ makeclean makeall makeinstall makeconfig cd..

En el caso de que tuvisemos alguna tarjeta RDSI instalada, en este paso la detectara y nos la mostraraenlapantalla.

COMPILARASTERISK Debemoscompilarloeinstalarlodelasiguienteforma: cdasterisk1.6.0.15/ ./configure makemenuselect nosaparecelapantalladeconfiguracindeAsterisk,dondevamosasacaralgunosmdulos

NosposicionamosconelcursorenPBXModules

Ydesmarcamospbx_ael.EstemduloimplementeAlternateExtensionLanguage.Estemdulose considera avanzado, y al no compilarlo, evitamos que Asterisk nos muestre mucha informacin de erroresyavisosalpararlo,arrancarloocadavezquerecarguemoselficherodeextensiones.

TambinaccederemosalaseccinExtrasSoundPackagesymarcamosEXTRASOUNDSENGSM

Una vez seleccionado, pulsamos sobre la letra s para guardar los cambios y ejecutamos la siguienteorden: make makeinstall makesamples makeconfig cd.. Enestemomento,yatenemosinstaladoAsterisk. Acontinuacindebemosreiniciarelsistema,paraquecarguelosdriversDahdiycomprobamosque loshacargadocorrectamenteejecutandoelsiguientecomando. lsmod|grepdahdi ynosmostrarlasiguienteinformacindelosmduloscargados

AhoracomprobaremossiAsterisksehainiciadoautomticamenteejecutandoelsiguientecomando paraaccederalaconsola. asteriskr

Parasalirdelaconsolatecleamos CLI>exit

yparapararAsterisktenemoslassiguientesopciones: CLI>stopnow ParaAsteriskinmediatamente CLI>stopgracefully hacequeAsterisknoacepteningunallamadayseparecuandoacabenlasllamadasactivas CLI>stopwhenconvenient ParaAsteriskcuandolasllamadasactivasfinalicen YparainiciarAsteriskejecutamoselsiguientecomando asteriskstart O /etc/init.d/asteriskstart

ASTERISKLAB MODULO4
CONFIGURACINDEASTERISK

CONFIGURACINDEASTERISK Asteriskseconfigureeditandounaseriedeficherosdetextoqueestneneldirectorio/etc/asterisk yacabanenlaextensin.conf Losficherosmsimportantessonsip.confyextensions.conf

Existen interfaces web que configuran estos ficheros en base formularios web, que hacen ms sencillasuconfiguracin,peroconelinconvenientedequegeneranunexcesodecdigoymacrosen lenguajeAsterisk,queimpidencomprenderlasintaxisdelosficherosadecuadamente. Duranteladuracindeestecurso,noslimitaremosalaconfiguracinmedianteuneditordetexto, parafamiliarizarnosconlasintaxisdeestosficheros. CREACINDEEXTENSIONES Las extensiones de tipo SIP se crean en el fichero sip.conf, y las de tipo IAX se crean en el fichero iax.conf.EnlosejerciciosdeestecursosecrearnsoloextensionesSIP. Sieditamosestefichero,veremostodaslasposiblesopcionesquesepuedenconfigurar,siendolas quesemuestranacontinuacinlasbsicas

Alfinaldelficherovamosaincluirunaextensinpararealizarpruebasdellamadas.Lasextensiones puedenseralfanumricas,peroserecomiendaqueseannumricasparaasegurarnosquedesdelos telfonosantiguossepuedanutilizar,yaqueestosnotienenlaposibilidaddeintroducirletras. Laexplicacindelosparmetrosquehemosintroducidoeslasiguiente: [1001] type=friend Eselnombredelusuario,quetienecorrespondenciaconlaextensin Eseltipodeextensinqueestamoscreando.Existentrestiposdeextensiones: friend=paralasllamadasentrantesysalientes user=paralasllamadasentrantesenelplandellamadas peer=paralasllamadassalientesenelplandellamadas host=dynamic Se puede especificar la palabra dynamic que es una direccin ip obtenida automticamente o cualquiera dentro de la red, o directamente la direccin IP asignadaaldispositivo secret=1001 es la password del usuario. Para evitar complicaciones debe ser numrica, ya que algunostelfonosnodisponendetecladoalfanumrico

context=users Contextodelplandellamadasquesevaautilizar.

Las extensiones sern de cuatro cifras, y se diferenciarn de las del resto de alumnos por las dos primerascifrasdelaextensin. Elprimeralumnotendrlaextensin1001ysuponiendoqueelltimoalumnoseaelnmero18, estetendrlaextensin1801.

Debemosguardarloscambios Unavezcreadaslasextensiones,debemosdeaccederalaconsoladeAsteriskyteclearelsiguiente comandoparaqueserecargueelficherodeusuarios CLI>sipreload Paraversirealmentehacreadolasextensionestecleamos: CLI>sipshowpeers

Ynosdebenaparecerlasextensionescreadas,enestecasola1001yla1000. Enestemomentonose puederealizarningunallamada,yaqueelficheroextensions.confnoest configurado, y este es el que incluye el Dialplan o plan de llamadas, es decir, como se van a comunicarlasextensiones,comosevanatratarlasllamadasentrantes,lassalientes,etc.

ASTERISKLAB MODULO5
PLANDELLAMADAS

CONFIGURACIONDELSOFTPHONEXLITE Pararealizarllamadas,vamosaconfiguraruntelfonodetipoSoftphone,esdecir,untelfonopor software. En el mercado existen varias alternativas, pero la ms usada es XLite, existiendo versiones para Windows,MacyLinux.Estesoftphonesepuededescargarde http://www.counterpath.net/xlite.html Unavezdescargado,procederemosainstalarloyconfigurarlo,ylosnicosdatosquetenemosque tenerdenuestroservidorAsteriskesladireccinIP,elusuario,laextensinylaclave.

Debemosespecificarlassiguientesopciones: DisplayName:Nombrequequeremosqueaparezcaeneltelfonocuandollamamos UserName:elnombredeusuario(numerodelaextensin) Password:Laclaveasignadaalusuario Autorizationusername:Elnombredelusuario(nombredelaextensin) Domain:DirecciniponombrednsdenuestroservidorAsterisk.

Una vez introducidos estos datos y guardndolos, podemos observar en la consola de Asterisk el registrodelaextensinqueacabamosdeconfigurareneltelfono.

ParaprobarelfuncionamientodeltelfonomarcamoscualquiernmeroyenlaconsoladeAsterisk deberamosdeverunmensajeindicndonosquenoexistelaextensin,yescuchamosunalocucin eninglesindicndonosquelapersonaenlaextensin(numeromarcado)noestdisponible.

PLANDELLAMADAS HELLOWORLD Laprimeraprcticaquevamosarealizarescrearunaextensinparaquenosreproduzcaunadelas mltipleslocucionesquetieneAsterisk. Para ello debemos de editar el fichero extensions.conf. Este fichero tiene mltiples opciones y ejemplosdeextensiones,peroloselementosbsicossonlosqueseindicanacontinuacin.

Para crear nuestra primera regla en el dialplan, vamos a crear una extensin que acabe en 9, siguiendolasreglasdenomenclaturadeextensionesqueindicamosenestemanual. Debemosrecordarquealcrearasextensioneshemosdefinidouncontextousers,porloquenuestras reglas deben de ir agrupadas en ese contexto. Debemos introducir lo siguiente en el fichero extensions.conf. En el ejemplo, cuando desde nuestro telfono marquemos la extensin 1009, escucharemos la locucinHelloWorld,seguidodelnmerodenuestroAsterisk Debemos tener en cuenta las prioridades en la definicin de la extensin, ya que es muy comn copiarypegarlneas,ysiestastienenelmismonmerodeprioridad,soloseejecutarlaprimera.

Guardamoselfichero,ydesdelaconsoladeAsteriskejecutamos CLI>dialplanreload paraquerecargueelficherodeextensiones.Ahorasolonosquedamarcardesdenuestrotelfonola extensin1009yescucharlalocucin. Enelsiguientepasovamosacrearnuestrapropiaextensin,parapoderrecibirllamadas.

Guardamos el fichero, y desde la consola de Asterisk recargamos el fichero de extensiones.

CONFIGURACINDEASTERISKPARARECIBIRLLAMADASDEOTROASTERISK Dadoqueenelcursonodisponemosdetelfonosfsicosparaquecadaalumnotengadostelfonos, vamosaconfigurarnuestroAsteriskparaquepuedarecibirllamadasdeotrosAsteriskyenviarlasa otrosequipos. Con este sistema simularemos dos centralitas en diferentes ubicaciones, y podremos realizar llamadasyrecibirlasmarcandolosnmeroscorrespondientes. Paraellodebemosderealizardosoperaciones,unaenelficherosip.conf(quedefinalasextensiones locales,ylasconexionesremotas)yunareglademarcadoenelficheroextensions.conf. Enelficherosip.confdebemosregistrarlamaquinaalaquequeremosacceder.

El registro de servidores externos debe realizarse bajo el contexto [general] y tiene la siguiente sintaxis: Register=> USUARIOREMOTO:CONTRASEAREMOTA@IPEQUIPOREMOTO/EXTENSIONLOCAL Introducimos los siguientes datos en el fichero sip.conf, sustituyendo el nombre de usuario, la contrasea,ladireccinipyelcontextodelequiporemoto,recordandolanomenclaturaindicadaal principiodelcurso. Enestemismoficherodebemosespecificarlaextensinlocal.Enestecasoutilizaremosunapalabra paradefinirlaextensinlocal,yaqueesunaextensinquenosetecleaenningntelfono(poreso utilizamosletrasynonmeros)yseutilizaparaelregistrodeservidores.

Losparmetrosintroducidosenladefinicindelaextensinsonlosmismosquehemosdefinidoal crear nuestra propia extensin, pero en este ejemplo hemos aadido algunos ms, que tambin puedendefinirseennuestraextensin,oanivelglobal: disallow=all allow=ulaw allow=alaw allow=gsm Deshabilitamostodosloscdecdeaudio Habilitamoselcdeculaw habilitamoselcdecalaw habilitamoselcdecgsm IndicaqueenelenvodelpaquetesipINVITEnotengaencuentaladireccin ip que lo origina, por si estamos detrs de un proxy o realizamos NAT en nuestrared

insecure=invite

Unavezintroducidosestosdatos,debemosguardarelficheroydesdelaconsoladeAsteriskrecargar elficherosipconelcomando CLI>sipreload Paraversinoshemosregistradocorrectamenteenelservidorremototecleamosdesdelaconsolade Asteriskelsiguientecomando CLI>sipshowregistry ynosdebemostrarenlaconsolaelresultadodelregistro

Paraversitenemosunservidorremotocreadoennuestrodialplan,ejecutamoslasiguienteorden CLI>sipshowpeers

Debemosdetenerencuentaqueelregistrodebederealizarseentredosservidores,teniendoque hacer esta misma configuracin en el equipo remoto, pero con los datos correspondientes. A

continuacin se muestran las pantallas de dos equipos Asterisk registrados entre s, uno se llama Asterisk1(172.20.1.200)yelotroAsterisk2(172.20.1.201)

DIALPLANPARALLAMADASREMOTAS Una vez que hemos configurado nuestro Asterisk y hemos registrado otro Asterisk, debemos introducirlasreglascorrespondienteseneldialplanparaquelasllamadashaciaelservidorremoto seanenviadasaeste,ynotratadaslocalmente. Paraellodebemoseditarelficheroextensions.confyagregarlassiguienteslneas

Recordad, que debemos crear estas reglas dentro del contexto [users], ya que es el que hemos definidoennuestraconexinremota Debemos guardar el fichero y recargar el fichero extensions.conf desde la consola de Asterisk y llamaraunaextensinremota.Podemosprobarporlaextensinqueacabaen9yescucharemosel mensajeHelloworldseguidodelnumerodelequipoAsterisk.

ASTERISKLAB MODULO6
PLANDELLAMADASAVANZADO

BUZONDEVOZENLASEXTENSIONES EnestaseccinvamosatrabajarsobreunficherodeAsteriskdenominadovoicemail.conf.Eneste ficherodebemosdefinirculessonextensionesquetienenbuzndevoz(contestadorautomtico).

Modificando el fichero voicemail.conf, indicamos que una extensin tiene buzn de voz, pero debemos modificar tambin el fichero de extensiones (sip.conf) para asociar una extensin a una cuenta de correo y el plan de llamadas (extensions.conf) para indicarle bajo qu circunstancias saltarelbuzndevozdelusuariocuandorecibeunallamada. Sisemodificaestefichero,debemosrecargarloenlaconsolaejecutandoelsiguientecomando: CLI>modulereloadapp_voicemail.so Acontinuacindebemosmodificarelficherosip.confyaadiracadaunadelasextensioneslocales quehemoscreadoelparmetro: mailbox=NUMEROEXTENSION@default ennuestrocaso mailbox=1001@default defaultidentificaelcontextodentrodelficherovoicemail.conf

Recargamosdesdelaconsolaelfichero. Acontinuacinmodificamoselficherodeldialplan(extensions.conf)paraindicarlequeenelcasode quenocontestemosaunallamada,salgaelbuzndevoz.

Elsiguientepasoescrearunaextensinennuestrosistemaparaqueelusuariopuedaleersus mensajesdevoz.Debemoscrearlaeneldialplan(extensions.conf) Laextensinquecreemosvaaserdedoscifras,escogiendoenestecasoel99.

Recargamoselficherodesdelaconsolaejecutando CLI>dialplanreload Apartirdeestemomento,podemosllamaralaextensin99yunalocucinnospreguntarporel nmerodelaextensin,ylaclave.Recordadquelaclavedelusuariosedefineenelfichero voicemail.confyenestecasoes9999

IMPLEMENTACINDEUNMENBSICO Pararealizaresteejerciciodebemosderealizardospasos. Elprimerpasoconsisteengrabarunalocucindesdenuestrotelfono,queaunquenotendruna optimacalidad,nosservirparaelpropsitodelejercicio.Sisedisponedeunalocucingrabada, estasepuedecolocareneldirectorio /var/lib/asterisk/sounds/en LasdosltimasletrasdelarutaindicanelidiomadelossonidosdeAsterisk. Vamosacrearunaextensinennuestrosistema,alaquellamaremosparagrabarunmensaje.Para ellodebemosintroducirenelficheroextensions.confunaextensinqueacabeen8,teniendoen cuentalanomenclaturadelasextensionesparacadaequipo.Enestecasoeslaextensin1008

Acontinuacindebemosguardarelficheroyrecargarelficherodeextensionesdesdelaconsolade Asterisk. Paraprobarlaextensin,marcaremosdesdenuestrotelfonolaextensincreada,ydespusde escucharunpitidodictaremoslosiguiente: ASTERISKXXXX.PULSE1PARAHABLARCONLAEXTENSINO2PARAHABLARCONOTROASTERISK SustituyendolaXXXXporelnumerodeAsteriskcorrespondienteacadaequipo. Despusdedictarelmensajepulsaremoslatecla#,queeslateclaterminadoradelmensajey escucharemoselmensajequehemosdictadoalsistema. Sivolvisemosamarcarlaextensin,elmensajesevolveraagrabar,reemplazandoelmensaje existenteporelnuevo.

Acontinuacinvamosaordenarnuestrodialplanincluyendounnuevocontexto. DebemosagrupartodolorelacionadoconelAsteriskexternoenuncontextodenominado[remoto], yrealizaremosunincludeenelcontexto[users]. Debemosrecordarquelalgicadeldialplanesdearribahaciaabajo,yquedependiendodedonde pongamoselinclude,esteseprocesarantesodespus.Ennuestroejemplo,elincludedelcontexto [remoto]vaaserlaltimalneadelcontexto[users]. TambincrearemosunanuevareglaparaelAsteriskremoto,queserlaextensindelacentralita remota,enestecasola1100

Enunsegundopaso,crearemoslalgicaparanuestromen. Cuandollamemosalaextensindelaoperadora(queannohemoscreado),seescucharla locucinquehemosgrabado,yenfuncindelateclaquepulsemos,nosredirigiraunaextensin. Paraellomodificamoselficherodeextensionesyescribimoslosiguiente

Amayoresdeloanterior,debemoscrearlaextensindelaoperadoralocal,enestecasocrearemos unaqueacabeen0,siguiendolanomenclaturadelasextensionesindicadasanteriormente

Unavezrealizadosestoscambiosenelficheroextensions.conf,desdelaconsoladeAsterisk debemosrecargareldialplanyprobarnuestrainstalacin.

You might also like