Documente Academic
Documente Profesional
Documente Cultură
(AP)ycentralprivadadeconmutacin
(PBX)
MiniguaparalapuestaenmarchadeunsistematelefnicoVoIP
basadoenunainfraestructuraWLAN
Autor:
VicenteEscudero
ndice
ndice
1Presentacin
2DistribucinRasPBX.DescargayvolcadoentarjetamicroSD
3Accesoremoto
4PuestaaldadelSOyajustesparatrabajarsinaccesoainternet
5AadireldriverdeladaptadorWiFi
6PruebadecomunicacinWiFi.Conexinaunpuntodeacceso
7RaspberryPi2comopuntodeacceso
7.1ConfigurarelservidorDHCP
7.2ConfigurareladaptadorWiFiconunaIPesttica
7.3Configurarelpuntodeacceso
7.4ConfiguracinNAT
8ConfiguracindelaPBX.Extensionesyenlace
1Presentacin
EstaguarecogelospasosnecesariosparaponerenmarchaunacentralPBXbasadaen
Asteriskcapazdedarservicioaungruporeducidodeterminalesinalmbricos(
softphones
ejecutndoseenunPC,
smartphones
y/o
tablets)
dentrodelmbitodecoberturadeun
adaptadorWiFiUSBconectadodirectamentealequipoqueejecutaelSOconla
distribucinLinuxquetieneel
software
quegestionaeltrficotelefnico.
Loscomponentes
hardware
y
software
utilizadosenestesistemason:
RaspberryPi2modeloB+FuentedeAlimentacin
MemoriamicroSDCARD4GBHCIClass4
AdaptadorWiFiUSB:WLAN11gZaapa(zd1211rw)
RasPBX
raspbx17102015.zip
Driver
propietario(nonfree)paraDebian8(jessie)deladaptadorWiFi
Paquetesadicionalesparalacreacindeunpuntodeaccesoinalmbrico
Aprovechoparaagradeceraaquellosque,desinteresadamente,hanpuestoadisposiciones
detodossuspropiasexperiencias,enformadeblogs,pginaswebodocumentosen
formato.PDF,coninformacinrelativaaloscontenidosqueaquaparecenyquesinsu
ayudanuncahubiesesidoposiblecompletaresteproyecto.Ansindisponerdesu
autorizacinexpresa(pidoperdnporadelantado)harreferenciaalassiguientesfuentes
deinformacinquemefuerontiles:
RasPBX:
AsteriskforRaspberryPi
(documentacin)
TutorialdeinstalacinypuestaenmarchadesdeOSX.
PginadeMike
Tutorial:CmocrearunpuntodeaccesoconRaspberryPi.De
GeekyTheory
2DistribucinRasPBX.Descargayvolcadoen
tarjetamicroSD
Elsistemaoperativoelegidoparaesteproyectoincluyeel
software
encargadodehacer
funcionarunaPBXVoIP,basadaenAsterisk,alencenderelequipo(conectarla
alimentacin).SerladistribucinLinux
RasPBX
,especialmenteadaptadaparafuncionar
dentrodeundispositivoRaspberryPi.
Desdeelsitioweb
http://www.raspberryasterisk.org
accedemosalreadedescargadonde
tomaremoslaversinmsrecientedeesteSO(enestemomentoestdisponiblelaversin:
raspbx17102015.zip
)conlaideadetenercompatibilidadconlavariantemsrecientede
esteordenador(RaspberryPi2modeloB).
Altratarsedeunadistribucinquevienede
Raspbian
(ramaprocedente,asuvez,del
proyectoDebian8Jessie)contamosconlaventajadeteneranuestradisposicinun
montndepaquetescompatiblesconRasPBX.Porejemplolosrelacionadosconlosdrivers
deladaptadorWiFi,elpuntodeaccesoelservidorDHCPqueutilizaremosmsadelante.
Enrealidadloqueacabamosdebajarnoseslaimagen(fichero.IMG)deunaunidadde
almacenamientode4GBytesconelcontenido,enbruto(datos+completaestructurainterna
incluyendoelsectordearranqueyparticiones),deunaunidaddememoriaSDdeesta
capacidadconelsistemaoperativoyprogramas,asteriskyFreePBXentreotros,ya
instalados.
Siguiendolasindicacionesde
Mike
,vuelcoelcontenidodescomprimidodelarchivoenla
unidaddememoriaconlaorden:
#ddif=raspbx17102015.imgof=/dev/disk1bs=2m
desdeeldirectoriodondetengoelarchivo.Aunquesitrabajamosenlinux,lallamadavara
ligeramente:
#ddif=raspbx17102015.imgof=/dev/sdbbs=2M
Amboscomandosseejecutarnconprivilegiosdeadministrador(
root
).
Laubicacindestino(porejemplo,
/dev/sdb
)representa,dentrodelrboldedirectoriosdel
SOdondeestoytrabajando,launidadmicroSDdealmacenamiento.Paraconocersu
localizacinalconectarlaanuestroordenadornosayudaremosdelaordendeconsola:
#diskutillist
(OSX).Ojo!nohayqueolvidardesmontarlaunidadantesde
procederaltrasladodelaimagenalamemoriaSDcon
#unmountdisk/dev/diskN
.
yenlinux:
#fdiskl
(o
#fdiskl/dev/sdX
).Desmontaremoscon
#umount
/dev/sdXN
.
Esperamosaquetermineesteproceso(sueletardarvariosminutos)ypasamoslamemoria
microSDalaraspberrypi.Porltimo,conectamosuncable
ethernet
desdenuestraLAN1y
enchufamossualimentacinparaarrancarelordenadorconeldiscoduroactualizado.
UnservidorDHCPlocalasignarunadireccinIPalaRaspberryPi2.
3Accesoremoto
Conelfindecompletarlainstalacindelrestodelsoftwarenecesarioparanuestroproyecto,
ahoranecesitamosaccederalaconsoladeRasPBXdesdenuestroequipoutilizandoel
protocoloSSH.EnelsistemaoperativoWindowsesfrecuenteusarlaherramientaPuTTY
paraestecometidoaunqueaqusemostrarelprocesodesdelinuxyOSX.
NoesnecesarioconocerladireccinIPrecibidaporeldispositivorecinconectadoyaque
pordefectopodemosreferenciarlocomoraspbx(linux)raspbx.local(OSX).
Alentrarconelperfilderoot(administrador)aadiremossucontrasea(pordefectoes
raspberry
).
4PuestaaldadelSOyajustesparatrabajarsin
accesoainternet
Primero,actualizaremoselsistemaoperativoconlaorden:
#raspbxupgrade
Acontinuacin,conelpropsitodeevitarinestabilidadesdelsistemadurantesu
funcionamiento,llevaremosacaboalgunosajustesrecomendadosenladocumentacin
mostradaenel
sitioweb
deRasPBX(verapartado:
3.RunningRasPBXwithoutInternet
connection
):
#aptgetinstallfakehwclock
Instalaelpaquetefakehwclock
#aptgetinstalldnsmasq
Instalaelpaquetednsmasq
#mv/etc/resolv.conf/etc/resolv.conf.dnsmasq
Renombraresolv.conf
#nano/etc/dnsmasq.conf
Editaelarchivodnsmasq.conf
Cambialareferenciaalficheroresolvfile:
resolvfile=/etc/resolv.conf.dnsmasq
#nano/etc/resolv.conf
Creaelarchivoresolv.conf
Incluyeelcontenido:
nameserver127.0.0.1
#/etc/init.d/dnsmasqrestart
Reiniciaelserviciodnsmasq
5AadireldriverdeladaptadorWiFi
Comoesfcilsuponer,esteapartadoestmuyligadodispositivofsicoconelque
contemos.Obtendremoslosdatosquenecesitamosparalocalizarelmanejadordeeste
elementosconsultandolainformacinsuministradaporelcomando
#lsusb
que
2
necesitaremostenerennuestrosistema :
Conestainformacin,yunpocodepacienciaenlabsquedademsdetallessobreeste
hardwareeninternet,encontramoseldriverparaladistribucinDebian8Jessie,vlido
tambinparanuestradistribucin,aunquesesuministradentrodeunrepositoriode
paquetes3quenovieneinstaladopordefecto.Portanto,primerohayquehacerlesaberal
SOdndeencontrarlaaplicaciny,acontinuacin,procederasuinstalacin.
Enelfichero/etc/sources.listaadimoslalnea:
debhttp://http.debian.net/debian/jessiemaincontribnonfree
coneleditornano:
#nano/etc/apt/sources.list
Sinoexiste,procedemosainstalarlocon:
#aptgetinstallusbutils
(comoadministradorroot).
Librerasordenadasdeprogramas(paquetes,enlinux)desdedondeelSOdescargarlas
aplicacionessolicitadasporeladministrador.
2
3
Actualizamoslalistadepaquetes:
Ypasamosaejecutar:
#aptgetinstallfirmwarezd1211
.ReiniciamoselSOcon
#reboot
y
verificamoselbuenfuncionamientodeltndem
driver
adaptador.
6PruebadecomunicacinWiFi.Conexinaun
puntodeacceso
Enestepuntodelprocesovamosacomprobarqueesposiblecomunicarinalmbricamente
nuestraRaspberryPiconunpuntodeaccesoconocido(ylosdatosdeaccesodisponibles)
confirmando,deestemodo,queyaseencuentracompletamenteoperativoel
stickwireless
.
Antesdenadaaadimosaplicacionesparagestionarlascomunicacionesinalmbricasenel
ordenadorcon
#aptgetinstallwirelesstools
10
Yejecutamoslaherramientaquenosinformadelestadoactualdeladaptadorinalmbrico
recininstalado,
#iwconfig
:
Establecemosahoralaconfiguracinlgicade
wlan0
paradespusconectarelequipo
automticamentealaredatravsdeestemedionoguiado.Paraelloesnecesarioeditarel
fichero
/etc/network/interfaces
yaadirlosdatosrequeridosparaenlazarconelAP,por
ejemplo:
IdentificadorSSID:
Orangefb6c
Contrasea:
A61D1E_My_PASSWORD__9AF31E3C
Conlossiguientesdatosdeconfiguracin:
11
Yhacemossaberalsistemaquedeseamoscargarestaconfiguracinmanualmente
escribiendo:
#ifupwlan0
(recuerdaque
#ifdownwlan0
realizalafuncincontraria).
Sitodosalibien(enocasionesesnecesarioreiniciarelsistemacon
#reboot
),ahora
tendremosunasegundavadeaccesoaRaspberryPiporcableydemanerainalmbrica.
7RaspberryPi2comopuntodeacceso
Laltimaetapadeesteviajeconsisteenconvertirelequipoenunacentralprivadade
conmutacinqueademssecomportecomounpuntodeaccesoWiFialcualsevana
conectarlostelfonos
software
quecorrern,principalmente,endispositivosporttilescomo
tablets
o
smartphones
conaplicacindetelfonoSIP(IAX).
InstalaremoslosprogramasqueampliarnlasposibilidadesdelaRaspberryPi2conla
incorporacindeunservidorDHCPylacapacidadparatrabajarcomoAPenunaredWLAN
usandolaorden
#aptgetinstallhostapdiscdhcpserver
.Reajustaremoslosficherosde
configuracinquedictanelfuncionamientodeldispositivoWiFIadaptndoloalasnuevas
funcionalidades.
12
7.1ConfigurarelservidorDHCP
Entramosconeleditoren
/etc/dhcp/dhcpd.conf
ydejamoscomentadaslaslneas:
#optiondomainname"example.org"
#optiondomainnameserversns1.example.org,ns2.example.org
Aadiendoalfinal:
subnet192.168.88.0netmask255.255.255.0{
range192.168.88.10192.168.88.50
optionbroadcastaddress192.168.88.255
optionrouters192.168.88.1
defaultleasetime600
maxleasetime7200
optiondomainname"local"
optiondomainnameservers8.8.8.8,8.8.4.4
}
Dondeestablecemoslafuturadireccindered,mscaradesubredyrangodedirecciones
IPaasignarademsdeotrosparmetros.
Dentrodelfichero
/etc/default/iscdhcpserver
sustituimos
INTERFACES=
por
INTERFACES=
wlan0
7.2ConfigurareladaptadorWiFiconunaIPesttica
Trasdesactivareladaptadorcon
#ifdownwlan0
,editamosdenuevoelarchivode
configuracindelasinterfacesderedcon
#nano/etc/network/interfaces
ydejamossu
contenidoas:
13
Recuerdaquesiyatuvieraseldispositivoconectado,puedescambiarsuIPmanualmente
con
#ifconfigwlan0192.168.88.1
7.3Configurarelpuntodeacceso
TerminadoelservidorDHCP,nosponemosmanosalaobraconelajustedeloqueser
nuestropuntodeacceso.AquincluiremoslosdatosrelativosalSSID,contrasea,canal,
modoyencriptacindedatos.Todoestoquedarrecogidoenelarchivo
/etc/hostapd/hostapd.conf,
porejemplo:
14
Yacontinuacinhabilitamosestearchivodescomentandolalnea
#DAEMON_CONF=/etc/hostapd/hostapd.conf
delarchivo
/etc/default/hostapd
como
seveenlaimagen:
7.4ConfiguracinNAT
SilacomunicacintelefnicagestionadaporlaPBXqueremosquealcancealgnterminal
telefnicoubicadoeninternet(msalldenuestro
router
.Porejemplo,desdeunacuenta
deunproveedorSIPpresenteenunaredWAN)hayqueestablecerunvnculoentreel
medioguiado
eth0
yelinalmbrico
wlan0
queposibilitealospaquetesdeltrficotelefnico
eltrnsitohaciasudestinoatravsdeladaptadoradecuado.
15
Paraelloprimeroaadimoslalnea
net.ipv4.ip_forward=1
alfinaldelfichero
/etc/sysctl.conf
:
Despusescribimos,comoroot,lasrdenes:
#shc"echo1>/proc/sys/net/ipv4/ip_forward"
#iptablestnatAPOSTROUTINGoeth0jMASQUERADE
#iptablesAFORWARDieth0owlan0mstatestate
RELATED,ESTABLISHEDjACCEPT
#iptablesAFORWARDiwlan0oeth0jACCEPT
#shc"iptablessave>/etc/iptables.ipv4.nat"
Yaadimoslalnea
upiptablesrestore</etc/iptables.ipv4.nat
alfinaldelarchivo
/etc/network/interfaces
:
Comprobamossielpuntodeaccesoarrancasinerrorescon:
#hostapd/etc/hostapd/hostapd.conf
16
Ycorregimosaquelloserroresqueimpidansucorrectofuncionamiento.
Paraterminar,establecemosenelsistemadosnuevosservicios(elpuntodeaccesoy
servidorDHCPconfiguradosanteriormente)paraqueseanarrancadoscadavezqueelSO
sepongaenmarcha:
Losiniciamos:
#servicehostapdstart
#serviceiscdhcpserverstart
Comprobamossuestado:
#servicehostapdstatus
#serviceiscdhcpserverstatus
Yactivamoslacargaalarrancarelequipo:
#updaterc.dhostapdenable
#updaterc.discdhcpserverenable
8ConfiguracindelaPBX.Extensionesyenlace
TrasdejarpreparadonuestropuntodeaccesoyservidorDHCP,pasamosahoraa
establecerunaconfiguracinmuybsicadenuestracentralitaprivadaparacomprobarque
losterminalestelefnicosregistradosenellapuedencomunicarentres.
17
EscribimosennuestronavegadorlalocalizacindelaPBX
http://raspbx.local
(
http://raspbx
enlinuxyWindows)yprocedemosadardealtalasextensionesy/o
troncalparaelaccesoalexterior: