Hi Robert,<div><br></div><div>Thanks for looking into my problem, here I am pasting my opensips.cfg file-</div><div>____________________________________________________________________</div><div><br></div><div>####### Global Parameters #########</div>
<div><div><br></div><div>debug=6</div><div>log_stderror=no</div><div>log_facility=LOG_LOCAL0</div><div><br></div><div>fork=yes</div><div>children=4</div><div><br></div><div>port=5060</div><div><br></div><div>listen=udp:x.x.x.x:5060</div>
<div><br></div><div>####### Modules Section ########</div><div><br></div><div>mpath="//lib/opensips/modules/"</div><div><br></div><div>loadmodule "db_mysql.so"</div><div>loadmodule "signaling.so"</div>
<div>loadmodule "sl.so"</div><div>loadmodule "tm.so"</div><div>loadmodule "rr.so"</div><div>loadmodule "maxfwd.so"</div><div>loadmodule "usrloc.so"</div><div>loadmodule "registrar.so"</div>
<div>loadmodule "textops.so"</div><div>loadmodule "mi_fifo.so"</div><div>loadmodule "uri.so"</div><div>loadmodule "xlog.so"</div><div>loadmodule "acc.so"</div><div>loadmodule "siptrace.so"</div>
<div>loadmodule "auth.so"</div><div>loadmodule "auth_db.so"</div><div>loadmodule "alias_db.so"</div><div>loadmodule "domain.so"</div><div>loadmodule "permissions.so"</div>
<div>loadmodule "group.so"</div><div>loadmodule "drouting.so"</div><div>loadmodule "avpops.so"</div><div>loadmodule "dialplan.so"</div><div>loadmodule "aaa_radius.so"</div>
<div>loadmodule "dialog.so"</div><div>loadmodule "load_balancer.so"</div><div><br></div><div>#------ avpops params -----</div><div>modparam("avpops", "db_url", "mysql://opensips:opensipsrw@localhost/opensips")</div>
<div>modparam("avpops", "avp_table", "usr_preferences")</div><div><br></div><div>#------ load the dpid field to a pseudo-variable $avp(s:dpid) ------</div><div>modparam("auth_db", "load_credentials", "$avp(s:rpid)=rpid ;$avp(s:countrycode)=contrycode;$avp(s:areacode)=areacode")</div>
<div>modparam("dialplan", "db_url","mysql://opensips:opensipsrw@localhost/opensips")</div><div><br></div><div>## attribute of the matched line will be store in the $avp(s:dest)</div><div>modparam("dialplan", "attrs_pvar", "$avp(s:dest)")</div>
<div><br></div><div># ----- drouting params -----</div><div>#modparam("drouting", "sort_order", 0)</div><div>modparam("drouting", "use_domain", 1)</div><div>modparam("drouting","db_url", "mysql://opensips:opensipsrw@localhost/opensips")</div>
<div>modparam("drouting", "probing_interval", 60)</div><div>modparam("drouting", "probing_from", "sip:pinger@x.x.x.x")</div><div>modparam("drouting", "probing_method", "OPTIONS")</div>
<div>modparam("drouting", "probing_reply_codes", "501, 403, 404")</div><div><br></div><div># ----- Group ----</div><div>modparam("group","db_url","mysql://opensips:opensipsrw@localhost/opensips")</div>
<div><br></div><div># ----- mi_fifo params -----</div><div>modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")</div><div>modparam("mi_fifo", "fifo_mode", 0666)</div><div>
modparam("dialog", "dlg_flag", 13)</div><div>modparam("dialog", "db_mode", 1)</div><div>modparam("dialog", "db_url", "mysql://opensips:opensipsrw@localhost/opensips")</div>
<div>modparam("dialog", "timeout_avp", "$avp(i:30)")</div><div>modparam("dialog", "default_timeout", 3600)</div><div><br></div><div><br></div><div># ----- Load Balancer -----</div>
<div>modparam("load_balancer", "db_url","mysql://opensips:opensipsrw@localhost/opensips")</div><div>modparam("load_balancer", "probing_interval", 60)</div><div>modparam("load_balancer", "probing_method", "INFO")</div>
<div>modparam("load_balancer", "probing_from", "sip:1000@x.x.x.x")</div><div>modparam("load_balancer", "db_table", "load_balancer")</div><div>modparam("load_balancer", "probing_reply_codes", "501, 403, 404")</div>
<div><br></div><div># ----- registrar params -----</div><div>/* uncomment the next line not to allow more than 10 contacts per AOR */</div><div>#modparam("registrar", "max_contacts", 10)</div><div><br>
</div><div><br></div><div># ----- usrloc params -----</div><div><br></div><div>modparam("usrloc", "db_mode", 0)</div><div><br></div><div>/* uncomment the following lines if you want to enable DB persistency</div>
<div> for location entries */</div><div>modparam("usrloc", "db_mode", 2)</div><div>modparam("usrloc", "db_url",<span style="white-space: pre-wrap; ">        </span>"mysql://opensips:opensipsrw@localhost/opensips")</div>
<div><br></div><div><br></div><div># ----- uri params -----</div><div>modparam("uri", "use_uri_table", 0)</div><div><br></div><div><br></div><div># ----- acc params -----</div><div>/* what sepcial events should be accounted ? */</div>
<div>modparam("acc", "early_media", 0)</div><div>modparam("acc", "report_ack", 0)</div><div>modparam("acc", "report_cancels", 0)</div><div>modparam("acc", "detect_direction", 0)</div>
<div>modparam("acc", "failed_transaction_flag", 1)</div><div>modparam("acc", "log_level", 1)</div><div>modparam("acc", "log_flag", 1)</div><div>modparam("acc", "log_missed_flag", 1)</div>
<div>modparam("acc", "db_flag", 1)</div><div>modparam("acc", "db_missed_flag", 2)</div><div>modparam("acc", "aaa_url", "radius:/etc/radiusclient-ng/radiusclient.conf") # Point the configuration file</div>
<div>modparam("acc", "service_type", 15) # Set the service_type to 15</div><div>modparam("acc", "aaa_flag", 1)</div><div>modparam("acc", "aaa_missed_flag", 1)</div>
<div><br></div><div># ----- auth_db params -----</div><div>/* uncomment the following lines if you want to enable the DB based</div><div> authentication */</div><div><br></div><div>modparam("auth_db", "calculate_ha1", yes)</div>
<div>modparam("auth_db", "password_column", "password")</div><div><br></div><div>modparam("auth_db", "db_url","mysql://opensips:opensipsrw@localhost/opensips")</div>
<div>modparam("auth_db", "load_credentials", "")</div><div><br></div><div>####### Routing Logic ########</div><div><br></div><div># main request routing logic</div><div><br></div><div>route{</div>
<div><br></div><div><span style="white-space: pre-wrap; ">        </span>setflag(22);</div><div> sip_trace();</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>if (!mf_process_maxfwd_header("10")) {</div>
<div><span style="white-space: pre-wrap; ">                </span>sl_send_reply("483","Too Many Hops");</div><div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div>
<div><br></div><div>#---- Sequential requests section ----#</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>if (has_totag()) {</div><div><span style="white-space: pre-wrap; ">                </span># sequential request withing a dialog should</div>
<div><span style="white-space: pre-wrap; ">                </span># take the path determined by record-routing</div><div><span style="white-space: pre-wrap; ">                </span>if (loose_route()) {</div><div><span style="white-space: pre-wrap; ">                        </span>if (is_method("BYE")) {</div>
<div><span style="white-space: pre-wrap; ">                                </span>setflag(1); # do accounting ...</div><div><span style="white-space: pre-wrap; ">                                </span>setflag(3); # ... even if the transaction fails</div><div><span style="white-space: pre-wrap; ">                                </span>} else if (is_method("INVITE")) {</div>
<div><span style="white-space: pre-wrap; ">                                </span># even if in most of the cases is useless, do RR for</div><div><span style="white-space: pre-wrap; ">                                </span># re-INVITEs alos, as some buggy clients do change route set</div>
<div><span style="white-space: pre-wrap; ">                                </span># during the dialog.</div><div><span style="white-space: pre-wrap; ">                                </span>record_route();</div><div><span style="white-space: pre-wrap; ">                        </span>}</div><div><span style="white-space: pre-wrap; ">                        </span># route it out to whatever destination was set by loose_route()</div>
<div><span style="white-space: pre-wrap; ">                        </span># in $du (destination URI).</div><div><span style="white-space: pre-wrap; ">                        </span>route(1);</div><div><span style="white-space: pre-wrap; ">                </span>} else {</div><div>
<span style="white-space: pre-wrap; ">                        </span>if ( is_method("ACK") ) {</div><div><span style="white-space: pre-wrap; ">                                </span>if ( t_check_trans() ) {</div><div><span style="white-space: pre-wrap; ">                                        </span>t_relay();</div>
<div><span style="white-space: pre-wrap; ">                                        </span>exit;</div><div><span style="white-space: pre-wrap; ">                                </span>} else {</div><div><span style="white-space: pre-wrap; ">                                        </span>exit;</div><div><span style="white-space: pre-wrap; ">                                </span>}</div>
<div><span style="white-space: pre-wrap; ">                        </span>}</div><div><span style="white-space: pre-wrap; ">                        </span>sl_send_reply("404","Not here");</div><div><span style="white-space: pre-wrap; ">                </span>}</div>
<div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><br></div><div><br></div><div>#---- initial requests section ----#</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span># CANCEL processing</div>
<div><span style="white-space: pre-wrap; ">        </span>if (is_method("CANCEL"))</div><div><span style="white-space: pre-wrap; ">        </span>{</div><div><span style="white-space: pre-wrap; ">                        </span>if (t_check_trans())</div>
<div><span style="white-space: pre-wrap; ">                        </span>t_relay();</div><div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>t_check_trans();</div>
<div><br></div><div><span style="white-space: pre-wrap; ">        </span>if (!(method=="REGISTER") && from_uri==myself) /*no multidomain version*/</div><div><span style="white-space: pre-wrap; ">        </span>if (!(method=="REGISTER") && is_from_local()) /*multidomain version*/</div>
<div><span style="white-space: pre-wrap; ">        </span>{</div><div><span style="white-space: pre-wrap; ">                </span>if (!proxy_authorize("", "subscriber")) {</div><div><span style="white-space: pre-wrap; ">                        </span>proxy_challenge("", "0");</div>
<div><span style="white-space: pre-wrap; ">                        </span>exit;</div><div><span style="white-space: pre-wrap; ">                </span>}</div><div><span style="white-space: pre-wrap; ">                </span>if (!db_check_from()) {</div><div><span style="white-space: pre-wrap; ">                        </span>sl_send_reply("403","Forbidden auth ID");</div>
<div><span style="white-space: pre-wrap; ">                        </span>exit;</div><div><span style="white-space: pre-wrap; ">                </span>}</div><div><span style="white-space: pre-wrap; ">        </span></div><div><span style="white-space: pre-wrap; ">                </span>consume_credentials();</div>
<div><span style="white-space: pre-wrap; ">                </span># caller authenticated</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><br></div><div><br></div><div>#------------------ preloaded route checking ---------------------#</div>
<div><br></div><div><span style="white-space: pre-wrap; ">        </span>if (loose_route()) {</div><div><span style="white-space: pre-wrap; ">                </span>xlog("L_ERR",</div><div><span style="white-space: pre-wrap; ">                </span>"Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");</div>
<div><span style="white-space: pre-wrap; ">                </span>if (!is_method("ACK"))</div><div><span style="white-space: pre-wrap; ">                        </span>sl_send_reply("403","Preload Route denied");</div><div><span style="white-space: pre-wrap; ">                </span>exit;</div>
<div><span style="white-space: pre-wrap; ">        </span>}</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span># record routing</div><div><span style="white-space: pre-wrap; ">        </span>if (!is_method("REGISTER|MESSAGE"))</div>
<div><span style="white-space: pre-wrap; ">                </span>record_route();</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span># account only INVITEs</div><div><span style="white-space: pre-wrap; ">        </span>if (is_method("INVITE")) {</div>
<div><span style="white-space: pre-wrap; ">                </span>setflag(1); # do accounting</div><div><span style="white-space: pre-wrap; ">                </span>setflag(2); # Account Missed Calls</div><div><span style="white-space: pre-wrap; ">                </span>setflag(3); # Account Failed Transactions<span style="white-space: pre-wrap; ">        </span></div>
<div><span style="white-space: pre-wrap; ">                </span>}</div><div><span style="white-space: pre-wrap; ">        </span>if (!uri==myself)</div><div><br></div><div><br></div><div>#---- Routing to external domains ----#</div><div><br>
</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>## replace with following line if multi-domain support is used</div><div><span style="white-space: pre-wrap; ">        </span>if (!is_uri_host_local())</div>
<div><span style="white-space: pre-wrap; ">        </span>{</div><div><span style="white-space: pre-wrap; ">                </span>if(is_from_local()) {</div><div><span style="white-space: pre-wrap; ">                </span>route(1);</div><div><span style="white-space: pre-wrap; ">                </span>} else {</div>
<div><span style="white-space: pre-wrap; ">                        </span>sl_send_reply("403","Not here");</div><div><span style="white-space: pre-wrap; ">                </span>}</div><div><span style="white-space: pre-wrap; ">        </span>}</div>
<div><span style="white-space: pre-wrap; ">                </span>append_hf("P-hint: outbound\r\n"); </div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>if (is_method("PUBLISH"))</div><div><span style="white-space: pre-wrap; ">        </span>{</div>
<div><span style="white-space: pre-wrap; ">                </span>sl_send_reply("$rc", "Service Unavailable");</div><div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div>
<div><span style="white-space: pre-wrap; ">        </span></div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>if (is_method("REGISTER"))</div><div><span style="white-space: pre-wrap; ">        </span>{</div>
<div><span style="white-space: pre-wrap; ">                </span># authenticate the REGISTER requests (uncomment to enable auth)</div><div><span style="white-space: pre-wrap; ">                </span>if (!www_authorize("", "subscriber"))</div>
<div><span style="white-space: pre-wrap; ">                </span>{</div><div><span style="white-space: pre-wrap; ">                        </span>www_challenge("", "0");</div><div><span style="white-space: pre-wrap; ">                        </span>exit;</div>
<div><span style="white-space: pre-wrap; ">                </span>}</div><div><span style="white-space: pre-wrap; ">                </span></div><div><span style="white-space: pre-wrap; ">                </span>if (!db_check_to()) </div><div><span style="white-space: pre-wrap; ">                </span>{</div>
<div><span style="white-space: pre-wrap; ">                        </span>sl_send_reply("403","Forbidden auth ID");</div><div><span style="white-space: pre-wrap; ">                        </span>exit;</div><div><span style="white-space: pre-wrap; ">                </span>}</div>
<div><br></div><div><span style="white-space: pre-wrap; ">                </span>if (!save("location"))</div><div><span style="white-space: pre-wrap; ">                        </span>sl_reply_error();</div><div><br></div><div><span style="white-space: pre-wrap; ">                </span>exit;</div>
<div><span style="white-space: pre-wrap; ">        </span>}</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>if ($rU==NULL) {</div><div><span style="white-space: pre-wrap; ">                </span># request with no Username in RURI</div>
<div><span style="white-space: pre-wrap; ">                </span>sl_send_reply("484","Address Incomplete");</div><div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div>
<div><br></div><div><span style="white-space: pre-wrap; ">        </span># apply DB based aliases (uncomment to enable)</div><div><span style="white-space: pre-wrap; ">        </span>alias_db_lookup("dbaliases");</div><div><br>
</div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>if(!dp_translate("0","$rU/$rU")){</div><div><span style="white-space: pre-wrap; ">        </span> send_reply("420", "Invalid Destination");</div>
<div><span style="white-space: pre-wrap; ">        </span> exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>xlog("$avp(s:dest)");</div><div><span style="white-space: pre-wrap; ">        </span>if ($avp(s:dest)=="usrloc") {</div>
<div><span style="white-space: pre-wrap; ">        </span> #Route to usrloc</div><div><span style="white-space: pre-wrap; ">        </span> route(3);</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>if ($avp(s:dest)=="pstn") {</div>
<div><span style="white-space: pre-wrap; ">        </span> #route to pstn</div><div><span style="white-space: pre-wrap; ">        </span> route(4);</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>if ($avp(s:dest)=="media") {</div>
<div><span style="white-space: pre-wrap; ">        </span> #route to media server</div><div><span style="white-space: pre-wrap; ">        </span> route(5);</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>send_reply("420", "Invalid Extension");</div>
<div><span style="white-space: pre-wrap; ">        </span> exit;</div><div> }</div><div><br></div><div><br></div><div><span style="white-space: pre-wrap; ">        </span>route[1] {</div><div><br></div><div><br></div><div> load_balance("2","sip");</div>
<div> }</div><div><br></div><div> # LB function returns negative if no suitable destination (for requested resources) is found,</div><div> # or if all destinations are full</div><div> if ($retcode<0) {</div>
<div> sl_send_reply("500","Service full");</div><div> exit;</div><div> }</div><div><br></div><div> xlog("Selected destination is: $du\n");</div><div><br>
</div><div> # send it out</div><div> if (!t_relay()) {</div><div> sl_reply_error();</div><div> }</div><div># }</div><div><br></div><div><br></div><div><span style="white-space: pre-wrap; ">        </span># for INVITEs enable some additional helper routes</div>
<div><br></div><div><br></div><div><span style="white-space: pre-wrap; ">                </span>if (is_method("INVITE")) {</div><div><span style="white-space: pre-wrap; ">                </span>t_on_branch("2");</div><div><span style="white-space: pre-wrap; ">                </span>t_on_reply("2");</div>
<div><span style="white-space: pre-wrap; ">                </span>t_on_failure("1");</div><div><span style="white-space: pre-wrap; ">        </span> }</div><div><span style="white-space: pre-wrap; ">        </span> if (!t_relay()) {</div>
<div><span style="white-space: pre-wrap; ">                </span>sl_reply_error();</div><div><span style="white-space: pre-wrap; ">        </span> };</div><div><span style="white-space: pre-wrap; ">        </span> exit;</div><div><br></div>
<div><br></div><div><span style="white-space: pre-wrap; ">        </span>xlog("Selected destination is: $du\n");</div><div><br></div><div> # send it out</div><div><span style="white-space: pre-wrap; ">        </span>if (!t_relay()) {</div>
<div><span style="white-space: pre-wrap; ">                </span>sl_reply_error();</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><br></div><div>#Route for user lookups</div>
<div><br></div><div>route[3]{</div><div><span style="white-space: pre-wrap; ">        </span>if (!lookup("location", "m")) {</div><div><span style="white-space: pre-wrap; ">        </span>switch ($retcode) {</div><div>
<span style="white-space: pre-wrap; ">        </span>case -1:</div><div><span style="white-space: pre-wrap; ">        </span>case -3:</div><div><span style="white-space: pre-wrap; ">                </span>t_newtran();</div><div><span style="white-space: pre-wrap; ">                </span>t_reply("404", "Not Found");</div>
<div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>case -2:</div><div><span style="white-space: pre-wrap; ">                </span>sl_send_reply("405", "Method Not Allowed");</div>
<div><span style="white-space: pre-wrap; ">                </span>exit;<span style="white-space: pre-wrap; ">        </span></div><div><span style="white-space: pre-wrap; ">        </span>}</div><div> }</div><div><span style="white-space: pre-wrap; ">        </span># when routing via usrloc, log the missed calls also</div>
<div><span style="white-space: pre-wrap; ">        </span>setflag(2);</div><div><span style="white-space: pre-wrap; ">        </span>route(1);</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><br></div><div>route[4] {</div>
<div><span style="white-space: pre-wrap; ">        </span>#---- PSTN route ----#</div><div><span style="white-space: pre-wrap; ">        </span>if(!do_routing()){</div><div><span style="white-space: pre-wrap; ">                </span>send_reply("503", "No rules found matching the URI prefix");</div>
<div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span># flag 10 - route to pstn</div><div><span style="white-space: pre-wrap; ">                </span>setflag(10);</div>
<div><span style="white-space: pre-wrap; ">                </span>route(1);</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><br></div><div>route[5] {</div><div><span style="white-space: pre-wrap; ">        </span>#---- Route to media servers ----#</div>
<div><span style="white-space: pre-wrap; ">        </span>xlog("route to media servers");</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>branch_route[2] {</div>
<div><span style="white-space: pre-wrap; ">                </span>xlog("new branch at $ru\n");</div><div><span style="white-space: pre-wrap; ">                </span>}</div><div><span style="white-space: pre-wrap; ">        </span>onreply_route[2] {</div>
<div><span style="white-space: pre-wrap; ">                </span>xlog("incoming reply\n");</div><div><span style="white-space: pre-wrap; ">                </span>}</div><div><span style="white-space: pre-wrap; ">        </span>failure_route[1] {</div>
<div><span style="white-space: pre-wrap; ">                </span>if (t_was_cancelled()) {</div><div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>if(isflagset(10)){</div>
<div><span style="white-space: pre-wrap; ">                </span>if (use_next_gw()) {</div><div><span style="white-space: pre-wrap; ">                </span>xlog ("next gateway $ru \n");</div><div><span style="white-space: pre-wrap; ">                </span>t_on_failure("1");</div>
<div><span style="white-space: pre-wrap; ">                </span>t_relay();</div><div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>else {</div>
<div><span style="white-space: pre-wrap; ">                </span>t_reply("$rc", "Service not available, no more gateways");</div><div><span style="white-space: pre-wrap; ">                </span>#t_reply("$T_reply_code");</div>
<div><span style="white-space: pre-wrap; ">                </span>exit;</div><div><span style="white-space: pre-wrap; ">                </span>}</div><div><span style="white-space: pre-wrap; ">        </span>}</div><div><span style="white-space: pre-wrap; ">        </span>}</div>
</div><div><br></div><div>Regards</div><div>Tushar</div>