Hola.
Sigo con mi implementación de asterisk en gentoo y vengo a contar como solucionar un problemita con este…
Actualmente estoy saliendo a la Red Telefonica Básica (RTB), red de telefonia de toda la vida, por un proveedor voip.
Para enrutar llamadas por este, no hubo más problemas. Registrar nuestro asterisk con el proveedor, añadir un canal para este en sip.conf y crear un dialplan para sacar llamadas por ahi y FIN.
El problema no era ese, el problema era al intentar recibir llamadas. Tengo varios numeros DID asignados a varias extensiones de mi asterisk con lo cual es fundamental que puedan entrar llamadas, y estas lo hacian, pero solo tenia audio en 1 sentido (de dentro hacia fuera), el usuario que me llamaba yo no lo podia escuchar, el a mi perfectamente…
*Problema de NAT no era, ya que estaba trabajando fuera de un entorno con NAT
**por lo menos por mi parte, parece ser que por la del operador de números DID no
Lo primero que hice en este caso fué entrar a la consola de asterik:
asterisk -r
Y hacer un debug del protocolo RTP para ver que es lo que estaba pasando con los paquetes….
rtp set debug on
He aqui el resultado:
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014191, ts 392580221, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026450, ts 392580216, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014192, ts 392580381, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026451, ts 392580376, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014193, ts 392580541, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026452, ts 392580536, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014194, ts 392580701, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026453, ts 392580696, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014195, ts 392580861, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026454, ts 392580856, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014196, ts 392581021, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026455, ts 392581016, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014197, ts 392581181, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026456, ts 392581176, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014198, ts 392581341, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026457, ts 392581336, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014199, ts 392581501, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026458, ts 392581496, len 000160)
Got RTP packet from 192.168.10.15:16406 (type 08, seq 014200, ts 392581661, len 000160)
Sent RTP packet to 46.19.209.78:17962 (type 08, seq 026459, ts 392581656, len 000160)
Me pusé a leer de cabo a rabo el fichero sip.conf que trae asterisk de ejemplo y me encuentro con:
;directmedia=yes ; Asterisk by default tries to redirect the
; RTP media stream to go directly from
; the caller to the callee. Some devices do not
; support this (especially if one of them is behind a NAT).
; The default setting is YES. If you have all clients
; behind a NAT, or for some other reason want Asterisk to
; stay in the audio path, you may want to turn this off.
Nos dice que asterisk querrá establecer una conexión DIRECTA con el usuario que llama y el usuario que contesta a la llamada. Esto no es soportable por algunos dispositivos,especialmente si estan detrás de NAT…….. Esta opción es interesante cuando nos encontramos en un entorno LAN sin dispositivos NAT por enmedio, ya que la comunicación se hará directamente entre los 2 interlocutores. Si hay dispositivos NAT por enmedio es MUY recomendable desactivar dicha opción. (por defecto directmedia esta en YES)
Ahi tenia la respuesta…directmedia estaba en yes por defecto…. fuí al fichero sip.conf y añadí:
[general]
directmedia=off
Reinicio asterisk con:
asterisk -r
core restart now
……..Realizo la llamada desde el exterior, descuelgo el telefono que suena y olalalal!!!!! funcióna el audio en 2 sentidos..
Si ahora hacemos un: debug de rtp observamos lo siguiente….
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Sent RTP P2P packet to 46.19.209.76:19818 (type 08, len 000160)
Sent RTP P2P packet to 192.168.10.15:16410 (type 08, len 000160)
Esto es todo por hoy, espero que mis cabezazos contra la pared impidan que otros se los de por esto jeje.
Un saludo.
Share