[OpenSIPS-Devel] [ opensips-Feature Requests-3538207 ] Dialog termination with BYE w/o OK

SourceForge.net noreply at sourceforge.net
Mon Jul 2 13:55:31 CEST 2012


Feature Requests item #3538207, was opened at 2012-06-26 11:46
Message generated for change (Comment added) made by vladut-paiu
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1086413&aid=3538207&group_id=232389

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: None
>Status: Closed
Priority: 5
Private: No
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: Dialog termination with BYE w/o OK

Initial Comment:
Example scenario:

UA1 - SIP-proxy - Opensips - UA2

Opensips acts as simple forwarder of requests/replies with dialog creation and topology hiding.
Sip-proxy do the authentication and registration of UAs.

UA1 initiate a session. -> .... -> session established
Now UA2 wants to leave the session and send BYE w/o auth header (cause it's first request from UA2)
Opensips sees this BYE, forward this in dialog request and terminate the dialog.
But SIP-proxy does not see auth header and respond with 407 error, this reply gets to UA2. UA2 resend BYE with auth header but Opensips can't forward it correctly because has no dialog for this request.
Result: Session hangs on UA1.

It seems to me that Opensips must terminate Dialog on timeout (i.e. one side hangs) or when OK reply is received.

Any ideas? 

Regards,
Alexander

----------------------------------------------------------------------

>Comment By: Vladut-Stefan Paiu (vladut-paiu)
Date: 2012-07-02 04:55

Message:
Hello,

This can be handled from your OpenSIPS script.
If you know your topology requires the authentication of sequential
requests, then do that on the OpenSIPS side.
The code would be something like :

if (has_totag()) {
        if (!proxy_authorize("", "subscriber")) {
                proxy_challenge("", "0");
                exit;
        }

        # do not consume credentials, so they can reach Proxy
        loose_route()
}

Regards,
Vlad

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1086413&aid=3538207&group_id=232389



More information about the Devel mailing list