Huelsemann, Martin wrote:
> Yes, describing it in the way you did it makes sense. So for a pure internet 
> service also IMO it would work.
> 
> But another nice side effect of the usage of PUBLISH would have been, that it 
> would have been interworkable with solutions in (the usual) other networks, 
> where there are explicit suspend and resume requests. And as the gateways 
> won't be stateful regarding CC, it will not be possible to map a un-subscribe 
> and re-subscribe in a suspend or resume request.

Why isn't the subscribe/unsubscribe sufficient for driving the 
interworking with other networks?

> So for PUBLISH, do you think it's generally a bad implementation, or do you 
> think it is too much overhead for only sus/res, but that under the aspect of 
> interworking it could however be an acceptable solution?

I'm inclined to invoke Occam's Razor here - the PUBLISH introduces extra 
machinery that (IMO) adds no extra value.)

        Paul

> BR, Martin
> 
> 
> 
> 
>> -----Ursprüngliche Nachricht-----
>> Von: Paul Kyzivat [mailto:[EMAIL PROTECTED] 
>> Gesendet: Freitag, 30. Mai 2008 15:32
>> An: Hülsemann, Martin
>> Cc: [email protected]; Alexeitsev, Denis
>> Betreff: Re: AW: AW: [BLISS] Use of the PUBLISH transaction 
>> for the SUS/RESprocedures
>>
>>
>>
>> Huelsemann, Martin wrote:
>>>> My assumption is that things move up the queue based on 
>> time and the 
>>>> removal of old and completed entries. So there could indeed 
>>>> be an entry 
>>>> at the top of the queue for which there is no subscription 
>> and so no 
>>>> notification. In that situation I would assume that you would 
>>>> notify the 
>>>> next lower entry in the queue that has a subscription, and 
>> accept the 
>>>> resulting call.
>>>
>>> But if you notify the 2nd entry in the queue, that can only 
>> mean that the state of the this entry has changed from 
>> 'queued' to 'ready-for-CC', otherwise there would be no 
>> notification. And that change of the state of the 2nd can 
>> only have resulted from a change of the state of the top 
>> entry, which must have changed from 'queued' to 'suspended' 
>> somehow. The only event what could have changed the state is 
>> the receiving of the unsubscribe, which means that there is 
>> some kind of RPC combined with the unsubsribe.
>>> This was approximately the argumentation of some colleagues 
>> when we discussed this some time ago, when our proposal also 
>> was to simply un-subscribe and re-subscribe for sus/res. And 
>> that's why we came up with a proposal for the explicit 
>> sus/res procedures now.
>>
>> My take on this is that there should be no *direct* causative 
>> connection 
>> between the subscription and the state of the element being 
>> subscribed. 
>> As I recall, and early proposal had a parameter on the 
>> subscribe request 
>> that manipulated the state explicitly, and that seemed very wrong.
>>
>> But IMO there is nothing wrong with the server having a *policy* for 
>> determining the state of the entries in the queue. And the policy can 
>> take into account whatever data it wants, including the presence of 
>> subscriptions to particular entries in the queue.
>>
>> So for instance suppose that A, B, and C have made unsuccessful call 
>> attempts, and have been queued in that order. Each subscribed 
>> immediately after its attempt, and received an initial 
>> notification, but 
>> the callee has remained busy, so none has been given permission to do 
>> CC. All entries are in the 'queued' state.
>>
>> Then A becomes busy and unsubscribes. This doesn't change its formal 
>> state at all, but then it doesn't matter, since nobody is 
>> observing it 
>> anyway. Its still queued. Non-visible state, available to the policy 
>> engine but not subscribers, indicates that there is no subscription.
>>
>> At that point, the callee becomes available. The policy 
>> engine examines 
>> the queue and picks an entry to be the CC candidate. It 
>> chooses B, based 
>> on queue ordering and presence of a subscription. So the state of B's 
>> entry is changed to 'ready-for-CC'. Because that entry's state has 
>> changed, it generates a NOTIFY.
>>
>> Now at that point, before B's CC attempt has succeeded or 
>> timed out, A 
>> may subscribe again. This does not change the event state of 
>> A's entry 
>> immediately. So the initial NOTIFY for this subscribe still 
>> says 'queued'.
>>
>> Lets suppose that B never responds, and so the window of 
>> opportunity for 
>> B closes. The policy engine in the server may then change the 
>> state of 
>> B's entry back to 'queued', or may remove it. Lets assume its 
>> removed. B 
>> gets a final notification to that effect.
>>
>> Now the policy engine notes that the callee is still available and 
>> nobody in the queue has been chosen for CC. So again it uses 
>> queue order 
>> and presence of subscription to pick an entry. This time it 
>> picks A. So 
>> A's entry state is changed to 'ready-for-CC' and A gets a 
>> NOTIFY to that 
>> effect.
>>
>> Does that make sense?
>>
>>      Thanks,
>>      Paul
>>
> 
_______________________________________________
BLISS mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/bliss

Reply via email to