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

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


CONFIGURACINDEASTERISKPARARECIBIRLLAMADASDEOTROASTERISK
Dadoqueenelcursonodisponemosdetelfonosfsicosparaquecadaalumnotengadostelfonos,
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,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.

También podría gustarte