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"






--=20
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 2nd of May 2011
OpenSIPS solutions and "know-how"

------=_NextPart_000_00C5_01CC0F19.216D9310
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:x=3D"urn:schemas-microsoft-com:office:excel" =
xmlns:p=3D"urn:schemas-microsoft-com:office:powerpoint" =
xmlns:a=3D"urn:schemas-microsoft-com:office:access" =
xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" =
xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" =
xmlns:rs=3D"urn:schemas-microsoft-com:rowset" xmlns:z=3D"#RowsetSchema" =
xmlns:b=3D"urn:schemas-microsoft-com:office:publisher" =
xmlns:ss=3D"urn:schemas-microsoft-com:office:spreadsheet" =
xmlns:c=3D"urn:schemas-microsoft-com:office:component:spreadsheet" =
xmlns:odc=3D"urn:schemas-microsoft-com:office:odc" =
xmlns:oa=3D"urn:schemas-microsoft-com:office:activation" =
xmlns:html=3D"http://www.w3.org/TR/REC-html40" =
xmlns:q=3D"http://schemas.xmlsoap.org/soap/envelope/" =
xmlns:rtc=3D"http://microsoft.com/officenet/conferencing" =
xmlns:D=3D"DAV:" xmlns:Repl=3D"http://schemas.microsoft.com/repl/" =
xmlns:mt=3D"http://schemas.microsoft.com/sharepoint/soap/meetings/" =
xmlns:x2=3D"http://schemas.microsoft.com/office/excel/2003/xml" =
xmlns:ppda=3D"http://www.passport.com/NameSpace.xsd" =
xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soap/ois/" =
xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/directory/" =
xmlns:ds=3D"http://www.w3.org/2000/09/xmldsig#" =
xmlns:dsp=3D"http://schemas.microsoft.com/sharepoint/dsp" =
xmlns:udc=3D"http://schemas.microsoft.com/data/udc" =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:sub=3D"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/"=
 xmlns:ec=3D"http://www.w3.org/2001/04/xmlenc#" =
xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" =
xmlns:sps=3D"http://schemas.microsoft.com/sharepoint/soap/" =
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
xmlns:udcs=3D"http://schemas.microsoft.com/data/udc/soap" =
xmlns:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile" =
xmlns:udcp2p=3D"http://schemas.microsoft.com/data/udc/parttopart" =
xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/workflow/" =
xmlns:dsss=3D"http://schemas.microsoft.com/office/2006/digsig-setup" =
xmlns:dssi=3D"http://schemas.microsoft.com/office/2006/digsig" =
xmlns:mdssi=3D"http://schemas.openxmlformats.org/package/2006/digital-sig=
nature" =
xmlns:mver=3D"http://schemas.openxmlformats.org/markup-compatibility/2006=
" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns:mrels=3D"http://schemas.openxmlformats.org/package/2006/relationshi=
ps" xmlns:spwp=3D"http://microsoft.com/sharepoint/webpartpages" =
xmlns:ex12t=3D"http://schemas.microsoft.com/exchange/services/2006/types"=
 =
xmlns:ex12m=3D"http://schemas.microsoft.com/exchange/services/2006/messag=
es" =
xmlns:pptsl=3D"http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/=
" =
xmlns:spsl=3D"http://microsoft.com/webservices/SharePointPortalServer/Pub=
lishedLinksService" xmlns:Z=3D"urn:schemas-microsoft-com:" =
xmlns:st=3D"&#1;" 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;
	font-family:"Courier New";
	color:#1F497D;
	font-weight:normal;
	font-style:normal;}
span.EmailStyle22
	{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<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'font-family:"Courier =
New";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'font-family:"Courier =
New";color:#1F497D'>I understand, thank you<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'font-family:"Courier =
New";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span style=3D'font-family:"Courier =
New";color:#1F497D'><o:p>&nbsp;</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:56 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>&nbsp;</o:p></p><p class=3DMsoNormal>Hi =
Denis,<br><br>Yes, before the loose_route(), and it is critical as for =
sequential requests, the matching against existing dialogs is done =
somewhere inside loose_route() (via some callbacks). And when the dialog =
is matched, the dialog timeout is updated, so this is why you need to =
populate the AVP for dialog timeout before the =
loose_route.<br><br>Dialog related variables will be available available =
after the loose_route(), when the dialog was matched, so the dialog =
cotext is available.<br><br>Regards,<br>Bogdan<br><br>On 05/10/2011 =
11:51 AM, Denis Putyato wrote: <o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US>Bogdan, one more question</span><o:p></o:p></p><p =
class=3DMsoNormal><span lang=3DEN-US>You wrote =E2=80=9C2) at ACK, =
before loose_route()</span><span lang=3DEN-US =
style=3D'font-family:"Courier New"'>=E2=80=9D</span><o:p></o:p></p><p =
class=3DMsoNormal><span lang=3DEN-US>Why before? Is this critical? =
</span><o:p></o:p></p><p class=3DMsoNormal><span lang=3DEN-US>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</span><o:p></o:p></p><p class=3DMsoNormal><span =
lang=3DEN-US>&nbsp;</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> 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</span><o:p></o:p></p></div></div><p =
class=3DMsoNormal>&nbsp;<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>&nbsp;</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>&nbsp;</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'><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>&nbsp;<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.&nbsp; This is something your callee doesn't do.<br><br>A simple =
work around is to use the dialog timeout in =
opensips:<br>&nbsp;&nbsp;&nbsp; 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>&nbsp;&nbsp;&nbsp; 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>&nbsp;</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>&nbsp;</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>&nbsp;</span><o:p></o:p></p><p =
class=3DMsoNormal><span lang=3DEN-US>&nbsp;</span><o:p></o:p></p><p =
class=3DMsoNormal><span =
lang=3DEN-US>&nbsp;</span><o:p></o:p></p><pre>&nbsp;<o:p></o:p></pre><pre=
>&nbsp;<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><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 =
&quot;know-how&quot;<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 =
&quot;know-how&quot;<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 =
&quot;know-how&quot;<o:p></o:p></pre></div></body></html>
------=_NextPart_000_00C5_01CC0F19.216D9310--




More information about the Users mailing list