Hola, estoy tratando de jugar un poco con el parámetro "q" y el "append_branches" (módulo "registrar") para conseguir desvío "único" y desvío paralelo.
Sé que con "append_branches" a 0 la función "lookup(location") sólo devuelve el contacto de "q" más alta, pero en caso de que haya varios con "q" igual de alta sólo devuelve 1 :( ¿No es posible que devuelva todos los de "q" más alta a la vez?
Por otra parte, según el RFC de SIP el parámetro "q" se puede usar para tratar de localizar primero a un contacto (el de "q" más alta) y si responde negativamente tratar de localizar al siguiente.
Esto OpenSer lo "insinúa": append_branches: "...is set to 1, Request-URI will be overwritten with the highest-q rated contact and the rest will be appended to sip_msg structure and can be later used by tm for forking."
No entiendo, yo he probado a registrar un usuario desde dos contactos y asignar a uno q=5.00 y a otro con q=1.00 (tb he probado sólo con valores 0.XX por si acaso) con "append_branches" a 1 y la llamada se hace a todos a la vez, ¿por qué? ¿no sería posible que sólo llame al de q más alta y si no responde entonces al siguiente?