Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso Voip Lab
Curso Voip Lab
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 http://downloads.asterisk.org/pub/telephony/asterisk/asterisk1.6.0
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
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.
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.
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
Alfinaldelficherovamosaincluirunaextensinpararealizarpruebasdellamadas.Lasextensiones
puedenseralfanumricas,peroserecomiendaqueseannumricasparaasegurarnosquedesdelos
telfonosantiguossepuedanutilizar,yaqueestosnotienenlaposibilidaddeintroducirletras.
Laexplicacindelosparmetrosquehemosintroducidoeslasiguiente:
[1001] Eselnombredelusuario,quetienecorrespondenciaconlaextensin
type=friend 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.
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.
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 Deshabilitamostodosloscdecdeaudio
allow=ulaw Habilitamoselcdeculaw
allow=alaw habilitamoselcdecalaw
allow=gsm habilitamoselcdecgsm
insecure=invite IndicaqueenelenvodelpaquetesipINVITEnotengaencuentaladireccin
ip que lo origina, por si estamos detrs de un proxy o realizamos NAT en
nuestrared
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
llamaraunaextensinremota.Podemosprobarporlaextensinqueacabaen9yescucharemosel
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
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.