[prev in list] [next in list] [prev in thread] [next in thread]
List: sip-implementors
Subject: Re: [Sip-implementors] REFER's implicit subscription times out.Resubscribe how?
From: Paul Kyzivat <pkyzivat () cisco ! com>
Date: 2006-07-26 21:19:02
Message-ID: 44C7DC46.10402 () cisco ! com
[Download RAW message or body]
In sip, all subscriptions have an expiration time. Normally that time is
negotiated between the UAC and UAS with headers in the SUBSCRIBE and the
response to it.
The implicit subscription for REFER is a bit of a hack. As a result,
there is no provision for negotiating the expiration time. The UAC has
to depend on the UAS telling it the expiration time. It will learn this
when it receives the first NOTIFY. The first NOTIFY is supposed to be
send right away when the subscription is established, so there should be
no significant delay. (BUT, between the time when the REFER is sent and
the time when the first NOTIFY is received, the UAC has no idea what the
expiration time will be.)
The expiration time for the subscribe need have no relationship to the
lifetime of the referred INVITE. The UAS has to pick a value, typically
without knowing how long it will need to be. Also typically the UAS will
send a final NOTIFY terminating the subscription when the referred
request completes. But it doesn't have to do so. It could leave it
indefinitely, or at least until the referred call completes. (Though
once the REFER has been satisfied it isn't clear what further NOTIFYs
there might be.) Its also possible that the expiration time might be
short, and run out while the referred call is still ringing. That is
probably the case when the UAC might want to refresh it.
A *nice* UAS will probably set the expiration time longer than it would
ever allow the REFER to remain incompleted, so the UAC will *probably*
never need to do a refresh. But its up to you whether you want to trust
that all the UASs you deal with are "nice".
Paul
Kedar Karmarkar wrote:
> What does the subscription timeout consist of, is it mostly the terminating
> ring timeout and some processing delay?
>
> In the telecom world, the transferor is in effect, indefinately subscribed
> to the state of the transferee, unless the transferor gets tired and hangs
> up, or the transferee does'nt pick the call. In that sense, so long as the
> transferee ring timeout has not expired, the "subscription" does not expire,
> hence on the SIP side, the subscription interval is probably of the order
> of the ring timeout plus processing time, and in that case, requesting an
> extention is probably not going to be of much use, as an expired
> subscription logically means that the transferee did not pick the call on
> time. Is this argument accurate?
>
> Kedar
>
> On 7/26/06, Frank Shearar <frank.shearar@angband.za.org> wrote:
>> My first recommendation below is bogus. That is, RFC 3265 says in section
>> 3.1.1 that
>>
>> 200-class responses to SUBSCRIBE requests also MUST contain an
>> "Expires" header. The period of time in the response MAY be shorter
>> but MUST NOT be longer than specified in the request. The period of
>> time in the response is the one which defines the duration of the
>> subscription.
>>
>> so the transferee ALWAYS uses expiry with REFER. Thus, the transferor had
>> better resubscribe timeously.
>>
>> frank
>>
>> ----- Original Message -----
>> From: "Frank Shearar" <frank.shearar@angband.za.org>
>> To: "SIP Implementors" <sip-implementors@cs.columbia.edu>
>> Sent: Wednesday, July 26, 2006 10:18 AM
>> Subject: Re: [Sip-implementors] REFER's implicit subscription times
>> out.Resubscribe how?
>>
>>
>>> As Somesh says, a REFERred UA typically ends the subscription with
>>> reason=noresource.
>>>
>>> I think the lesson here is that, as RFC 3515 says, the subscription is
>>> implicit, and doesn't have a fixed expiry date. It expires when the far
>> side
>>> succeeds, fails or declines the transfer.
>>>
>>> Thus, I'd say that ideally (using call transfer terminology)
>>> (a) the transferee shouldn't use expiry at all with REFER, and
>>> (b) if she does, the transferor had better make sure she resubscribes to
>> the
>>> REFER timeously.
>>>
>>> Thanks!
>>>
>>> frank
>>>
>>> ----- Original Message -----
>>> From: "Paul Kyzivat" <pkyzivat@cisco.com>
>>> To: "Frank Shearar" <frank.shearar@angband.za.org>
>>> Cc: "SIP Implementors" <sip-implementors@cs.columbia.edu>
>>> Sent: Tuesday, July 25, 2006 6:51 PM
>>> Subject: Re: [Sip-implementors] REFER's implicit subscription times out.
>>> Resubscribe how?
>>>
>>>
>>>> Yes, in this case you are out of luck. You can't get back to that
>>>> subscription.
>>>>
>>>> Paul
>>>>
>>>> Frank Shearar wrote:
>>>>> Following on from my previous question, say I send A a REFER. A
>> tells
>> me
>>> the
>>>>> subscription's duration. I'm too lazy to respond quick enough with a
>>>>> resubscription, and A sends me a NOTIFY with "Subscription-State:
>>>>> terminated;reason=timeout".
>>>>>
>>>>> How can I resubscribe?
>>>>>
>>>>> Remember that RFC 3515 says "follow the procedure in RFC 3265". RFC
>> 3265
>>>>> says in section 3.2.4 "Subscriber NOTIFY Behavior"
>>>>>
>>>>> timeout: The subscription has been terminated because it was not
>>>>> refreshed before it expired. Clients MAY re-subscribe
>>>>> immediately. The "retry-after" parameter has no semantics for
>>>>> "timeout".
>>>>>
>>>>> Of course, if you try that with a REFER you end up creating a
>> SUBSCRIBE
>>> with
>>>>> "Event: refer" that does not match any existing subscription, and A
>>> rightly
>>>>> rejects the SUBSCRIBE with a 403 Forbidden (as per RFC 3515 section
>>> 2.4.4).
>>>>> Is it simply the case that you CAN'T resubscribe this implicit
>> REFER?
>> If
>>> I
>>>>> sent another REFER, it's not quite the same as a normal SUBSCRIBE.
>> (I'm
>>> not
>>>>> asking for state change notifications, I'm asking A to do
>> something.)
>>>>> frank
>>>>>
>>>>> _______________________________________________
>>>>> Sip-implementors mailing list
>>>>> Sip-implementors@cs.columbia.edu
>>>>> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
>>>>>
>>> _______________________________________________
>>> Sip-implementors mailing list
>>> Sip-implementors@cs.columbia.edu
>>> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
>>>
>> _______________________________________________
>> Sip-implementors mailing list
>> Sip-implementors@cs.columbia.edu
>> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
>>
> _______________________________________________
> Sip-implementors mailing list
> Sip-implementors@cs.columbia.edu
> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic