Professional Documents
Culture Documents
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
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
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.
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.
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
Parasalirdelaconsolatecleamos CLI>exit
yparapararAsterisktenemoslassiguientesopciones: CLI>stopnow ParaAsteriskinmediatamente CLI>stopgracefully hacequeAsterisknoacepteningunallamadayseparecuandoacabenlasllamadasactivas CLI>stopwhenconvenient ParaAsteriskcuandolasllamadasactivasfinalicen YparainiciarAsteriskejecutamoselsiguientecomando asteriskstart O /etc/init.d/asteriskstart
ASTERISKLAB MODULO4
CONFIGURACINDEASTERISK
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.
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.
Una vez introducidos estos datos y guardndolos, podemos observar en la consola de Asterisk el registrodelaextensinqueacabamosdeconfigurareneltelfono.
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.
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
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
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
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.
Amayoresdeloanterior,debemoscrearlaextensindelaoperadoralocal,enestecasocrearemos unaqueacabeen0,siguiendolanomenclaturadelasextensionesindicadasanteriormente
Unavezrealizadosestoscambiosenelficheroextensions.conf,desdelaconsoladeAsterisk debemosrecargareldialplanyprobarnuestrainstalacin.