Hi Daniel,
The terminate_dlg() function is exclusively used via the dialog API (it
is not internally used by the dialog module).
The only module that uses the function via the dialog API is the
rtpproxy module, which is testing the return code in a convenient way (
< 0 -> error).
So, returning 1 (instead of 0) for dialog not found should not break
anything right now.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 15.07.2016 19:59, Daniel Zanutti wrote:
Actually I did register to receive the dialog callback and it's
working fine.
The problem happens when I receive a 200 OK of the Invite,
simultaneously with BYE. On BYE i delete the call from my controls,
then process the 200 OK, dialog has all info of the call and I load it
back. I'm not sure if it's a bug but the fact is that I need to check
if dialog still exist.
Will it embarrass so much the system to return a different positive value?
On Fri, Jul 15, 2016 at 12:48 PM, Bogdan-Andrei Iancu
<[email protected] <mailto:[email protected]>> wrote:
Hi,
Why don't you register dialog callback to get notified when the
call is terminated ? in this case, the dialog module will trigger
you if a call gets terminated (expired or bye'ed)
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 15.07.2016 17:58, Daniel Zanutti wrote:
Hi Bogdan
I developed a billing mecanism to control how long calls can
last, so I need to keep tracking all calls until they hangup.
Every X seconds, I check all calls on Opensips and hangup some of
them if necessary.
For some reason (maybe a bug), some random calls (1 in a 1M or
more) still exist in my mecanism after call is hangup, so I try
to hangup this call using terminate_dlg() and wait until I
receive a trigger from dialog module, confirming that it is
finalized. In fact, I never receive the trigger from dialog
module, because the call no longer exist and I have no way to
check this.
I think just changing the terminate_dlg function to return any
number that identifies this dialog is no longer valid, it's OK to
me and I can remove this call from my structure. A possibility to
check if call is UP would be even better.
What do you think can be done?
Thanks for responding.
On Thu, Jul 14, 2016 at 1:18 PM, Bogdan-Andrei Iancu
<[email protected] <mailto:[email protected]>> wrote:
Hi Daniel,
Indeed, there is none. Why is so important to know if the
dialog really existed ? you want to know if it was terminated
by YOU and not by something else prior to your terminate_dlg() ?
We may consider returning a different positive code if no
dialog was found.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 13.07.2016 21:21, Daniel Zanutti wrote:
Hi
Anyone could please help on this?
Thanks
On Mon, Jul 11, 2016 at 3:23 PM, Daniel Zanutti
<[email protected] <mailto:[email protected]>>
wrote:
Hi
I need to confirm if a call is UP and terminate it from
my code. I have previously stored callid, h_entry and
h_id on an internal list, so I'm executing at a specific
time:
dlg_api.terminate_dlg(h_entry, h_id);
If the call is still running, it works nicely and hangup
the call. If there is a problem, I get a negative value
and solve too. The problem is if the call is not up
anymore, I get a return == 0. This is the code of
terminate_dlg function:
struct dlg_cell * dlg = NULL;
dlg = lookup_dlg(h_entry, h_id);
if(!dlg)
return 0;
This function "lookup_dlg" isn't exported.
Is there anyway to confirm if the call is still running,
if I have these values Callid, h_entry and h_id?
Thanks!
_______________________________________________
Devel mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
_______________________________________________
Devel mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel