On Tuesday 15 January 2008 17:36:32 andresdb(a)adinet.com.uy wrote:
Adjunto output de ngrep.
Fíjate que cuando OpenSer envía el INVITE a Asterisk nunca recibe respuesta y
lo reenvía una y otra vez:
U 2008/01/15 14:43:54.789503 200.40.xxx.xxx:5060 -> 192.168.0.7:5060
INVITE sip:751@192.168.0.7:5060 SIP/2.0
Record-Route: <sip:200.40.xxx.xxx;lr=on;ftag=426df431>
Via: SIP/2.0/UDP 200.40.xxx.xxx;branch=z9hG4bK7eaa.c54b1b32.0
Via: SIP/2.0/UDP
190.132.174.235:19352;branch=z9hG4bK-d87543-ad46ba1a844e6f5e-1--d87543-;rport=19352
- Lo relevante de ahí es que OpenSer tiene dos IP's, la pública y la privada.
- OpenSer envía el INVITE a Asterisk por la eth privada pero indica en el Via
la IP pública (y el UAS receptor, Asterisk) debe responder a la IP en el Via.
- Intuyo un conflicto de rutado. ¿Es la máquina OpenSer también el router y
puerta de enlace de los equipos de la LAN?
- También hay que ver cómo reacciona Asterisk porque o bien ni siquiera
responde o bien la respuesta es enviada pero no llega a la máquina OpenSer de
ninguna forma (no se ve en el ngrep). Para ello habilita el sip debug en
Asterisk:
CLI>sip set debug on
CLI>core set debug 4
CLI>core set verbose 4
y captura lo que ocurre en el INVITE fallido.
- Por cierto, el peer de OpenSer en Asterisk, ¿está definido con nat=yes?
Creo que la solución es que OpenSer ponga en el Via la IP privada por la que
sale y creo que existe alguna función para ello, pero no sé ahora cuál.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es