OpenSER: nueva funcionalidad para gestión de respuestas 6xx

En los últimos días hubo una discusión interesante (lanzada por Iñaki, además) en las listas de OpenSER y sip-implementors a acerca de cómo tratar las respuestas 6xx ya que según la RFC3261 cuando un proxy recibe un 6xx, éste debe dar por terminada la transacción y no permitir crear ningún otro branch ya que se considera que es una respuesta de finalización completa… y sin ninguna opción de continuidad :)

Debido a que algunos UA (softphones, teléfonos IP, gateways, etc) hacen un mal uso de esta respuesta, hay casos en los que no es posible usar servicios como serial forking, crear un nuevo branch hacia un media server, etc, al recibir un 6xx cuando realmente se debería recibir un 4xx.

Después de las discusiones comentadas, Bogdan Iancu ha decidido implementar una nueva opción en el módulo TM de OpenSER que permite modificar el comportamiento del proxy al recibir un 6xx, aunque esto signifique saltarse el comportamiento estándar definido en la RFC3261. Con esta nueva opción, se puede hacer que el proxy trate un 6xx internamente como si fuese cualquier otra respuesta negativa (4xx, 5xx) permitiendo generar nuevos branches para serial forking, locuciones, etc.

This entry was posted in openser, sip, voip. Bookmark the permalink.

5 Responses to OpenSER: nueva funcionalidad para gestión de respuestas 6xx

  1. Iñaki says:

    Se me ocurre que una opción más flexible sería activar/desactivar esta característica con un FLAG. Así por ejemplo podríamos “pasar olímpicamente” de 6XX enviados por gateways tontos pero hacer caso de los 6XX cuando se producen al hacer parallel forking en una llamada a un usuario interno.

    Tal vez lo suelte por la lista de developers.

  2. victorp says:

    uff… ¿vamos a diferenciar entre 6xx malos y 6xx buenos? :-)

  3. Iñaki Baz says:

    jeje, no sé qué responder… tal vez un 6XX
    XD

  4. jesusr says:

    ¿cuando uno no sabe que responder no tiene que enviar un 500 “Internal Server Error”? :)

  5. Iñaki Baz says:

    Pero no pongas un Retry-After o te lo vuelven a preguntar…

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>