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

Dentro de esta carpeta, descargaremos los paquetes necesarios para compilar asterisk. (EL nmero 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

Y desmarcamos pbx_ael. Este mdulo implemente Alternate Extension Language. Este mdulo se 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. A continuacin debemos reiniciar el sistema, para que cargue los drivers Dahdi y comprobamos que loshacargadocorrectamenteejecutandoelsiguientecomando. lsmod|grepdahdi ynosmostrarlasiguienteinformacindelosmduloscargados

Ahora comprobaremos si Asterisk se ha iniciado automticamente ejecutando el siguiente comando 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 Asterisk se configure editando una serie de ficheros de texto que estn en el directorio /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. Durante la duracin de este curso, nos limitaremos a la configuracin mediante un editor de texto, 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. Si editamos este fichero, veremos todas las posibles opciones que se pueden configurar, siendo las quesemuestranacontinuacinlasbsicas

Al final del fichero vamos a incluir una extensin para realizar pruebas de llamadas. Las extensiones pueden ser alfanumricas, pero se recomienda que sean numricas para asegurarnos que desde los 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. El primer alumno tendr la extensin 1001 y suponiendo que el ltimo alumno sea el nmero 18, estetendrlaextensin1801.

Debemosguardarloscambios Una vez creadas las extensiones, debemos de acceder a la consola de Asterisk y teclear el siguiente comandoparaqueserecargueelficherodeusuarios CLI>sipreload Paraversirealmentehacreadolasextensionestecleamos: CLI>sipshowpeers

Ynosdebenaparecerlasextensionescreadas,enestecasola1001yla1000. En este momento no se puede realizar ninguna llamada, ya que el fichero extensions.conf no est 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 Para realizar llamadas, vamos a configurar un telfono de tipo Softphone, es decir, un telfono por 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 Una vez descargado, procederemos a instalarlo y configurarlo, y los nicos datos que tenemos que 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.

Para probar el funcionamiento del telfono marcamos cualquier nmero y en la consola de Asterisk deberamos de ver un mensaje indicndonos que no existe la extensin, y escuchamos una locucin eninglesindicndonosquelapersonaenlaextensin(numeromarcado)noestdisponible.

PLANDELLAMADAS HELLOWORLD La primera prctica que vamos a realizar es crear una extensin para que nos reproduzca una de las 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 Dadoqueen elcursonodisponemosdetelfonosfsicosparaquecadaalumno tengadostelfonos, vamos a configurar nuestro Asterisk para que pueda recibir llamadas de otros Asterisk y enviarlas a 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, la direccin ip y el contexto del equipo remoto, recordando la nomenclatura indicada al principiodelcurso. En este mismo fichero debemos especificar la extensin local. En este caso utilizaremos una palabra para definir la extensin local, ya que es una extensin que no se teclea en ningn telfono (por eso utilizamosletrasynonmeros)yseutilizaparaelregistrodeservidores.

Los parmetros introducidos en la definicin de la extensin son los mismos que hemos definido al 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 Indica que enelenvodel paquetesipINVITEnotengaen cuenta ladireccin 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

Debemos de tener en cuenta que el registro debe de realizarse entre dos servidores, teniendo que 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 introducir las reglas correspondientes en el dialplan para que las llamadas hacia el servidor remoto 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 llamar a una extensin remota. Podemos probar por la extensin que acaba en 9 y escucharemos el mensajeHelloworldseguidodelnumerodelequipoAsterisk.

ASTERISKLAB MODULO6
PLANDELLAMADASAVANZADO

BUZONDEVOZENLASEXTENSIONES En esta seccin vamos a trabajar sobre un fichero de Asterisk denominado voicemail.conf. En este 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 A continuacin debemos modificar el fichero sip.conf y aadir a cada una de las extensiones locales 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