Ir al contenido principal

Asterisk con WebRTC, TLS, libsrtp

 

Cześć !!

En esta ocasión vamos a explicar cómo configurar Asterisk para que desde un teléfono web podamos sacar y recibir llamadas. Se usará los siguientes componentes de Asterisk:
  • libsrtp
  • tls
  • Asterisk module http
Antes que nada debemos tener un teléfono web(obviamente), en el laboratorio vamos a usar Sipml5 en el siguiente link : https://www.doubango.org/sipml5/call.htm

El siguiente paso es instalar libsrtp del enlace: https://github.com/cisco/libsrtp .

#git clone https://github.com/cisco/libsrtp.git
#cd libsrtp
#./configure
#make && make install

Luego verificamos tener los siguientes módulos activos para compilar en menuconfig de Asterisk:
  • res_crypto
  • res_http_websocket
  • res_srtp
Comunmente si res_crypto no está selecionable, le falta la dependencia openssl-devel o su equivalente dependiendo del sistema que tengan. Cuando estemos seguros que están cargados en Asterisk continuamos con la instalación de los certificados locales(Si usa Lets'encrypt omitir la generación de certificados), para esto usaremos un script que viene incluido dentro del código fuente, este pedirá un password 3 veces, por lo que se lo damos. Se usa de la siguiente manera:

#mkdir /etc/asterisk/keys
#contrib/scripts/ast_tls_cert -C asterisk.mydomain.com -O "My Super Company" -d /etc/asterisk/keys

Seguimos con el modulo http de Asterisk. Editamos el archivo http.conf con los siguientes parametros:

[general]
bindaddr=0.0.0.0
enabled=yes
bindport=8088
tlsenable=yes
tlsbindaddr=0.0.0.0:8089
tlscertfile=/etc/asterisk/keys/asterisk.pem

si usamos LetsEncrypt usamos los certificados así:

tlscertfile=/etc/letsencrypt/archive/example1.com/fullchain1.pem
tlsprivatekey=/etc/letsencrypt/archive/example1.com/privkey1.pem


reiniciamos asterisk y verificamos que esté funcionando http ahora:

#asterisk -rx "http show status"
HTTP Server Status:
Prefix:
Server: Asterisk/13.38.1
Server Enabled and Bound to 0.0.0.0:8088

HTTPS Server Enabled and Bound to 0.0.0.0:8089

Enabled URI's:
/httpstatus => Asterisk HTTP General Status
/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
/ari/... => Asterisk RESTful API
/ws => Asterisk HTTP WebSocket

Enabled Redirects:
   None.

Y visitamos la url ssl del servicio(8089) para aceptar el certificado en nuestro navegador: https://ip-server:8089/ws si no hacemos este paso nunca tendremos conexión desde el softphone(no aplica si el certificao es oficial o LetsEncrypt). Agregamos una extensión sip con los siguientes parametros:

[100]
host=dynamic
secret=100
context=from-internal
type=friend
encryption=yes
rtcp_mux=yes
transport=udp,ws,wss
avpf=yes
force_avp=yes
icesupport=yes
directmedia=no
disallow=all
allow=ulaw
dtlsenable=yes
dtlsverify=fingerprint
dtlscertfile=/etc/asterisk/keys/asterisk.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass
rtcp_mux=yes

*Si usamos LetsEncrypt configuramos los certificados de la siguiente manera:

dtlscertfile=/etc/letsencrypt/live/example1.com//fullchain.pem
dtlscafile=/etc/letsencrypt/live/example1.com//chain.pem

Recargamos y listo. Vamos a la última etapa con el web phone sipml5. Damos clic en el boton «expert mode» y colocamos la ip del server como en la imagen:


Por último colocamos los datos correspondientes, y clic en login. Si todo sale bien veran «connected» en la parte superior.


Espero les sea útil. Do widzenia


Comentarios

Entradas populares de este blog

GNUDIALER en Asterisk

Hola Como están? GNUDIALER es un software de marcacion predictiva que nos ofrece varios modos, prediccion, modo automatico, modo preview, ademas de incluir un CRM y es muy dinamico. A pesar de que en el mercado existen muchos software de este tipo sean GNU o pagos, GNUDIALER es muy efectivo y lo mejor es GNU. Eso quiere decir que puedes modificarlo con un poco de conocimiento en lenguaje C y asterisk, bueno uno poco no, mucho conocimiento. He usado VICIDIAL en otras ocasiones y es también verdaderamente interesante, sin embargo como todo en este planeta hay ventajas y desventajas. Una de las ventajas que tiene sobre VICIDIAL(hasta el momento he podido observar en VICIDIAL) es que es mucho mas sencillo de administrar via web, puedo tener un numero ilimitado de campos en mi campaña,  puedo editar mis scripts ami antojo via web html(teniendo un conocimiento html). Desventajas es q aveces se puede comportar algo inestable si no tengo en cuenta el ratio vs cantidad de lineas vs agentes di

Instalar Queuemetrics desde 0.

Cześć. Queuemetrics a pesar de estar casi personalizada su  instalación a Centos, también puede instalarse en otros sistemas operativos, de hecho en cualquier Linux podría hacerse. A continuación describo los pasos para hacerlo. En este demo se usó Suse. Descargar los siguientes paquetes: - Queuemetrics(obviamente XD)      link http://queuemetrics.loway.it/download.jsp      formato tar.gz - Mysql connector      link https://dev.mysql.com/downloads/connector/j/      formato  "platform independent" tar.gz      debe registrarse previamente. - Tomcat      link http://tomcat.apache.org/      formato tar.gz      en este manual se instaló la version 8.5.37 - JDK      link https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html      formato tar.gz      version linux x64 Instalar: - JDK Descomprimir #tar -zxvf jdk-8u201-linux-x64.tar.gz Mover jdk a /usr/local/ #mv jdk1.8.0_201 /usr/local/ - Tomcat Descomprimir #tar -zxvf a