<br><br><div class="gmail_quote">On Thu, Feb 11, 2010 at 2:58 PM, Daniel-Constantin Mierla <span dir="ltr">&lt;<a href="mailto:miconda@gmail.com">miconda@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



  

<div bgcolor="#ffffff" text="#000000"><div><div></div><div class="h5">
<br>
<br>
On 2/11/10 9:34 AM, Chandrakant Solanki wrote:
<blockquote type="cite"><br>
  <br>
  <div class="gmail_quote">On Thu, Feb 11, 2010 at 10:26 AM,
Chandrakant Solanki <span dir="ltr">&lt;<a href="mailto:solanki.chandrakant@gmail.com" target="_blank">solanki.chandrakant@gmail.com</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    <div>
    <div><br>
    <br>
    <div class="gmail_quote">On Wed, Feb 10, 2010 at 11:07 PM,
Daniel-Constantin Mierla <span dir="ltr">&lt;<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>&gt;</span>
wrote:<br>
    <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
      <div bgcolor="#ffffff" text="#000000">
Hello,<br>
      <br>
check your config whether you send a reply and do xlog(&quot;Method not
supported...&quot;) before getting to your condition.<br>
      <br>
Cheers,<br>
Daniel
      <div>
      <div><br>
      <br>
On 2/10/10 10:46 AM, Chandrakant Solanki wrote:
      </div>
      </div>
      <blockquote type="cite">
        <div>
        <div>Hi<br>
        <br>
below line is in my configuration...<br>
        <br>
        <br>
loadmodule &quot;pua.so&quot;<br>
modparam(&quot;pua&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://kamailio:kamailio@172.16.0.10:3306/kamailio" target="_blank">kamailio:kamailio@172.16.0.10:3306/kamailio</a>&quot;)<br>
modparam(&quot;pua&quot;, &quot;db_table&quot;, &quot;pua&quot;)<br>
        <br>
----<br>
----<br>
        <br>
        if(is_method(&quot;NOTIFY&quot;) &amp;&amp; src_ip==172.16.0.15) {<br>
                xlog(&quot;L_INFO&quot;, &quot;NOTIFY Method found\n&quot;);<br>
                if(!t_relay()){<br>
                        sl_reply_error();<br>
                }<br>
        }<br>
----<br>
----<br>
        <br>
        <br>
I found following error in log...<br>
        <br>
Feb 10 15:14:40 kamailio_1 /sbin/kamailio[5597]: Method not supported -
M=NOTIFY RURI=<a>sip:172.16.0.15</a> F=<a href="mailto:sip%3A2222222@pbxusers.net" target="_blank">sip:2222222@pbxusers.net</a>
T=<a>sip:172.16.0.15</a> IP=172.18.100.89 ID=<a href="mailto:17dd4bb9-81d132a0@172.18.100.89" target="_blank">17dd4bb9-81d132a0@172.18.100.89</a> <br clear="all">
        <br>
-- <br>
Regards,<br>
        <br>
Chandrakant Solanki<br>
        </div>
        </div>
        <pre><fieldset></fieldset>
_______________________________________________
Kamailio (OpenSER) - Users mailing list
<a href="mailto:Users@lists.kamailio.org" target="_blank">Users@lists.kamailio.org</a>
<a href="http://lists.kamailio.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.kamailio.org/cgi-bin/mailman/listinfo/users</a>
<a href="http://lists.openser-project.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.openser-project.org/cgi-bin/mailman/listinfo/users</a></pre>
      </blockquote>
      <br>
      <pre cols="72">-- 
Daniel-Constantin Mierla
eLearning class for Kamailio 3.0.0
* <a href="http://www.asipto.com/" target="_blank">http://www.asipto.com/</a>
      </pre>
      </div>
    </blockquote>
    </div>
    <br>
    </div>
    </div>
Hi <br>
    <br>
Thanks for quick reply,<br>
    <br>
I didn&#39;t specify xlog(&quot;Method not
supported...&quot;) any where...  which module is require to work with
NOTIFY method...<br clear="all">
    <br>
-- <br>
Regards,<br>
    <font color="#888888"><br>
Chandrakant Solanki<br>
    </font></blockquote>
  </div>
  <br>
Hi<br>
  <br>
I am implementing MWI and for that i am using <a href="http://lists.iptel.org/pipermail/serusers/2004-September/011552.html" target="_blank">http://lists.iptel.org/pipermail/serusers/2004-September/011552.html</a>
when I executed sipsak, gives error on kamailio NOTIFY method not
supported....<br>
</blockquote>
<br></div></div>
what asterisk version are you using? Latest asterisks have support for
MWI, you just need to send SUBSCRIBE to it and asterisk will send
NOTIFY back, no need for sipsak workaround.<br>
<br>
If you can send the config, some of us can spot if that is generated by
kamailio. As said in a previous email, kamailio basically does not care
about sip message methods, it can support anything, it is a matter of
what routing logic you put in config.<br>
<br>
Cheers,<br>
Daniel<br>
<br>
<blockquote type="cite"><div class="im"><br>
NOTIFY <a href="mailto:sip%3A1111111@test.com" target="_blank">sip:1111111@test.com</a>
SIP/2.0<br>
From: 2222222 &lt;<a href="mailto:sip%3A2222222@test.com" target="_blank">sip:2222222@test.com</a>&gt;<br>
To: &lt;<a href="mailto:sip%3A1111111@test.com" target="_blank">sip:1111111@test.com</a>&gt;<br>
Contact: &lt;<a href="mailto:sip%3A2222222@test.com" target="_blank">sip:2222222@test.com</a>&gt;<br>
Call-ID: <a href="mailto:022270@172.18.100.73" target="_blank">022270@172.18.100.73</a><br>
CSeq: 022270 NOTIFY<br>
Event: message-summary<br>
Content-Type: application/simple-message-summary<br>
Accept: application/simple-message-summary<br>
Content-Length: 38<br>
  <br>
Messages-Waiting: Yes<br>
Message-Account: <a href="mailto:sip%3A1111111@test.com" target="_blank">sip:1111111@test.com</a><br>
Voicemail: 4/0<br>
  <br>
  <br clear="all">
  <br>
-- <br>
Regards,<br>
  <br>
Chandrakant Solanki<br>
  </div><pre><fieldset></fieldset>
_______________________________________________
Kamailio (OpenSER) - Users mailing list
<div class="im"><a href="mailto:Users@lists.kamailio.org" target="_blank">Users@lists.kamailio.org</a>
<a href="http://lists.kamailio.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.kamailio.org/cgi-bin/mailman/listinfo/users</a>
<a href="http://lists.openser-project.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.openser-project.org/cgi-bin/mailman/listinfo/users</a></div></pre>
</blockquote><div class="im">
<br>
<pre cols="72">-- 
Daniel-Constantin Mierla
eLearning class for Kamailio 3.0.0
* <a href="http://www.asipto.com/" target="_blank">http://www.asipto.com/</a>
</pre>
</div></div>

</blockquote></div><br>Hi<br><br>Thanks for reply.<br><br>Here is my config file.. I am using asterisk 1.6.0.5<br><br>listen = 0.0.0.0<br>port = 5060<br>mpath = &quot;/lib/kamailio/modules&quot;<br>debug = 9<br>fork = yes<br>
disable_tcp = no<br>log_facility = LOG_LOCAL0<br>log_stderror = no<br>dns = no<br>rev_dns = no<br><br>loadmodule &quot;usrloc.so&quot;<br>modparam(&quot;usrloc&quot;, &quot;user_column&quot;, &quot;username&quot;)<br>modparam(&quot;usrloc&quot;, &quot;domain_column&quot;, &quot;domain&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;contact_column&quot;, &quot;contact&quot;)<br>modparam(&quot;usrloc&quot;, &quot;expires_column&quot;, &quot;expires&quot;)<br>modparam(&quot;usrloc&quot;, &quot;q_column&quot;, &quot;q&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;callid_column&quot;, &quot;callid&quot;)<br>modparam(&quot;usrloc&quot;, &quot;cseq_column&quot;, &quot;cseq&quot;)<br>modparam(&quot;usrloc&quot;, &quot;methods_column&quot;, &quot;methods&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;flags_column&quot;, &quot;flags&quot;)<br>modparam(&quot;usrloc&quot;, &quot;user_agent_column&quot;, &quot;user_agent&quot;)<br>modparam(&quot;usrloc&quot;, &quot;received_column&quot;, &quot;received&quot;)<br>
modparam(&quot;usrloc&quot;, &quot;socket_column&quot;, &quot;socket&quot;)<br>modparam(&quot;usrloc&quot;, &quot;use_domain&quot;, 0)<br>modparam(&quot;usrloc&quot;, &quot;desc_time_order&quot;, 0)<br>modparam(&quot;usrloc&quot;, &quot;timer_interval&quot;, 60)<br>
modparam(&quot;usrloc&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br>modparam(&quot;usrloc&quot;, &quot;db_mode&quot;, 1)<br>
modparam(&quot;usrloc&quot;, &quot;matching_mode&quot;, 0)<br>modparam(&quot;usrloc&quot;, &quot;cseq_delay&quot;, 20)<br>modparam(&quot;usrloc&quot;, &quot;nat_bflag&quot;, 6)<br><br>loadmodule &quot;pv.so&quot;<br><br>loadmodule &quot;registrar.so&quot;<br>
modparam(&quot;registrar&quot;, &quot;default_expires&quot;, 3600)<br>modparam(&quot;registrar&quot;, &quot;min_expires&quot;, 60)<br>modparam(&quot;registrar&quot;, &quot;max_expires&quot;, 0)<br>modparam(&quot;registrar&quot;, &quot;default_q&quot;, 0)<br>
modparam(&quot;registrar&quot;, &quot;append_branches&quot;, 1)<br>modparam(&quot;registrar&quot;, &quot;case_sensitive&quot;, 0)<br>modparam(&quot;registrar&quot;, &quot;received_param&quot;, &quot;received&quot;)<br>modparam(&quot;registrar&quot;, &quot;max_contacts&quot;, 100)<br>
modparam(&quot;registrar&quot;, &quot;retry_after&quot;, 0)<br>modparam(&quot;registrar&quot;, &quot;method_filtering&quot;, 0)<br>modparam(&quot;registrar&quot;, &quot;path_mode&quot;, 2)<br>modparam(&quot;registrar&quot;, &quot;path_use_received&quot;, 0)<br>
modparam(&quot;registrar&quot;, &quot;received_avp&quot;, &quot;$avp(i:801)&quot;)<br><br>loadmodule &quot;rr.so&quot;<br>modparam(&quot;rr&quot;, &quot;enable_full_lr&quot;, 0)<br>modparam(&quot;rr&quot;, &quot;append_fromtag&quot;, 1)<br>
modparam(&quot;rr&quot;, &quot;enable_double_rr&quot;, 1)<br>modparam(&quot;rr&quot;, &quot;add_username&quot;, 0)<br><br>loadmodule &quot;tm.so&quot;<br>modparam(&quot;tm&quot;, &quot;fr_timer&quot;, 3)<br>modparam(&quot;tm&quot;, &quot;fr_inv_timer&quot;, 35)<br>
modparam(&quot;tm&quot;, &quot;wt_timer&quot;, 5)<br>modparam(&quot;tm&quot;, &quot;delete_timer&quot;, 2)<br>modparam(&quot;tm&quot;, &quot;ruri_matching&quot;, 1)<br>modparam(&quot;tm&quot;, &quot;via1_matching&quot;, 1)<br>
modparam(&quot;tm&quot;, &quot;unix_tx_timeout&quot;, 2)<br>modparam(&quot;tm&quot;, &quot;restart_fr_on_each_reply&quot;, 1)<br>modparam(&quot;tm&quot;, &quot;pass_provisional_replies&quot;, 0)<br>modparam(&quot;tm&quot;, &quot;fr_inv_timer_avp&quot;, &quot;$avp(s:callee_fr_inv_timer)&quot;)<br>
<br>loadmodule &quot;xlog.so&quot;<br>modparam(&quot;xlog&quot;, &quot;buf_size&quot;, 4096)<br>modparam(&quot;xlog&quot;, &quot;force_color&quot;, 0)<br><br>loadmodule &quot;mi_fifo.so&quot;<br>modparam(&quot;mi_fifo&quot;, &quot;fifo_name&quot;, &quot;/tmp/openser_fifo&quot;)<br>
<br>loadmodule &quot;domain.so&quot;<br>modparam(&quot;domain&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br>modparam(&quot;domain&quot;, &quot;db_mode&quot;, 1)<br>
modparam(&quot;domain&quot;, &quot;domain_table&quot;, &quot;domain&quot;)<br>modparam(&quot;domain&quot;, &quot;domain_col&quot;, &quot;domain&quot;)<br><br>loadmodule &quot;nathelper.so&quot;<br>#modparam(&quot;nathelper&quot;, &quot;natping_interval&quot;, 60)<br>
#modparam(&quot;nathelper&quot;, &quot;ping_nated_only&quot;, 1)<br>#modparam(&quot;nathelper&quot;, &quot;rtpproxy_sock&quot;, &quot;unix:/var/run/rtpproxy.sock&quot;)<br>#modparam(&quot;nathelper&quot;, &quot;rtpproxy_disable_tout&quot;, 60)<br>
#modparam(&quot;nathelper&quot;, &quot;rtpproxy_tout&quot;, 1)<br>#modparam(&quot;nathelper&quot;, &quot;rtpproxy_retr&quot;, 5)<br>modparam(&quot;nathelper&quot;, &quot;sipping_method&quot;, &quot;OPTIONS&quot;)<br>modparam(&quot;nathelper&quot;, &quot;received_avp&quot;, &quot;$avp(i:801)&quot;)<br>
<br>loadmodule &quot;textops.so&quot;<br><br>loadmodule &quot;sl.so&quot;<br>modparam(&quot;sl&quot;, &quot;enable_stats&quot;, 1)<br><br>loadmodule &quot;maxfwd.so&quot;<br>modparam(&quot;maxfwd&quot;, &quot;max_limit&quot;, 256)<br>
<br>loadmodule &quot;db_mysql.so&quot;<br>modparam(&quot;db_mysql&quot;, &quot;ping_interval&quot;, 300)<br>modparam(&quot;db_mysql&quot;, &quot;auto_reconnect&quot;, 1)<br><br>loadmodule &quot;auth.so&quot;<br>modparam(&quot;auth&quot;, &quot;nonce_expire&quot;, 300)<br>
modparam(&quot;auth&quot;, &quot;rpid_suffix&quot;, &quot;;party=calling;id-type=subscriber;screen=yes&quot;)<br>modparam(&quot;auth&quot;, &quot;rpid_avp&quot;, &quot;$avp(s:rpid)&quot;)<br><br>loadmodule &quot;auth_db.so&quot;<br>
modparam(&quot;auth_db&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br>modparam(&quot;auth_db&quot;, &quot;user_column&quot;, &quot;username&quot;)<br>
modparam(&quot;auth_db&quot;, &quot;domain_column&quot;, &quot;domain&quot;)<br>modparam(&quot;auth_db&quot;, &quot;password_column&quot;, &quot;password&quot;)<br>modparam(&quot;auth_db&quot;, &quot;password_column_2&quot;, &quot;ha1b&quot;)<br>
modparam(&quot;auth_db&quot;, &quot;calculate_ha1&quot;, 1)<br>modparam(&quot;auth_db&quot;, &quot;use_domain&quot;, 1)<br>modparam(&quot;auth_db&quot;, &quot;load_credentials&quot;, &quot;$avp(s:caller_uuid)=uuid&quot;)<br>
<br>loadmodule &quot;uri_db.so&quot;<br>modparam(&quot;uri_db&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br><br>loadmodule &quot;avpops.so&quot;<br>
modparam(&quot;avpops&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br>modparam(&quot;avpops&quot;, &quot;avp_table&quot;, &quot;usr_preferences&quot;)<br>
modparam(&quot;avpops&quot;, &quot;use_domain&quot;, 1)<br>modparam(&quot;avpops&quot;, &quot;uuid_column&quot;, &quot;uuid&quot;)<br>modparam(&quot;avpops&quot;, &quot;username_column&quot;, &quot;username&quot;)<br>modparam(&quot;avpops&quot;, &quot;domain_column&quot;, &quot;domain&quot;)<br>
modparam(&quot;avpops&quot;, &quot;attribute_column&quot;, &quot;attribute&quot;)<br>modparam(&quot;avpops&quot;, &quot;value_column&quot;, &quot;value&quot;)<br>modparam(&quot;avpops&quot;, &quot;type_column&quot;, &quot;type&quot;)<br>
<br>loadmodule &quot;lcr.so&quot;<br>modparam(&quot;lcr&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br>modparam(&quot;lcr&quot;, &quot;gw_table&quot;, &quot;gw&quot;)<br>
modparam(&quot;lcr&quot;, &quot;gw_name_column&quot;, &quot;gw_name&quot;)<br>modparam(&quot;lcr&quot;, &quot;ip_addr_column&quot;, &quot;ip_addr&quot;)<br>modparam(&quot;lcr&quot;, &quot;port_column&quot;, &quot;port&quot;)<br>
modparam(&quot;lcr&quot;, &quot;uri_scheme_column&quot;, &quot;uri_scheme&quot;)<br>modparam(&quot;lcr&quot;, &quot;transport_column&quot;, &quot;transport&quot;)<br>modparam(&quot;lcr&quot;, &quot;grp_id_column&quot;, &quot;grp_id&quot;)<br>
modparam(&quot;lcr&quot;, &quot;lcr_table&quot;, &quot;lcr&quot;)<br>modparam(&quot;lcr&quot;, &quot;strip_column&quot;, &quot;strip&quot;)<br>modparam(&quot;lcr&quot;, &quot;prefix_column&quot;, &quot;prefix&quot;)<br>modparam(&quot;lcr&quot;, &quot;from_uri_column&quot;, &quot;from_uri&quot;)<br>
modparam(&quot;lcr&quot;, &quot;priority_column&quot;, &quot;priority&quot;)<br>modparam(&quot;lcr&quot;, &quot;flags_avp&quot;, &quot;$avp(i:712)&quot;)<br>modparam(&quot;lcr&quot;, &quot;gw_uri_avp&quot;, &quot;$avp(i:1400)&quot;)<br>
modparam(&quot;lcr&quot;, &quot;ruri_user_avp&quot;, &quot;$avp(i:1402)&quot;)<br>modparam(&quot;lcr&quot;, &quot;fr_inv_timer_avp&quot;, &quot;$avp(s:fr_inv_timer_avp)&quot;)<br>modparam(&quot;lcr&quot;, &quot;fr_inv_timer&quot;, 90)<br>
modparam(&quot;lcr&quot;, &quot;fr_inv_timer_next&quot;, 30)<br>modparam(&quot;lcr&quot;, &quot;rpid_avp&quot;, &quot;$avp(s:rpid)&quot;)<br><br>loadmodule &quot;alias_db.so&quot;<br>modparam(&quot;alias_db&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br>
modparam(&quot;alias_db&quot;, &quot;user_column&quot;, &quot;username&quot;)<br>modparam(&quot;alias_db&quot;, &quot;domain_column&quot;, &quot;domain&quot;)<br>modparam(&quot;alias_db&quot;, &quot;alias_user_column&quot;, &quot;alias_username&quot;)<br>
modparam(&quot;alias_db&quot;, &quot;alias_domain_column&quot;, &quot;alias_domain&quot;)<br>modparam(&quot;alias_db&quot;, &quot;use_domain&quot;, 0)<br><br>loadmodule &quot;uac.so&quot;<br>modparam(&quot;uac&quot;, &quot;rr_store_param&quot;, &quot;vsf&quot;)<br>
modparam(&quot;uac&quot;, &quot;from_restore_mode&quot;, &quot;auto&quot;)<br>modparam(&quot;uac&quot;, &quot;from_passwd&quot;, &quot;s1p:Wiz4rd!&quot;)<br><br>loadmodule &quot;acc.so&quot;<br>modparam(&quot;acc&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br>
# flag to record to db<br>modparam(&quot;acc&quot;, &quot;db_flag&quot;, 1)<br>modparam(&quot;acc&quot;, &quot;db_missed_flag&quot;, 2)<br># flag to log to syslog<br>modparam(&quot;acc&quot;, &quot;log_flag&quot;, 1)<br>modparam(&quot;acc&quot;, &quot;log_missed_flag&quot;, 2)<br>
# use extra accounting to record caller and callee username/domain<br># - take them from From URI and R-URI<br>modparam(&quot;acc&quot;, &quot;log_extra&quot;, &quot;src_user=$fU;src_domain=$fd;dst_user=$rU;dst_domain=$rd&quot;)<br>
modparam(&quot;acc&quot;, &quot;db_extra&quot;, &quot;src_user=$fU;src_domain=$fd;dst_user=$rU;dst_domain=$rd&quot;)<br><br>loadmodule &quot;mi_datagram.so&quot;<br>modparam(&quot;mi_datagram&quot;, &quot;socket_name&quot;, &quot;udp:<a href="http://127.0.0.1:8080">127.0.0.1:8080</a>&quot; )<br>
modparam(&quot;mi_datagram&quot;, &quot;children_count&quot;, 3 )<br>modparam(&quot;mi_datagram&quot;, &quot;unix_socket_mode&quot;, 0600 )<br>modparam(&quot;mi_datagram&quot;, &quot;unix_socket_group&quot;, &quot;root&quot; )<br>
modparam(&quot;mi_datagram&quot;, &quot;unix_socket_user&quot;, &quot;root&quot; )<br>modparam(&quot;mi_datagram&quot;, &quot;socket_timeout&quot;, 2000 )<br><br>loadmodule &quot;mediaproxy.so&quot;<br>modparam(&quot;mediaproxy&quot;, &quot;mediaproxy_socket&quot;, &quot;/var/run/mediaproxy/dispatcher.sock&quot;)<br>
modparam(&quot;mediaproxy&quot;, &quot;mediaproxy_timeout&quot;, 500)<br>modparam(&quot;mediaproxy&quot;, &quot;signaling_ip_avp&quot;, &quot;$avp(s:nat_ip)&quot;)<br>modparam(&quot;mediaproxy&quot;, &quot;media_relay_avp&quot;, &quot;$avp(s:media_relay)&quot;)<br>
<br>#MWI<br>loadmodule &quot;exec.so&quot;<br>loadmodule &quot;presence.so&quot;<br>modparam(&quot;presence&quot;, &quot;server_address&quot;, &quot;sip:<a href="http://172.18.100.73:5060">172.18.100.73:5060</a>&quot;)<br>
modparam(&quot;presence&quot;, &quot;presentity_table&quot;, &quot;presentity&quot;)<br>modparam(&quot;presence&quot;, &quot;db_url&quot;, &quot;mysql://<a href="http://openser:openserrw@172.18.100.73/openser">openser:openserrw@172.18.100.73/openser</a>&quot;)<br>
<br><br>loadmodule &quot;presence_mwi.so&quot;<br>route[0]<br>{<br>        xlog(&quot;L_INFO&quot;, &quot;New Request - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        force_rport();<br><br>        if(msg:len &gt; max_len)<br>
        {<br>                xlog(&quot;L_INFO&quot;, &quot;Message too big - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                sl_send_reply(&quot;513&quot;, &quot;Message Too Big&quot;);<br>                exit;<br>
        }<br>        if (!mf_process_maxfwd_header(&quot;10&quot;))<br>        {<br>                xlog(&quot;L_INFO&quot;, &quot;Too many hops - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                sl_send_reply(&quot;483&quot;, &quot;Too Many Hops&quot;);<br>
                exit;<br>        }<br>        if(!is_method(&quot;REGISTER&quot;))<br>        {<br>                if(nat_uac_test(&quot;19&quot;))<br>                {<br>                        record_route(&quot;;nat=yes&quot;);<br>
                }<br>                else<br>                {<br>                        record_route();<br>                }<br>        }<br>    if (is_method(&quot;SUBSCRIBE&quot;)) {<br>        handle_subscribe();<br>
        xlog(&quot;L_INFO&quot;, &quot;SUBSCRIBE Method\n&quot;);<br>        }<br><br>    if(is_method(&quot;PUBLISH&quot;))<br>    {<br>xlog(&quot;L_INFO&quot;, &quot;PUBLISH Metdho\n&quot; );<br>        if($hdr(Sender)!= NULL) {<br>
            handle_publish(&quot;$hdr(Sender)&quot;);<br>            xlog(&quot;L_INFO&quot;, &quot;PUBLISH with $hdr(Sender)&quot;);<br>        }<br>        else {<br>            handle_publish();<br>            xlog(&quot;L_INFO&quot;, &quot;PUBLISH with ....&quot;);<br>
        }<br>        t_release();<br>    } <br><br>        if(is_method(&quot;CANCEL&quot;) || is_method(&quot;BYE&quot;))<br>        {<br>                end_media_session();<br>        }<br>        if(loose_route())<br>
        {<br>                if(nat_uac_test(&quot;19&quot;) || search(&quot;^Route:.*;nat=yes&quot;))<br>                {<br>                        fix_nated_contact();<br>                        setbflag(6);<br>                }<br>
                route(8);<br>        }<br>        if(is_method(&quot;REGISTER&quot;))<br>        {<br>                route(7);<br>        }<br>        if(is_method(&quot;INVITE&quot;))<br>        {<br>#                use_media_proxy();<br>
                route(9);<br>        }<br>#       if(is_method(&quot;NOTIFY&quot;)){<br>#               xlog(&quot;L_INFO&quot;, &quot;NOTIFY Method found\n&quot;);<br>#               if(!t_relay()){<br>#                       sl_reply_error();<br>
#                       xlog(&quot;L_INFO&quot;, &quot;t_relay failed\n&quot; );<br>#               }<br>#               else {<br>#                       xlog(&quot;L_INFO&quot;, &quot;t_relay success\n&quot; );<br>#               }<br>
#       }<br>#       if(is_method(&quot;SUBSCRIBE&quot;)){<br>#               xlog(&quot;L_INFO&quot;, &quot;SUBSCRIBE Method found\n&quot;);<br>#               if(!www_authorize(&quot;&quot;, &quot;subscriber&quot;)){<br>
#                       www_challenge(&quot;&quot;, &quot;0&quot;);<br>#               }<br>#               exec_msg(&quot;/usr/bin/mwi/subscribe $fu&quot;);<br>#               xlog(&quot;L_INFO&quot;, &quot;SUBSCRIBE script is executed\n&quot;);<br>
#       } <br>        if(is_method(&quot;CANCEL&quot;) || is_method(&quot;ACK&quot;))<br>        {<br>                route(13);<br>        }<br>        route(14);<br>}<br><br>########################################################################<br>
# Request route &#39;clear-usr-preferences-caller&#39;<br>########################################################################<br>route[1]<br>{<br>        xlog(&quot;L_INFO&quot;, &quot;Clear caller preferences - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
        avp_delete(&quot;$avp(s:caller_cli)/g&quot;);<br>        avp_delete(&quot;$avp(s:clir)/g&quot;);<br>}<br><br>########################################################################<br># Request route &#39;clear-usr-preferences-callee&#39;<br>
########################################################################<br>route[2]<br>{<br>        xlog(&quot;L_INFO&quot;, &quot;Clear callee preferences - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        avp_delete(&quot;$avp(s:callee_fr_inv_timer)/g&quot;);<br>
        avp_delete(&quot;$avp(s:cfu)/g&quot;);<br>        avp_delete(&quot;$avp(s:cfc)/g&quot;);<br>}<br><br>########################################################################<br># Request route &#39;usr-preferences-caller&#39;<br>
########################################################################<br>route[3]<br>{<br>        route(1);<br>        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>
        # load caller avps<br>        avp_db_load(&quot;$avp(s:caller_uuid)&quot;, &quot;*&quot;);<br>        avp_copy(&quot;$avp(s:cli)&quot;, &quot;$avp(s:caller_cli)/d&quot;);<br>        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>
        {<br>                # mark for anonymization<br>                setflag(28);<br>        }<br>}<br><br>########################################################################<br># Request route &#39;usr-preferences-callee&#39;<br>
########################################################################<br>route[4]<br>{<br>        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>
        # load callee avps<br>        avp_db_load(&quot;$avp(s:callee_uuid)&quot;, &quot;*&quot;);<br>        if(is_avp_set(&quot;$avp(s:cfu)/s&quot;))<br>        {<br>                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>
                avp_delete(&quot;$avp(s:caller_uuid)/g&quot;);<br>                avp_copy(&quot;$avp(s:callee_uuid)&quot;, &quot;$avp(s:caller_uuid)/d&quot;);<br>                avp_pushto(&quot;$ru&quot;, &quot;$avp(s:cfu)&quot;);<br>
<br>                route(3);<br>                route(10);<br>                exit;<br>        }<br>        if(is_avp_set(&quot;$avp(s:ringtimeout)/n&quot;))<br>        {<br>                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>
                avp_copy(&quot;$avp(s:ringtimeout)&quot;, &quot;$avp(s:callee_fr_inv_timer)/d&quot;);<br>        }<br>}<br><br>########################################################################<br># Request route &#39;clir&#39;<br>
########################################################################<br>route[5]<br>{<br>        if(isflagset(28) &amp;&amp; !isflagset(27))<br>        {<br>                setflag(27);<br><br>                xlog(&quot;L_INFO&quot;, &quot;Anonymize caller - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
                uac_replace_from(&quot;Anonymous&quot;,&quot;sip:anonymous@anonymous.invalid&quot;);<br>                if(is_present_hf(&quot;Privacy&quot;))<br>                {<br>                        remove_hf(&quot;Privacy&quot;);<br>
                }<br>                append_hf(&quot;Privacy: id\r\n&quot;);<br>        }<br>}<br><br>########################################################################<br># Request route &#39;stop-rtp-proxy&#39;<br>
########################################################################<br>route[6]<br>{<br>        if(isflagset(22))<br>        {<br>                end_media_session();<br>        }<br>}<br><br>########################################################################<br>
# Request route &#39;base-route-register&#39;<br>########################################################################<br>route[7]<br>{<br>        sl_send_reply(&quot;100&quot;, &quot;Trying&quot;);<br>        if(!www_authorize(&quot;&quot;, &quot;subscriber&quot;)) <br>
        {<br>                xlog(&quot;L_INFO&quot;, &quot;Register authentication failed - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                www_challenge(&quot;&quot;, &quot;0&quot;);<br>                exit;<br>
        }<br>        if(!check_to()) <br>        {<br><br>                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>                sl_send_reply(&quot;403&quot;, &quot;Spoofed To-URI Detected&quot;);<br>
                exit;<br>        }<br>        consume_credentials();<br>        if(!search(&quot;^Contact:[ ]*\*&quot;) &amp;&amp; nat_uac_test(&quot;19&quot;)) <br>        {<br>                fix_nated_register();<br>                setbflag(6);<br>
        }<br><br>        if(!save(&quot;location&quot;)) <br>        {<br>                xlog(&quot;L_ERR&quot;, &quot;Saving contact failed - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                sl_reply_error();<br>
                exit;<br>        }<br>        xlog(&quot;L_INFO&quot;, &quot;Registration successful - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        exit;<br>}<br><br>########################################################################<br>
# Request route &#39;base-outbound&#39;<br>########################################################################<br>route[8]<br>{<br>        if(is_present_hf(&quot;P-Asserted-Identity&quot;))<br>        {<br>                remove_hf(&quot;P-Asserted-Identity&quot;);<br>
        }<br>        if(is_present_hf(&quot;Remote-Party-ID&quot;))<br>        {<br>                remove_hf(&quot;Remote-Party-ID&quot;);<br>        }<br>        if(is_avp_set(&quot;$avp(s:caller_cli)/s&quot;))<br>        {<br>
                if(!isflagset(28))<br>                {<br>                        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>                        append_hf(&quot;P-Asserted-Identity: &lt;$avp(s:caller_cli)&gt;\r\n&quot;);<br>
                }<br>        }<br><br>        route(5);<br>        if(isbflagset(6))<br>        {<br>                if(!isflagset(22) &amp;&amp; !search(&quot;^Content-Length:[ ]*0&quot;))<br>                {<br>                        setflag(22);<br>
            use_media_proxy();<br>                }<br>                t_on_reply(&quot;2&quot;);<br>        }<br>        else<br>        {<br>                t_on_reply(&quot;1&quot;);<br>        }<br>        if(!isflagset(21))<br>
        {<br>                t_on_failure(&quot;2&quot;);<br>        }<br>        if(isflagset(29))<br>        {<br>                append_branch();<br>        }<br>        if(is_present_hf(&quot;Proxy-Authorization&quot;))<br>
        {<br>                consume_credentials();<br>        }<br><br>        xlog(&quot;L_INFO&quot;, &quot;Request leaving server, D-URI=&#39;$du&#39; - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        # no 100 (we already sent it) and no DNS blacklisting<br>
        if(!t_relay(&quot;0x05&quot;))<br>        {<br>                sl_reply_error();<br>                if(is_method(&quot;INVITE&quot;) &amp;&amp; isbflagset(6))<br>                {<br>                        end_media_session();<br>
                }<br>        }<br>        exit;<br>}<br><br>########################################################################<br># Request route &#39;base-route-invite&#39;<br>########################################################################<br>
route[9]<br>{<br>        sl_send_reply(&quot;100&quot;, &quot;Trying&quot;);<br>        if(from_gw())<br>        {<br>                $avp(s:caller_uuid)=&quot;0&quot;;<br>                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>
                setflag(23);<br>                $avp(s:ringtimeout)=1000;<br><br>                route(3);<br>                if (nat_uac_test(&quot;3&quot;)) <br>        {<br>                        xlog(&quot;L_INFO&quot;, &quot;Inside NATed INVITE Processing\n&quot;);<br>
                        fix_nated_contact();<br>                        fix_nated_sdp(&quot;3&quot;);<br><br>                        t_on_reply(&quot;1&quot;);<br>                }<br>                else <br>        {<br>
                    t_on_reply(&quot;1&quot;);<br>                }<br><br>                if(nat_uac_test(&quot;19&quot;))<br>                {<br>                        fix_nated_contact();<br>                        setbflag(6);<br>
                }<br><br>                route(51);<br>        }<br>        else<br>        {<br>                if(!proxy_authorize(&quot;&quot;, &quot;subscriber&quot;)) <br>                {<br>                        xlog(&quot;L_INFO&quot;, &quot;Proxy authentication failed - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
                        proxy_challenge(&quot;&quot;, &quot;0&quot;);<br>                        exit;<br>                }<br>                if(!check_from()) <br>                {<br>                        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>
                        sl_send_reply(&quot;403&quot;, &quot;Spoofed From-URI Detected&quot;);<br>                        exit;<br>                }<br><br>                route(3);<br>                if(nat_uac_test(&quot;19&quot;))<br>
                {<br>                        fix_nated_contact();<br>                        setbflag(6);<br>                }<br>                route(10);<br>        }<br>}<br><br>########################################################################<br>
# Request route &#39;invite-find-callee&#39;<br>########################################################################<br>route[10]<br>{<br>        if(alias_db_lookup(&quot;dbaliases&quot;))<br>        {<br>                xlog(&quot;L_INFO&quot;, &quot;Callee was aliased - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
        }<br><br>        route(2);<br>        if(!is_domain_local(&quot;$rd&quot;))<br>        {<br>                setflag(20);<br>                $avp(s:callee_uuid) = &quot;0&quot;;<br>                route(12);<br>        }<br>
        avp_delete(&quot;$avp(s:callee_uuid)&quot;);<br>        avp_db_query(&quot;select uuid from subscriber where username = &#39;$rU&#39;&quot;, &quot;$avp(s:callee_uuid)&quot;);<br>        if(is_avp_set(&quot;$avp(s:callee_uuid)/s&quot;))<br>
        {<br>                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>                route(11);<br>        }<br>        else<br>
        {<br>                $avp(s:callee_uuid) = &quot;0&quot;;<br>                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>#<br>#        *86 - sending user direct to access voicemail from sip client<br>
#<br>                if($rU==&quot;*86&quot;)<br>                {<br>                        route(12);<br>                }<br>                else<br>                {<br>                        if($(rU{s.len})&lt;=7)<br>
                        {<br>                                route(11);<br>                        }<br>                        else<br>                        {<br>                                route(12);<br>                        }<br>
                }<br>        }<br>        exit;<br>}<br><br>########################################################################<br># Request route &#39;invite-to-internal&#39;<br>########################################################################<br>
<br>route[11]<br>{<br>        route(4);<br>        revert_uri();<br>        seturi(&quot;sip:*<a href="mailto:89@openser.org">89@openser.org</a>&quot;);<br><br>        rewritehostport(&quot;<a href="http://voicemailserver.testpbx.com:5060">voicemailserver.testpbx.com:5060</a>&quot;);<br>
        route(8);<br>        exit;<br>}<br><br>########################################################################<br># TEST ROUTE 51<br>########################################################################<br>route[51]<br>
{<br>        if(alias_db_lookup(&quot;dbaliases&quot;))<br>        {<br>                xlog(&quot;L_INFO&quot;, &quot;Callee was aliased - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        }<br><br>        route(2);<br>
        if(!is_domain_local(&quot;$rd&quot;))<br>        {<br>                setflag(20);<br>                $avp(s:callee_uuid) = &quot;0&quot;;<br>                route(12);<br>        }<br>        avp_delete(&quot;$avp(s:callee_uuid)&quot;);<br>
        avp_db_query(&quot;select uuid from subscriber where username = &#39;$rU&#39;&quot;, &quot;$avp(s:callee_uuid)&quot;);<br>        if(is_avp_set(&quot;$avp(s:callee_uuid)/s&quot;))<br>        {<br>                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>
                route(52);<br>        }<br>        else<br>        {<br>                $avp(s:callee_uuid) = &quot;0&quot;;<br>                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>
                route(12);<br>        }<br>        exit;<br>}<br><br>########################################################################<br>#TEST 52<br>########################################################################<br>
route[52]<br>{<br>        route(4);<br>        if(!lookup(&quot;location&quot;)) <br>        {<br>                xlog(&quot;L_INFO&quot;, &quot;Local user offline - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                sl_send_reply(&quot;404&quot;, &quot;User Offline&quot;);<br>
        }<br>        else<br>        {<br>                xlog(&quot;L_INFO&quot;, &quot;Local user online - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                route(8);<br>        }<br>        exit;<br>
}<br><br>########################################################################<br># Request route &#39;invite-to-external&#39;<br>########################################################################<br>route[12]<br>
{<br>        if(isflagset(20))<br>        {<br>                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>                route(8);<br>                exit;<br>
        }<br>        if(!isflagset(23))<br>        {<br>                if(uri =~ &quot;^sip:\*86@.*&quot;)<br>                {<br>                           xlog(&quot;L_INFO&quot;, &quot;User accessing Voicemail - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
                     rewritehostport(&quot;<a href="http://voicemailserver.testpbx.com:5060">voicemailserver.testpbx.com:5060</a>&quot;);<br>                route(8);<br>                }<br>                # don&#39;t allow calls relaying from PSTN to PSTN, if not explicitely forwarded<br>
                else if(uri =~ &quot;^sip:[0-9]+@&quot;)<br>                {<br>                        # only route numeric users to PSTN<br>                        if(!load_gws())<br>                        {<br>                                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>
                                sl_send_reply(&quot;503&quot;, &quot;PSTN Termination Currently Unavailable&quot;);<br>                                exit;<br>                        }<br>                        if(!next_gw())<br>
                        {<br>                                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>                                sl_send_reply(&quot;503&quot;, &quot;PSTN Termination Currently Unavailable&quot;);<br>
                                exit;<br>                        }<br>                        setflag(21);<br>                        t_on_failure(&quot;1&quot;);<br>                        route(8);<br>                }<br>
        }<br><br>        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>        sl_send_reply(&quot;404&quot;, &quot;User Not Found&quot;);<br>        exit;<br>
}<br><br>########################################################################<br># Request route &#39;base-route-local&#39;<br>########################################################################<br>route[13]<br>{<br>
        t_on_reply(&quot;1&quot;);<br>        if(t_check_trans())<br>        {<br>                xlog(&quot;L_INFO&quot;, &quot;Request leaving server - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        }<br>
        else<br>        {<br>                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>                exit;<br>        }<br>        if(!t_relay())<br>
        {<br>                sl_reply_error();<br>        }<br>        exit;<br>}<br><br><br>########################################################################<br># Request route &#39;base-route-generic&#39;<br>########################################################################<br>
route[14]<br>{<br>        xlog(&quot;L_INFO&quot;, &quot;Method not supported - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        sl_send_reply(&quot;501&quot;, &quot;Method Not Supported Here&quot;);<br>        exit;<br>
}<br><br>########################################################################<br># Request route &#39;base-filter-failover&#39;<br>########################################################################<br>route[15]<br>
{<br>        if(!t_check_status(&quot;408|500|503&quot;))<br>        {<br>                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>
                route(6);<br>                exit;<br>        }<br>}<br><br><br>########################################################################<br>#Send the call out<br>########################################################################<br>
<br>route[16]<br>{<br>    #send the call outward<br>     if(method==&quot;INVITE&quot; &amp;&amp; !isflagset(10))<br>     {<br>          t_on_failure(&quot;2&quot;);<br>     }<br> <br>     if (!t_relay()) <br>    {<br>          xlog(&quot;L_WARN&quot;, &quot;ERROR: t_relay failed&quot;);<br>
          sl_reply_error();<br>    }<br>}<br><br>########################################################################<br># Request route &#39;Voicemail and Asterisk for further processing&#39;<br>########################################################################<br>
failure_route[3]<br>{<br>         if(!t_was_cancelled())<br>         {<br>              revert_uri();<br>              rewritehostport(&quot;<a href="http://voicemailserver.testpbx.com:5060">voicemailserver.testpbx.com:5060</a>&quot;);<br>
              append_branch();<br>              #PREVENT SOME CRAZY VOICEMAIL LOOP<br>                xlog(&quot;L_INFO&quot;, &quot;No Answer Sending the call to Voicemail  - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
               setflag(10);<br>               route(8);<br>     }<br>}<br><br>########################################################################<br># Reply route &#39;base-standard-reply&#39;<br>########################################################################<br>
onreply_route[1]<br>{<br>        xlog(&quot;L_INFO&quot;, &quot;Reply - S=$rs D=$rr F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        if (nat_uac_test(&quot;1&quot;)) <br>        {<br>            fix_nated_contact();<br>        }<br>
        exit;<br>}<br><br>########################################################################<br># Reply route &#39;base-nat-reply&#39;<br>########################################################################<br>onreply_route[2]<br>
{<br>        xlog(&quot;L_INFO&quot;, &quot;NAT-Reply - S=$rs D=$rr F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        if(nat_uac_test(&quot;1&quot;))<br>        {<br>                fix_nated_contact();<br>                xlog(&quot;L_INFO&quot;, &quot;NAT-Reply==[Fix_nated_contact] - S=$rs D=$rr F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
        }<br><br>        if(isbflagset(6) &amp;&amp; status=~&quot;(180)|(183)|2[0-9][0-9]&quot;) <br>        {<br>                if(!search(&quot;^Content-Length:[ ]*0&quot;))<br>                {<br>                        use_media_proxy();<br>
                        xlog(&quot;L_INFO&quot;, &quot;NAT-Reply==[Force Rtp proxy] - S=$rs D=$rr F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                }<br>        }<br>        exit;<br>}<br><br>########################################################################<br>
# Failure route &#39;pstn-failover&#39;<br>########################################################################<br>failure_route[1]<br>{<br>        xlog(&quot;L_INFO&quot;, &quot;Failure route for PSTN entered - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
        route(15);<br>        if(!next_gw())<br>        {<br>                xlog(&quot;L_ERR&quot;, &quot;Failed to select next PSTN gateway - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                route(6);<br>
                exit;<br>        }<br><br>        t_on_failure(&quot;3&quot;);<br>        route(8);<br>}<br><br>########################################################################<br># Failure route &#39;base-standard-failure&#39;<br>
########################################################################<br>failure_route[2]<br>{<br>        if(!t_was_cancelled())<br>        {<br>                revert_uri();<br>                route(10);<br>        }<br>
        if(t_check_status(&quot;422|481|487&quot;))<br>        {<br>                xlog(&quot;L_INFO&quot;, &quot;Final reply - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                route(6);<br>                exit;<br>
        }<br><br>        t_on_branch(&quot;1&quot;);<br>        xlog(&quot;L_INFO&quot;, &quot;Redirect from UAC intercepted - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>        route(10);<br>        if($avp(s:cfc) != NULL)<br>
        {<br>                avp_pushto(&quot;$ru&quot;, &quot;$avp(s:cfc)&quot;);<br>                setflag(29);<br>                append_branch();<br><br>                t_on_branch(&quot;1&quot;);<br>                xlog(&quot;L_INFO&quot;, &quot;CFC detected - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
                route(10);<br>        }<br><br>        route(15);<br>        route(6);<br>}<br><br>########################################################################<br># Branch route &#39;cfc-drop-local&#39;<br>########################################################################<br>
branch_route[1]<br>{<br>        if(is_domain_local(&quot;$rd&quot;))<br>        {<br>                xlog(&quot;L_INFO&quot;, &quot;Dropping local branch - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>                drop();<br>
        }<br>}<br><br><br><br clear="all"><br>-- <br>Regards,<br><br>Chandrakant Solanki<br>