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
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
#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
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:
*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
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
Publicar un comentario