Hola a todos,
Tengo entendido que para que TODOS los mensajes siguentes al INVITE pasen por mi proxy, debo agregar un "Via" en el cual esté la ip de server para que pasen por mí todos los mensajes. Ésto lo entiendo, la pregunta es: ¿Cómo lo hago? Por cuestiones de billing necesito tener la garantía de que pasarán por mi proxy todos los mensajes para el ACC. En mi cfg (que obtuve en principio de sipwise) sólo veo un "record_route" en un if REGISTER:
if (!method=="REGISTER") record_route();
Pero creo que ésto simplemente guarda la información respecto a dónde se encuentra el cliente... a lo mejor me estoy enrredando sólo, porque he visto la documentación y dice que agrega un Record-route header... pero.. ¿porqué en el REGISTER? ¿No debería ser en el INVITE?
Muchas gracias
david
2008/2/25 David Villasmil david.villasmil.work@gmail.com:
Hola a todos,
Tengo entendido que para que TODOS los mensajes siguentes al INVITE
pasen por mi proxy, debo agregar un "Via" en el cual esté la ip de server para que pasen por mí todos los mensajes. Ésto lo entiendo, la pregunta es: ¿Cómo lo hago? Por cuestiones de billing necesito tener la garantía de que pasarán por mi proxy todos los mensajes para el ACC. En mi cfg (que obtuve en principio de sipwise) sólo veo un "record_route" en un if REGISTER:
if (!method=="REGISTER") record_route();
Pero creo que ésto simplemente guarda la información respecto a dónde se encuentra el cliente... a lo mejor me estoy enrredando sólo, porque he visto la documentación y dice que agrega un Record-route header... pero.. ¿porqué en el REGISTER? ¿No debería ser en el INVITE?
Si te fijas, tienes un (!) delante, lo que quiere decir que harás el record_route en cuanquier mensaje que NO sea un REGISTER.
Muchas gracias
david
Users-es mailing list Users-es@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
El Lunes, 25 de Febrero de 2008, David Villasmil escribió:
Hola a todos,
Tengo entendido que para que TODOS los mensajes siguentes al INVITE
pasen por mi proxy, debo agregar un "Via" en el cual esté la ip de server para que pasen por mí todos los mensajes.
No, no confundamos transaccionescon diálogos. Una transacción es un mensaje SIP (INVITE, REFER, MESSAGE, BYE, OPTIONS....) y sus respuestas (100, 180. 183, 200, 404, 500, 503, 603...).
Las respuestas de una transacción SIEMPRE vuelven por el camino reverso que hizo el request, gracias a seguir inversamente las cabeceras "Vía" que se fueron añadiendo en cada nodo SIP. Eso es así siempre y nada tiene que ver, repito, NADA, con el rutar otras transacciones in-dialog por el mismo sitio.
Buena doc al respecto: http://4z.com/people/emin-gabrielyan/public/070412-SIP-record-route http://www.switzernet.com/people/emin-gabrielyan/070410-SIP-transactions/
Léete esos dos enlaces con calma y paciencia, te garantizo que hay que entenderlo muy muy bien o tendrás este tipo de dudas.
Hola David,
Tengo entendido que para que TODOS los mensajes siguentes al
INVITE pasen por mi proxy, debo agregar un "Via" en el cual esté la ip de server para que pasen por mí todos los mensajes. Ésto lo entiendo, la pregunta es: ¿Cómo lo hago? Por cuestiones de billing necesito tener la garantía de que pasarán por mi proxy todos los mensajes para el ACC. En mi cfg (que obtuve en principio de sipwise) sólo veo un "record_route" en un if REGISTER:
if (!method=="REGISTER") record_route();
Pero creo que ésto simplemente guarda la información respecto a dónde se encuentra el cliente... a lo mejor me estoy enrredando sólo, porque he visto la documentación y dice que agrega un Record- route header... pero.. ¿porqué en el REGISTER? ¿No debería ser en el INVITE?
Una cosa es el VIA y otra el Record-Route. El VIA indica el transporte (TCP o UDP) y el camino de vuelta que se debe seguir para las respuestas a una request. Por ejemplo, el camino de vuelta para un 100, 180, 200 o cualquier otra respuesta.
El Record-Route indica el camino que deben seguir las "subsquent requests" de un diálogo.
Si te quieres asegurar de que toda la señalización siempre pase por tu proxy, usa la función record_route() como tienes arriba.
Saludos JesusR.
------------------------------------ Jesus Rodriguez VozTelecom Sistemas, S.L. jesusr@voztele.com http://www.voztele.com Tel. 902360305 -------------------------------------
Hola David,
2008/2/25 David Villasmil david.villasmil.work@gmail.com:
Tengo entendido que para que TODOS los mensajes siguentes al INVITE
pasen por mi proxy, debo agregar un "Via" en el cual esté la ip de server para que pasen por mí todos los mensajes. Ésto lo entiendo, la pregunta es: ¿Cómo lo hago? Por cuestiones de billing necesito tener la garantía de que pasarán por mi proxy todos los mensajes para el ACC. En mi cfg (que obtuve en principio de sipwise) sólo veo un "record_route" en un if REGISTER:
if (!method=="REGISTER") record_route();
Básicamente, la cabecera Via se usa para determinar donde mandar las respuesta a una petición. Record-Route se usa para construir una ruta, que se usa para determinar donde mandar las siguientes peticiones para un mismo dialog.
Pegale un vistazo al RFC3261: -Section 8.1.1.7, "Via" -Section 16.12, "Summary of Proxy Route Processing"
No son demasiado largas y hay algunos ejemplos donde queda bastante claro.
Para lo que tú necesitas, por lo que he entendido, ya te debería ir bien como lo tienes :-)
Saludos,
sr-users-es@lists.kamailio.org