El Sábado, 3 de Noviembre de 2007, Iñaki Baz Castillo escribió:
El Sábado, 3 de Noviembre de 2007, Iñaki Baz Castillo
escribió:
PD: Igual es cosa de hacerlo en plan:
insert_hf("Route: udp:IP_asterisk:5060\r\n");
pero me parece un poco... tristón.
Perdón, quería decir:
insert_hf("Route: <sip:IP_asterisk:5080;lr=on>\r\n");
Pues no sirve, resulta que si pongo ese "Route" el paquete se queda dando
vueltas por OpenSer que además no lo reconoce como loop sino como espiral,
así que acaba muriendo por "tamaño máximo".
Esta es la pinta que tiene el paquete en su iteración X:
U 2007/11/03 18:33:36.493976 82.14.0.110:5060 -> 82.14.0.110:5060
INVITE sip:route@sip.aliax.net SIP/2.0
Record-Route: <sip:82.14.0.110;lr=on;ftag=ofxby;dialog-id=5fa.eecd7482>
Route: <sip:82.14.0.111:5080;lr=on>
Record-Route: <sip:82.14.0.110;lr=on;ftag=ofxby;dialog-id=5fa.decd7482>
Route: <sip:82.14.0.111:5080;lr=on>
Record-Route: <sip:82.14.0.110;lr=on;ftag=ofxby;dialog-id=5fa.cecd7482>
Route: <sip:82.14.0.111:5080;lr=on>
Record-Route: <sip:82.14.0.110;lr=on;ftag=ofxby;dialog-id=5fa.becd7482>
Route: <sip:82.14.0.111:5080;lr=on>
Via: SIP/2.0/UDP 82.14.0.110;branch=z9hG4bKa369.f79c1404.0
Via: SIP/2.0/UDP 82.14.0.110;rport=5060;branch=z9hG4bKa369.e79c1404.0
Via: SIP/2.0/UDP 82.14.0.110;rport=5060;branch=z9hG4bKa369.d79c1404.0
Via: SIP/2.0/UDP 82.14.0.110;rport=5060;branch=z9hG4bKa369.c79c1404.0
Yo había rutado el paquete así:
insert_hf("Route: <sip:82.14.0.111:5080;lr=on>\r\n");
(allí hay un Asterisk escuchando).
Por otra parte me preocupa que esto no haya sido detectado como Loop. Según el
RFC la construcción del parámetro branch en cada transacción se basa en un
hash del from-tag, to-tag, call-id, uri, proxy-authenticacion, route. Todos
esos parámetros son iguales en todos los paquetes que rebotan, y de hecho el
branch es igual en todos:
z9hG4bKa369.e79c1404.0
Si es el mismo branch... ¿por qué no se asume como Loop como indica el RFC?
Gracias por cualquier explicación.
--
Iñaki Baz Castillo