[OpenSER-Users-ES] Duda en ejemplo de SipServlet (el SUBSCRIBE del "Call Schedule on Busy or No Answer")

Iñaki Baz Castillo ibc at aliax.net
Sun Dec 16 13:27:22 CET 2007


Hola, estoy empezando a leer la doc de SipServlets [1] y me he atascado en un 
ejemplo muy chulo, el de "Call Schedule on Busy or No Answer".

El punto 11 no lo entiendo:

  11. The service sends a SIP SUBSCRIBE request to Bob’s SIP UA. This will
        allow the service to know when Bob becomes available again.
  12. Bob’s UA accepts the subscription.

El asunto es que el servidor de aplicaciones previamente, haciendo de B2BUA 
(aunque entiendo que no es necesario en este caso), había recibido un 486 del 
destino y lo había transformado en 302 para ofrecer al llamante la historia 
del formulario web y tal.

Entonces dice que el servidor de aplicaciones envía un SUBSCRIBE para recibir 
un NOTIFY del llamado cuando éste vuelva a estar disponible.

Me gustaría entender la naturaleza de este SUBSCRIBE ya que el tema de la 
presencia SIMPLE no está, que yo sepa, nada ligado a la disponibilidad de 
atender una llamada (depende de la implementación de cada UAS).

Es decir, que un teléfono no tenga líneas disponibles (o 
tenga "CallWaiting=no") no implica que cuando vuelva a estar disponible 
publique un nuevo estado de presencia.

De hecho, lo único que he visto que se le medio-parece es el XLite/Eyebeam que 
envía un PUBLISH ("online/offline" - "On the phone") cuando está en una 
llamada y al acaba dicha llamada envía un nuevo PUBLISH sin el "On the 
phone". Pero esto ni siquiera implica que no pueda aceptar llamadas en ese 
estado (CallWaiting=yes). En cualquier caso el servidor de aplicaciones sólo 
genera el SUBSCRIBE si había recibido 486 así que en este punto no hay 
problema.

Mi gran duda es: ¿se puede enviar un SUBSCRIBE a **cualquier** tfno SIP (los 
clásicos Linksys, Thomson, Snom, softphones...) y que dicho tfno envíe un 
NOTIFY cuando acepte llamadas? ¿Cómo es el "Event" de ese SUBSCRIBE?

He comprobado que muchos tfnos tienen un "Allow: [...] SUBSCRIBE", pero 
pensaba que era para el tema del REFER (notificación del resultado de la 
transferencia) no para el caso que comento.


Gracias por cualquier aclaración sobre esto y un saludo.



PD: No viene al caso, pero ahora que me fijo el "Allow" de un Linksys PAP2 no 
tiene SUBSCRIBE:

  User-Agent: Linksys/PAP2-2.0.12(LS).
  Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER.

Sin embargo el REFER funciona perfectamente y esas cosas ¿?¿? (me tendré que 
leer de nuevo la teoría por si se me ha escapado algo).



[1] http://www.wesip.com/mediawiki/API/sipservlet-1.0-fcs.pdf



-- 
Iñaki Baz Castillo




More information about the Users-es mailing list