<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Bogdan<br>
<br>
I find a solution but I'm not sure this is a good one.<br>
When the callee sends BYE, it is handled as a request and dlg_onreq()
is called.<br>
In dlg_onreq(), teh code checks if there is a tag in To header. If this
is the case the messaged is not handled:<br>
<br>
void dlg_onreq(struct cell* t, int type, struct tmcb_params *param)<br>
{<br>
...<br>
s = get_to(req)->tag_value;<br>
if (s.s!=0 && s.len!=0)<br>
return;<br>
...<br>
}<br>
<br>
I propose to modify as follow:<br>
<br>
void dlg_onreq(struct cell* t, int type, struct tmcb_params *param)<br>
{<br>
...<br>
s = get_to(req)->tag_value;<br>
if (s.s!=0 && s.len!=0)<br>
{<br>
<b>dlg_onroute(req, 0, 0);</b>
<-------------------------------------<br>
return;<br>
}<br>
...<br>
}<br>
<br>
The dlg_onroute() function will handle the BYE message.<br>
<br>
What do you think?<br>
<br>
Regards,<br>
Michel.<br>
<br>
<br>
Michel Bensoussan wrote:
<blockquote cite="mid45FD0588.8010507@extricom.com" type="cite">Hi
Bogdan
<br>
<br>
This is what I'm doing.
<br>
<br>
As you can see in the INVITE message:
<br>
<br>
Request-Line: INVITE <a class="moz-txt-link-abbreviated" href="mailto:sip:101@192.168.13.8:5060">sip:101@192.168.13.8:5060</a> SIP/2.0
<br>
Message Header
<br>
Record-Route:
<sip:192.168.13.86;lr=on;ftag=DB9D128321CC9C57E8B5;did=9f2.26ab69c5>
<br>
......
<br>
<br>
The BYE from callee pass through the proxy, but there is no
Record-Route header and the function loose_route() returns false.
<br>
dlg_onroute() in called only when there is record-route. As defined in
dialog.c:mod_init(), line 240, dlg_onroute() is registered as RR
callback.
<br>
How can I callback dlg_onroute in case there is no RR?
<br>
<br>
Regards,
<br>
Michel.
<br>
<br>
Bogdan-Andrei Iancu wrote:
<br>
<blockquote type="cite">Hi Michel,
<br>
<br>
if you do record_route() also for the calls going outside your domain,
the BYE from callee should pass through your proxy.
<br>
<br>
regards,
<br>
bogdan
<br>
<br>
Michel Bensoussan wrote:
<br>
<blockquote type="cite">Hello
<br>
<br>
The dialog module checks SIP messages only if the OpenSER in on
record-route header in function dlg_onroute().
<br>
When the callee in registered on another SIP Server and the callee
sends BYE, the OpenSER is not on record-route header. In this case, the
dialog module doesn't detect end of call.
<br>
Is there a way to callback the dlg_onroute() function not only in case
of record-route?
<br>
<br>
The configuration is as following:
<br>
- Tel 101 registered to 192.168.13.8 (siproxd) (URI: <a class="moz-txt-link-abbreviated" href="mailto:101@192.168.13.8">101@192.168.13.8</a>)
(IP: 192.168.13.101)
<br>
- Tel 155 registered to 192.168.13.86 (OpenSER) (URI:
<a class="moz-txt-link-abbreviated" href="mailto:155@192.168.13.86">155@192.168.13.86</a>) (IP: 192.168.13.155)
<br>
- 155 is the caller and 101 is the callee.
<br>
<br>
Attached, message capture (ethereal) when the callee (101) terminate
the call.
<br>
<br>
Thanks.
<br>
<br>
Regards,
<br>
Michel.
<br>
<br>
<br>
------------------------------------------------------------------------
<br>
<br>
_______________________________________________
<br>
Users mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Users@openser.org">Users@openser.org</a>
<br>
<a class="moz-txt-link-freetext" href="http://openser.org/cgi-bin/mailman/listinfo/users">http://openser.org/cgi-bin/mailman/listinfo/users</a>
<br>
</blockquote>
<br>
<br>
<br>
</blockquote>
<br>
_______________________________________________
<br>
Users mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Users@openser.org">Users@openser.org</a>
<br>
<a class="moz-txt-link-freetext" href="http://openser.org/cgi-bin/mailman/listinfo/users">http://openser.org/cgi-bin/mailman/listinfo/users</a>
<br>
<br>
<br>
</blockquote>
</body>
</html>