You are on page 1of 62

TELEFONIA IP

ASTERISK

TUTORIAL HECHO POR: CESAR PINEDA GONZALEZ cpineda@huellavirtual.net

MEDELLIN ANTIOQUIA 2009

CONTENIDO 1. Introduccin4 2. Justificacin............5 3. Instalando asterisk6 4. Actualizando repositorios6 5. Librerias para acceder va SSH8 6. Paquetes de compilacion9 7. Actualizando el Kernel de nuestro sistema. 9 8. Instalacion de paquetes adicionales. .11 9. Paquete para el manejo de voz. .11 10. Instalamos asterisk12 11. Librerias para la consola asterisk. 12 12. Paquete de comprensin. 13 13. Librerias para el servicio web FreePBX. 13 14. En caso de utilizar tarjetas sangoma. 15 15. Librerias para archivos CVS. ..15 16. Ms librerias para FreePBX. 16 17. Servidor web para FreePBX. 16 18. Mas librerias para FreePBX17 19. Instalamos la base de datos. 17 20. Creacin repositorio local. 18 21. Obteniendo archivos desde internet. 19 22. Manejo de archivos de sonido. 20 23. Paquetes para el FreePBX. 21 2

24. Archivos para asterisk. 21 25. Instalacion de archivos descargados. 24 26. Manejador de sonidos. ..26 27. Instalacion Gateway entre asterisk y FreePBX. 28 28. Instalamos FreePBX. ..29 29. Copiamos esquemas. .33 30. Creando usuario y grupo que manejen los procesos asterisk. 34 31. Configurando apache. 35 32. Compilando archivos. .41 33. Configurando archivos de asterisk. ..46 34. Antes de instalar el FreePBX. ...48 35. Glosario. ...56

INTRODUCCION La telefona IP, actualmente est tomando auge en las telecomunicaciones, en especial en las pequeas, medianas y grandes compaas, esto se debe a su bajo costo de implementacin, lo que la hace muy factible para aquellos que buscan economizar un poco. Debido al crecimiento progresivo que se viene dando con esta tecnologa, y a la gran acogida que ha tenido, tratare de darles una breve introduccin a lo que es el mundo de las comunicaciones va IP, desde sus orgenes hasta lo que es hoy en da. 3

LA herramienta que actualmente es implementada con mayor frecuencia en el mundo del software libre para crear centrales de telefona IP es Asterisk (GNU). Por sus funcionalidades y por ser tan compacta. Tratare de darles a conocer sus caractersticas, proceso de instalacin y configuracin, en la plataforma de Linux Ubuntu 8.10. El siguiente trabajo es un recopilo de una serie de manuales que voy a ir desarrollando a medida que me vaya adentrando al mundo de la telefona IP. El presente manual estar orientado a la explicacin de cmo instalar una central telefnica PBX, con la herramienta Asterisk en el sistema operativo Ubuntu 8.10.

JUSTIFICACION La idea de crear una serie de manuales orientadas a la telefona IP, no es ms que plasmar cada proceso nuevo que vaya aprendiendo sobre esta tecnologa, de una manera simple, para drselas s a conocer a mis amigos y a la comunidad en s. Pienso que ir documentando cada proceso nuevo que vaya adquiriendo en mi etapa productiva me ayudara tanto al crecimiento personal como profesional, y servira de apoyo en el momento que se me presente algn tipo de 4

problema. Cabe aclarar que soy un principiante en el campo de la telefona IP, por lo que puede haber errores, por eso me gustara decirles que no confen el 100% de lo plasmado en los manuales y es mejor buscar algn tipo de documentacin extra en otras fuentes: tales como Internet, libros, amigos. Los manuales estarn sujetos a cambios, lo cual tratare de irlos mejorando da a da, a medida que vaya adquiriendo nuevos conocimientos.

INSTALANDOASTERISK: AntesdeempezarconelprocesodeinstalacindenuestraPBX,listarelas caractersticasdelequipoqueserelservidorVoIP: LinuxVersin:Ubuntu8.10 5

LinuxKernel:2.6.27 ConmutadordeVoIP:AsteriskV.1.4.13 AdministradorWeb:FreePBX2.3.1 MemoriaRAM:1GB CPU:AMDathlon64procesor /:10GB Swap:600MB IP:192.168.2.110

Ahorasipodemosempezarconelprocesodeinstalacin.

Actualizandorepositorios: Empezaremoseditandoelarchivosources.listconuneditordetextoplano: #nano/etc/apt/sources.list

Descomentamoslossiguientesrepositorios:

Agregamoslossiguientesrepositorios:

deb http://us.archive.ubuntu.com/ubuntu/ dapper universe deb-src http://us.archive.ubuntu.com/ubuntu/ dapper univers e

Guardamosctrl.+oysalimosctrl.+x

Ahoraactualizaremoslalistaejecutandoelsiguientecomando: #aptgetupdate

LibrerasparaaccedervaSSH: ParapoderaccederremotamenteanuestroAsterisk,deformasegura procederemosainstalarlospaquetescorrespondientesparadichafuncin: #aptgetinstallopenssllibssldevssh

Paquetesdecompilacion: ComonuestroAsteriskysuslibreriasdebensercompiladasparapoder instalarlosennuestrosistema,procederemosadescargareinstalaralgunos paquetesqueharanestafuncion: #aptgetinstallgccmakeg++

Actualizamoselkerneldenuestrosistema: Verificoqueversiondekerneltengoinstaladoenmiequipoconelsiguiente comando: #unamea

Buscamoslasfuentesdenuestrokernelconelsiguientecomando: #aptcachesearch2.6.27.7

Instalamoslascabeceras:

#aptgetinstalllinuxheaders2.6.277genericlinuximage2.6.277genericlinux source2.6.27

10

InstalaciondePaquetesadicionales: #aptgetinstallnmaplynxemacs21 Nmap:Scaneadordepuertos. Lynx:Navegadorwebdetexto(#lynxURL) Emacs21:Editordetextopotente.

Paquetesparaelmanejodevoz: Festival:Esunsistemadesntesisdevoz. #aptgetinstallfestivalfestivaldev

11

InstalamosAsterisk: ProcedemosainstalarAsteriskdesdelosrepositorios: #aptgetinstallasterisk

LibreriasparaConsolaAsterisk: Parapoderejecutarlaconsoladeasteriskinstalaremoslaslibreriasrequeridas paradichoservicio: 12

#aptgetinstallncursesbasencursesbinncursestermlibncurses5libncursesw5 libncurses5devlibncursesw5dev

Paquetesdecomprension: Necesitaremosalgunospaquetesdecomprensionparanuestroasterisk: #aptgetinstallzlib1gzlib1gdev

LibreriasparaelservicioWebFreePBX: ParapoderutilizareladministradorWebdenuestroasteriskprocederemosa instalaralgunaslibreriasnecesariasparadichoservicio:

13

NOTA:Algunaslibreriasnosdiraqueyaestnensuversionmasreciente,estose debequeseinstalaroncuandoseinstaloelAsterisk,peroalgunassihacenfalta,las cualesseinstalaranensuversionmasactual. #ptgetinstallbisonbisondoc

#aptgetinstalllibxml2libxml2dev

#aptgetinstalllibtiff4libtiff4dev

14

#aptgetinstalllibasound2libgsm1libltdl3libpq4libspeex1libsqlite0libtonezone1 libaudiofile0libaudiofiledev

Encasodeutilizartarjetassangoma: LastarjetassangomasonunamarcadetarjetadetelefonaIP,porloquese necesitainstalarelflex,queactuaracomodirversdelamisma. #aptgetinstallflex

15

LibreriasparaarchivosCVS: Curl:HerramientaparatransferirarchivosconsintaxisURL,FTP. Doxygen:Esungeneradordedocumentacinparacdigofuente. Subversin:Esunsistemadecontroldeversiones,diseadoprincipalmente parareemplazarelCVS. #aptgetinstallsubversioncurldoxygen

MaslibreriasParaFreePBX: LibreriasparaelusodelFreePBX:

#aptgetinstalllibnettelnetperlmimeconstructlibipcsignalperllibmimetypesperl libprocwaitstatperl 16

ServidorWebparaFreePBX: Necesitaremosunservidorwebdondeiraalojadoeladministradorwebde nuestroasterisk,paraelloinstalaremoselapache2: #aptgetinstallapache2

MslibreriasParaFreePBX: ComotuvimosqueinstalarunservidorWebparaelFreePBX,tendremosque descargaralgunaslibreriasparaquefuncioneconelapache2: 17

#aptgetinstallphp5php5cliphp5mysqlphppearlibapache2modphp5php5curl php5gdphpdb

Instalamoslabasededatos: DebemostenerinstaladaunabasededatosparaelFreePBX,yelCDR. #aptgetinstallmysqlclient5.0mysqlserver5.0libmysqlclient15dev

Enelprocesodeinstalaciondenuestrabasededatosnospediraunacontrasea paraelusuarioadministrativo. 18

Volvemosarepetirlacontrasea.

Creacinrepositoriolocal: Necesitaremosunrepositoriolocalendondealmacenaremoslosarchivos faltantesdeAsterisk,yFreePBXdescargadosdeinternet. #mkdir~/asterisk

Ahoranosubicamosdentrodeldirectoriocreado: 19

#cdasterisk

ObteniendoArchivosdesdeInternet: Procedemosadescargarlosarchivosdesdeinternetyguardarloseneldirectorio antescreadoconelcomandowget:

#wgethttp://www.cpan.org/modules/bycategory/25_Bundles/Asterisk/asteriskperl 0.10.tar.gz

Asteriskperl:SonlosmdulosdeinterfazconelcdigoabiertodeAsterisk PBXsistema.

20

Manejodearchivosdesonido: Parapodertrabajarconarchivosdesonidotalescomo:mp3,mpgnecesitamos algunosficherosennuestrosistema,loscualeslodescargaremosconelcomando wget: #wgethttp://superbeast.dl.sourceforge.net/sourceforge/sox/sox14.0.0.tar.gz

#wgethttp://easynews.dl.sourceforge.net/sourceforge/lame/lame3.97.tar.gz

21

PaquetesparaelFreePBX: Necesitaremosdescargarelpaquetequerequierenuestroadministradorwebpara sucorrectofuncionamiento:

#wgethttp://easynews.dl.sourceforge.net/sourceforge/amportal/freepbx2.3.1.tar.gz

ArchivosParaAsterisk: Algunosarchivossenecesitanparaalgunascaractersticasquenosbrinda Asterisk: #wgethttp://downloads.digium.com/pub/asterisk/releases/asterisk1.4.13.tar.gz

22

#wgethttp://downloads.digium.com/pub/zaptel/releases/zaptel1.4.5.1.tar.gz

#wgethttp://downloads.digium.com/pub/libpri/releases/libpri1.4.1.tar.gz

23

#wgethttp://downloads.digium.com/pub/asterisk/releases/asteriskaddons1.4.4.tar.gz

#wgethttp://downloads.digium.com/pub/telephony/sounds/asteriskcoresoundsen ulawcurrent.tar.gz

24

#wgethttp://downloads.digium.com/pub/telephony/sounds/asteriskextrasoundsen ulawcurrent.tar.gz

#wgethttp://downloads.digium.com/pub/telephony/sounds/asteriskmohfreeplay ulaw.tar.gz

ZAPTEL1.4.5.1:EsparaelmanejodetarjetasFXOyFXS. LIBPRI1.4.1:Esparatarjetasdigitales. Asterisk1.4.11:EslaplataformaAsterisk. AsteriskAddons1.4.2:Esparaelmanejodetareas.

Instalacindearchivosdescargados: Despusdeculminarconlasdescargasdelosarchivos,procederemosala instalacindelosmismos,paraellonosubicamosenlaruta:/usr/scr #cd/usr/src/ 25

InstalaremoseleditordesonidodeAsterisk,queesellame: #tarxvzf~/asterisk/lame3.97.tar.gz

#cdlame3.97

#./configureprefix=/usrsysconfdir=/etc

26

#make&&sudomakeinstall

tarxvzf:Extraetodolosficherosqueseencuentranenelarchivodescargadoy queestentar.gz. ./configure:Seencargadebuscarelcompiladorylospaquetesacompilar, culminadaestatareacreamakefiles. Make:seusaparalaslaboresdecreacindeficheroejecutablesparasu instalacin. Makeinstall:Ejecutalosficheroscreadospormakeylosinstala.

Manejadordesonidos: AhoraprocedemosainstalarelmanejadordesonidosdeAsterisk. #cd/usr/src/ 27

#tarxzvf~/asterisk/sox14.0.0.tar.gz

#cdsox14.0.0

#./configure

#make

28

#make install

29

InstalaciongatewayentreasteriskyFreePBX: InstalaremoselGatewayentreasteriskyFreePBX: #tarxzvf~/asterisk/asteriskperl0.10.tar.gz

#cdasteriskperl0.10

#perlMakefile.PL

#makeall

30

#makeinstall

AntesdeinstalarelFreePBX Nosubicamosenlasiguienteruta: #cd/usr/src #tarxzvf~/asterisk/freepbx2.3.1.tar.gz

#cd/usr/src/freepbx2.3.1

31

AccedemosalabasededatosMysql. #mysqlurootp

YadentrodeMysql,ejecutamoselcomandoshow databases; para ver las bases de datos. mysql> show databases;

32

Seleccionamoslademysql. mysql> use mysql ;

Creamoselusuarioparalabasededatosdelconmutadorycdr. mysql>grantallprivilegeson*.*toasterisk@localhostidentifiedbycesar;

Ledamostodoslosprivilegiosadministrativos.

mysql> flush privileges; 33

Salimosdemysqleingresamosconelusuarioanteriormentecreado(asterisk). mysql>exit Ingresamosamysqlcomoasterisk. # mysql -u asterisk p

Creamoslasbasesdedatosdentrodelaconsolademysql mysql>create database asteriskcdrdb;

34

mysql> create database asterisk;

mysql>exit Copiandoesquemas: Copiaremoslosesquemasylainformacindelosscriptsdebasesdedatospor defaultdeFreePBX # mysql -u asterisk -p asterisk < /usr/src/freepbx2.3.1/SQL/newinstall.sql

Nospedirlacontraseadelusuarioasterisk.

# mysql -u asterisk -p asteriskcdrdb < /usr/src/freepbx2.3.1/SQL/cdr_mysql_table.sql

35

Terminadalaconfiguracindelasbasesdedatosenmysqlparaasterisk.

Creamosusuarioygrupoquemanejenlosprocesosdeasterisk:

Creamoselgrupodeasterisk. #groupaddasterisk

Creamosusuario #useraddc"PBXasterisk"d/var/lib/asteriskgasteriskasterisk

36

Nosapareceraqueyaexisteperonohayningnproblema. Agregamoselpasswordparaelusuarioasterisk. #passwdasterisk

Creamoseldirectoriodeasteriskenlasiguienteruta:/var/run/asterisk #mkdir/var/run/asterisk

Nosepuedecrearporqueyaexiste,nohayproblematampocoquenosaparezca estemensaje. #chownasterisk:asterisk/var/run/asterisk

37

Configurandoapache: Parapoderindicarleaapachequeelusuariopropietarioesasteriskmodificamos lasiguientelnea:www-data:x:33,enelsiguientearchivo: #emacs/etc/group

Lalneamodificadadebequedarasi: www-data:x:33:asterisk

38

Guardamosysalimosdelarchivo: Guardar:Ctrl+xctrl+ssalir:ctrl+xctrl+c

Conelcomandofindubicamoselarchivodeconfiguracindeapache. # find /etc/apache2/ -type f | xargs grep Group

Editamoselarchivedeapache:apache2.conf 39

# emacs /etc/apache2/apache2.conf

Agregamoslassiguienteslneasalfinaldelarchivo: User asterisk Group asterisk

Guardamos(ctrl+xctrl+s)ysalimos(ctrl+xctrl+c). Cambiamoslospermisosparaeldirectoriodesesionesdephp. #chownRasterisk/var/lib/php5

40

Editamoselarchivophp.iniparaaumentareltamaodearchivosquesubenal servidorweb,paraellomodificaremoslossiguientesvalores: upload_max_filesize=32M max_execution_time=120 max_input_time=120 #emacs /etc/php5/apache2/php.ini

Creamosundirectorioparalainstalacindelospaquetesdeasterisk. #mkdir /usr/src/asterisk

41

Accedemosaldirectorio: #cd /usr/src/asterisk

libreriasodriversparatarjetaslinePRI: #tarzvxf~/asterisk/libpri1.4.1.tar.gz

libreriasodriversparatarjetasZAPTEL #tarzvxf~/asterisk/zaptel1.4.5.1.tar.gz

42

ElPBXAsterisk #tarzvxf~/asterisk/asterisk1.4.13.tar.gz

utileriasdeasterisk(cdr,repmusiconhold.etc)

#tarzvxf~/asterisk/asteriskaddons1.4.4.tar.gz

CreamosundirectorioparalosarchivosdesonidoIVR,ydescomprimimosall losarchivosqueanteriormentedescargamos. #mkdirasterisksounds

43

#cdasterisksounds

#tarzvxf~/asterisk/asteriskcoresoundsenulawcurrent.tar.gz

#tarzvxf~/asterisk/asteriskextrasoundsenulawcurrent.tar.gz

44

#tarzvxf~/asterisk/asteriskmohfreeplayulaw.tar.gz

Compilandoarchivos: compilaciondePRI: #cd /usr/src/asterisk/libpri-1.4.1

# make & sudo make install

45

compilaciondelosdriversdeZaptelparaelfuncionamientodelatarjetaFXO #cd /usr/src/asterisk/zaptel-1.4.5.1

#make clean

#make

#make install

46

#makeconfig

compilaciondeAsterisk: #cd /usr/src/asterisk/asterisk-1.4.13

#make clean

#./configure

47

#make

#make install

#make samples

48

#make progdocs

compilaciondeUtileriasdeAsterisk: #cd/usr/src/asterisk/asteriskaddons1.4.4

#make

#makeinstall 49

Copiamostodoslosarchivosdesonidosdescomprimidospreviamenteal directoriopordefaultdesonidosdeasterisk: #cprf/usr/src/asterisk/asterisksounds/*/var/lib/asterisk/sounds/

reiniciamoselservidorwebapache # /etc/init.d/apache2 restart

50

Configurandoarchivosdeasterisk: EditamoselarchivodeconfiguracindeAsterisk: /etc/asterisk/asterisk.conf #emacs /etc/asterisk/asterisk.conf

Cambiamoseldirectoriode:astrundir=>/var/run/debequedaras: astrundir=>/var/run/asterisk

Guardamos(ctrl+xctrl+s)cerramos(ctrl+xctrl+c). Asignamoslospermisos: # chown -R asterisk:asterisk /var/run/asterisk

51

IniciarAsteriskparapoderhacerlainstalaciondeFreePBX: #asteriskstart

VerificarqueAsterisksehayainiciado: #psaux|grepasterisk

InstalaciondeFreePBX:

52

Ahoraqueasteriskestinstaladoycorriendoennuestramaquina,pasaremosa instalareladministradorwebFreePBX. # cd /usr/src/freepbx-2.3.1/

InstalamoslospaquetesparagestindebasesdedatosenPHP: # pear install db

Sinossaleestepantallazo,hacemoslosiguiente: #mkdir/var/www/asterisk/

#mkdir/var/www/asterisk/cgibin

53

#chownasterisk:asterisk/var/www/asterisk

#./install_amp

Despusdeejecutarinstall_amppedirlosvaloresparacrearelarchivode configuracin. Enprimerlugarintroducirelusuariodelabasededatosquesecre previamente:

54

Introducirelpassworddelusuariodelabasededatosparaasteriskquesecre:

Introducirelnombredelservidordelabasededatos,siestadeformalocal intoducirlocalhostdelocontrariointroducirlaIPonombrededominiodel servidordebasededatos:

introducirelnombredeusuariodeladministradorqueseusaracomoadmindel AMIdeAsterisk

PassworddelusuarioadmindeAMI,importanteparaconectaraplicaciones tercerasaAsterisk:

55

RutadeinstalaciondelServidordeAsterisk:

DireccinIPdelservidordeVozsobreIP:

PasswordparapoderoperarFOP:

Soloteclearenterparaaceptarlaopcinpordefault:

Soloteclearenterparaaceptarlaopcinpordefault:

56

Soloteclearenterparaaceptarlaopcinpordefault:

Culminadodeponerlosdatosnosapareceraalgosimilaraesto:

creamoslacarpetadondesealmacenaranlossonidosdelIVR: #mkdir /var/lib/asterisk/sounds/custom

configuramoslospermisosparaeldirectoriodeAsterisk # chown -R asterisk:asterisk /var/lib/asterisk/

57

Editamoselarchivosiguiente:/etc/default/asteriskyagregamosunalineacomo laquesemenciona: RUNASTERISK=yes

Ejecutamosamportal:

DesdeelnavegadorabrimoseladministradorwebFreePBX: 58

Pordefaultnonospedirunpassword,perohayqueiraadministradoresy cambiarelnombredeusuarioypassworddeladministrador NosdesconectamosdelservidorwebdeFreePBX:

59

Posteriormenteeditamoselarchivoamportal.confycambiamoselvalorde AUTHTYPEadatabase. #emacs/etc/amportal.conf

AUTHTYPE=database

VolvemosaentraralservidordeFreePBXyahoranospediraunloginy password,pordefectoson: admin admin

60

AhoratenemoshabilitadoElconmutadordeVozSobreIPAsteriskYel administradorWebdeAsteriskFreePBX. GLOSARIO

Makefiles:SonlospaquetesqueledicenaMakecualesarchivoscompilaryel ordenenelquedebensercompilados. FXO:EsunddispositivoquepermiteconectarelcomputadoralaRTB,ymediante unsoftwareespecial,realizaryrecibirllamadasdetelfono.Sirvesobretodopara implementarcentralitastelefnicas(PBX)conunordenador. FXS:Sontarjetasparaconectartelfonosanalgicosnormalesaunordenador RTB:Redtelefnicabsica. Wget:Esunprogramaparabajarficherosdesdelalneadecomandostantopara httpcomoftp. FreePBX:Esunainterfazgrafica,vawebquefacilitalagestinyadministracin denuestrosistemadetelefonaIPbasadoenAsterisk. CDR:Seentiendecomolabitcoradelsistemadecomunicaciones,osea,dondese almacenalossucesosdeunacomunicacin. CVS:Aplicacinqueactacomoclienteservidorparaproyectoslibres,dondelos contribuyentesaccedenalaaplicacin,sacanunacopiadelproyecto,hacensus modificacionesyvuelvenaguardarelproyectoconlasnuevascaractersticas. Compilar:Procesodetraducirellenguajedeprogramacin(php,html,java) comprensibleparaloshumanosenlenguajedemaquina0y1. Sntesisdevoz:Eslaproduccinartificialdelhablahumanamedianteunsoftware ohardware. IVR:Consisteenunsistematelefnicoqueescapazderecibirunallamadae interactuarconelhumanoatravsdegrabacionesdevoz 61

FOD:Setratadeunaaplicacinjava,queleeunobjetodeformato(FO),yhaceque elrboldelaspaginasresultantesmuestreundeterminadoproducto.

62

You might also like