<span class="gmail_quote"></span>
<div>Hi all,</div>
<div>&nbsp;</div>
<div>I ever used SER and I know it will save the From information such as <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:101@192.168.11.200" target="_blank">101@192.168.11.200</a> to sip_from or from_uri in its acc table. 
</div>
<div>But in my openser, I also setup the acc module. Where is my caller info?</div>
<div>&nbsp;</div>
<div>I can find a lot of&nbsp;number such as &quot;2806655523&quot; in my from_tag.</div>
<div>I wanna store the caller and callee info in my acc table when I make an internal&nbsp;call or&nbsp;an&nbsp;external call.</div>
<div>&nbsp;</div>
<div>Can anybody kind to help me to solve it? or give me some tips please.</div>
<div>PS: I got this openser.cfg from <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.sipwise.com/wizard" target="_blank">http://www.sipwise.com/wizard</a>.</div>
<div>&nbsp;</div>
<div>Best regards,</div>
<div>Charles</div>
<div>
<p>########################################################################<br># Parts of my openser.cfg Configuration <br>######################################################################## </p>
<p>loadmodule &quot;acc.so&quot;<br>modparam(&quot;acc&quot;, &quot;early_media&quot;, 0)<br>modparam(&quot;acc&quot;, &quot;failed_transaction_flag&quot;, 24)<br>modparam(&quot;acc&quot;, &quot;report_ack&quot;, 0)<br>modparam(&quot;acc&quot;, &quot;report_cancels&quot;, 0) 
<br>modparam(&quot;acc&quot;, &quot;log_flag&quot;, 0)<br>modparam(&quot;acc&quot;, &quot;log_missed_flag&quot;, 0)<br>modparam(&quot;acc&quot;, &quot;log_level&quot;, 2)<br>modparam(&quot;acc&quot;, &quot;db_flag&quot;, 25) 
<br>modparam(&quot;acc&quot;, &quot;db_missed_flag&quot;, 0)<br>modparam(&quot;acc&quot;, &quot;db_table_acc&quot;, &quot;acc&quot;)<br>modparam(&quot;acc&quot;, &quot;db_table_missed_calls&quot;, &quot;missed_calls&quot;) 
<br>modparam(&quot;acc&quot;, &quot;db_url&quot;, &quot;mysql://openser:openserrw@localhost<span></span> /openser&quot;)<br>modparam(&quot;acc&quot;, &quot;acc_method_column&quot;, &quot;method&quot;)<br>modparam(&quot;acc&quot;, &quot;acc_callid_column&quot;, &quot;callid&quot;) 
<br>modparam(&quot;acc&quot;, &quot;acc_time_column&quot;, &quot;time&quot;)<br>modparam(&quot;acc&quot;, &quot;acc_totag_column&quot;, &quot;to_tag&quot;)<br>modparam(&quot;acc&quot;, &quot;acc_from_tag_column&quot;, &quot;from_tag&quot;) 
<br>modparam(&quot;acc&quot;, &quot;detect_direction&quot;, 1)<br>modparam(&quot;acc&quot;, &quot;acc_sip_code_column&quot;, &quot;sip_code&quot;)<br>modparam(&quot;acc&quot;, &quot;acc_sip_reason_column&quot;, &quot;sip_reason&quot;) 
<br>modparam(&quot;acc&quot;, &quot;multi_leg_info&quot;, &quot;src_leg=$avp(i:901);dst_leg=$avp(i:902)&quot;)</p>
<p>########################################################################<br># Request route &#39;main&#39;<br>########################################################################<br>route[0]<br>{<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;New request - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;force_rport();<br>&nbsp;if(msg:len &gt; max_len)<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Message too big - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;sl_send_reply(&quot;513&quot;, &quot;Message Too Big&quot;); 
<br>&nbsp;&nbsp;exit;<br>&nbsp;}<br>&nbsp;if (!mf_process_maxfwd_header(&quot;10&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Too many hops - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;sl_send_reply(&quot;483&quot;, &quot;Too Many Hops&quot;); 
<br>&nbsp;&nbsp;exit;<br>&nbsp;}<br>&nbsp;if(!is_method(&quot;REGISTER&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;if(nat_uac_test(&quot;19&quot;))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;record_route(&quot;;nat=yes&quot;);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;record_route();<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;if(is_method(&quot;CANCEL&quot;) || is_method(&quot;BYE&quot;)) 
<br>&nbsp;{<br>&nbsp;&nbsp;end_media_session();<br>&nbsp;}<br>&nbsp;if(loose_route())<br>&nbsp;{<br>&nbsp;&nbsp;if(!has_totag())<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Initial loose-routing rejected - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<span></span><br>&nbsp;&nbsp;&nbsp;sl_send_reply(&quot;403&quot;, &quot;Initial Loose-Routing Rejected&quot;);<br>&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;if(nat_uac_test(&quot;19&quot;) || search(&quot;^Route:.*;nat=yes&quot;))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;fix_nated_contact(); 
<br>&nbsp;&nbsp;&nbsp;if(!search(&quot;^Content-Length:[ ]*0&quot;)) <br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;setbflag(6);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;if(is_method(&quot;BYE&quot;))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;setflag(24); # account failed transactions<br>&nbsp;&nbsp;&nbsp;setflag(25); # account successful transactions 
<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;# mark as loose-routed for acc <br>&nbsp;&nbsp;setflag(26);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;route(11);<br>&nbsp;}<br>&nbsp;if(is_method(&quot;REGISTER&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;route(10);<br>&nbsp;}<br>&nbsp;setflag(24); # account failed transactions<br>&nbsp;setflag(25); # account successful transactions 
<br>&nbsp;if(is_method(&quot;INVITE&quot;)) <br>&nbsp;{<br>&nbsp;&nbsp;route(12);<br>&nbsp;}<br>&nbsp;if(is_method(&quot;CANCEL&quot;) || is_method(&quot;ACK&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;route(16);<br>&nbsp;}<br>&nbsp;<br>&nbsp;route(17);<br>}</p>
<p>########################################################################<br># Request route &#39;clear-usr-preferences-caller&#39;<br>########################################################################<br>route[1] 
<br>{<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Clear caller preferences - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;avp_delete(&quot;$avp(s:caller_cli)/g&quot;);<br>&nbsp;avp_delete(&quot;$avp(s:clir)/g&quot;);<br>&nbsp;<br>
}</p>
<p>########################################################################<br># Request route &#39;clear-usr-preferences-callee&#39;<br>########################################################################<br>route[2] 
<br>{<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Clear callee preferences - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;avp_delete(&quot;$avp(s:callee_fr_inv_timer)/g&quot;);<br>&nbsp;avp_delete(&quot;$avp(s:cfu)/g&quot;);<br>
&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;usr-preferences-caller&#39;<br>############################################################<span></span> ############<br>
route[3]<br>{ <br>&nbsp;route(1);<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Load caller preferences for uuid &#39;$avp(s:caller_uuid)&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;# load caller avps<br>&nbsp;avp_db_load(&quot;$avp(s:caller_uuid)&quot;, &quot;*&quot;); 
<br>&nbsp;avp_copy(&quot;$avp(s:cli)&quot;, &quot;$avp(s:caller_cli)/d&quot;);<br>&nbsp;if(is_avp_set(&quot;$avp(s:clir)/n&quot;) &amp;&amp; avp_check(&quot;$avp(s:clir)&quot;, &quot;eq/i:1&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;# mark for anonymization 
<br>&nbsp;&nbsp;setflag(28);<br>&nbsp;}<br>&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;usr-preferences-callee&#39;<br>########################################################################<br>route[4]<br>{ 
<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Load callee preferences for uuid &#39;$avp(s:callee_uuid)&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;# load callee avps<br>&nbsp;avp_db_load(&quot;$avp(s:callee_uuid)&quot;, &quot;*&quot;); 
<br>&nbsp;if(is_avp_set(&quot;$avp(s:cfu)/s&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Call-forward-unconditional to &#39;$avp(s:cfu)&#39; found - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;route(5);<br>
&nbsp;&nbsp;route(6);<br>&nbsp;&nbsp;avp_delete(&quot;$avp(s:caller_uuid)/g&quot;);<br>&nbsp;&nbsp;avp_copy(&quot;$avp(s:callee_uuid)&quot;, &quot;$avp(s:caller_uuid)/d&quot;);<br>&nbsp;&nbsp;avp_pushto(&quot;$ru&quot;, &quot;$avp(s:cfu)&quot;);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;route(3); 
<br>&nbsp;&nbsp;route(13);<br>&nbsp;&nbsp;exit;<br>&nbsp;}<br>&nbsp;if(is_avp_set(&quot;$avp(s:ringtimeout)/n&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Setting ring timeout to $avp(s:ringtimeout) secs - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;&nbsp;avp_copy(&quot;$avp(s:ringtimeout)&quot;, &quot;$avp(s:callee_fr_inv_timer)/d&quot;);<br>&nbsp;}<br>&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;acc-caller&#39;<br>############################################################<span></span> ############<br>route[5]<br>
{<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Setting acc source-leg for uuid &#39;$avp(s:caller_uuid)&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); <br>&nbsp;avp_printf(&quot;$avp(i:901)&quot;, &quot;$avp(s:caller_uuid)|$fU|$fd&quot;); 
<br>&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;acc-callee&#39;<br>########################################################################<br>route[6]<br>{<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Setting acc destination-leg for uuid &#39;$avp(s:callee_uuid)&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;avp_printf(&quot;$avp(i:902)&quot;, &quot;$avp(s:callee_uuid)|$rU|$rd&quot;);<br>&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;acc-failure&#39;<br>########################################################################<br>route[7]<br>{<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Accounting failed request for uuid &#39;$avp(s:caller_uuid)&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;route(5);<br>&nbsp;route(6);<br>&nbsp;resetflag(24);<br>&nbsp;acc_db_request(&quot;404&quot;, &quot;acc&quot;);<br>&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;clir&#39;<br>########################################################################<br>route[8]<br>{<br>&nbsp;if(isflagset(28) &amp;&amp; !isflagset(27)) 
<br>&nbsp;{<br>&nbsp;&nbsp;setflag(27);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Anonymize caller - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;uac_replace_from(&quot;Anonymous&quot;,&quot;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:sip:anonymous@anonymous.invalid" target="_blank">
 sip:anonymous@anonymous.invalid</a>&quot;);<br>&nbsp;&nbsp;if(is_present_hf(&quot;Privacy&quot;))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;remove_hf(&quot;Privacy&quot;);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;append_hf(&quot;Privacy: id\r\n&quot;);<br>&nbsp;}<br>&nbsp;<br>}</p><span></span>
<p>########################################################################<br># Request route &#39;stop-media-proxy&#39;<br>########################################################################<br>route[9]<br>{<br>&nbsp;if(isflagset(22)) 
<br>&nbsp;{<br>&nbsp;&nbsp;end_media_session();<br>&nbsp;}<br>&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;base-route-register&#39;<br>########################################################################<br>route[10]<br>{<br>
&nbsp;sl_send_reply(&quot;100&quot;, &quot;Trying&quot;);<br>&nbsp;if(!www_authorize(&quot;&quot;, &quot;subscriber&quot;)) <br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Register authentication failed - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;&nbsp;www_challenge(&quot;&quot;, &quot;0&quot;);<br>&nbsp;&nbsp;exit;<br>&nbsp;}<br>&nbsp;if(!check_to()) <br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Spoofed To-URI detected - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;sl_send_reply(&quot;403&quot;, &quot;Spoofed To-URI Detected&quot;); 
<br>&nbsp;&nbsp;exit;<br>&nbsp;}<br>&nbsp;consume_credentials();<br>&nbsp;if(!search(&quot;^Contact:[ ]*\*&quot;) &amp;&amp; nat_uac_test(&quot;19&quot;)) <br>&nbsp;{<br>&nbsp;&nbsp;fix_nated_register();<br>&nbsp;&nbsp;setbflag(6);<br>&nbsp;}<br>&nbsp;if(!save(&quot;location&quot;)) 
<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_ERR&quot;, &quot;Saving contact failed - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;sl_reply_error();<br>&nbsp;&nbsp;exit;<br>&nbsp;}<br>&nbsp;<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Registration successful - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;exit;<br>&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;base-outbound&#39;<br>########################################################################<br>route[11]<br>{<br>&nbsp;if(is_present_hf(&quot;P-Asserted-Identity&quot;)) 
<br>&nbsp;{<br>&nbsp;&nbsp;remove_hf(&quot;P-Asserted-Identity&quot;);<br>&nbsp;}<br>&nbsp;if(is_present_hf(&quot;Remote-Party-ID&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;remove_hf(&quot;Remote-Party-ID&quot;);<span></span> <br>&nbsp;}<br>&nbsp;if(is_avp_set(&quot;$avp(s:caller_cli)/s&quot;)) 
<br>&nbsp;{<br>&nbsp;&nbsp;if(!isflagset(28))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Set caller CLI &#39;$avp(s:caller_cli)&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;&nbsp;append_hf(&quot;P-Asserted-Identity: &lt;$avp(s:caller_cli)&gt;\r\n&quot;); 
<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;route(8);<br>&nbsp;if(isbflagset(6) &amp;&amp; !isflagset(22))<br>&nbsp;{<br>&nbsp;&nbsp;setflag(22);<br>&nbsp;&nbsp;fix_nated_contact();<br>&nbsp;&nbsp;use_media_proxy();<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;t_on_reply(&quot;2&quot;);<br>&nbsp;}<br>&nbsp;else<br>&nbsp;{<br>&nbsp;&nbsp;<br>
&nbsp;&nbsp;t_on_reply(&quot;1&quot;);<br>&nbsp;}<br>&nbsp;<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Request leaving server - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;if(!isflagset(21))<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;t_on_failure(&quot;2&quot;);<br>
&nbsp;&nbsp;if(!isflagset(26))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;route(5);<br>&nbsp;&nbsp;&nbsp;route(6);<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;if(!t_relay())<br>&nbsp;{<br>&nbsp;&nbsp;sl_reply_error();<br>&nbsp;&nbsp;if(is_method(&quot;INVITE&quot;) &amp;&amp; isbflagset(6))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;end_media_session(); 
<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;exit;<br>&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;base-route-invite&#39;<br>########################################################################<br>route[12]<br>{<br>
&nbsp;sl_send_reply(&quot;100&quot;, &quot;Trying&quot;);<br>&nbsp;if(from_gw())<br>&nbsp;{<br>&nbsp;&nbsp;$avp(s:caller_uuid) = &quot;0&quot;;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Call from PSTN&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;&nbsp;setflag(23);<br>&nbsp;}<br>&nbsp;else<br>&nbsp;{<br>&nbsp;&nbsp;if(allow_trusted())<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;if(is_avp_set(&quot;$avp(s:peer_uuid)/s&quot;))<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;# use tag-column from trusted-table as uuid for this caller<br>&nbsp;&nbsp;&nbsp;&nbsp;avp_copy(&quot;$avp(s:peer_uuid)&quot;, &quot;$avp(s:caller_uuid)/d&quot;); 
<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;# if no uuid is set, use &quot;0&quot; as default uuid<br>&nbsp;&nbsp;&nbsp;&nbsp;$avp(s:caller_uuid) = &quot;0&quot;;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Call from trusted peer with uuid &#39;$avp(s:caller_uuid)&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<span></span><br>&nbsp;&nbsp;&nbsp;if(!is_domain_local(&quot;$rd&quot;))<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Rejecting peering attempt with non-local request domain - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;&nbsp;&nbsp;&nbsp;sl_send_reply(&quot;403&quot;, &quot;Relaying Denied&quot;); <br>&nbsp;&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;setflag(23);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;if(!proxy_authorize(&quot;&quot;, &quot;subscriber&quot;)) <br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Proxy authentication failed - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;&nbsp;&nbsp;&nbsp;proxy_challenge(&quot;&quot;, &quot;0&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;if(!check_from()) <br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Spoofed From-URI detected - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;&nbsp;&nbsp;&nbsp;sl_send_reply(&quot;403&quot;, &quot;Spoofed From-URI Detected&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;consume_credentials();<br>&nbsp;&nbsp;}<br>&nbsp;}</p>
<p>&nbsp;route(3);<br>&nbsp;if(nat_uac_test(&quot;19&quot;)) <br>&nbsp;{<br>&nbsp;&nbsp;setbflag(6);<br>&nbsp;}<br>&nbsp;<br>&nbsp;route(13);<br>}</p>
<p>########################################################################<br># Request route &#39;invite-find-callee&#39;<br>########################################################################<br>route[13]<br>{<br>
&nbsp;if(lookup(&quot;aliases&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Callee was aliased - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;}<br>&nbsp;<br>&nbsp;route(2);<br>&nbsp;if(!is_domain_local(&quot;$rd&quot;))<br>
&nbsp;{<br>&nbsp;&nbsp;setflag(20);<br>&nbsp;&nbsp;$avp(s:callee_uuid) = &quot;0&quot;;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;route(15);<br>&nbsp;}<br>&nbsp;avp_delete(&quot;$avp(s:callee_uuid)&quot;);<br>&nbsp;avp_db_query(&quot;select uuid from subscriber where username = &#39;$rU&#39;&quot;, &quot;$avp(s:callee_uuid)&quot;); 
<br>&nbsp;if(is_avp_set(&quot;$avp(s:callee_uuid)/s&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Callee is local, uuid=&#39;$avp(s:callee_uuid)&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;route(14); 
<br>&nbsp;}<br>&nbsp;else<br>&nbsp;{<br>&nbsp;&nbsp;$avp(s:callee_uuid) = &quot;0&quot;;<span></span> <br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Callee is not local - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;route(15);<br>&nbsp;}<br>&nbsp;exit; 
<br>}</p>
<p>########################################################################<br># Request route &#39;invite-to-internal&#39;<br>########################################################################<br>route[14]<br>{<br>
&nbsp;route(4);<br>&nbsp;if(!lookup(&quot;location&quot;)) <br>&nbsp;{<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Local user offline - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;route(7);<br>&nbsp;&nbsp;sl_send_reply(&quot;404&quot;, &quot;User Offline&quot;); 
<br>&nbsp;}<br>&nbsp;else<br>&nbsp;{<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Local user online - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;route(11);<br>&nbsp;}<br>&nbsp;exit;<br>}</p>
<p>########################################################################<br># Request route &#39;invite-to-external&#39;<br>########################################################################<br>route[15]<br>{<br>
&nbsp;if(isflagset(20))<br>&nbsp;{<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Call to foreign domain - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;route(11);<br>&nbsp;&nbsp;exit;<br>&nbsp;}<br>&nbsp;if(!isflagset(23))<br>&nbsp;{<br>&nbsp;&nbsp;# don&#39;t allow calls relaying from PSTN to PSTN, if not explicitely forwarded 
<br>&nbsp;&nbsp;if(uri =~ &quot;^sip:0[0-9]+@&quot;)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;# only route numeric users to PSTN<br>&nbsp;&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Loading PSTN gateways - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;&nbsp;if(!load_gws()) 
<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;xlog(&quot;L_ERR&quot;, &quot;Error loading PSTN gateways - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;sl_send_reply(&quot;503&quot;, &quot;PSTN Termination Currently Unavailable&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;if(!next_gw())<br>&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;xlog(&quot;L_ERR&quot;, &quot;No PSTN gateways available - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;sl_send_reply(&quot;503&quot;, &quot;PSTN Termination Currently Unavailable&quot;); 
<span></span><br>&nbsp;&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;setflag(21);<br>&nbsp;&nbsp;&nbsp;t_on_failure(&quot;1&quot;);<br>&nbsp;&nbsp;&nbsp;route(11);<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Call to unknown user - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;); 
<br>&nbsp;route(7);<br>&nbsp;sl_send_reply(&quot;404&quot;, &quot;User Not Found&quot;);<br>&nbsp;exit;<br>}</p>
<p>########################################################################<br># Request route &#39;base-route-local&#39;<br>########################################################################<br>route[16]<br>{<br>&nbsp;t_on_reply(&quot;1&quot;); 
<br>&nbsp;if(t_check_trans())<br>&nbsp;{<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Request leaving server - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;&nbsp;if(!t_relay())<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;sl_reply_error();<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;else <br>&nbsp;{
<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;Dropping mis-routed request - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;}<br>&nbsp;exit;&nbsp;<br>}</p>
<p>########################################################################<br># Request route &#39;base-route-generic&#39;<br>########################################################################<br>route[17]<br>{<br>
&nbsp;xlog(&quot;L_INFO&quot;, &quot;Method not supported - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;sl_send_reply(&quot;501&quot;, &quot;Method Not Supported Here&quot;);<br>&nbsp;exit;<br>&nbsp;<br>}</p>
<p># Request route &#39;base-filter-failover&#39;<br>route[18]<br>{<br>&nbsp;if(!t_check_status(&quot;408|500|503&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;xlog(&quot;L_INFO&quot;, &quot;No failover routing needed for this response code - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);
<br>&nbsp;&nbsp;route(9);<br>&nbsp;&nbsp;exit; <br>&nbsp;}<br>&nbsp;<br>}</p>
<p># Reply route &#39;base-standard-reply&#39;<span></span> <br>onreply_route[1] <br>{<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;Reply - S=$rs D=$rr F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;exit;<br>&nbsp;<br>}</p>
<p># Reply route &#39;base-nat-reply&#39;<br>onreply_route[2]<br>{<br>&nbsp;xlog(&quot;L_INFO&quot;, &quot;NAT-Reply - S=$rs D=$rr F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>&nbsp;if(nat_uac_test(&quot;1&quot;))<br>&nbsp;{<br>&nbsp;&nbsp;fix_nated_contact();
<br>&nbsp;}<br>&nbsp;if(isbflagset(6) &amp;&amp; status=~&quot;(180)|(183)|2[0-9][0-9]&quot;) <br>&nbsp;{<br>&nbsp;&nbsp;if(!search(&quot;^Content-Length:[ ]*0&quot;))<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;use_media_proxy();<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;exit;<br>}</p></div><br clear="all">
<br>-- <br><br>Best Regards<br><span class="sg">Charles </span><br clear="all">