No subject
Mon Dec 27 18:28:28 CET 2010
proxy cannot interfere with the ACK part - the acknowledgment is done =
between end parties.
If the ACK is missing (in an established dialog), the callee party =
(according to RFC) must send a BYE (when finishing the 200 OK =
retransmission) to the caller. This is something your callee doesn't =
do.
A simple work around is to use the dialog timeout in opensips:
1) at INVITE time, when dialog is created, set a 5 seconds timeout =
(dialog will be terminated by opensips, with BYE, in 5 secs after being =
established - do not forget to set the BYE_ON_TIMEOUT flag)
2) at ACK, before loose_route() set a new timeout to some long, long =
(3 hours?) value.
So, if the ACK will mis, the 5 sec timeout will kick in and terminate =
the dialog; otherwise, opensips will prelong the dialog on ACK time.
Regards,
Bogdan
On 04/28/2011 03:06 PM, Denis Putyato wrote:=20
Hello!
=20
I noticed that cdr_flag in acc modules marks dialog for accounting as =
answered even there was no ACK on 200 OK.
As a result, I have acc record which has a big duration and status 200 =
OK.
=20
Thank you for any help.
=20
=20
=20
=20
=20
_______________________________________________
Users mailing list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
--=20
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 2nd of May 2011
OpenSIPS solutions and "know-how"
--=20
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 2nd of May 2011
OpenSIPS solutions and "know-how"
------=_NextPart_000_0091_01CC0F11.0B43DFC0
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 12 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
color:black;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
pre
{mso-style-priority:99;
=
mso-style-link:"=D0=A1=D1=82=D0=B0=D0=BD=D0=B4=D0=B0=D1=80=D1=82=D0=BD=D1=
=8B=D0=B9 HTML =D0=97=D0=BD=D0=B0=D0=BA";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
span.HTML
=
{mso-style-name:"=D0=A1=D1=82=D0=B0=D0=BD=D0=B4=D0=B0=D1=80=D1=82=D0=BD=D1=
=8B=D0=B9 HTML =D0=97=D0=BD=D0=B0=D0=BA";
mso-style-priority:99;
=
mso-style-link:"=D0=A1=D1=82=D0=B0=D0=BD=D0=B4=D0=B0=D1=80=D1=82=D0=BD=D1=
=8B=D0=B9 HTML";
font-family:Consolas;
color:black;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle20
{mso-style-type:personal;
font-family:"Courier New";
color:#1F497D;
font-weight:normal;
font-style:normal;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Courier New";
color:#1F497D;
font-weight:normal;
font-style:normal;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=3Dwhite lang=3DRU =
link=3Dblue vlink=3Dpurple><div class=3DWordSection1><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'font-family:"Courier =
New";color:#1F497D'>Bogdan, one more question<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'font-family:"Courier =
New";color:#1F497D'>You wrote =E2=80=9C</span><span lang=3DEN-US>2) at =
ACK, before loose_route()</span><span lang=3DEN-US =
style=3D'font-family:"Courier =
New";color:#1F497D'>=E2=80=9D<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'font-family:"Courier =
New";color:#1F497D'>Why before? Is this critical? =
<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Courier New";color:#1F497D'>I want to use =
$dlg_status variables to check if dialog exists (When received ACK), but =
in documentation said that this variables works only after loose_route() =
function<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-family:"Courier =
New";color:#1F497D'><o:p> </o:p></span></p><div><div =
style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm'><p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowt=
ext'>From:</span></b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowt=
ext'> Bogdan-Andrei Iancu [mailto:bogdan at opensips.org] <br><b>Sent:</b> =
Tuesday, May 10, 2011 12:43 PM<br><b>To:</b> Denis Putyato<br><b>Cc:</b> =
'OpenSIPS users mailling list'<br><b>Subject:</b> Re: [OpenSIPS-Users] =
dialog and acc<o:p></o:p></span></p></div></div><p =
class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Hi =
Denis,<br><br>I can tell it works for sure, as I'm using this kind of =
dirty trick to cope with some buggy clients.<br><br>Best =
regards,<br>Bogdan<br><br>On 05/10/2011 06:42 AM, Denis Putyato wrote: =
<o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US>Hello!</span><o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US> </span><o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US>Thank you Bogdan, I will try you =
decision</span><o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US> </span><o:p></o:p></p><div><div =
style=3D'border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0cm =
0cm 0cm;border-color:-moz-use-text-color -moz-use-text-color'><p =
class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowt=
ext'>From:</span></b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowt=
ext'> Bogdan-Andrei Iancu [<a =
href=3D"mailto:bogdan at opensips.org">mailto:bogdan at opensips.org</a>] =
<br><b>Sent:</b> Friday, May 06, 2011 9:25 PM<br><b>To:</b> OpenSIPS =
users mailling list<br><b>Cc:</b> Denis Putyato<br><b>Subject:</b> Re: =
[OpenSIPS-Users] dialog and acc</span><o:p></o:p></p></div></div><p =
class=3DMsoNormal> <o:p></o:p></p><p class=3DMsoNormal>Hi =
Denis,<br><br>From a proxy point of view, a 200OK means the dialog was =
establish. A proxy cannot interfere with the ACK part - the =
acknowledgment is done between end parties.<br><br>If the ACK is missing =
(in an established dialog), the callee party (according to RFC) must =
send a BYE (when finishing the 200 OK retransmission) to the =
caller. This is something your callee doesn't do.<br><br>A simple =
work around is to use the dialog timeout in =
opensips:<br> 1) at INVITE time, when dialog is =
created, set a 5 seconds timeout (dialog will be terminated by opensips, =
with BYE, in 5 secs after being established - do not forget to set the =
BYE_ON_TIMEOUT flag)<br> 2) at ACK, before =
loose_route() set a new timeout to some long, long (3 hours?) =
value.<br><br>So, if the ACK will mis, the 5 sec timeout will kick in =
and terminate the dialog; otherwise, opensips will prelong the dialog on =
ACK time.<br><br>Regards,<br>Bogdan<br><br>On 04/28/2011 03:06 PM, Denis =
Putyato wrote: <o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US>Hello!</span><o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US> </span><o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US>I noticed that cdr_flag in acc modules marks dialog for =
accounting as answered even there was no ACK on 200 =
OK.</span><o:p></o:p></p><p class=3DMsoNormal><span lang=3DEN-US>As a =
result, I have acc record which has a big duration and status 200 =
OK.</span><o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US> </span><o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US>Thank you for any help.</span><o:p></o:p></p><p =
class=3DMsoNormal><span lang=3DEN-US> </span><o:p></o:p></p><p =
class=3DMsoNormal><span lang=3DEN-US> </span><o:p></o:p></p><p =
class=3DMsoNormal><span =
lang=3DEN-US> </span><o:p></o:p></p><pre> <o:p></o:p></pre><pre=
> <o:p></o:p></pre><pre>____________________________________________=
___<o:p></o:p></pre><pre>Users mailing list<o:p></o:p></pre><pre><a =
href=3D"mailto:Users at lists.opensips.org">Users at lists.opensips.org</a><o:p=
></o:p></pre><pre><a =
href=3D"http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://=
lists.opensips.org/cgi-bin/mailman/listinfo/users</a><o:p></o:p></pre><p =
class=3DMsoNormal><span style=3D'font-size:12.0pt;font-family:"Times New =
Roman","serif"'><br><br><br><br></span><o:p></o:p></p><pre>-- =
<o:p></o:p></pre><pre>Bogdan-Andrei Iancu<o:p></o:p></pre><pre>OpenSIPS =
eBootcamp - 2nd of May 2011<o:p></o:p></pre><pre>OpenSIPS solutions and =
"know-how"<o:p></o:p></pre><p class=3DMsoNormal><span =
style=3D'font-size:12.0pt;font-family:"Times New =
Roman","serif"'><br><br><br><o:p></o:p></span></p><pre>-- =
<o:p></o:p></pre><pre>Bogdan-Andrei Iancu<o:p></o:p></pre><pre>OpenSIPS =
eBootcamp - 2nd of May 2011<o:p></o:p></pre><pre>OpenSIPS solutions and =
"know-how"<o:p></o:p></pre></div></body></html>
------=_NextPart_000_0091_01CC0F11.0B43DFC0--
More information about the Users
mailing list