<div dir="ltr"><div class="gmail_default" style=""><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">Hello,</div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px"><br></div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">Hi team I have a kamailio SIP server for call Routing,my call flow is like </div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px"><br></div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">VoipDialer--->Kamailio-Routing Server-->Softswitch-->Telco/PSTN Mobile</div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">caller----------------------------------------------------------------------->calle</div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">                                 </div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">Now Am facing an issue for a call from voip to telco after answering the call</div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">i tried to disconnect.but call is not disconneting..what will i do in kamailio.cfg</div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">pls help me to re-write the script am using tls also</div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px"><br></div><div class="gmail_default" style=""><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!KAMAILIO</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define WITH_MYSQL</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define WITH_AUTH</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define WITH_USRLOCDB</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define WITH_NAT</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define WITH_TLS</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">####### Defined Values #########</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># *** Value defines - IDs used later in config</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># - database URL - used to connect to database server by modules such</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       as: auth_db, acc, usrloc, a.s.o.</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define FLT_ACC 1</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define FLT_ACCMISSED 2</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define FLT_ACCFAILED 3</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define FLT_NATS 5</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define FLT_DLG 9</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define FLB_NATB 10</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!define FLB_NATSIPPING 7</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">####### Global Parameters #########</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">### LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_DEBUG</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">debug=3</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">log_stderror=yes</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!else</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">debug=2</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">log_stderror=no</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">memdbg=5</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">memlog=5</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">log_facility=LOG_LOCAL0</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">fork=yes</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">children=4</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">/* uncomment the next line to disable TCP (default on) */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#disable_tcp=yes</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">/* uncomment the next line to disable the auto discovery of local aliases</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">   based on reverse DNS on IPs (default on) */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#auto_aliases=no</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">/* add local domain aliases */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#alias="<a href="http://sip.mydomain.com">sip.mydomain.com</a>"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">/* uncomment and configure the following line if you want Kamailio to</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">   bind on a specific interface/port/proto (default bind on all available) */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#listen=udp:<a href="http://10.0.0.10:5060">10.0.0.10:5060</a></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">/* port to listen to</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"> * - can be specified more than once if needed to listen on many ports */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">port=5060</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">server_signature=yes</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">server_header="Server: MediaController"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">user_agent_header="User-Agent: Vp Dialer 11"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">auto_aliases=yes</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#listen=udp:xxx.xxx.xxx.xx:5060</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">listen=udp:xxx.xxx.xxx.xx:5060</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">listen=tls:xxx.xxx.xxx.xx:443</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">alias="xxx.xxxx.xxx:443"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">alias="xxx.xxx.xxx:5060"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">disable_tcp=no</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">tcp_children=32</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">tcp_keepalive=no</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">tcp_max_connections=25000</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">tcp_send_timeout=3</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">tcp_connection_lifetime=960</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">tcp_connect_timeout=5</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">tcp_no_connect=yes</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">open_files_limit=1024000</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_TLS</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">enable_tls=yes</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># life time of TCP connection when there is no traffic</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># - a bit higher than registration expires to cope with UA behind NAT</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">tcp_connection_lifetime=3605</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">####### Custom Parameters #########</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># These parameters can be modified runtime via RPC interface</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># - see the documentation of 'cfg_rpc' module.</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Format: <a href="http://group.id">group.id</a> = value 'desc' description</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Access: $sel(<a href="http://cfg_get.group.id">cfg_get.group.id</a>) or @<a href="http://cfg_get.group.id">cfg_get.group.id</a></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_PSTN</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># PSTN GW Routing</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># - pstn.gw_ip: valid IP or hostname as string value, example:</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># pstn.gw_ip = "10.0.0.101" desc "My PSTN GW Address"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># - by default is empty to avoid misrouting</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">pstn.gw_ip = "" desc "PSTN GW Address"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">pstn.gw_port = "" desc "PSTN GW Port"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_VOICEMAIL</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># VoiceMail Routing on offline, busy or no answer</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># - by default Voicemail server IP is empty to avoid misrouting</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">voicemail.srv_ip = "" desc "VoiceMail IP Address"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">voicemail.srv_port = "5060" desc "VoiceMail Port"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">####### Modules Section ########</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># set paths to location of modules (to sources or installation folders)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_SRCPATH</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">mpath="modules/"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!else</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">mpath="/usr/local/kamailio-4.3/lib64/kamailio/modules/"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_MYSQL</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "db_mysql.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "mi_fifo.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "kex.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "corex.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "tm.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "tmx.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "sl.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "rr.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "pv.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "maxfwd.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "usrloc.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "registrar.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "textops.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "siputils.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "xlog.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "sanity.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "ctl.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "cfg_rpc.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "mi_rpc.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "acc.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "dialog.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "dialplan.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "avpops.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_AUTH</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "auth.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "auth_db.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_IPAUTH</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "permissions.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_ALIASDB</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "alias_db.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_SPEEDDIAL</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "speeddial.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_MULTIDOMAIN</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "domain.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_PRESENCE</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "presence.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "presence_xml.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_NAT</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "nathelper.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "rtpproxy.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_TLS</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "tls.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_ANTIFLOOD</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "htable.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "pike.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_XMLRPC</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "xmlrpc.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_DEBUG</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">loadmodule "debugger.so"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----------------- setting module-specific parameters ---------------</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- mi_fifo params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("mi_fifo", "fifo_name", "/var/run/kamailio/kamailio_fifo")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("mi_fifo", "fifo_mode", "0666")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("mi_fifo", "fifo_mode", 0666)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- ctl params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- tm params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># auto-discard branches from previous serial forking leg</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("tm", "failure_reply_mode", 3)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># default retransmission timeout: 30sec</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("tm", "fr_timer", 50000)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># default invite retransmission timeout after 1xx: 120sec</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("tm", "fr_inv_timer", 120000)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("tm", "restart_fr_on_each_reply", 0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- rr params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># set next param to 1 to add value to ;lr param (helps with some UAs)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("rr", "enable_full_lr", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># do not append from tag to the RR (no need for this script)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("rr", "append_fromtag", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("rr", "enable_double_rr", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- registrar params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("registrar", "flow_timer", 25)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("registrar", "method_filtering", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#uncomment the next line to disable parallel forking via location */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># modparam("registrar", "append_branches", 0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#* uncomment the next line not to allow more than 10 contacts per AOR */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("registrar", "tcp_persistent_flag", 7)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("registrar", "flow_timer",25)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("registrar", "outbound_mode", 2)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("registrar", "max_contacts", 10)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># max value for expires of registrations</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#odparam("registrar", "max_expires", 3600)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># set it to 1 to enable GRUU</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#odparam("registrar", "gruu_enabled", 0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("avpops","db_url","mysql://<a href="http://root:root@127.0.0.1/kamailio">root:root@127.0.0.1/kamailio</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("avpops","avp_table","GW_Routing")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("dialplan", "db_url", "mysql://<a href="http://root:root@127.0.0.1:3306/kamailio">root:root@127.0.0.1:3306/kamailio</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("dialog", "dlg_flag",0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("dialog", "dlg_match_mode",2)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("dialog", "default_timeout", 7200)  # 2 hours timeout</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("dialog", "db_mode", 0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- acc params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#/* what special events should be accounted ? */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("acc", "early_media", 0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("acc", "report_ack", 0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("acc", "report_cancels", 0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#/* by default ww do not adjust the direct of the sequential requests.</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"> #  if you enable this parameter, be sure the enable "append_fromtag"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">  # in "rr" module */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("acc", "detect_direction", 0)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#/* account triggers (flags) */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("acc", "log_flag", FLT_ACC)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("acc", "log_missed_flag", FLT_ACCMISSED)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("acc", "log_extra",</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       "src_user=$fU;src_domain=$fd;src_ip=$si;"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#/* enhanced DB accounting */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_ACCDB</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("acc", "db_flag", FLT_ACC)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("acc", "db_missed_flag", FLT_ACCMISSED)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("acc", "db_url", DBURL)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("acc", "db_extra",</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       "src_user=$fU;src_domain=$fd;src_ip=$si;"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       "dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- usrloc params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#/* enable DB persistency for location entries */</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_USRLOCDB</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("usrloc", "db_url", DBURL)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("usrloc", "db_mode", 2)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("usrloc", "use_domain", MULTIDOMAIN)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- auth_db params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_AUTH</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("auth_db", "db_url", "mysql://<a href="http://root:root@127.0.0.1:3306/kamailio">root:root@127.0.0.1:3306/kamailio</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("auth_db", "calculate_ha1", yes)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("auth_db", "password_column", "password")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("auth_db", "load_credentials", "")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("auth_db", "use_domain", MULTIDOMAIN)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- permissions params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_IPAUTH</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("permissions", "db_url", DBURL)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("permissions", "db_mode", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- alias_db params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_ALIASDB</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("alias_db", "db_url", "mysql://<a href="http://root:root@127.0.0.1:3306/kamailio">root:root@127.0.0.1:3306/kamailio</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("alias_db", "use_domain", MULTIDOMAIN)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- speeddial params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_SPEEDDIAL</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("speeddial", "db_url", DBURL)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("speeddial", "use_domain", MULTIDOMAIN)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- domain params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_MULTIDOMAIN</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("domain", "db_url", DBURL)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># register callback to match myself condition with domains list</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("domain", "register_myself", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_PRESENCE</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- presence params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("presence", "db_url", DBURL)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- presence_xml params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("presence_xml", "db_url", DBURL)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("presence_xml", "force_active", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_NAT</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- rtpproxy params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("rtpproxy", "rtpproxy_sock","udp:<a href="http://127.0.0.1:2221">127.0.0.1:2221</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("rtpproxy", "rtpproxy_sock","2 == udp:<a href="http://127.0.0.1:2223">127.0.0.1:2223</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("rtpproxy", "rtpproxy_sock", "unix:/var/run/rtpproxy/rtpproxy.sock")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("rtpproxy", "rtpproxy_sock", "udp:<a href="http://127.0.0.1:2221">127.0.0.1:2221</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("rtpproxy", "rtpproxy_sock", "udp:<a href="http://127.0.0.1:2222">127.0.0.1:2222</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("rtpproxy", "rtpproxy_tout", 2)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("rtpproxy", "rtpproxy_retr", 3)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("rtpproxy", "nortpproxy_str", "")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("rtpproxy", "timeout_socket", "tcp:<a href="http://127.0.0.1:2221">127.0.0.1:2221</a> tcp:<a href="http://127.0.0.1:2222">127.0.0.1:2222</a> tcp:<a href="http://127.0.0.1:2223">127.0.0.1:2223</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- nathelper params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("nathelper", "natping_interval",3600)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("nathelper", "ping_nated_only", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#modparam("nathelper", "sipping_from", "<a href="mailto:sip%3Apinger@kamailio.org">sip:pinger@kamailio.org</a>")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># params needed for NAT traversal in other modules</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("usrloc", "nat_bflag", FLB_NATB)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_TLS</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- tls params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("tls", "config", "/usr/local/kamailio-4.3/etc/kamailio/tls.cfg")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_ANTIFLOOD</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- pike params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("pike", "sampling_time_unit", 2)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("pike", "reqs_density_per_unit", 16)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("pike", "remove_latency", 4)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- htable params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ip ban htable with autoexpire after 5 minutes</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("htable", "htable", "ipban=>size=8;autoexpire=300;")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_XMLRPC</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- xmlrpc params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("xmlrpc", "route", "XMLRPC");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("xmlrpc", "url_match", "^/RPC")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_DEBUG</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># ----- debugger params -----</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("debugger", "cfgtrace", 1)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">modparam("debugger", "log_level_name", "exec")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">####### Routing Logic ########</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Main SIP request routing logic</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># - processing of any incoming SIP request starts with this route</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># - note: this is the same as route { ... }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">xlog("DialogRoutes starte'$fd,$avp(i:101)");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">avp_db_query("select enabled from Dest_GW_Routing where ingress_domain='$fd'","$avp(i:101)");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">if ($avp(i:101)=="1") {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">xlog("DialogRoutes started==$DLG_status=======has_totag()\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        avp_db_query("select egress_ruri, Secure_IP, Secure_Port from GW_Routing where ingress_domain='$fd'","$avp(i:102);$avp(i:106);$avp(i:107)");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        $var(UAS_URI)= $avp(i:102);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        remove_hf("Record-Route");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        remove_hf("Contact");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        append_hf("Contact: <sip:$fU@$avp(i:106):$avp(i:107)>\r\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        remove_hf("User-Agent");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        append_hf("User-Agent: Vp Dialer 11\r\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!mf_process_maxfwd_header("10")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("483","Too Many Hops");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (has_totag()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        xlog("===STAG==1====$DLG_status");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        loose_route();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                         xlog("DialogPrintooo: BLOGS");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if(is_known_dlg()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                xlog("DialogPrintSTATUUUo: $DLG_status");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                 xlog("Dialog NULL");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                record_route();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if (is_method("BYE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                         xlog("DialogPrintooo: BYE");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                remove_hf("User-Agent");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                t_relay();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        else if (is_method("INVITE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                         xlog("DialogPrintooo: INVITE");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                record_route();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                         xlog("DialogPrintooo: LEVEL");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if ( is_method("ACK")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                remove_hf("Route");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                if ( t_check_trans() ) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                        t_relay();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        sl_send_reply("404","Not here");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        xlog("===STAG==2====$DLG_status");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("BYE") && $DLG_status < 3) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("501", "Method Not Supported Here");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("CANCEL")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if (t_check_trans()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        t_relay();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        t_check_trans();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!(is_method("REGISTER"))) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                record_route();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (loose_route()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if (!is_method("ACK"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        sl_send_reply("403","Preload Route denied");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #&</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("INVITE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                #if ( !create_dialog("B") ) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                 #       send_reply("500","Internal Server Error");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                 #       exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">               # }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">           if(!is_known_dlg()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        xlog("Request $rm from $ci is in-dialog\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        send_reply("500","Internal Server Error");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("PUBLISH|SUBSCRIBE|MESSAGE"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("503","Method Not Allowed");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("REGISTER"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#               save("location");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if ($rU==$null) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("484","Address Incomplete");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"> else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        sl_send_reply("503","Access Denied");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"> }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # per request initial checks</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       route(REQINIT);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # NAT detection</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       route(NATDETECT);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # CANCEL processing</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #if (is_method("CANCEL")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       if (t_check_trans()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #               route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # handle requests within SIP dialogs</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #route(WITHINDLG);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        ### only initial requests (no To tag)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # handle retransmissions</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #if(t_precheck_trans()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       t_check_trans();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #t_check_trans();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # authentication</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       route(AUTH);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # record routing for dialog forming requests (in case they are routed)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # - remove preloaded route headers</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       remove_hf("Route");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       if (is_method("INVITE|SUBSCRIBE"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#               record_route();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # account only INVITEs</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       if (is_method("INVITE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#               setflag(FLT_ACC); # do accounting</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # dispatch requests to foreign domains</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       route(SIPOUT);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        ### requests for my local domains</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # handle presence related requests</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       route(PRESENCE);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # handle registrations</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       route(REGISTRAR);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       if ($rU==$null) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # request with no Username in RURI</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#               sl_send_reply("484","Address Incomplete");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#               exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # dispatch destinations to PSTN</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       route(PSTN);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # user location service</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       route(LOCATION);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Wrapper for relaying requests</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[RELAY] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        remove_hf("Route");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        $var(UAS_URI)= $avp(i:102);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        $du = $var(UAS_URI);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("INVITE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if($rm=="INVITE") {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        avp_db_query("select track_status from IP_Tracker where track_username='$fU'","$avp(i:121)");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                        if($avp(i:121)==1) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                                avp_db_query("insert into IP_Track_CDR (caller,called,source_ip) values ('$fU','$tU','$si')");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        avp_db_query("select active, license from Dest_GW_Routing where ingress_domain='$fd'","$avp(active);$avp(i:116)");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if($avp(active)>=$avp(i:116)) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                xlog("Active Calls Limit Reached for $fd, Dropping Call");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                sl_send_reply("503", "Max call limit reached");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if($rU=~"\+[0-9]") {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                strip(1);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                if(!has_totag()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                        remove_hf("To");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                        append_hf("To:<sip:$rU@$fd>\r\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                remove_hf("User-Agent");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                remove_hf("Route");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                fix_nated_contact();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                force_rport();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                t_on_reply("NAT_HANDLE");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                t_on_failure("MANAGE_FAILURE");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if (has_body("application/sdp")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        replace_body("s=.*", "s= Vp Dialer\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        replace_body_all("a=rtcp.*\n", "");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                       codec_delete("speex");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                       codec_delete("opus");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                       codec_delete("telephone-event","16000");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                       codec_delete("telephone-event","48000");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                       codec_delete("pcmu");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#                       codec_delete("pcma");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        rtpproxy_offer("coz20");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("BYE") || is_method("CANCEL")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                #rtpproxy_unforce();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                unforce_rtp_proxy();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!t_relay()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                send_reply("500","Server Internal Error");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        };</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[RELAY_2] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        $var(UAS_URI)= $avp(i:102);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!is_method("INVITE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if ($rU=~"^\*") {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                $du = $var(UAS_URI);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">         }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">onreply_route[NAT_HANDLE] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">  avp_db_query("select Secure_Domain, ingress_sig_port, ingress_transport from Dest_GW_Routing where ingress_domain='$fd'","$avp(i:103);$avp(i:104);$avp(i:105)");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        $var(NAS_Domain)= $avp(i:103);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        $var(NAS_Port)= $avp(i:104);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        $var(NAS_Transport)= $avp(i:105);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        force_rport();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#        fix_nated_contact();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#        record_route();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        remove_hf("Record-Route");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        remove_hf("Contact");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        append_hf("Contact: <sip:$fU@$var(NAS_Domain):$var(NAS_Port);transport=$var(NAS_Transport)>\r\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("REGISTER")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        remove_hf("Contact");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        append_hf("Contact: <sip:$fU@$var(NAS_Domain):$var(NAS_Port);transport=$var(NAS_Transport);expires=300>\r\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (t_check_status("200") && has_body("application/sdp")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                rtpproxy_answer("z100");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(search_body("a=ptime:.*") && !search_body("a=ptime:100")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        replace_body("a=ptime:.*", "a=ptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                else if(!search_body("a=ptime:.*")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        search_append_body("a=fmtp:18.*", "\na=ptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(search_body("a=maxptime:.*")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        replace_body("a=maxptime:.*", "a=maxptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("BYE") || is_method("CANCEL")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                #rtpproxy_unforce();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                unforce_rtp_proxy();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (t_check_status("183") && has_body("application/sdp")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(search_body("a=ptime:.*") && !search_body("a=ptime:100")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        replace_body("a=ptime:.*", "a=ptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                else if(!search_body("a=ptime:.*")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        search_append_body("a=fmtp:18.*", "\na=ptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(search_body("a=maxptime:.*")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        replace_body("a=maxptime:.*", "a=maxptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                rtpproxy_offer("coz100");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (t_check_status("180") && has_body("application/sdp")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(search_body("a=ptime:.*") && !search_body("a=ptime:100")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        replace_body("a=ptime:.*", "a=ptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                else if(!search_body("a=ptime:.*")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        search_append_body("a=fmtp:18.*", "\na=ptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(search_body("a=maxptime:.*")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        replace_body("a=maxptime:.*", "a=maxptime:100\r");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                rtpproxy_offer("coz100");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # enable additional event routes for forwarded requests</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # - serial forking, RTP relaying handling, a.s.o.</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #if (is_method("INVITE|SUBSCRIBE|UPDATE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #if (is_method("INVITE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #if (!t_relay()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #       sl_reply_error();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Per SIP request initial checks</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[REQINIT] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_ANTIFLOOD</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # flood detection from same IP and traffic ban for a while</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # be sure you exclude checking trusted peers, such as pstn gateways</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # - local host excluded (e.g., loop to self)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(src_ip!=myself) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if($sht(ipban=>$si)!=$null) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        # ip is already blocked</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        xdbg("request from blocked IP - $rm from $fu (IP:$si:$sp)\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if (!pike_check_req()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        $sht(ipban=>$si) = 1;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if($ua =~ "friendly-scanner") {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("200", "OK");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!mf_process_maxfwd_header("10")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("483","Too Many Hops");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(is_method("OPTIONS") && uri==myself && $rU==$null) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("200","Keepalive");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(!sanity_check("1511", "7")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                xlog("Malformed SIP message from $si:$sp\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Handle requests within SIP dialogs</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[WITHINDLG] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">         xlog("===STAG==111=$DLG_status");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!has_totag()) return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">         xlog("===STAG==112=$DLG_status");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # sequential request withing a dialog should</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # take the path determined by record-routing</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (loose_route()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">         xlog("===STAG==113=$DLG_status");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(DLGURI);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if (is_method("BYE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        setflag(FLT_ACC); # do accounting ...</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        setflag(FLT_ACCFAILED); # ... even if the transaction fails</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                else if ( is_method("ACK") ) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        # ACK is forwarded statelessy</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        route(NATMANAGE);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                else if ( is_method("NOTIFY") ) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        # Add Record-Route for in-dialog NOTIFY as per RFC 6665.</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        record_route();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("SUBSCRIBE") && uri == myself) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # in-dialog subscribe requests</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(PRESENCE);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if ( is_method("ACK") ) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if ( t_check_trans() ) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        # no loose-route, but stateful ACK;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        # must be an ACK after a 487</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        # or e.g. 404 from upstream server</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                } else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        # ACK without matching transaction ... ignore and discard</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        sl_send_reply("404","Not here");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Handle SIP registrations</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[REGISTRAR] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!is_method("REGISTER")) return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(isflagset(FLT_NATS)) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                setbflag(FLB_NATB);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_NATSIPPING</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # do SIP NAT pinging</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                setbflag(FLB_NATSIPPING);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!save("location"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_reply_error();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># User location service</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[LOCATION] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_SPEEDDIAL</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # search for short dialing - 2-digit extension</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if($rU=~"^[0-9][0-9]$")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(sd_lookup("speed_dial"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        route(SIPOUT);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_ALIASDB</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # search in DB-based aliases</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(alias_db_lookup("dbaliases"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(SIPOUT);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        $avp(oexten) = $rU;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!lookup("location")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                $var(rc) = $rc;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(TOVOICEMAIL);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                t_newtran();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                switch ($var(rc)) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        case -1:</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        case -3:</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                send_reply("404", "Not Found");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        case -2:</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                send_reply("405", "Method Not Allowed");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # when routing via usrloc, log the missed calls also</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("INVITE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                setflag(FLT_ACCMISSED);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Presence server processing</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[PRESENCE] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(!is_method("PUBLISH|SUBSCRIBE"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(is_method("SUBSCRIBE") && $hdr(Event)=="message-summary") {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                route(TOVOICEMAIL);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # returns here if no voicemail server is configured</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("404", "No voicemail service");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_PRESENCE</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!t_newtran()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_reply_error();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(is_method("PUBLISH")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                handle_publish();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                t_release();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        } else if(is_method("SUBSCRIBE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                handle_subscribe();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                t_release();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # if presence enabled, this part will not be executed</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("PUBLISH") || $rU==$null) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("404", "Not here");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># IP authorization and user authentication</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[AUTH] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_AUTH</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_IPAUTH</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if((!is_method("REGISTER")) && allow_source_address()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # source IP allowed</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_method("REGISTER") || from_uri==myself)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # authenticate requests</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if (!auth_check("$fd", "subscriber", "1")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        auth_challenge("$fd", "0");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # user authenticated - remove auth header</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(!is_method("REGISTER|PUBLISH"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        consume_credentials();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # if caller is not local subscriber, then check if it calls</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # a local destination, otherwise deny, not an open relay here</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (from_uri!=myself && uri!=myself) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("403","Not relaying");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Caller NAT detection</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[NATDETECT] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_NAT</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        force_rport();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (nat_uac_test("19")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if (is_method("REGISTER")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        fix_nated_register();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                } else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if(is_first_hop())</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                set_contact_alias();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                setflag(FLT_NATS);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># RTPProxy control and signaling updates for NAT traversal</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[NATMANAGE] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_NAT</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_request()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(has_totag()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if(check_route_param("nat=yes")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                setbflag(FLB_NATB);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(nat_uac_test("8")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                rtpproxy_manage("co");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        } else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                rtpproxy_manage("cor");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_request()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if (!has_totag()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if(t_is_branch_route()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                add_rr_param(";nat=yes");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (is_reply()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if(isbflagset(FLB_NATB)) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        if(is_first_hop())</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                set_contact_alias();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># URI update for dialog requests</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[DLGURI] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_NAT</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(!isdsturiset()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                handle_ruri_alias();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Routing to foreign domains</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[SIPOUT] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (uri==myself) return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        append_hf("P-hint: outbound\r\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># PSTN GW routing</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[PSTN] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_PSTN</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # check if PSTN GW IP is defined</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (strempty($sel(cfg_get.pstn.gw_ip))) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                xlog("SCRIPT: PSTN routing enabled but pstn.gw_ip not defined\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # route to PSTN dialed numbers starting with '+' or '00'</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        #     (international format)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # - update the condition to match your dialing rules for PSTN routing</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(!($rU=~"^(\+|00)[1-9][0-9]{3,20}$"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # only local users allowed to call</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(from_uri!=myself) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                sl_send_reply("403", "Not Allowed");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (strempty($sel(cfg_get.pstn.gw_port))) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        } else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip) + ":"</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                        + $sel(cfg_get.pstn.gw_port);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># XMLRPC routing</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_XMLRPC</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[XMLRPC] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # allow XMLRPC from localhost</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if ((method=="POST" || method=="GET")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        && (src_ip==127.0.0.1)) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # close connection only for xmlrpclib user agents (there is a bug in</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                # xmlrpclib: it waits for EOF before interpreting the response).</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if ($hdr(User-Agent) =~ "xmlrpclib")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        set_reply_close();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                set_reply_no_connect();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                dispatch_rpc();</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        send_reply("403", "Forbidden");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Routing to voicemail server</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">route[TOVOICEMAIL] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_VOICEMAIL</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(!is_method("INVITE|SUBSCRIBE"))</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # check if VoiceMail server IP is defined</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (strempty($sel(cfg_get.voicemail.srv_ip))) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                xlog("SCRIPT: VoiceMail routing enabled but IP not defined\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if(is_method("INVITE")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if($avp(oexten)==$null)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                $ru = "sip:" + $avp(oexten) + "@" + $sel(cfg_get.voicemail.srv_ip)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                + ":" + $sel(cfg_get.voicemail.srv_port);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        } else {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                if($rU==$null)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                $ru = "sip:" + $rU + "@" + $sel(cfg_get.voicemail.srv_ip)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                                + ":" + $sel(cfg_get.voicemail.srv_port);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        route(RELAY);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        return;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Manage outgoing branches</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">branch_route[MANAGE_BRANCH] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        xdbg("new branch [$T_branch_idx] to $ru\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        route(NATMANAGE);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Manage incoming replies</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#onreply_route[MANAGE_REPLY] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       xdbg("incoming reply\n");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#       if(status=~"[12][0-9][0-9]")</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#               route(NATMANAGE);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Manage failure routing cases</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"># Manage failure routing cases</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">failure_route[MANAGE_FAILURE] {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        route(NATMANAGE);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (t_is_canceled()) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_BLOCK3XX</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # block call redirect based on 3xx replies.</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (t_check_status("486")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                #t_reply("404","Not found");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                send_reply("486","Destination Number is busy, Please try again later.");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"><br></span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!ifdef WITH_VOICEMAIL</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # serial forking</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        # - route to voicemail on busy or no answer (timeout)</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        if (t_check_status("487|408")) {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                #route(TOVOICEMAIL);</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                send_reply("487","Destination Number is Temporarly Unavailable, Please try again later.");</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">                exit;</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">        }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#!endif</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">}</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#local_route {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px"> #       if (is_method("BYE") && $DLG_dir=="UPSTREAM") {</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">  #      }</span></font></div><div class="gmail_default" style=""><font face="comic sans ms, sans-serif"><span style="font-size:12.8px">#}</span></font></div><div style="font-family:'comic sans ms',sans-serif;font-size:12.8px"><br></div></div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px"><br></div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">Regards</div><div class="gmail_default" style="font-family:'comic sans ms',sans-serif;font-size:12.8px">AmanIdo</div></div>
</div>