Presentación VoIP2Day : Soluciones Ingeniosas con VoIP
-
Upload
alberto-castro -
Category
Technology
-
view
3.339 -
download
6
description
Transcript of Presentación VoIP2Day : Soluciones Ingeniosas con VoIP
Soluciones Ingeniosas con VoIP
Alberto Sagredo Castrowww.voipnovatos.es
14 Noviembre 2008
Voip2day
Índice de casos• Usar PSTNs remotamente.
• Tener una SIP URI con IP dinámica
• Tener dos llamadas sobre la misma línea analógicas.
• Interfono con un adaptador VoIP
• Cluster con Asterisk y DUNDI.
• Balanceo y failover con DNS SRV.
• Cisco-Linksys SPA 400 con Asterisk
Soluciones Ingeniosas con VoIP
Alberto Sagredo Castro
Usar PSTNs remotamente
• Cambio de oficina temporalmente.
• Oficina cerrada temporalmente.
• Sede en una casa prefabricada sin posibilidad de contratar teléfono.
• Empresario que viaja y quiere llamar a precio local.
• Trasladar una línea usando Ethernet.
• Etc...
Alberto Sagredo Castro
Antecedentes:
Soluciones Ingeniosas con VoIP
Usar PSTNs remotamente
• ADSL en alguna de las ubicaciones.
• Red WiFi.
• IP Fija o DNS tipo DYNDNS
• Gateway FXO que soporte IP Dialing y llamadas sin estar registrado.
• Puerto 506x y rango RTP abierto en router de acceso a Internet.
Alberto Sagredo Castro
Requisitos:
Soluciones Ingeniosas con VoIP
Usar PSTNs remotamente
• Recomendable poner IP fija a los dispositivos. Para Mapeo de puertos en router..
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Usar PSTNs remotamente
• Seleccionar en el adaptador poder realizar llamadas sin estar registrado. Ya que la conexión sera punto a punto sin Proxy.
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Usar PSTNs remotamente
• Configurar apartados de Dialplans y PSTN
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Usar PSTNs remotamente
• Configurar pasarela a VoIP
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Usar PSTNs remotamente
• Seguridad. PIN de acceso a PSTN. Autenticación SIP....
Alberto Sagredo Castro
Opciones:
Soluciones Ingeniosas con VoIP
Usar PSTNs remotamente
• Considerar puerto local de cada línea.
Alberto Sagredo Castro
Configuración Teléfono Maestro
Soluciones Ingeniosas con VoIP
• Considerar puerto local de cada línea.
Usar PSTNs remotamente
• Dialplan para llamar automáticamente al Esclavo
Alberto Sagredo Castro
Configuración Teléfono Maestro
Soluciones Ingeniosas con VoIP
SIP URIs con IPs dinámicas
• Necesidad de una SIP URI para que los clientes contacten con nosotros.
• No posibilidad de gestión total de servidor DNS.
• Sólo un teléfono o PBX recibiendo dicho dominio SIP.
• Posible recepción de SPIT (SPAM over Internet Telephony)
Alberto Sagredo Castro
Antecedentes:
Soluciones Ingeniosas con VoIP
• Posibilidad de configurar registro CNAME en dominio (sip.voipnovatos.es)
• Conexión a Internet.
• Dominio DYNDNS apuntando.
Alberto Sagredo Castro
Requisitos:
SIP URIs con IPs dinámicas
Soluciones Ingeniosas con VoIP
• Configurar registro CNAME apuntando a dominio DYNDNS
Alberto Sagredo Castro
Solución:
SIP URIs con IPs dinámicas
Soluciones Ingeniosas con VoIP
• Abrir puerto 5060 y rango RTP en router de acceso a Internet
Alberto Sagredo Castro
Solución:
SIP URIs con IPs dinámicas
Soluciones Ingeniosas con VoIP
• Configurar Terminal IP para permitir INVITES externos y configurar ID , como nombre de la URI sip:[email protected]
Alberto Sagredo Castro
Solución:
SIP URIs con IPs dinámicas
Soluciones Ingeniosas con VoIP
• Las llamadas a [email protected] entrarán directamente en la línea X del terminal IP.
Alberto Sagredo Castro
Solución:
SIP URIs con IPs dinámicas
Soluciones Ingeniosas con VoIP
Dos llamadas sobre la misma línea analógica
• Necesidad temporal de más llamadas inbound.
• No perder segundas llamadas sobre mísmo número.
• Etcétera....
Alberto Sagredo Castro
Antecedentes:
Soluciones Ingeniosas con VoIP
• DID con proveedor de telefonía por internet.
• Servicio de Desvío si ocupado con operador telefonía.
• Tarifa plana en llamadas nacionales.
• PBX IP
• Teléfono IP con dos o más líneas o Gateway VoIP.
Alberto Sagredo Castro
Requisitos:
Soluciones Ingeniosas con VoIP
Dos llamadas sobre la misma línea analógica
• Contratar , por ejemplo, con Telefónica el servicio de desvío si ocupado:
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Dos llamadas sobre la misma línea analógica
• Contratar un DID con un proveedor de Telefonía por Internet. (Ejemplo Voxbone).
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Dos llamadas sobre la misma línea analógica
• Al llamar al número fijo de Telefónica si está ocupado por llamada en curso, nos entrará en el dispositivo IP.
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Dos llamadas sobre la misma línea analógica
Interfono con adaptador VoIP
• Al descolgar el teléfono, que contacte con el otro extremo.
• Para interconectar taller con recepción.
• Etcétera....
Alberto Sagredo Castro
Antecedentes:
Soluciones Ingeniosas con VoIP
• Gateway con facilidad de hot-dialing.
• Gateway con posibilidad de manipulación de dígitos introducidos por sistema teléfónico.
• Conexión de red local o Internet.
• Puente para el conector Ethernet.
• Etcétera....
Alberto Sagredo Castro
Requisitos:
Soluciones Ingeniosas con VoIP
Interfono con adaptador VoIP
• Puente para hacer creer al adaptador que tiene conexión a red Ethernet.
• Configurar dispositivo con IP fija.
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Interfono con adaptador VoIP
• Configurar Line1 y Line 2 con dos USERID conocidos.
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Interfono con adaptador VoIP
• Si hemos puesto USERID 100 a Line 1 y USERID 101 a Line2. Configuraremos Dialplan como sigue.
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Interfono con adaptador VoIP
Para Line 1:
(<#:[email protected]:5061>)
Para Line 2:
(<#:[email protected]:5060>)
• Si queremos funcionalida de teléfono Rojo. Al descolgar se llama al otro extremo.
Para Line 1:
(S0<:[email protected]:5061>)
Para Line 2:
(S0<:[email protected]:5060>)
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Interfono con adaptador VoIP
Cluster Asterisk con DUNDI
• Cluster de varios servidores Asterisk.
• Aversión a sistemas Proxy como SIP-Router, Kamailio o OpenSIPS.
• Etcétera....
Alberto Sagredo Castro
Antecedentes:
Soluciones Ingeniosas con VoIP
Cluster Asterisk con DUNDI
• Al menos dos servidores Asterisk.
• Servidor DNS SRV para balanceo de peticiones.
• Red Local.
• Manejo de dialplan de Asterisk.
• Base de datos en Realtime de Asterisk.
• Etcétera....
Alberto Sagredo Castro
Requisitos:
Soluciones Ingeniosas con VoIP
Cluster Asterisk con DUNDI
• Configurar peer dundi en cada uno de los iax.conf de cada servidor Asterisk
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
[dundi]
type=friend
context=ext-local
disallow=all
allow=ulaw
allow=alaw
;allow=gsm
[general]bindport=4569bindaddr=0.0.0.0context=extensionesiaxcompat=yesnochecksums=yesdelayreject=yesamaflags=defaultdisallow=allallow=alawallow=alawallow=alawallow=alawjitterbuffer=no
forcejitterbuffer=no;dropcount=;maxjitterbuffer=;maxjitterinterps=canreinvite=notrunkfreq=20language=es
rtcachefriends=yesrtupdate=nortautoclear=600
Cluster Asterisk con DUNDI
• Configurar extensions.conf para hacer uso de realtime y dundi.
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
[dundi-extens]switch=>DUNDI/extensiones
[default]switch=>RealTime/@extensions
Cluster Asterisk con DUNDI
• Configurar dundi.conf en cada servidor. Tener en cuenta que cada servidor tiene las direcciones MAC del resto de servidores menos él.
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
entityid=00:11:11:11:11:11 con la mac de cada máquina
…..
entityid=00:22:22:22:22:22 ; (SERVIDOR 2)
…..
entityid=00:33:33:33:33:33 ; (SERVIDOR 3
…..
entityid= 00:44:44:44:44:44 ; (SERVIDOR 4)
…...
ttl=3
cachetime=5
autokill=yes
[mappings]
extensiones-locales=>sipregistration,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nopartial
Cluster Asterisk con DUNDI
• Continuación...
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
[00:11:11:11:11:11 ] ; Lo identificamos por su entityid
model=symmetric
host=213.x.x.2
inkey=dundikey
outkey=dundikey
include=extensiones-locales
permit=extensiones-locales
qualify=yes
order=primary
[00:22:22:22:22:22] ; Lo identificamos por su entityid
model=symmetric
host=213.x.x.2
inkey=dundikey
outkey=dundikey
include=extensiones-locales
permit=extensiones-locales
qualify=yes
order=primary
[00:33:33:33:33:33] ; Lo identificamos por su entityid
model=symmetric
host=213.x.x.3
inkey=dundikey
outkey=dundikey
include=extensiones-locales
permit=extensiones-locales
qualify=yes
order=primary
[00:44:44:44:44:44] ; Lo identificamos por su entityidmodel=symmetrichost=213.x.x.4inkey=dundikey outkey=dundikeyinclude=extensiones-localespermit=extensiones-localesqualify=yes order=primary
Cluster Asterisk con DUNDI
• Configurar sip.conf
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
[general]bindport=5060
context=extensionesbindaddr=0.0.0.0srvlookup=nopedantic=nomaxexpirey=600;realm=
defaultexpirey=600;notifymimetype=videosupport=nodisallow=allallow=all
language=enrtcachefriends=yes
regcontext=sipregistrationrtptimeout=600rtpholdtimeout=300limitonpeers=yes
;nat=rtupdate=nortautoclear=600ignoreregexpire=no
Cluster Asterisk con DUNDI
• Realtime
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Carga de módulos de MySQL y Realtime:modules.conf…..
preload => app_addon_sql_mysql.so
preload => res_config_mysql.so
……
Configuración de extconfig.conf para Realtime en voicemail, peers, users, extensions.…..
sipusers => mysql,nbx,sip_buddies
sippeers => mysql,nbx,sip_buddies
voicemail => mysql,nbx,voicemail_users
extensions => mysql,nbx,extensions
queues => mysql,nbx,queue_table
queue_members => mysql,nbx,queue_member_table
…..
Cluster Asterisk con DUNDI
• Realtime
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Configuración de sip.conf para Realtime :…..
[general]
context = ext-local
allow=all
regcontext=sipregistration
bindport=5060
rtcachefriends=yes
rtupdate=no
rtautoclear=600
…..
Configuración de res_mysql.conf para Realtime :[general]
dbhost = bbdd.dominio.com
dbname = bbdd
dbuser = bbdd
dbpass = xxxxxx
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
Cluster Asterisk con DUNDI
• Introducir datos de Realtime:
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
INSERT into sip_buddies (id, name, callerid, context, canreinvite, type, host, secret, nat)
VALUES ('','00001100','Emp_01_100','ext-local','no','friend','dynamic','8732yf23','yes');
INSERT INTO extensions (id,context, exten, priority,app,appdata)
VALUES ('', 'ext-local','100','1','Dial','SIP/00001${EXTEN}|20');
INSERT INTO extensions (id,context, exten, priority,app,appdata)
VALUES ('', 'ext-local','100','2','Goto','dundi-extens|00001${EXTEN}|1');
INSERT INTO extensions (id,context, exten, priority,app,appdata)
VALUES ('', 'ext-local','100','3','Gotoif','$[${DIALSTATUS}] = NOANSWER?5');
INSERT INTO extensions (id,context, exten, priority,app,appdata)
VALUES ('', 'ext-local','100','4','Voicemail','u00001${EXTEN}@ext-local-emp1');
INSERT INTO extensions (id,context, exten, priority,app,appdata)
VALUES ('', 'ext-local','100','5','Hangup','');
• Aversión a otros sistemas de balanceo con SIP-ROUTER, Kamailio o OpenSIPS
• Necesidad de tener servidores para ciertos dominios con prioridades.
• Necesidad de prioridades dependiendo de protocolo en VoIP, SIP o UDP, SIP o TCP, SIP/TLS.
Alberto Sagredo Castro
Antecedentes:
Soluciones Ingeniosas con VoIP
Balanceo y Failover con DNS SRV
Balanceo y Failover con DNS SRV
• Servidor DNS configurable por nosotros.
• Dominio en internet.
• Varios Proxys o Servidores con Asterisk
• Registros centralizados en el sistema.
• Tiempo de registro bajo.
• Terminales que tengan soporte de DNS SRV.
Alberto Sagredo Castro
Requisitos
Soluciones Ingeniosas con VoIP
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
; Configuración de dominio.com
$TTL 86400
@ IN SOA dns administrador (
200706247 ; Serial formato: yyyymmddn donde n es un número cualquiera
10800 ; Refresh después de tres horas
3600 ; Reintentar después de una hora
604800 ; Expirar después de una semana
86400 ) ; TTL(Time to Live) mínimo de un día
IN NS dns
dominio.com. IN A 195.222.222.222
IN MX 10 dominio.com.
dns IN CNAME dominio.com.
www IN CNAME dominio.com.
ns1 IN A 195.222.222.222
ns2 IN A 195.222.222.222
sip IN A 195.222.222.221
sip2 IN A 195.222.222.222
sip3 IN A 195.222.222.223
sip4 IN A 195.222.222.224
sip5 IN A 195.222.222.225
backup IN A 195.222.222.226
Balanceo y Failover con DNS SRV
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip2.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip3.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip4.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip5.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 1 0 5060 backup.dominio.com.
dominio.com. IN NAPTR 0 0 "s" "SIP+D2U" "" _sip._udp.dominio.com.
Balanceo y Failover con DNS SRV
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Le hemos puesto un tiempo (300) de refresco de cache, para que los terminales vayan realizando peticiones
cada 300 s, por si cambiáramos el DNS en ese tiempo. Si no se pretende modificar el DNS , se pueden poner
valores más altos como 43200 (12 horas).
También se puede jugar con los valores de peso, para indicar que servidores serán accedidos con mayor
frecuencia que otros.
Si quieremos por ejemplo que sip2 reciba el doble de peticiones que sip.
_sip._udp.dominio.com. 300 IN SRV 0 10 5060 sip.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 20 5060 sip2.dominio.com.
Existe un servidor de backup, que aceptaría las peticiones en el caso de que alguno de los demás no fuera
alcanzable. En configuraciones normales, si tenemos dos servidores, quizá nos interesaría:
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 1 0 5060 sip2.dominio.com.
Balanceo y Failover con DNS SRV
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
Con lo que en caso de que el primer servidor no fuera alcanzable porque esté caído, buscaría el segundo.
Destacar que aquí hemos configurado DNS SRV para UDP.
Si quisiéramos dar algún servicio de SIP sobre TCP o SIP sobre TLS, tendríamos que configurar de acuerdo a estos servicios:
_sip._tcp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
_sips._tcp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
dominio.com. IN NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.dominio.com.
dominio.com. IN NAPTR 0 0 "s" "SIPS+D2T" "" _sips._tcp.dominio.com.
Balanceo y Failover con DNS SRV
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
• Configuración de DNS SRV en Terminales VoIP
Balanceo y Failover con DNS SRV
SPA 400 con Asterisk
• Usar SPA 400 con Asterisk como gateway de alta densidad de puertos FXO (4)
• Enrutar un DID analógico (puerto FXO) a un FAX.
• Elegir una línea de salida para determinadas llamadas (Gateways GSM)
• Etcétera....
Alberto Sagredo Castro
Antecedentes:
Soluciones Ingeniosas con VoIP
SPA 400 con Asterisk
• Asterisk.
• Linksys SPA 400.
• Líneas analógicas.
• Conocimientos sobre dialplan Asterisk.
Alberto Sagredo Castro
Requisitos:
Soluciones Ingeniosas con VoIP
SPA 400 con Asterisk
• Para poder encaminar llamadas entrantes configurar SPA 400 tal y como se muestra:
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
SPA 400 con Asterisk
• Capturando vemos un campo interesante en los INVITES
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
INVITE sip:[email protected] SIP/2.0From: - FXO_Port_ID_1<sip:anonymous@localhost>;tag=dc01a8c0-13c4-3d7b3c2e-13c85-76f0918fTo: <sip:[email protected]>Call-ID: 10186844-dc01a8c0-13c4-3d7b3c2d-13b8b-2f293669@localhostCSeq: 1 INVITEVia: SIP/2.0/UDP 192.168.1.220:5060;branch=z9hG4bK-3d7b3c2e-13cd5-5461bc1cMax-Forwards: 70Supported: replaces,timer,100relContact: <sip:[email protected]:5060;transport=UDP>Content-Type: application/SDPContent-Length: 278
SPA 400 con Asterisk
• Encaminar llamadas entrantes:
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
[incoming]exten => spa400,1,Set(TOLINE=${SIP_HEADER(To)})exten => spa400,n,Set(FROMLINE=${SIP_HEADER(From)})exten => spa400,n,Set(TOLINE=${CUT(TOLINE,:,2)})exten => spa400,n,Set(FROMLINE=${CUT(FROMLINE,:,2)})exten => spa400,n,Set(INCOMINGLINE=${CUT(TOLINE,@,1)})exten => spa400,n,Set(CLID=${CUT(FROMLINE,@,1)})exten => spa400,n,Noop(${INCOMINGLINE})exten => spa400,n,Noop(${CLID})exten => spa400,n,Set(CALLERID(name)=PSTN)exten => spa400,n,Set(CALLERID(num)=${CLID})exten => spa400,n,Goto(incoming,${INCOMINGLINE},1)
exten => Linea-1,1,Dial(SIP/100,,tT)
exten => Linea-2,1,Dial(SIP/101,,tT)
exten => Linea-3,1,Dial(SIP/102,,tT)
exten => Linea-4,1,Dial(SIP/103,,tT)
SPA 400 con Asterisk
• Encaminar llamadas salientes por un puerto FXO determinado:
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
exten => 9XXXXXXXX,1,Dial(SIP/L1{EXTEN},20)
exten => 9XXXXXXXX,2,Hangup
exten => 6XXXXXXXX,1,Dial(SIP/L2{EXTEN},20)
exten => 6XXXXXXXX,2,Hangup
SPA 400 con Asterisk
• Recordar que Asterisk se tiene que registrar en la SPA 400. Por tanto sip.conf deberá configurarse como sigue:
Alberto Sagredo Castro
Solución:
Soluciones Ingeniosas con VoIP
[spa400]type=frienduser=spa400host=192.168.1.109dtmfmode=rfc2833canreinvite=nocontext=from-trunkinsecure=very
register=> [email protected]/spa400
Bibliografía
• Cisco Linksys ATA ADMIN GUIDE
• http://www.voip-info.org/storage/users/813/47813/images/1654/DUNDi_So_Easy.pdf
• http://www.julianmenendez.es/usando-dundi-asterisk/
• Sip Demystified. Gonzalo Camarillo. McGraw-Hill.
• http://www.cs.columbia.edu/sip/othersip.html
• http://www.astricon.net/files/usa06/Friday-General_Conference/JR_Richardson_Whitepaper.pdf
Alberto Sagredo Castro
Soluciones Ingeniosas con VoIP
Blogs
• www.saghul.net
• www.jerocu.net
• www.sinologic.net
• www.voipnovatos.es
• blog.aliax.net
• www.asterisktron.org
• www.voip-info.org
• Tom Keating, Luca Filigheddu (a.k.a Sitófono),etc..
Alberto Sagredo Castro
Soluciones Ingeniosas con VoIP
Preguntas
Alberto Sagredo Castro
Soluciones Ingeniosas con VoIP
Gracias por la atención
Alberto Sagredo Castro
Soluciones Ingeniosas con VoIP