[OpenSIPS-Devel] [opensips] pua_dialoginfo: failed calls triggers sending PUBLISH errors (#142)

Ovidiu Sas notifications at github.com
Thu Nov 28 00:57:08 CET 2013


If a call fails without receiving a provisional reply first, it will trigger an error:
ERROR:pua_dialoginfo:dialog_publish: sending publish failed for pres_uri [SIP URI] to server [SERVER]

The issue here is that the call is in trying state and then is terminated.
If we set:
modparam("pua_dialoginfo", "publish_on_trying", 1)
the error doesn't occur because an initial PUBLISH is sent for trying.

If the "publish_on_trying" parameter is not set (the default value being 0), then the first PUBLISH is sent when the dialog is terminated.  The PUBLISH has an expiration set to 0 and since there was no previous states published before, pua does not send any PUBLISH, hence the error.

The relevant pua code (pua/send_publish.c send_publish_int):
    if(presentity== NULL)
    {
        if(publ->expires== 0)
        {
            LM_DBG("request for a publish with expires 0 and"
                    " no record found\n");
            goto error;
        }


The fix should be in pua_dialoginfo, there should be no PUBLISH sent out when:
 - the call is transitioning from early to terminated;
 - the publish_on_trying parameter is set to 0.

To test this, a call should be made to a SIP device that will reject the call without sending any 18x provisional replies first.


Regards,
Ovidiu Sas


---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/issues/142
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/devel/attachments/20131127/ab4fc27d/attachment.htm>


More information about the Devel mailing list