<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><style>body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em; }p { margin-top: 0px; margin-bottom: 0px; }div.FoxDiv20221202142337713647 { overflow-wrap: break-word; }body { font-size: 14px; font-family: "Microsoft YaHei UI"; color: rgb(0, 0, 0); line-height: 1.5; }</style></head><body>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" ></o:shapedefaults>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" ></o:idmap>
</o:shapelayout></xml><![endif]-->
<div><span></span><br></div><div><span style="font-family: "Microsoft YaHei UI", sans-serif;">Thank you for your reply very much,</span><span style="background-color: transparent;"><font face="Microsoft YaHei UI, sans-serif">Because this is my first mail list. Don't know need </font></span><span style="font-family: Calibri, sans-serif; font-size: 14.6667px; background-color: transparent;">keep the list in CC. I'm sorry.</span></div><div><span style="font-family: Calibri, sans-serif; font-size: 14.6667px; background-color: transparent;"><br></span></div><div><span style="font-family: Calibri, sans-serif; font-size: 14.6667px;">I foun a paramter from cookbooks. </span><span style="background-color: transparent; font-size: 14.6667px;"><font face="Calibri, sans-serif">It feels like setting the tcp_accept_unique to 1 avoids this problem</font></span></div><div><br></div><div><h3 class="sectionedit190" id="tcp_accept_unique" style="padding: 0px; line-height: 1.2; clear: left; font-size: 1.125em; margin: 0px 0px 0.888em; color: rgb(51, 51, 51); font-family: Arial, sans-serif;">tcp_accept_unique</h3><div class="level3" style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial, sans-serif;"><p style="margin-right: 0px; margin-bottom: 1.4em; margin-left: 0px; padding: 0px;">If set to 1, reject duplicate connections coming from same source IP and port.</p><p style="margin-right: 0px; margin-bottom: 1.4em; margin-left: 0px; padding: 0px;">Default set to 0.</p><pre class="code c" style="margin-top: 0px; margin-bottom: 1.4em; padding: 0.7em 1em; font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace; font-size: 1em; direction: ltr; background-color: rgb(251, 250, 249); box-shadow: rgb(204, 204, 204) 0px 0px 0.5em inset; border-radius: 2px; overflow: auto; overflow-wrap: normal; border: 1px solid rgb(204, 204, 204);">tcp_accept_unique <span class="sy0" style="color: rgb(102, 204, 102);">=</span> <span class="nu0" style="color: rgb(204, 102, 204);">1</span></pre></div></div>
<div><div>tcp_accept_unique role in the source code:</div></div><div><div style="color: rgb(51, 51, 51); background-color: rgb(245, 245, 245); font-family: Consolas, "Courier New", monospace; font-size: 16px; line-height: 22px; white-space: pre;"><div>        <span style="color: #4b69c6;">if</span><span style="color: #777777;">(</span>tcp_accept_unique<span style="color: #777777;">)</span> <span style="color: #777777;">{</span></div><div>            <span style="color: #4b69c6;">if</span><span style="color: #777777;">(</span><span style="color: #aa3731;font-weight: bold;">tcpconn_exists</span><span style="color: #777777;">(</span><span style="color: #9c5d27;">0</span><span style="color: #777777;">,</span> <span style="color: #777777;">&</span><span style="color: #7a3e9d;">tcpconn</span><span style="color: #777777;">-></span><span style="color: #7a3e9d;">rcv</span><span style="color: #777777;">.</span><span style="color: #7a3e9d;">dst_ip</span><span style="color: #777777;">,</span> <span style="color: #7a3e9d;">tcpconn</span><span style="color: #777777;">-></span><span style="color: #7a3e9d;">rcv</span><span style="color: #777777;">.</span><span style="color: #7a3e9d;">dst_port</span><span style="color: #777777;">,</span></div><div>                        <span style="color: #777777;">&</span><span style="color: #7a3e9d;">tcpconn</span><span style="color: #777777;">-></span><span style="color: #7a3e9d;">rcv</span><span style="color: #777777;">.</span><span style="color: #7a3e9d;">src_ip</span><span style="color: #777777;">,</span> <span style="color: #7a3e9d;">tcpconn</span><span style="color: #777777;">-></span><span style="color: #7a3e9d;">rcv</span><span style="color: #777777;">.</span><span style="color: #7a3e9d;">src_port</span><span style="color: #777777;">))</span> <span style="color: #777777;">{</span></div><div>                <span style="color: #aa3731;font-weight: bold;">LM_ERR</span><span style="color: #777777;">(</span><span style="color: #777777;">"</span><span style="color: #448c27;">duplicated connection by local and remote addresses</span><span style="color: #777777;">\n"</span><span style="color: #777777;">);</span></div><div>                <span style="color: #aa3731;font-weight: bold;">_tcpconn_free</span><span style="color: #777777;">(</span>tcpconn<span style="color: #777777;">);</span></div><div>                <span style="color: #aa3731;font-weight: bold;">tcp_safe_close</span><span style="color: #777777;">(</span>new_sock<span style="color: #777777;">);</span></div><div>                <span style="color: #4b69c6;">return</span> <span style="color: #9c5d27;">1</span><span style="color: #777777;">;</span><span style="color: #aaaaaa;font-style: italic;"> /* success, because the accept was successful */</span></div><div>            <span style="color: #777777;">}</span></div><div>        <span style="color: #777777;">}</span></div></div></div><div><br></div><hr style="width: 210px; height: 1px;" color="#b5c4df" size="1" align="left">
<div><span><div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt"><div>riffs@sina.cn</div></div></span></div>
<blockquote style="margin-Top: 0px; margin-Bottom: 0px; margin-Left: 0.5em; margin-Right: inherit"><div> </div><div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm"><div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px"><div><b>From:</b> <a href="mailto:hw@gilawa.com" style="color: blue; text-decoration: underline;">Henning Westerholt</a></div><div><b>Date:</b> 2022-12-01 18:23</div><div><b>To:</b> <a href="mailto:riffs@sina.cn" style="color: blue; text-decoration: underline;">riffs@sina.cn</a></div><div><b>CC:</b> <a href="mailto:sr-users@lists.kamailio.org" style="color: blue; text-decoration: underline;">sr-users@lists.kamailio.org</a></div><div><b>Subject:</b> RE: Re: [SR-Users] uac_req_send()  multi-process synchronization problem</div></div></div><div><div class="FoxDiv20221202142337713647">
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" ></o:shapedefaults>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" ></o:idmap>
</o:shapelayout></xml><![endif]-->
<div class="WordSection1" style="page: WordSection1;">
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="mso-fareast-language:EN-US">Hello,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US">please keep the list in CC.
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US">Not sure what you mean by multi-process safe. The functions are safe to use in a kamailio multi-process context, relevant sections should be protected by internal locks etc..<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US">Regarding query location manually by SQL client, its better to use the provided functions from the usrloc/registrar module instead.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US">-- <o:p>
</o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning Westerholt –
</span><span style="mso-fareast-language:EN-US"><a href="https://skalatan.de/blog/" style="color: blue; text-decoration: underline;"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/blog/</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US">Kamailio services –
</span><span style="mso-fareast-language:EN-US"><a href="https://gilawa.com/" style="color: blue; text-decoration: underline;"><span lang="EN-GB" style="color:#0563C1">https://gilawa.com</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><b>From:</b> riffs@sina.cn <riffs@sina.cn>
<br>
<b>Sent:</b> Thursday, December 1, 2022 10:47 AM<br>
<b>To:</b> Henning Westerholt <hw@gilawa.com><br>
<b>Subject:</b> Re: Re: [SR-Users] uac_req_send() multi-process synchronization problem<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">To confirm that. Are reg_fetch_contacts and unregister_ruid multi-process safe?<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">
<hr size="1" width="210" style="width:157.5pt" noshade="" align="left">
</span></div>
<div>
<div style="margin-left:7.5pt;margin-top:7.5pt;margin-right:7.5pt;margin-bottom:7.5pt">
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><a href="mailto:riffs@sina.cn" style="color: blue; text-decoration: underline;">riffs@sina.cn</a><o:p></o:p></span></p>
</div>
</div>
</div>
<blockquote style="margin-left: 6pt; margin-right: inherit; margin-top: 0px;">
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"> <o:p></o:p></span></p>
</div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">From:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> <a href="mailto:riffs@sina.cn" style="color: blue; text-decoration: underline;">riffs@sina.cn</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">Date:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> 2022-12-01 16:35<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">To:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> <a href="mailto:hw@gilawa.com" style="color: blue; text-decoration: underline;">Henning
 Westerholt</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">Subject:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> Re: RE: [SR-Users]
 uac_req_send() multi-process synchronization problem<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">Hello <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">Thank you for your reply very much.  My LOCATION is stored in the MYSQL database, and I also set the
</span><code style="font-family: "Courier New", serif;"><b><span style="font-size:10.0pt;color:black;background:#EFF8F8">event_callback</span></b></code><strong><span style="font-size:11.5pt;font-family:"Helvetica",sans-serif;color:black;background:#EFF8F8"> parameter of TCPOPS</span></strong><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">.<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">modparam(</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">tcpops</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">,
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">event_callback</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">,
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">ksr_tcpops_event</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">)<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">At the same time.I also deleted the contact inside the function</span><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">function</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><b><span style="font-size:12.0pt;font-family:Consolas;color:#AA3731">ksr_tcpops_event</span></b><span style="font-size:12.0pt;font-family:Consolas;color:#777777">(</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">evname</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">)</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">    </span><span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">local</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">tcpconnid</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">=</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">KSR</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">.pv.</span><b><span style="font-size:12.0pt;font-family:Consolas;color:#AA3731">get</span></b><span style="font-size:12.0pt;font-family:Consolas;color:#333333">(</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">$conid</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">)
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">or</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">0</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">       </span><span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">if</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"> (</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">evname</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">==</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">tcp:reset</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">" or</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">evname</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">==</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">tcp:closed</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">)
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">and</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"> (</span><b><span style="font-size:12.0pt;font-family:Consolas;color:#AA3731">tonumber</span></b><span style="font-size:12.0pt;font-family:Consolas;color:#333333">(</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">tcpconnid</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">)
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">~=</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#9C5D27">0</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">)  </span><span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">then</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">        </span>
<span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">local</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">sql</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">=</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><b><span style="font-size:12.0pt;font-family:Consolas;color:#AA3731">string.format</span></b><span style="font-size:12.0pt;font-family:Consolas;color:#333333">(</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">select
 * from location where tcpconnid=%s</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">,
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">tcpconnid</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">        </span>
<span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">local</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">count</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">,
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">rows</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">=</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><b><span style="font-size:12.0pt;font-family:Consolas;color:#AA3731">execute_select</span></b><span style="font-size:12.0pt;font-family:Consolas;color:#333333">(</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">sql</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">        </span>
<span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">if</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">count</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">></span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#9C5D27">0</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">then</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#777777"> </span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">           
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">KSR</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">.registrar.</span><b><span style="font-size:12.0pt;font-family:Consolas;color:#AA3731">unregister_ruid</span></b><span style="font-size:12.0pt;font-family:Consolas;color:#333333">(</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">location</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">,
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">rows</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">[</span><span style="font-size:12.0pt;font-family:Consolas;color:#9C5D27">1</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">].contact,
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">rows</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">[</span><span style="font-size:12.0pt;font-family:Consolas;color:#9C5D27">1</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">].ruid)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">        </span>
<span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">end</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">    </span><span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">end</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#333333">    </span><span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">return</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:12.0pt;font-family:Consolas;color:#9C5D27">1</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<span style="font-size:12.0pt;font-family:Consolas;color:#4B69C6">end</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333"><o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">When I use use_req_send(), I use the following sql statement to query location<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; line-height: 16.5pt; background: whitesmoke; font-size: 11pt; font-family: Calibri, sans-serif;">
<b><span style="font-size:12.0pt;font-family:Consolas;color:#AA3731">string.format</span></b><span style="font-size:12.0pt;font-family:Consolas;color:#333333">(</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#448C27">select
 * from location where username='%s'</span><span style="font-size:12.0pt;font-family:Consolas;color:#777777">"</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">,
</span><span style="font-size:12.0pt;font-family:Consolas;color:#7A3E9D">reciever</span><span style="font-size:12.0pt;font-family:Consolas;color:#333333">)<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">I think because the query sql is executed before the execution of unregister_ruid completes, the location of user A can still
 be queried.<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">If unregister_ruid and reg_fetch_contacts are multi-process safe. I use reg_fetch_contacts query location to avoid this problem. Is
 that so?<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">thanks very much<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black">
<hr size="1" width="210" style="width:157.5pt" noshade="" align="left">
</span></div>
<div>
<div style="margin-left:7.5pt;margin-top:7.5pt;margin-right:7.5pt;margin-bottom:7.5pt">
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><a href="mailto:riffs@sina.cn" style="color: blue; text-decoration: underline;">riffs@sina.cn</a><o:p></o:p></span></p>
</div>
</div>
</div>
<blockquote style="margin-left: 6pt; margin-right: inherit; margin-top: 0px;">
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:"Microsoft YaHei UI",sans-serif;color:black"> <o:p></o:p></span></p>
</div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">From:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> <a href="mailto:hw@gilawa.com" style="color: blue; text-decoration: underline;">Henning
 Westerholt</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">Date:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> 2022-11-30 18:18<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">To:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> <a href="mailto:sr-users@lists.kamailio.org" style="color: blue; text-decoration: underline;">Kamailio
 (SER) - Users Mailing List</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">CC:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> <a href="mailto:riffs@sina.cn" style="color: blue; text-decoration: underline;"><span style="font-family:"Microsoft YaHei UI",sans-serif">刘建峰</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; background: rgb(239, 239, 239); font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black">Subject:</span></b><span style="font-size:9.0pt;font-family:"Tahoma",sans-serif;color:black"> RE: [SR-Users] uac_req_send()
 multi-process synchronization problem<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="color:black;mso-fareast-language:EN-US">Hello,</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="color:black;mso-fareast-language:EN-US"> </span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US">not sure if I fully understand the problem. But regarding another user is registered with the same IP address as a previous
 user, there are several mitigations.</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US"> </span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US">To give two options: you could choose a really short re-registration time, you could use TCP and when you lose the connection
 you delete the contact.</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US"> </span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US">Cheers,</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US"> </span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US">Henning</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US"> </span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US">--
</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US">Henning Westerholt –
</span><span style="color:black;mso-fareast-language:EN-US"><a href="https://skalatan.de/blog/" style="color: blue; text-decoration: underline;"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/blog/</span></a></span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US">Kamailio services –
</span><span style="color:black;mso-fareast-language:EN-US"><a href="https://gilawa.com/" style="color: blue; text-decoration: underline;"><span lang="EN-GB" style="color:#0563C1">https://gilawa.com</span></a></span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-GB" style="color:black;mso-fareast-language:EN-US"> </span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><b><span style="color:black">From:</span></b><span style="color:black"> sr-users <<a href="mailto:sr-users-bounces@lists.kamailio.org" style="color: blue; text-decoration: underline;">sr-users-bounces@lists.kamailio.org</a>>
<b>On Behalf Of </b>???<br>
<b>Sent:</b> Wednesday, November 30, 2022 2:57 AM<br>
<b>To:</b> <a href="mailto:sr-users@lists.kamailio.org" style="color: blue; text-decoration: underline;">sr-users@lists.kamailio.org</a><br>
<b>Subject:</b> [SR-Users] uac_req_send() multi-process synchronization problem</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size:10.5pt;font-family:DengXian;color:black"> <o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-US" style="font-size:10.5pt;font-family:DengXian;color:black;mso-fareast-language:ZH-CN">When I use uac_req_send() to send a MESSAGE to the client. Will the following occur? The
 result of the message sent to user A is that B has received it. From the logs, the address of user A in the location table is the same as the IP address and port of user B, and the information of user A in the location table is not deleted in time. I took
 the address of user A directly from the location table without using KSR.registrar.reg_fetch_contacts(). If I use KSR.registrar.reg_fetch_contacts() can this be avoided. This is a multi-process synchronization problem, after user A registers, the IP port information
 in the address is 172.16.22.222:12345, and then user A disconnects the link because of some abnormal conditions, but it is not normal to cancel the registration, the socket link has failed, but it has not had time to delete the location, at this time user
 B registers, whether will it get the same IP port information as user A 172.16.22.222 : 12345, if possible? User A's location still exists, Using KSR.registrar.reg_fetch_contacts() TO query user A's location, and then using uac_req_send() to send a message
 to user A, User B will receive the MESSAGE. Whether this problem occurs?</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-US" style="font-size:10.5pt;font-family:DengXian;color:black;mso-fareast-language:ZH-CN"> </span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="ZH-CN" style="font-size:10.5pt;font-family:DengXian;color:black;mso-fareast-language:ZH-CN">从</span><span lang="EN-US" style="font-size:10.5pt;font-family:DengXian;color:black;mso-fareast-language:ZH-CN">
 Windows </span><span lang="ZH-CN" style="font-size:10.5pt;font-family:DengXian;color:black;mso-fareast-language:ZH-CN">版</span><span lang="EN-US" style="font-size:10.5pt;font-family:DengXian;color:black;mso-fareast-language:ZH-CN"><a href="https://go.microsoft.com/fwlink/?LinkId=550986" style="color: blue; text-decoration: underline;"><span lang="ZH-CN">邮件</span></a></span><span lang="ZH-CN" style="font-size:10.5pt;font-family:DengXian;color:black;mso-fareast-language:ZH-CN">发送</span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-US" style="font-size:12.0pt;font-family:SimSun;color:black;mso-fareast-language:ZH-CN"> </span><span style="font-size:10.5pt;font-family:DengXian;color:black"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div></div></blockquote>
</body></html>