Buenos días:
Tengo el siguiente escenario. Registro dos sip-phones con la misma sipUri. Les hago una llamada desde otro sip-phone y los INVITE llegan bien a ambos. El problema llega, cuando quiero cancelar la llamada desde uno de ellos, ya que hasta que no cuelga el segundo el Openser no lo envía al llamante. Necesito poder mandarle el mensaje 480 al llamante cuando llega del primero de los llamados, y no esperar al segundo, y no sé si se podría hacer. Si alguien tiene alguna idea se lo agradezco. Un saludo.
El Monday 18 February 2008 13:18:53 David Vicente escribió:
Buenos días:
Tengo el siguiente escenario. Registro dos sip-phones con la misma sipUri. Les hago una llamada desde otro sip-phone y los INVITE llegan bien a ambos. El problema llega, cuando quiero cancelar la llamada desde uno de ellos, ya que hasta que no cuelga el segundo el Openser no lo envía al llamante. Necesito poder mandarle el mensaje 480 al llamante cuando llega del primero de los llamados, y no esperar al segundo, y no sé si se podría hacer. Si alguien tiene alguna idea se lo agradezco. Un saludo.
Creo que este post que escribí en su día te viene que ni pintado ;) http://blog.aliax.net/2007/09/cdigos-sip-de-respuesta-en-parallel.html
Iñaki Baz Castillo escribió:
El Monday 18 February 2008 13:18:53 David Vicente escribió:
Buenos días:
Tengo el siguiente escenario. Registro dos sip-phones con la misma sipUri. Les hago una llamada desde otro sip-phone y los INVITE llegan bien a ambos. El problema llega, cuando quiero cancelar la llamada desde uno de ellos, ya que hasta que no cuelga el segundo el Openser no lo envía al llamante. Necesito poder mandarle el mensaje 480 al llamante cuando llega del primero de los llamados, y no esperar al segundo, y no sé si se podría hacer. Si alguien tiene alguna idea se lo agradezco. Un saludo.
Creo que este post que escribí en su día te viene que ni pintado ;) http://blog.aliax.net/2007/09/cdigos-sip-de-respuesta-en-parallel.html
Muchas gracias por el enlace, muy claro. Ante esto sólo me queda preguntar si habría alguna posibilidad de manejar una señal 4XX a ese mensaje y forzar la cancelación de las otras patas, aunque no se deba, aunque por lo que he leído me temo que no. Sino habrá que hacerse un poquito de ajo y agua.
Gracias de nuevo.
El Monday 18 February 2008 15:28:48 David Vicente escribió:
Iñaki Baz Castillo escribió:
El Monday 18 February 2008 13:18:53 David Vicente escribió:
Buenos días:
Tengo el siguiente escenario. Registro dos sip-phones con la misma sipUri. Les hago una llamada desde otro sip-phone y los INVITE llegan bien a ambos. El problema llega, cuando quiero cancelar la llamada desde uno de ellos, ya que hasta que no cuelga el segundo el Openser no lo envía al llamante. Necesito poder mandarle el mensaje 480 al llamante cuando llega del primero de los llamados, y no esperar al segundo, y no sé si se podría hacer. Si alguien tiene alguna idea se lo agradezco. Un saludo.
Creo que este post que escribí en su día te viene que ni pintado ;) http://blog.aliax.net/2007/09/cdigos-sip-de-respuesta-en-parallel.html
Muchas gracias por el enlace, muy claro. Ante esto sólo me queda preguntar si habría alguna posibilidad de manejar una señal 4XX a ese mensaje y forzar la cancelación de las otras patas, aunque no se deba, aunque por lo que he leído me temo que no. Sino habrá que hacerse un poquito de ajo y agua.
No creo que haya forma. Al menos yo lo pregunté en mis inicios en la lista openser en inglés y la respuesta fue que no se puede. Aunque todo es probarlo. Así en plan idea feliz se me ocurre: - Asignar un "t_reply" para investigar las respuestas. - En su "on_brachroute" correspondiente mirar si se recibe un 4XX y en ese caso poner el AVP del timer del TM a 0.
Para esto sería necesario poner:
modparam("tm", "fr_inv_timer_avp", "$avp(AVP_INV_TIMER)") # Para que OpenSer cancele la llamada pasado el "fr_inv_timer": modparam("tm", "noisy_ctimer", 1)
Y en el "on_replyroute" hacer en plan:
$avp(AVP_INV_TIMER) = 0;
(aunque no creo que funcione).
sr-users-es@lists.kamailio.org