<div dir="ltr"><br><br>
<div class="gmail_quote">On Wed, Oct 5, 2011 at 2:34 PM, Uri Shacked <span dir="ltr">&lt;<a href="mailto:ushacked@gmail.com">ushacked@gmail.com</a>&gt;</span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div dir="ltr">
<div>OK...</div>
<div>now i see the problem is some where in the cfg file...</div>
<div>i get te following error :</div>
<div> </div>
<div> 0(3774) : &lt;core&gt; [cfg.y:3406]: parse error in config file //etc/kamailio/kamailio.cfg, from line 944, column 2 to line 945, column 0: syntax error<br> 0(3774) : &lt;core&gt; [cfg.y:3406]: parse error in config file //etc/kamailio/kamailio.cfg, from line 944, column 2 to line 945, column 0: bad command<br>
ERROR: bad config file (2 errors)<br> 0(3774) DEBUG: tm [t_funcs.c:122]: DEBUG: tm_shutdown : start<br> 0(3774) DEBUG: tm [t_funcs.c:125]: DEBUG: tm_shutdown : emptying hash table<br> 0(3774) DEBUG: tm [t_funcs.c:127]: DEBUG: tm_shutdown : removing semaphores<br>
 0(3774) DEBUG: tm [t_funcs.c:129]: DEBUG: tm_shutdown : destroying tmcb lists<br> 0(3774) DEBUG: tm [t_funcs.c:132]: DEBUG: tm_shutdown : done<br> 0(3774) DEBUG: &lt;core&gt; [mem/shm_mem.c:236]: shm_mem_destroy<br> 0(3774) DEBUG: &lt;core&gt; [mem/shm_mem.c:239]: destroying the shared memory lock<br>
<br><br>here is my complete cfg file.</div>
<div>any ideas?</div>
<div> </div>
<div><span lang="HE">
<p dir="ltr"><font size="1">...</font></p>
<p dir="ltr"><font size="1">#</font><font size="1">####### Routing Logic ########</font></p>
<p dir="ltr"><font size="1"> </font></p>
<p dir="ltr"><font size="1"># Main SIP request routing logic</font></p>
<p dir="ltr"><font size="1"># - processing of any incoming SIP request starts with this route</font></p>
<p dir="ltr"><font size="1">route {</font></p>
<p dir="ltr"><font size="1">setflag(FLT_TRC); # Trace message</font></p>
<p dir="ltr"><font size="1"># per request initial checks</font></p>
<p dir="ltr"><font size="1">route(REQINIT);</font></p>
<p dir="ltr"><font size="1"># NAT detection</font></p>
<p dir="ltr"><font size="1">route(NAT);</font></p>
<p dir="ltr"><font size="1"># handle requests within SIP dialogs</font></p>
<p dir="ltr"><font size="1">route(WITHINDLG);</font></p>
<p dir="ltr"><font size="1">### only initial requests (no To tag)</font></p>
<p dir="ltr"><font size="1"># CANCEL processing</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;CANCEL&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">if (t_check_trans())</font></p>
<p dir="ltr"><font size="1">t_relay();</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">t_check_trans();</font></p>
<p dir="ltr"><font size="1"># authentication</font></p>
<p dir="ltr"><font size="1">route(AUTH);</font></p>
<p dir="ltr"><font size="1"># record routing for dialog forming requests (in case they are routed)</font></p>
<p dir="ltr"><font size="1"># - remove preloaded route headers</font></p>
<p dir="ltr"><font size="1">remove_hf(&quot;Route&quot;);</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;INVITE|SUBSCRIBE&quot;))</font></p>
<p dir="ltr"><font size="1">record_route();</font></p>
<p dir="ltr"><font size="1"># account only INVITEs</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;INVITE&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_DIALPLAN</font></p>
<p dir="ltr"><font size="1">dp_translate(&quot;1&quot;, &quot;$rU/$rU&quot;);</font></p>
<p dir="ltr"><font size="1">xlog(&quot;translated to $rU \n&quot;);</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_CARRIERROUTE</font></p>
<p dir="ltr"><font size="1">####cr_user_carrier(&quot;$rU&quot;, &quot;$td&quot;, &quot;$avp(carrierid)&quot;); </font></p>
<p dir="ltr"><font size="1">####xlog(&quot;translated to var $avp(carrierid) \n&quot;);</font></p>
<p dir="ltr"><font size="1">cr_route(&quot;OSP1&quot;, &quot;kamailio2&quot;, &quot;$rU&quot;, &quot;$rU&quot;, &quot;call_id&quot;);</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">setflag(FLT_ACC); # do accounting</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># dispatch requests to foreign domains</font></p>
<p dir="ltr"><font size="1">route(SIPOUT);</font></p>
<p dir="ltr"><font size="1">### requests for my local domains</font></p>
<p dir="ltr"><font size="1"># handle presence related requests</font></p>
<p dir="ltr"><font size="1">route(PRESENCE);</font></p>
<p dir="ltr"><font size="1"># handle registrations</font></p>
<p dir="ltr"><font size="1">route(REGISTRAR);</font></p>
<p dir="ltr"><font size="1">if ($rU==$null)</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1"># request with no Username in RURI</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;484&quot;,&quot;Address Incomplete&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># dispatch destinations to PSTN</font></p>
<p dir="ltr"><font size="1">route(PSTN);</font></p>
<p dir="ltr"><font size="1"># user location service</font></p>
<p dir="ltr"><font size="1">route(LOCATION);</font></p>
<p dir="ltr"><font size="1">route(RELAY);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"> </font></p>
<p dir="ltr"><font size="1">route[RELAY] {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_NAT</font></p>
<p dir="ltr"><font size="1">if (check_route_param(&quot;nat=yes&quot;)) {</font></p>
<p dir="ltr"><font size="1">setbflag(FLB_NATB);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if (isflagset(FLT_NATS) || isbflagset(FLB_NATB)) {</font></p>
<p dir="ltr"><font size="1">route(RTPPROXY);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">/* example how to enable some additional event routes */</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;INVITE&quot;)) {</font></p>
<p dir="ltr"><font size="1">#t_on_branch(&quot;BRANCH_ONE&quot;);</font></p>
<p dir="ltr"><font size="1">t_on_reply(&quot;REPLY_ONE&quot;);</font></p>
<p dir="ltr"><font size="1">t_on_failure(&quot;FAIL_ONE&quot;);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if (!t_relay()) {</font></p>
<p dir="ltr"><font size="1">sl_reply_error();</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Per SIP request initial checks</font></p>
<p dir="ltr"><font size="1">route[REQINIT] {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_ANTIFLOOD</font></p>
<p dir="ltr"><font size="1"># flood dection from same IP and traffic ban for a while</font></p>
<p dir="ltr"><font size="1"># be sure you exclude checking trusted peers, such as pstn gateways</font></p>
<p dir="ltr"><font size="1"># - local host excluded (e.g., loop to self)</font></p>
<p dir="ltr"><font size="1">if(src_ip!=myself)</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">if($sht(ipban=&gt;$si)!=$null)</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1"># ip is already blocked</font></p>
<p dir="ltr"><font size="1">xdbg(&quot;request from blocked IP - $rm from $fu (IP:$si:$sp)\n&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if (!pike_check_req())</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">xlog(&quot;L_ALERT&quot;,&quot;ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n&quot;);</font></p>
<p dir="ltr"><font size="1">$sht(ipban=&gt;$si) = 1;</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">if (!mf_process_maxfwd_header(&quot;10&quot;)) {</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if(!sanity_check(&quot;1511&quot;, &quot;7&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">xlog(&quot;Malformed SIP message from $si:$sp\n&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_PIPELIMIT</font></p>
<p dir="ltr"><font size="1"># perform pipe match for INVITE method</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;INVITE&quot;)) {</font></p>
<p dir="ltr"><font size="1">if (!pl_check(&quot;avg&quot;)) {</font></p>
<p dir="ltr"><font size="1">pl_drop();</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if (!pl_check(&quot;peek&quot;)) {</font></p>
<p dir="ltr"><font size="1">pl_drop();</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#endif</font></p>
<p dir="ltr"><font size="1"></font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_DIALOG</font></p>
<p dir="ltr"><font size="1">xlog(&quot;currently active dialogs are $DLG_count\n&quot;);</font></p>
<div class="im">
<p dir="ltr"><font size="1">dlg_manage();</font></p>
<p dir="ltr"><font size="1">dlg_setflag(FLT_DLG);</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;INVITE&quot;)) {</font></p>
<p dir="ltr"><font size="1">$var(size) = 0;</font></p>
<p dir="ltr"><font size="1">get_profile_size(&quot;test&quot;,&quot;$rU&quot;,&quot;$var(size)&quot;);</font></p>
<p dir="ltr"><font size="1">xlog(&quot;currently, the user $rU has $var(size) active calls\n&quot;);</font></p>
<p dir="ltr"><font size="1">if( $var(size) &gt;= 5 )</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;507&quot;, &quot;Simultaneous calls limit reached&quot;);</font></p>
<p dir="ltr"><font size="1">xlog(&quot;Limit of $var(size) active calls has been reached \n&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">set_dlg_profile(&quot;test&quot;,&quot;$rU&quot;);</font></p>
<p dir="ltr"><font size="1">}</font></p></div>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Handle requests within SIP dialogs</font></p>
<p dir="ltr"><font size="1">route[WITHINDLG] {</font></p>
<p dir="ltr"><font size="1">if (has_totag()) {</font></p>
<p dir="ltr"><font size="1"># sequential request withing a dialog should</font></p>
<p dir="ltr"><font size="1"># take the path determined by record-routing</font></p>
<p dir="ltr"><font size="1">if (loose_route()) {</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;BYE&quot;)) {</font></p>
<p dir="ltr"><font size="1">setflag(FLT_ACC); # do accounting ...</font></p>
<p dir="ltr"><font size="1">setflag(FLT_ACCFAILED); # ... even if the transaction fails</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">route(RELAY);</font></p>
<p dir="ltr"><font size="1">} else {</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;SUBSCRIBE&quot;) &amp;&amp; uri == myself) {</font></p>
<p dir="ltr"><font size="1"># in-dialog subscribe requests</font></p>
<p dir="ltr"><font size="1">route(PRESENCE);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if ( is_method(&quot;ACK&quot;) ) {</font></p>
<p dir="ltr"><font size="1">if ( t_check_trans() ) {</font></p>
<p dir="ltr"><font size="1"># no loose-route, but stateful ACK;</font></p>
<p dir="ltr"><font size="1"># must be an ACK after a 487</font></p>
<p dir="ltr"><font size="1"># or e.g. 404 from upstream server</font></p>
<p dir="ltr"><font size="1">t_relay();</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">} else {</font></p>
<p dir="ltr"><font size="1"># ACK without matching transaction ... ignore and discard</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;404&quot;,&quot;Not here&quot;);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Handle SIP registrations</font></p>
<p dir="ltr"><font size="1">route[REGISTRAR] {</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;REGISTER&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">if(isflagset(FLT_NATS))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">setbflag(FLB_NATB);</font></p>
<p dir="ltr"><font size="1"># uncomment next line to do SIP NAT pinging </font></p>
<p dir="ltr"><font size="1">## setbflag(FLB_NATSIPPING);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if (!save(&quot;location&quot;))</font></p>
<p dir="ltr"><font size="1">sl_reply_error();</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># USER location service</font></p>
<p dir="ltr"><font size="1">route[LOCATION] {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_ALIASDB</font></p>
<p dir="ltr"><font size="1"># search in DB-based aliases</font></p>
<p dir="ltr"><font size="1">alias_db_lookup(&quot;dbaliases&quot;);</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">if (!lookup(&quot;location&quot;)) {</font></p>
<p dir="ltr"><font size="1">switch ($rc) {</font></p>
<p dir="ltr"><font size="1">case -1:</font></p>
<p dir="ltr"><font size="1">case -3:</font></p>
<p dir="ltr"><font size="1">t_newtran();</font></p>
<p dir="ltr"><font size="1">t_reply(&quot;404&quot;, &quot;Not Found&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">case -2:</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;405&quot;, &quot;Method Not Allowed&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># when routing via usrloc, log the missed calls also</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;INVITE&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">setflag(FLT_ACCMISSED);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Presence server route</font></p>
<p dir="ltr"><font size="1">route[PRESENCE] {</font></p>
<p dir="ltr"><font size="1">if(!is_method(&quot;PUBLISH|SUBSCRIBE&quot;))</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_PRESENCE</font></p>
<p dir="ltr"><font size="1">if (!t_newtran())</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">sl_reply_error();</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">};</font></p>
<p dir="ltr"><font size="1">if(is_method(&quot;PUBLISH&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">handle_publish();</font></p>
<p dir="ltr"><font size="1">t_release();</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">else</font></p>
<p dir="ltr"><font size="1">if( is_method(&quot;SUBSCRIBE&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">handle_subscribe();</font></p>
<p dir="ltr"><font size="1">t_release();</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1"></font></p>
<p dir="ltr"><font size="1"># if presence enabled, this part will not be executed</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;PUBLISH&quot;) || $rU==$null)</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;404&quot;, &quot;Not here&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Authentication route</font></p>
<p dir="ltr"><font size="1">route[AUTH] {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_AUTH</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;REGISTER&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1"># authenticate the REGISTER requests (uncomment to enable auth)</font></p>
<p dir="ltr"><font size="1">if (!www_authorize(&quot;$td&quot;, &quot;subscriber&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">www_challenge(&quot;$td&quot;, &quot;0&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if ($au!=$tU)</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;403&quot;,&quot;Forbidden auth ID&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">} else {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_IPAUTH</font></p>
<p dir="ltr"><font size="1">if(allow_source_address())</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1"># source IP allowed</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1"># authenticate if from local subscriber</font></p>
<p dir="ltr"><font size="1">if (from_uri==myself)</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">if (!proxy_authorize(&quot;$fd&quot;, &quot;subscriber&quot;)) {</font></p>
<p dir="ltr"><font size="1">proxy_challenge(&quot;$fd&quot;, &quot;0&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;PUBLISH&quot;))</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">if ($au!=$tU) {</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;403&quot;,&quot;Forbidden auth ID&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">} else {</font></p>
<p dir="ltr"><font size="1">if ($au!=$fU) {</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;403&quot;,&quot;Forbidden auth ID&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">consume_credentials();</font></p>
<p dir="ltr"><font size="1"># caller authenticated</font></p>
<p dir="ltr"><font size="1">} else {</font></p>
<p dir="ltr"><font size="1"># caller is not local subscriber, then check if it calls</font></p>
<p dir="ltr"><font size="1"># a local destination, otherwise deny, not an open relay here</font></p>
<p dir="ltr"><font size="1">if (!uri==myself)</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;403&quot;,&quot;Not relaying&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Caller NAT detection route</font></p>
<p dir="ltr"><font size="1">route[NAT] {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_NAT</font></p>
<p dir="ltr"><font size="1">force_rport();</font></p>
<p dir="ltr"><font size="1">if (nat_uac_test(&quot;19&quot;)) {</font></p>
<p dir="ltr"><font size="1">if (method==&quot;REGISTER&quot;) {</font></p>
<p dir="ltr"><font size="1">fix_nated_register();</font></p>
<p dir="ltr"><font size="1">} else {</font></p>
<p dir="ltr"><font size="1">fix_nated_contact();</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">setflag(FLT_NATS);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># RTPProxy control</font></p>
<p dir="ltr"><font size="1">route[RTPPROXY] {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_NAT</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;BYE&quot;)) {</font></p>
<p dir="ltr"><font size="1">unforce_rtp_proxy();</font></p>
<p dir="ltr"><font size="1">} else if (is_method(&quot;INVITE&quot;)){</font></p>
<p dir="ltr"><font size="1">force_rtp_proxy();</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if (!has_totag()) add_rr_param(&quot;;nat=yes&quot;);</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Routing to foreign domains</font></p>
<p dir="ltr"><font size="1">route[SIPOUT] {</font></p>
<p dir="ltr"><font size="1">if (!uri==myself)</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1">append_hf(&quot;P-hint: outbound\r\n&quot;);</font></p>
<p dir="ltr"><font size="1">route(RELAY);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># PSTN GW routing</font></p>
<p dir="ltr"><font size="1">route[PSTN] {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_PSTN</font></p>
<p dir="ltr"><font size="1"># check if PSTN GW IP is defined</font></p>
<p dir="ltr"><font size="1">if (strempty($sel(cfg_get.pstn.gw_ip))) {</font></p>
<p dir="ltr"><font size="1">xlog(&quot;SCRIPT: PSTN rotuing enabled but pstn.gw_ip not defined\n&quot;);</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># route to PSTN dialed numbers starting with &#39;+&#39; or &#39;00&#39;</font></p>
<p dir="ltr"><font size="1"># (international format)</font></p>
<p dir="ltr"><font size="1"># - update the condition to match your dialing rules for PSTN routing</font></p>
<p dir="ltr"><font size="1">if(!($rU=~&quot;^(\+|00)[1-9][0-9]{3,20}$&quot;))</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1"># only local users allowed to call</font></p>
<p dir="ltr"><font size="1">if(from_uri!=myself) {</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;403&quot;, &quot;Not Allowed&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">$ru = &quot;sip:&quot; + $rU + &quot;@&quot; + $sel(cfg_get.pstn.gw_ip);</font></p>
<p dir="ltr"><font size="1">route(RELAY);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">return;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># XMLRPC routing</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_XMLRPC</font></p>
<p dir="ltr"><font size="1">route[XMLRPC]</font></p>
<p dir="ltr"><font size="1">{</font></p>
<p dir="ltr"><font size="1"># allow XMLRPC from localhost</font></p>
<p dir="ltr"><font size="1">if ((method==&quot;POST&quot; || method==&quot;GET&quot;)</font></p>
<p dir="ltr"><font size="1">&amp;&amp; (src_ip==127.0.0.1)) {</font></p>
<p dir="ltr"><font size="1"># close connection only for xmlrpclib user agents (there is a bug in</font></p>
<p dir="ltr"><font size="1"># xmlrpclib: it waits for EOF before interpreting the response).</font></p>
<p dir="ltr"><font size="1">if ($hdr(User-Agent) =~ &quot;xmlrpclib&quot;)</font></p>
<p dir="ltr"><font size="1">set_reply_close();</font></p>
<p dir="ltr"><font size="1">set_reply_no_connect();</font></p>
<p dir="ltr"><font size="1">dispatch_rpc();</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">send_reply(&quot;403&quot;, &quot;Forbidden&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1"># Sample branch router</font></p>
<p dir="ltr"><font size="1">branch_route[BRANCH_ONE] {</font></p>
<p dir="ltr"><font size="1">xdbg(&quot;new branch at $ru\n&quot;);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Sample onreply route</font></p>
<p dir="ltr"><font size="1">onreply_route[REPLY_ONE] {</font></p>
<p dir="ltr"><font size="1">xdbg(&quot;incoming reply\n&quot;);</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_NAT</font></p>
<p dir="ltr"><font size="1">if ((isflagset(FLT_NATS) || isbflagset(FLB_NATB))</font></p>
<p dir="ltr"><font size="1">&amp;&amp; status=~&quot;(183)|(2[0-9][0-9])&quot;) {</font></p>
<p dir="ltr"><font size="1">force_rtp_proxy();</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">if (isbflagset(&quot;6&quot;)) {</font></p>
<p dir="ltr"><font size="1">fix_nated_contact();</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">route[STATS] {</font></p>
<p dir="ltr"><font size="1">sql_query(&quot;ca&quot;,</font></p>
<p dir="ltr"><font size="1">&quot;insert into statistics (time_stamp,shm_used_size,shm_real_used_size,&quot;</font></p>
<p dir="ltr"><font size="1">&quot;shm_max_used_size,shm_free_used_size,ul_users,ul_contacts) values ($Ts,&quot;</font></p>
<p dir="ltr"><font size="1">&quot;$stat(used_size),$stat(real_used_size),$stat(max_used_size),&quot;</font></p>
<p dir="ltr"><font size="1">&quot;$stat(free_size),$stat(location-users),$stat(location-contacts))&quot;,</font></p>
<p dir="ltr"><font size="1">&quot;ra&quot;);</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># Sample failure route</font></p>
<p dir="ltr"><font size="1">failure_route[FAIL_ONE] {</font></p>
<p dir="ltr"><font size="1">#!ifdef WITH_NAT</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;INVITE&quot;)</font></p>
<p dir="ltr"><font size="1">&amp;&amp; (isbflagset(FLB_NATB) || isflagset(FLT_NATS))) {</font></p>
<p dir="ltr"><font size="1">unforce_rtp_proxy();</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1">#!endif</font></p>
<p dir="ltr"><font size="1">if (t_is_canceled()) {</font></p>
<p dir="ltr"><font size="1">exit;</font></p>
<p dir="ltr"><font size="1">}</font></p>
<p dir="ltr"><font size="1"># uncomment the following lines if you want to block client </font></p>
<p dir="ltr"><font size="1"># redirect based on 3xx replies.</font></p>
<p dir="ltr"><font size="1">##if (t_check_status(&quot;3[0-9][0-9]&quot;)) {</font></p>
<p dir="ltr"><font size="1">##t_reply(&quot;404&quot;,&quot;Not found&quot;);</font></p>
<p dir="ltr"><font size="1">## exit;</font></p>
<p dir="ltr"><font size="1">##}</font></p>
<p dir="ltr"><font size="1"># uncomment the following lines if you want to redirect the failed </font></p>
<p dir="ltr"><font size="1"># calls to a different new destination</font></p>
<p dir="ltr"><font size="1">##if (t_check_status(&quot;486|408&quot;)) {</font></p>
<p dir="ltr"><font size="1">## sethostport(&quot;<a href="http://192.168.2.100:5060/" target="_blank">192.168.2.100:5060</a>&quot;);</font></p>
<p dir="ltr"><font size="1">## append_branch();</font></p>
<p dir="ltr"><font size="1">## # do not set the missed call flag again</font></p>
<p dir="ltr"><font size="1">## t_relay();</font></p>
<p dir="ltr"><font size="1">##}</font></p>
<p dir="ltr"><font size="1">}</font></p></span></div>
<div>
<div></div>
<div class="h5">
<div> </div>
<div class="gmail_quote">On Wed, Oct 5, 2011 at 12:12 PM, Uri Shacked <span dir="ltr">&lt;<a href="mailto:ushacked@gmail.com" target="_blank">ushacked@gmail.com</a>&gt;</span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div dir="ltr"><br><br>
<div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Uri Shacked</b> <span dir="ltr">&lt;<a href="mailto:uri.shacked@gmail.com" target="_blank">uri.shacked@gmail.com</a>&gt;</span><br>
Date: Wed, Oct 5, 2011 at 11:48 AM<br>Subject: dialog ref Error<br>To: <a href="mailto:sr-users@lists.sip-router.org" target="_blank">sr-users@lists.sip-router.org</a><br><br><br>
<div dir="ltr">
<div>Hi,</div>
<div> </div>
<div>i keep on getting this error:</div>
<div>Oct  5 14:39:33 Kamailio2 /usr/sbin/kamailio[21568]: DEBUG: dialog [dlg_hash.c:247]: new dialog on hash 531<br>Oct  5 14:39:33 Kamailio2 /usr/sbin/kamailio[21568]: DEBUG: dialog [dlg_handlers.c:264]: route_set , contact <a href="http://sip:036264529@10.2.0.55:5061" target="_blank">sip:036264529@10.2.0.55:5061</a>, cseq 1 and bind_addr udp:<a href="http://10.2.0.5:5060/" target="_blank">10.2.0.5:5060</a><br>
Oct  5 14:39:33 Kamailio2 /usr/sbin/kamailio[21568]: DEBUG: dialog [dlg_hash.c:519]: ref dlg 0xb417f5a0 with 3 -&gt; 3<br>Oct  5 14:39:33 Kamailio2 /usr/sbin/kamailio[21568]: DEBUG: dialog [dlg_hash.c:600]: unref dlg 0xb417f5a0 with 1, crt ref count: 3<br>
</div>
<div> </div>
<div>anyone knows what it is?</div>
<div> </div>
<div>here is the dialog part in my cfg:</div>
<div> </div>
<div><span lang="HE">
<p dir="ltr"><font size="1"><strong># ------ dialog params --------</strong></font></p>
<p dir="ltr"><font size="1">modparam(&quot;dialog&quot;, &quot;db_url&quot;, DBURL)</font></p>
<p dir="ltr"><font size="1">##modparam(&quot;dialog&quot;, &quot;rr_param&quot;, &quot;did&quot;)</font></p>
<p dir="ltr"><font size="1">modparam(&quot;dialog&quot;, &quot;default_timeout&quot;, 7200)</font></p>
<p dir="ltr"><font size="1">modparam(&quot;dialog&quot;, &quot;dlg_match_mode&quot;, </font></p></span><font face="Courier New"><font face="Courier New"><span lang="EN"><font size="1">0</font></span></font></font><span lang="HE"><font size="1">)</font> 
<p dir="ltr"><font size="1">modparam(&quot;dialog&quot;, &quot;detect_spirals&quot;, 1)</font></p>
<p dir="ltr"><font size="1">modparam(&quot;dialog&quot;, &quot;db_mode&quot;, 1)</font></p>
<p dir="ltr"><font size="1">##modparam(&quot;dialog&quot;, &quot;db_fetch_rows&quot;, 100)</font></p>
<p dir="ltr"><font size="1">modparam(&quot;dialog&quot;, &quot;dlg_flag&quot;, FLT_DLG)</font></p>
<p dir="ltr"><font size="1">modparam(&quot;dialog&quot;, &quot;profiles_with_value&quot;, &quot;test&quot;)</font></p>
<p><span lang="HE"><font size="1"></font></span> </p>
<p><span lang="HE"><font size="1">..........</font></span></p>
<p><span lang="HE"><font size="1">dlg_manage();</font></span></p>
<p dir="ltr"><font size="1">##dlg_setflag(FLT_DLG);</font></p>
<p dir="ltr"><font size="1">if (is_method(&quot;INVITE&quot;)) {</font></p>
<p dir="ltr"><font size="1">$var(size) = 0;</font></p>
<p dir="ltr"><font size="1">get_profile_size(&quot;test&quot;,&quot;$rU&quot;,&quot;$var(size)&quot;);</font></p>
<p dir="ltr"><font size="1">xlog(&quot;currently, the user $rU has $var(size) active calls\n&quot;);</font></p>
<p dir="ltr"><font size="1">if( $var(size) &gt;= 5 )</font><font size="1">{</font></p>
<p dir="ltr"><font size="1">sl_send_reply(&quot;507&quot;, &quot;Simultaneous calls limit reached&quot;);</font></p>
<p dir="ltr"><font size="1">xlog(&quot;Limit of $var(size) active calls has been reached \n&quot;);</font></p>
<p dir="ltr"><font size="1">exit;</font><font size="1">}</font></p>
<p dir="ltr"><font size="1">set_dlg_profile(&quot;test&quot;,&quot;$rU&quot;);</font><font size="1">}</font></p>
<p dir="ltr"><font size="1">........</font></p></span></div></div></div><br></div></blockquote></div><br></div></div></div></blockquote></div><br></div>