Skip to main content

Discussion of event type for "orphaned" dialogs

5 replies [Last post]
niklasuhrberg
Offline
Joined: 2004-11-02

Hi, this is a continuation of a discussion of an event type for "orphaned dialogs" by which I mean a dialog that is represented in the SIP RA but for which the participants have "lost attention".
Think for example of a phone call where the user agents crash and there is a JSLEE B2BUA in between maintaining dialog state.

Problem: How to support applications to be notified when a dialog has existed for long enough to delete it because it is considered garbage.

In JSIP 1.2 there is the javax.sip.DialogTerminatedEvent which seems suitable for this.
It has no associated sip request or response which corresponds to the situation.
It should therefore be reasonable to motivate an event type corresponding to this event which is delivered on a dialog activity.

Is there any configuration property in JSIP 1.2 to specify when the stack will delete orphaned dialogs and call the SipListener.processDialogTerminated method? (Ranga, Ivelin?) Will it ever do this?

Even if there is this is a tricky subject because it is very specific to each application how long a dialog is expected to exist.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
ivelin
Offline
Joined: 2003-07-13

DialogTerminatedEvent looks like the right event to send. TimeoutEvent is another option, but it may be lower level than an SBB needs.

Ranga should confirm, but I don't think JSIP 1.2 has a public API for setting the timeout period. Neither does the JSIP RI. Dialog timeouts are set in SIPTransaction
protected final void SIPTransaction.enableTimeoutTimer();

I guess if it is required, that could be made configurable.

Ivelin

mranga
Offline
Joined: 2003-06-06

Sorry, missed this one. I think yes the Dialog terminated event would suffice. However, there is going to potentially be a long time between terminated state and the time that the event is seen. This is because the Dialog needs to be kept in memory for a while after it enters the terminated state in order to prevent stray requests that belong to the terminated dialog from being seen by the application. I keep it around for 32 seconds. We can add a NIST speicific property to control the time it sticks around but the balancing act is between that and shielding the application.

Ranga

niklasuhrberg
Offline
Joined: 2004-11-02

I updated the Wiki page with this event and some documentation under the "Timeouts" heading.
This was part of the Word document that circulated earlier on.

I have also added this event to the descriptors being produced as part of the SIP RA implementation.

Yell if you have any objections...

ivelin
Offline
Joined: 2003-07-13

so do we need the timeout to be configurable as Ranga offered or stick to the default until someone complains?

niklasuhrberg
Offline
Joined: 2004-11-02

A default should be much longer than 32 seconds, otherwise dialogs where no messaging has occurred during the last 32 seconds will be terminated.

I suggest that it should be configurable and the easiest way is to do it in the stack.