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.