Está en la página 1de 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

http://downloads.asterisk.org/pub/telephony/asterisk/asterisk1.6.0

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

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]

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.
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

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

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.

También podría gustarte