El 21/08/07, Saúl Ibarra <saghul(a)gmail.com> escribió:
Luego al final, si no ha entrado por ninguno de los if
se comprueba el
alias, el location, y se hace relay. Esa parte no me gusta, y quiero
tratar cada mensaje explicitamente, por lo tanto, que pasaria si no
dejo los UPDATE y PRACK? Parecen "opcionales"...
Desconozco de momento para qué sirven el UPDATE y PRACK (tengo cierta
idea pero no la suficiente), pero algo me dice que son mensajes
"in-dialog" en cuyo caso recuerda que no hay ni que comprobar
"alias",
ni "location", sólo hacer relay (o pedir auth en caso del REFER).
Es decir, te digo algo que seguro ya sabes, pero por si acaso:
Los mensajes fuera de diálogo van a la dirección "bonita" del usuario en plan:
INVITE sip:500@dominio.org
MESSAGE sip:500@dominio.org
SUBSCRIBE
sip:dominio.org
PUBLISH sip:500@dominio.org
OPTIONS sip:500@dominio.org
Pero los mensajes dentro de diálogo van directamente a la URI indicada
previamente en la cabecera "Contact":
ACK sip:500@82.84.173.243:5080
REFER sip:800@82.84.173.243:5080
BYE sip:800@82.84.173.243:5080
INVITE sip:800@82.84.173.243:5080 <-- re-INVITE (poner en espera)
INFO sip:800@82.84.173.243:5080 (envío de un DTMF)
NOTIFY sip:800@82.84.173.243:5080 (para notificar el resultado de
una transferencia solicitada previamente con un REFER)
Es decir, estos mensajes dentro de diálogo ya van directamente a la
dirección exacta del destino y no hace falta investigar si son alias o
si están en location.
Saludos.
--
Iñaki Baz Castillo
<ibc(a)aliax.net>