<div>Dear Klaus ,</div><div><br></div><div>Sorry ,  still stuck in this issue.</div><div>The part is still not correctly recorded in the server side behind LB for REGISTER method.</div><div><br></div><div>Following your advice, my config file has been changed as below ,  anything wrong ??</div>
<div><br></div><div><div>===========================================================</div></div><div><br></div><div><div>####### Routing Logic ########</div><div><br></div><div><br></div><div># main request routing logic</div>
<div><br></div><div>route {</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span># per request initial checks</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>route(REQINIT);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span># NAT detection</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>route(NAT);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span># handle requests within SIP dialogs</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>route(WITHINDLG);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>### only initial requests (no To tag)</div><div><br>
</div><div><span class="Apple-tab-span" style="white-space:pre">        </span># CANCEL processing</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (is_method(&quot;CANCEL&quot;))</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>{</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>if (t_check_trans())</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>t_relay();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>exit;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>t_check_trans();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span># record routing for dialog forming requests (in case they are routed)</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span># - remove preloaded route headers</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>remove_hf(&quot;Route&quot;);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (is_method(&quot;INVITE|SUBSCRIBE&quot;))</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>record_route();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span># account only INVITEs</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (is_method(&quot;INVITE&quot;))</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>setflag(1); # do accounting</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span># dispatch destinations</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>route(DISPATCH);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>route(RELAY);</div>
<div>}</div><div><br></div><div><br></div><div>route[RELAY] {</div><div>#!ifdef WITH_NAT</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (check_route_param(&quot;nat=yes&quot;)) {</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>setbflag(FLB_NATB);</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (isflagset(FLT_NATS) || isbflagset(FLB_NATB)) {</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>route(RTPPROXY);</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div>#!endif</div><div><br></div><div><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (!t_relay()) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>sl_reply_error();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>exit;</div><div>}</div><div><br></div><div><br></div><div># Per SIP request initial checks</div><div>route[REQINIT] {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (!mf_process_maxfwd_header(&quot;10&quot;)) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>exit;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if(!sanity_check(&quot;1511&quot;, &quot;7&quot;))</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>xlog(&quot;Malformed SIP message from $si:$sp\n&quot;);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>exit;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div>}</div><div><br></div><div># Caller NAT detection route</div><div>
route[NAT] {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>force_rport();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (nat_uac_test(&quot;19&quot;)) {</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>#xlog(&quot;L_INFO&quot;,&quot;ALERT: ua is behind NAT (ru:$ru)(IP:$si:$sp)\n&quot;);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>if (method==&quot;REGISTER&quot;) {</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>fix_nated_register();</div><div>
<span class="Apple-tab-span" style="white-space:pre">                </span>} else {</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>fix_nated_contact();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>setflag(FLT_NATS);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>return;</div>
<div>}</div><div><br></div><div># RTPProxy control</div><div>route[RTPPROXY] {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (is_method(&quot;BYE&quot;)) {</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>unforce_rtp_proxy();</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>} else if (is_method(&quot;INVITE&quot;)){</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>xlog(&quot;L_INFO&quot;,&quot;ALERT: force_rtp_proxy called\n&quot;);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>force_rtp_proxy();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (!has_totag()) add_rr_param(&quot;;nat=yes&quot;);</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>return;</div><div>}</div><div><br></div><div><br></div><div><br></div><div># Handle requests within SIP dialogs</div><div>route[WITHINDLG] {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (has_totag()) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span># sequential request withing a dialog should</div><div><span class="Apple-tab-span" style="white-space:pre">                </span># take the path determined by record-routing</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>if (loose_route()) {</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>if (is_method(&quot;BYE&quot;)) {</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>setflag(1); # do accounting ...</div>
<div><span class="Apple-tab-span" style="white-space:pre">                                </span>setflag(3); # ... even if the transaction fails</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>route(RELAY);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>} else {</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>if (is_method(&quot;SUBSCRIBE&quot;) &amp;&amp; uri == myself) {</div><div>
<span class="Apple-tab-span" style="white-space:pre">                                </span># in-dialog subscribe requests</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>route(PRESENCE);</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>exit;</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>if ( is_method(&quot;ACK&quot;) ) {</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>if ( t_check_trans() ) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">                                        </span># non loose-route, but stateful ACK;</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span># must be ACK after a 487 or e.g. 404 from upstream server</div>
<div><span class="Apple-tab-span" style="white-space:pre">                                        </span>t_relay();</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>exit;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>} else {</div>
<div><span class="Apple-tab-span" style="white-space:pre">                                        </span># ACK without matching transaction ... ignore and discard.</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>exit;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>sl_send_reply(&quot;404&quot;,&quot;Not here&quot;);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>exit;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div>}</div><div><br></div><div># Dispatch requests</div><div>route[DISPATCH] {</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span># round robin dispatching on gateways group &#39;1&#39;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if(!ds_select_dst(&quot;1&quot;, &quot;0&quot;))</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>send_reply(&quot;404&quot;, &quot;No destination&quot;);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>exit;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>xlog(&quot;L_INFO&quot;, &quot;--- SCRIPT: going to &lt;$ru&gt; via &lt;$du&gt;\n&quot;);</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>t_on_failure(&quot;RTF_DISPATCH&quot;);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>return;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>
<div>}</div><div><br></div><div># Sample failure route</div><div>failure_route[RTF_DISPATCH] {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (t_is_canceled()) {</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>exit;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span># next DST - only for 500 or local timeout</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if (t_check_status(&quot;500&quot;)</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>or (t_branch_timeout() and !t_branch_replied()))</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>if(ds_next_dst())</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>t_on_failure(&quot;RTF_DISPATCH&quot;);</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>route(RELAY);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>exit;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div>
<div>}</div></div><div><br></div><div>===========================================================</div><div><br></div><div><br></div><br><br><div class="gmail_quote">On Fri, Feb 22, 2013 at 12:35 AM, Klaus Darilion <span dir="ltr">&lt;<a href="mailto:klaus.mailinglists@pernau.at" target="_blank">klaus.mailinglists@pernau.at</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Are the clients behind NAT? If yes, you have to use proper NAT traversal on the LB. Further, for outgoing INVITEs you have to route the requests through the LB, either by static forwarding to the LB or using the Path extension.<br>

<br>
regards<br>
Klaus<div><div class="h5"><br>
<br>
On <a href="tel:21.02.2013%2012" value="+12102201312" target="_blank">21.02.2013 12</a>:36, chanea wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Dear All,<br>
<br>
I am trying to use Kamailio 3.1.x  server (called LB here) as the Load<br>
Balancer for two other Kamailio server (called server01 and server02 here) .<br>
<br>
Client  A   -----&gt; Kamailio  LB   -----&gt; Kamailio server01<br>
Client  B   -----&gt; Kamailio LB   -----&gt; Kamailio server01<br>
<br>
If I dont use LB here ,  and letting Client A and B connect to  Kamailio<br>
server01 directly , all the communication is fine.<br>
<br>
While using  Kamailio  LB ,without luck, although the sip client  A and<br>
B get 200 from server01 for Register,<br>
they cannot reach each other for &quot;Message&quot; and &quot;Invite&quot;.<br>
<br>
It will be great appreciated if anyone can give a hint.<br>
<br>
my config  for Kamailio LB is as below  :<br>
==============================<u></u>============<br>
....<br>
debug=2          # debug level (cmd line: -dddddddddd)<br>
fork=yes<br>
log_stderror=yes  # (cmd line: -E)<br>
<br>
children=2<br>
check_via=no      # (cmd. line: -v)<br>
dns=off           # (cmd. line: -r)<br>
rev_dns=off       # (cmd. line: -R)<br>
port=5060<br>
<br>
# for more info: sip_router -h<br>
<br>
# ------------------ module loading ------------------------------<u></u>----<br>
mpath=&quot;/usr/local/lib64/<u></u>kamailio/modules_k/:/usr/<u></u>local/lib64/kamailio/modules/&quot;<br>
<br>
loadmodule &quot;sl.so&quot;<br>
loadmodule &quot;tm.so&quot;<br>
loadmodule &quot;rr.so&quot;<br>
loadmodule &quot;maxfwd.so&quot;<br>
loadmodule &quot;usrloc.so&quot;<br>
loadmodule &quot;registrar.so&quot;<br>
loadmodule &quot;textops.so&quot;<br>
loadmodule &quot;mi_fifo.so&quot;<br>
loadmodule &quot;dispatcher.so&quot;<br>
loadmodule &quot;db_mysql.so&quot;<br>
<br>
<br>
# ----------------- setting module-specific parameters ---------------<br>
# -- dispatcher params --<br>
modparam(&quot;mi_fifo&quot;, &quot;fifo_name&quot;, &quot;/tmp/openser_fifo&quot;)<br>
modparam(&quot;dispatcher&quot;, &quot;db_url&quot;,&quot;mysql://.........@..<u></u>......&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;db_mode&quot;,   0)<br>
modparam(&quot;rr&quot;, &quot;enable_full_lr&quot;, 1)<br>
<br>
route{<br>
if (!mf_process_maxfwd_header(&quot;<u></u>10&quot;)) {<br>
                 sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);<br>
                 exit;<br>
         };<br>
<br>
        #  if (!method==&quot;REGISTER&quot;)<br>
        #        record_route();<br>
ds_select_dst(&quot;1&quot;,&quot;4&quot;);<br>
      forward();<br>
<br>
      exit;<br>
<br>
}<br>
..<br>
==============================<u></u>============<br>
<br>
<br>
best regards,<br>
<br>
chanea<br>
<br>
<br>
<br></div></div>
______________________________<u></u>_________________<br>
sr-dev mailing list<br>
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/<u></u>cgi-bin/mailman/listinfo/sr-<u></u>dev</a><br>
<br>
</blockquote>
</blockquote></div><br>