[OpenSER-Users-ES] Problema al cancelar una llamada a 2 usuarios
Iñaki Baz Castillo
ibc at in.ilimit.es
Mon Feb 18 15:37:21 CET 2008
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).
--
Iñaki Baz Castillo
ibc at in.ilimit.es
More information about the Users-es
mailing list