Elastix 3 Multi Tenant – Configuración 1 (Extensiones y trunks)
Luego de participar en el ELastix World en Chile y ver la excelente participación del gran Edgar Landivar @elandivar (Creador de Elastix) explicando las novedades de Elastix 3 y antes escuchar a Jon Bonilla @jbmanwe , explicar a nivel de arquitectura de software , Elastix 3+Kamailio y motivar estoy seguro, a mas de uno a meterle tiempo y ganas, al nuevo mundo que se abre en el rubro de VoIP con esta solución , me puse manos a la obra.
Personalmente he metido mucho tiempo a entender el funcionamiento de Kamailio, ya que tiene muchas formas de funcionar y requiere bases de conocimiento del protocolo SIP a bajo nivel, sin embargo luego del curso, que tuve la oportunidad de llevar en México con Olle Johansson @oej Nunca vuelves a ver a SIP del mismo modo y todo lo que es posible hacer.
Vamos al grano, este tutorial asume que se ha podido instalar correctamente una plataforma ELX3 y todos los líos de red están superados. así mismo es necesario la correcta resolución de DNS y las consultas del servidor NTP en la plataforma.
Paso 1.- Crear Organización
Como primer paso es necesario crear una organización , en este caso la vamos a llamar SILCOM y con el dominio silcom.com.pe , como se ve a continuación.
1.1.- Ingresamos a Manager/ Organization / Organization
1.2.- Hacer Clic en «Create New Organization» y proceder a llenar los datos de la siguiente forma.
1.3.- Una vez que la organización está creada , es necesario recargar la configuración , al mismo estilo de ELX2.X
1.4.- Finalmente tenemos la organización creada de esta forma:
Paso 2.- Crear Extensiones
Vamos a crear las extensiones de esta organización de la siguiente forma:
2.1.- Ingresar a PBX / PBX Applications / Extensions , al ingresar veremos la extensión 100 creada por defecto la cual pertenece al administrador de la organización.
2.2.- Hacer clic en «Crearte New Extension» y crearemos la extensión 101 para este organización de la siguiente forma.
Luego las opciones del voicemail
2.3.- Una vez que la extensión está creada , es necesario recargar la configuración , al mismo estilo de ELX2.X
Paso 3.- Configurar Softphone
Para la configuración , voy a usar Blink creación de AG Projects en donde se encuentra Saúl Ibarra @saghul desarrollándolo , y porqué blink ? por que es el sotfphone que mejor respeta el estándar del protocolo SIP, recordar que Kamailio es quien está adelante de Asterisk en ELASTIX3 y necesita UAs que conversen «SIP del bueno»
3.1.- Agregar la cuenta:
3.2.- Configurar adecuadamente las opciones de cifrado RTP :
3.3.- Luego configurar el proxy de salida :
3.4.- Finalmente veremos que la extensión está registrada :
3.5.- Del lado de Elastix 3 la veremos la extensión de la siguiente forma :
Una manera bastante sencilla de probar la extensión , es llamando al buzón de voz , *98
Paso 4.- Crear la troncal de salida
4.1.- Ingresar a PBX / PBX / Trunks
4.2.- Hacer clic en «Create New Trunk» y creamos la troncal de la siguiente forma
General :
Peer Settings:
Del lado de Elastix 3 la veremos de la siguiente forma :
Paso 5.- Configurar la ruta de salida
5.1.- Ingresar a PBX / PBX / Outbound Routes y editamos la ruta creada (9 + numero) luego vamos a la pestaña «Tunk Secuence» y le indicamos que use la troncal creada previamente, como se muestra a continuación :
5.2.- Probar llamadas salientes :
Notas Finales
Tener en cuenta que esto solo es el punto de partida, para todo lo que ofrece la plataforma , no solo a nivel de funcionalidades multi empresa , si no también a nivel de seguridad , espero escribir mas adelante algo de ello, también es altamente recomendable leer el «Manual de Administrador de ELastix 3» el cual se puede descargar desde aquí , Además de tener conocimientos de Kamailio, ayudan mucho en entender como es el funcionamiento interno de Elastix3.
Agradecimientos finales a @jbmanwe por ayudarme en algunos detallitos 😀 en Kamailio.
UPDATE: 14/07/2015
En el pasado Elastix Be Free 2015 desarrollado en México, un buen amigo y colega instructor Alfio Muñoz brindó una charla sobre Elastix MT la cual detalla algunos aspectos adicionales de configuración que estoy seguro pueden servirles,
Pueden mirar el vídeo de la charla/taller : Elastix MT al descubierto
Espero les sirva el tutorial
Saludos
Juan Oliva
@jroliva
Muy bueno, gracias..!!
una consulta, en la sección de Peer Settings de la troncal, el parámetro «host» es la dirección IP del otro servidor donde nos deseamos conectar?????
Aldo
Es correcto, en «host» va la dirección IP del servidor que provee el trunk
Saludos
Juan Oliva
cuando dices superados todos los problemas de red a que te refieres, es que no he podido hacer funcionar esta version, tengo un VPS en la nuve con ip publica, la instalacion funciona perfectamente, creo las organizaciones y las extensiones, pero ninguna se puede registrar.
a mi me pasa lo mismo pudiste dar con la solucion?
Hola Nicolas
Dale una mirada a este vídeo : https://www.youtube.com/watch?v=yYxUpekASHM&feature=youtu.be
Espero te sirva
Saludos!
Juan
Gracias por el post Juan, una consulta cuando quiero crear una organización, me sale un mensaje un problema con imap (Error: Error trying create email_accountfailed to login to IMAP), incluso con mi correo de gmail me da el mismo problema. estoy probando en una maquina virtual, que podria estar mal.?
Gracias por la respuesta.
Hola Alejandro
Pues es bien raro el error , por que no es que se cree un servidor de correo local por lo menos en ese momento, verifica que tengas salida a internet en esa maquina , que los dns y servicio ntp no estén bloqueados, en resumen trata de que todo el entorno esté lo mas libre posible.
Saludos
@jroliva
Hola,
como seria la configuracion de una troncal SIP entre elastix 3.0 y uno 2.5 es obligacion usar el Register String ?.
saludos muy buena tu pagina
Hola Felipe
Pues si, seria lo ideal para poder garantizar el paso de la comunicación como se realiza entre dos Elastix 2.x , por otro lado , es un post interesante para desarrollar , veré de hacerlo en algun momento.
Saludos
@jroliva
si necesitas ayuda para hacer lab estoy disponible 🙂
Juan, buenas tardes,
Curioso, a mi me pasa como a Jorge Vanegas.
He instalado Elastix 3.0 en una VM de un PROXMOX que tengo en un proveedor público, he realizado el «yum update» del sistema, he solucionado el problema que se produce con el password del Admin cuando se realiza el «yum update», y hasta aquí, Elastix 3.0 levantado.
Bien, he seguido tu post y llegados al momento de registrar la Extensión desde un terminal o softphone, nada, no puedo registrarlo.
La única diferencia que veo, es que en vez de registrarlo poniendo el Usuario en el softphone en la forma «2000@manolo.com», lo estoy poniendo «2000@192.168.20.20». No hay problema, ¿no?.
También he hecho la prueba en una VM de un PROXMOX en local y nada…
¿Se me escapa algún truco?
¿Lo mismo no debería de realizar el «yum update» tras la instalación por si las…?
Saludos y gracias
Hola Ramsés
Pues no hay ningún truco 😀 inclusive les comento que yo no realicé actualización alguna con «yum update» bajé la iso (ultima por cierto) y procedí a configurar, por hay en algún momento reinicie el sistema, pero mas nada.
Respecto al registro de extensiones, un detalle que tienen que tener en cuenta, es que no es igual que con Elastix 2.X , el outbound proxy tiene un papel clave y todo depende del tipo de hard/soft SIP usen , ya que depende, como envíe a Kamailio el registro SIP.
En general la recomendación es meterte a leer logs de Kamailio y Asterisk.
Espero les sirva
Saludos
Juan Oliva
@jroliva
Hola, donde encuentro o como se activa el Flash operator panel ( FOP), para controlar el tráfico.
Hola Vladimir
Los aplicativos considerados como Addons , no estan activados en esta versión, sin embargo según lo que indicó Edgar Landivar en su conferencia del ElastixWorld 2014, los incluirían posteriormente, imagino que sacaran una nueva versión con ello.
Saludos
Juan Oliva
@jroliva
Juan, buenas tardes,
Cosas con las que me he encontrado, por si lo podemos cotejar, a ver si estoy en lo cierto:
* A la hora de agregar la cuenta en Blink:
– En primer lugar, si en «SIP Address» ponemos la Extensión que hemos creado en Elastix 3.0, en tu caso «101» (101@silcom.com.pe), no me funciona, es decir, no se registra. Claro, en mi caso pongo la Extensión que yo he creado (101@empresa1.com).
Para que me funcione, en el campo «SIP Address» tengo que poner el «Device» que muestra al crear la Extensión, es decir, en tu caso «101_silcom.com.pe».
– En «Password», ponemos la password que le hemos puesto al crear la Extensión en Elastix.
¡¡¡ Pero OJO !!! Me he encontrado con una situación que nos puede volver loco si no lo tenemos en cuenta, no sé si llamarlo BUG o Medida de Seguridad, el caso es que, si no lo tenemos en cuenta, nos puede dar algún dolor de cabeza. Si no vamos a Elastix 3, editamos cualquier parámetro de la configuración de una Extensión creada, y no volvemos a poner la «Password», es decir, dejamos el campo en blanco, Elastix 3 no mantiene la Password que le habíamos puesto anteriormente, sino que la pone en blanco.
– En «Outbound Proxy» ponemos la IP de nuestro servidor Elastix 3, o en su defecto, el Nombre DNS del Server, si tenemos resolución de éste.
– En «Auth Username», que en tu caso dejas en blanco, si no ponemos la Extensión que hemos creado en Elastix, en tu caso «101», no podemos registrarnos con Blink.
Ah, y otra cosa que he tenido que tocar en Blink para que me permita realizar llamadas es, en la pestaña «Media», poner la opción «sRTP Encryption» en «Disabled», si no, aunque se registraba, no me permitía ni siquiera llamar al buzón (*98).
¿A alguien más le sucede esto o les funciona tal cual lo has descrito tú?
Saludos,
Ramses
Hola Ramsés
A ver, te comento por cada item planteado:
– SIP Address
Pues yo use 101@silcom.com.pe y tu 101_empresa1.com , dejame probar si no tengo lios , quizas tenga que ver algo en la resolucion ya que silcom.com.pe existe pero no se.
– Outbound Proxy
De acuerdo , es lo mismo
– Auth Username
Pues en mi caso no tuve que poner nada , igual voy a probarlo.
– sRTP Encryption Disabled
Si es es correcto, es una particularidad de blink , aunque en opcional no debería activarse de igual forma no lo hace.
– Password de la GUI
Programación de GUI, voy a probarlo si no habrá que reportarlo a Elastix.
Seguimos conversando
Saludos
Juan Oliva
@jroliva
hola quisiera saber mas de las configuraciones y todo el funcionamiento de elastix
Hay tienes la información que deseas:
http://www.elastix.org/index.php/en/product-information/manuals-books.html
Saludos!
Hola excelente info, muy buena, seguí los pasos y configure sin problema el trunk saliente, ahora no logro hacer funcionar los DID (Rutas entrantes), si alguien tiene algún consejo seria bienvenido. Gracias
Hola Tomas, llegaste a poder configurar un DID (Ruta Entrante) ?
Hola Elias, No, no hace mucho que intento pero no logro hacer ingresar las llamadas.
Yo aun sigo tratando de poder ingresar una llamada, si logro poder configurar un DID te lo hago saber.
Te dejo mi correo elias.rivadeneyra@hotmail.com
alguien ha podido configurar una ruta entrante ?
A mi lo que me sucede (bajo el mismo escenario de Proxmox) es que desde la consola del asterisk hago un show peers y en el caso de sip no me muestra nada, como si no tuviera ninguna extension creada. En el caso de iax si me las muestra correctamente.
Esto solo me sucede en la virtualizada, en la instalacion que tengo sobre una PC me funciona bien.
Sobre el mismo Proxmox tengo 4 Elastix versiones anteriores y varios Asterisk en produccion sin problemas.
Alguien tiene alguna idea porque puede ser esto?
Hola como va, es 100% necesario usar proxy? Por algun motivo no logro que se registre la extension, el dominio esta resolviendo bien… Alguien podria darme alguna pista?
Hola Fernando
Si es necesario, cuidado que la configuración es diferente en cada softphone.
Saludos
Juan Oliva
Hola, consulta tengo 1asterisk en una empresa, el cliente ya quiere usar soft desde Android, no me gusta mucho la idea de publicar el 5060de un equipo en producción con 400extenciones, estoy intentando armar un kamalion sip proxy pero no logro, si en otro server pongo elástix 3Mt puedo decirle que haga solo de sip proxy usando ese kamalion?? O alguien q me de una gran ayuda en kamalio??
Graciassssss
Hola Lucas
Desde mi punto de vista te complicas mucho liandote con Kamailio o ElastixMT, sin embargo también es una solución.
Personalmente, yo lo único que hago en ese caso es asegurarme que mi sip.conf esté bien configurado, para evitar ennumeracion e invites no autorizados, y luego configuro fail2ban bien afinado.
Tengo N instalaciones solo mostrando el 5060 con está receta sin problema alguno de seguridad.
Espero te sirva
Juan Oliva.
Hola , he instalado el Elastix MT pero las extensiones no pueden llamar a otras extensiones , las extension es que marco salen por la troncal de salida, se supone que deben ser enrutadas dentro del elastix ,
Espero me puedas dar un idea de lo que puede estar pasando
Saludos
juan tu aporte es muy bueno sin embargo hay muchos problemas con registro de extensiones y creación de did entrante, personalmente conseguí el registro de extensiones pero aun me falta mucho habra otra «guia total» pero esta vez para elastix MT. gracias y un saludo desde trujillo.
Buenas colegas…
Pregunto a Juan y a quien me sepa responder. Alguna indicacion para levantar Elastix MT atras de NAT?
Tengo varias instalaciones de Elastix 2.x con IP privada detras de pfsense sin ningun problema y pudiendo registrar phones desde internet, pero entiendo que ahora la parte de Asterisk no habla mas al mundo sino a traves de Kamalio via localhost.
Entonces los parametros para NAT que se agregaban en sip_general_custom.cfg imagino que no sirven mas y que lo que se deberia configurar para que soporte NAT seria el Kamalio?
Conocen algun metodo/instructivo para lograr esto? O es una practica muy descabellada poner un Elastix MT detras de NAT?
Agradezco sus experiencias y a Juan por compartir su tiempo, espacio en el blog y conocimiento para todos.
Gracias y saludos!
Hola, yo he logrado montar un servidor detras del nat, si como comentas ya no sirve de mucho el archivo de configuracion sip_general_custom.cfg, pero en las opciones de administracionde de PBX viene ya la opcion del NAT, lo que no he podido realizar es las rutas entrantes,
Buenos días llevo algunos dias intendando configurar el elastix MT, me ha funcionado el registro de extensiones, el registro del trunk, pero no me funciona las llamadas hacia el exterior, ni de dentro a fuera ni de fuera a dentro (no realiza las llamadas), si funcionan entre extensiones. Alguien me puede echar una mano? he provado de contactar con varias empresas que dan soporte y en el forum de elastix (http://forum.elastix.org/viewtopic.php?f=47&t=132211). Espero impacientemente alguna respuesta, en caso de que sea un proyecto en fase de pruevas, existe alguna otra alternativa, muchas gracias
Hola Oscar, como estas? Yo estuve jugando con Elastix 3 a principios del año dentras de un firewall y tuve algunos problemas sobre todo por el cambio stack interno en cuanto al procesamiento SIP a traves de Kamailio que no lo conocia y la falta de doc oficial en cuanto a la parte interna del Elastix 3 no ayudó mucho.
Aprovecho y te propongo que trabajemos juntos asi buscamos resolver ambos temas y de paso queda documentado aqui al menos.
Cuentame (puedes cambiar las IPs por similares x seguridad):
– como tienes instalado el Elastix en cuanto a la red. (nat, FW, LAN, WAN, DMZ)
– haz hecho debug SIP a ver qeu se ve?
– haz hecho un snif con tcpdump para ver que se ve? (ten en cuenta que lo que hace Kamailio no lo puedes ver en la consola Asterisk).
Avisame y vamos avanzando.
abrazo
De momento el servidor lo tengo en local en modo de pruevas, los trunks funcionan ja que las pruevo en otra centralita de pruevas y funcionan. Tengo unos debug echos con asterisk -rnvvvvvddddddd, tcpdump -i eth0 -n -s 0 port 5060 -vvv -w, tcpdump -s 0 -i eth0 -w, pero aparte de haber muchisima informacion no se interpretar los debugs, he provado de buscar información para saber interpretar, pero la informacion que encuentro no me es de mucha utilidad. Si me facilitas un sitio donde te los pueda dejar y los revises y asi ayudarme a interpretar dicha informacion. Algunos ficheros los tengo en pcap (wireshark) y otros en txt
Gracias
Esto te puede ser de ayuda, es el debug de sip set debug on
[Klocalhost*CLI>
[0K— (8 headers 0 lines) —
[Klocalhost*CLI>
[0K
INVITE sip:699223344@emp.com;transport=TCP SIP/2.0
Record-Route:
Record-Route:
Via: SIP/2.0/UDP 127.0.0.1;branch=z9hG4bK5489.31cb3c0ecbb15e1cb294b0ee503fdf63.0;i=1
Via: SIP/2.0/TCP 10.10.0.95:62035;rport=4574;branch=z9hG4bK-524287-1—fb5331642f97e9af
Max-Forwards: 69
Contact:
To:
From: ;tag=41405117
Call-ID: 44XFUe0yfhFZGFj-W5vX1A..
CSeq: 2 INVITE
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE
Content-Type: application/sdp
Supported: replaces, norefersub, extended-refer, timer, outbound, path, X-cisco-serviceuri
User-Agent: Z 3.9.32144 r32121
Allow-Events: presence, kpml
Content-Length: 256
v=0
o=Z 0 0 IN IP4 10.10.0.113
s=Z
c=IN IP4 10.10.0.113
t=0 0
m=audio 12902 RTP/AVP 3 110 8 0 97 101
a=rtpmap:110 speex/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv
a=nortpproxy:yes
— (17 headers 13 lines) —
Sending to 127.0.0.1:5060 (NAT)
Sending to 127.0.0.1:5060 (NAT)
Using INVITE request as basis request – 44XFUe0yfhFZGFj-W5vX1A..
Found peer ‘103_emp.com’ for ‘103_emp.com’ from 127.0.0.1:5060
[Klocalhost*CLI>
[0KFound RTP audio format 3
Found RTP audio format 110
Found RTP audio format 8
Found RTP audio format 0
Found RTP audio format 97
Found RTP audio format 101
Found audio description format speex for ID 110
Found audio description format iLBC for ID 97
Found audio description format telephone-event for ID 101
Capabilities: us – (gsm|ulaw|alaw), peer – audio=(gsm|ulaw|alaw|speex|ilbc)/video=(nothing)/text=(nothing), combined – (gsm|ulaw|alaw)
Non-codec capabilities (dtmf): us – 0x1 (telephone-event|), peer – 0x1 (telephone-event|), combined – 0x1 (telephone-event|)
Peer audio RTP is at port 10.10.0.113:12902
Looking for 699223344 in emp.com-from-internal (domain emp.com)
list_route: hop:
list_route: hop:
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 127.0.0.1;branch=z9hG4bK5489.31cb3c0ecbb15e1cb294b0ee503fdf63.0;i=1;received=127.0.0.1;rport=5060
Via: SIP/2.0/TCP 10.10.0.95:62035;rport=4574;branch=z9hG4bK-524287-1—fb5331642f97e9af
Record-Route:
Record-Route:
From: ;tag=41405117
To:
Call-ID: 44XFUe0yfhFZGFj-W5vX1A..
CSeq: 2 INVITE
Server: Asterisk PBX 11.13.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Session-Expires: 1800;refresher=uas
Contact:
Content-Length: 0
[Klocalhost*CLI>
[0KAudio is at 15568
Adding codec 100003 (ulaw) to SDP
Adding codec 100004 (alaw) to SDP
Adding codec 100002 (gsm) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
[Klocalhost*CLI>
[0K
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP 127.0.0.1;branch=z9hG4bK5489.31cb3c0ecbb15e1cb294b0ee503fdf63.0;i=1;received=127.0.0.1;rport=5060
Via: SIP/2.0/TCP 10.10.0.95:62035;rport=4574;branch=z9hG4bK-524287-1—fb5331642f97e9af
Record-Route:
Record-Route:
From: ;tag=41405117
To: ;tag=as6770c08c
Call-ID: 44XFUe0yfhFZGFj-W5vX1A..
CSeq: 2 INVITE
Server: Asterisk PBX 11.13.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Session-Expires: 1800;refresher=uas
Contact:
Content-Type: application/sdp
Require: timer
Content-Length: 277
v=0
o=root 2100248627 2100248627 IN IP4 127.0.0.1
s=Asterisk PBX 11.13.0
c=IN IP4 127.0.0.1
t=0 0
m=audio 15568 RTP/AVP 0 8 3 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
[Klocalhost*CLI>
[0KREGISTER 11 headers, 0 lines
Reliably Transmitting (NAT) to (null):
REGISTER sip:sip.infordisa.com SIP/2.0
Via: SIP/2.0/UDP 0.0.0.0:5080;branch=z9hG4bK2fef4567;rport
Max-Forwards: 70
From: ;tag=as40f41398
To:
Call-ID: 5a00676562ee46cb0dc00f8c6e6b5e86@[::1]
CSeq: 226 REGISTER
User-Agent: Asterisk PBX 11.13.0
Authorization: Digest username=»1004100″, realm=»asterisk», algorithm=MD5, uri=»sip:sip.infordisa.com», nonce=»219f37c4″, response=»0a0f562f4d1530ead9b0a9acf247a2a8″
Expires: 120
Contact:
Content-Length: 0
Buenas tardes me puse Elastix Mt, sin embargo utilizan el códec G729, pero cuando pongo los ajustes de las conexiones no salen y el error «Using SIP RPT TOS bits 184 == Using SIP RPT CoS mark 5», la forma de resolver este tipo de error?
graciosamente
saludo alguien me ayuda a configurar un servidor desde 3 cero?
elastix 3.0