<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Dear Experts,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I have been trying to configure IMC for quite
some time now..when ti try to create the chatroom (using my xlite
phone), using the command #create q, i get the following&nbsp; error.<br>
<b>ERROR:imc:imc_handle_message: room [q] does not exist!<br>
Sep 17 10:25:36 [2562] ERROR:imc:imc_manager: failed to handle 'message'<br>
</b><br>
Iam posting my cfg below.. Your sujjestion would be of immense help to
me..<br>
<br>
<br>
#<br>
# $Id: kamailio.cfg 5881 2009-06-22 09:13:04Z henningw $<br>
#<br>
# Kamailio (OpenSER) SIP Server - basic configuration script<br>
#&nbsp;&nbsp;&nbsp;&nbsp; - web: <a class="moz-txt-link-freetext" href="http://www.kamailio.org">http://www.kamailio.org</a><br>
#&nbsp;&nbsp;&nbsp;&nbsp; - svn: <a class="moz-txt-link-freetext" href="http://openser.svn.sourceforge.net/viewvc/openser/">http://openser.svn.sourceforge.net/viewvc/openser/</a><br>
#<br>
# Direct your questions about this file to:
<a class="moz-txt-link-rfc2396E" href="mailto:users@lists.kamailio.org">&lt;users@lists.kamailio.org&gt;</a><br>
<br>
<br>
debug=3<br>
log_stderror=yes<br>
log_facility=LOG_LOCAL0<br>
<br>
fork=yes<br>
children=4<br>
&nbsp;<br>
<br>
<br>
port=5060<br>
<br>
/* uncomment and configure the following line if you want Kamailio to <br>
&nbsp;&nbsp; bind on a specific interface/port/proto (default bind on all
available) */<br>
#listen=udp:192.168.1.2:5060<br>
<br>
<br>
####### Modules Section ########<br>
<br>
#set module path<br>
mpath="/usr/local/lib/kamailio/modules/"<br>
<br>
/* uncomment next line for MySQL DB support */<br>
loadmodule "db_mysql.so"<br>
loadmodule "mi_fifo.so"<br>
loadmodule "sl.so"<br>
loadmodule "tm.so"<br>
loadmodule "rr.so"<br>
loadmodule "pv.so"<br>
loadmodule "maxfwd.so"<br>
loadmodule "usrloc.so"<br>
loadmodule "registrar.so"<br>
loadmodule "textops.so"<br>
loadmodule "uri_db.so"<br>
loadmodule "siputils.so"<br>
loadmodule "xlog.so"<br>
loadmodule "acc.so"<br>
loadmodule "imc.so"<br>
<br>
<br>
/* uncomment next lines for MySQL based authentication support <br>
&nbsp;&nbsp; NOTE: a DB (like db_mysql) module must be also loaded */<br>
loadmodule "auth.so"<br>
loadmodule "auth_db.so"<br>
/* uncomment next line for aliases support<br>
&nbsp;&nbsp; NOTE: a DB (like db_mysql) module must be also loaded */<br>
#loadmodule "alias_db.so"<br>
/* uncomment next line for multi-domain support<br>
&nbsp;&nbsp; NOTE: a DB (like db_mysql) module must be also loaded<br>
&nbsp;&nbsp; NOTE: be sure and enable multi-domain support in all used modules<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (see "multi-module params" section ) */<br>
#loadmodule "domain.so"<br>
/* uncomment the next two lines for presence server support<br>
&nbsp;&nbsp; NOTE: a DB (like db_mysql) module must be also loaded */<br>
#p#loadmodule "presence.so"<br>
#p#loadmodule "presence_xml.so"<br>
<br>
#n#loadmodule "nathelper.so"<br>
<br>
# ----------------- setting module-specific parameters ---------------<br>
<br>
<br>
# ----- mi_fifo params -----<br>
modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")<br>
<br>
<br>
# ----- rr params -----<br>
# add value to ;lr param to cope with most of the UAs<br>
modparam("rr", "enable_full_lr", 1)<br>
# do not append from tag to the RR (no need for this script)<br>
modparam("rr", "append_fromtag", 0)<br>
<br>
<br>
# ----- rr params -----<br>
modparam("registrar", "method_filtering", 1)<br>
/* uncomment the next line to disable parallel forking via location */<br>
# modparam("registrar", "append_branches", 0)<br>
/* uncomment the next line not to allow more than 10 contacts per AOR */<br>
#modparam("registrar", "max_contacts", 10)<br>
<br>
<br>
# ----- uri_db params -----<br>
/* by default we disable the DB support in the module as we do not need
it<br>
&nbsp;&nbsp; in this configuration */<br>
modparam("uri_db", "use_uri_table", 0)<br>
modparam("uri_db", "db_url", "")<br>
<br>
<br>
# ----- acc params -----<br>
/* what sepcial events should be accounted ? */<br>
modparam("acc", "early_media", 1)<br>
modparam("acc", "report_ack", 1)<br>
modparam("acc", "report_cancels", 1)<br>
/* by default ww do not adjust the direct of the sequential requests.<br>
&nbsp;&nbsp; if you enable this parameter, be sure the enable "append_fromtag"<br>
&nbsp;&nbsp; in "rr" module */<br>
modparam("acc", "detect_direction", 0)<br>
/* account triggers (flags) */<br>
modparam("acc", "failed_transaction_flag", 3)<br>
modparam("acc", "log_flag", 1)<br>
modparam("acc", "log_missed_flag", 2)<br>
modparam("acc", "log_extra", <br>
&nbsp;&nbsp;&nbsp;
"src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
<br>
<br>
&nbsp;<br>
<br>
# ----- auth_db params -----<br>
/* uncomment the following lines if you want to enable the DB based<br>
&nbsp;&nbsp; authentication */<br>
modparam("auth_db", "calculate_ha1", yes)<br>
modparam("auth_db", "password_column", "password")<br>
modparam("auth_db", "db_url",<br>
&nbsp;&nbsp;&nbsp; "mysql://openser:openserrw@localhost/openser")<br>
modparam("auth_db", "load_credentials", "")<br>
<br>
&nbsp;<br>
<br>
#-------tm params-----<br>
modparam("tm", "fr_timer", 10 )<br>
modparam("tm", "fr_inv_timer", 15 )<br>
modparam("tm", "wt_timer", 10 )<br>
<br>
<br>
#-------imc params-----<br>
modparam("imc", "db_url", "mysql://openser:openserrw@localhost/openser")<br>
modparam("imc", "hash_size", 8)<br>
modparam("imc", "imc_cmd_start_char", "#")<br>
<br>
<br>
<br>
<br>
#n#modparam("usrloc", "nat_bflag", 6)<br>
<br>
####### Routing Logic ########<br>
<br>
<br>
# main request routing logic<br>
<br>
route{<br>
<br>
&nbsp;&nbsp;&nbsp; if (!mf_process_maxfwd_header("10")) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("483","Too Many Hops");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; # NAT detection<br>
&nbsp;&nbsp;&nbsp; route(4);<br>
<br>
&nbsp;&nbsp;&nbsp; if (has_totag()) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # sequential request withing a dialog should<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # take the path determined by record-routing<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (loose_route()) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (is_method("BYE")) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(1); # do accounting ...<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(3); # ... even if the transaction fails<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (is_method("SUBSCRIBE") &amp;&amp; uri == myself) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # in-dialog subscribe requests<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(2);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( is_method("ACK") ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( t_check_trans() ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # non loose-route, but stateful ACK; must be an ACK
after a 487 or e.g. 404 from upstream server<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_relay();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # ACK without matching transaction ... ignore and
discard.\n");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("404","Not here");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; #initial requests<br>
<br>
&nbsp;&nbsp;&nbsp; # CANCEL processing<br>
&nbsp;&nbsp;&nbsp; if (is_method("CANCEL"))<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (t_check_trans())<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_relay();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; t_check_trans();<br>
<br>
&nbsp;&nbsp;&nbsp; # authentication<br>
&nbsp;&nbsp;&nbsp; route(3);<br>
<br>
&nbsp;&nbsp;&nbsp; # record routing<br>
&nbsp;&nbsp;&nbsp; if (!is_method("REGISTER|MESSAGE"))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; record_route();<br>
<br>
&nbsp;&nbsp;&nbsp; # account only INVITEs<br>
&nbsp;&nbsp;&nbsp; if (is_method("INVITE")) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(1); # do accounting<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; if (!uri==myself)<br>
&nbsp;&nbsp;&nbsp; /* replace with following line if multi-domain support is used */<br>
&nbsp;&nbsp;&nbsp; ##if (!is_uri_host_local())<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; append_hf("P-hint: outbound\r\n"); <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # if you have some interdomain connections via TLS<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##if($rd=="tls_domain1.net") {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##&nbsp;&nbsp;&nbsp; t_relay("tls:domain1.net");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##&nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##} else if($rd=="tls_domain2.net") {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##&nbsp;&nbsp;&nbsp; t_relay("tls:domain2.net");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##&nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##}<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; # requests for my domain<br>
<br>
&nbsp;&nbsp;&nbsp; if( is_method("PUBLISH|SUBSCRIBE"))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(2);<br>
<br>
&nbsp;&nbsp;&nbsp; if (is_method("REGISTER"))<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!save("location"))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_reply_error();<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
<br>
<br>
&nbsp;&nbsp;&nbsp; #if(uri=~<a class="moz-txt-link-rfc2396E" href="sip:q.*@">"sip:q.*@"</a>)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(uri=~<a class="moz-txt-link-rfc2396E" href="sip:q@192.168.64.75">"sip:q@192.168.64.75"</a>)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # IMC - message<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xdbg("script: message from [$fu] r-uri [$ru] msg [$rb]\n");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(is_method("MESSAGE"))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; log("MESSAGE received -&gt; processing with imc\n");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("200", "ok");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imc_manager();&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("404", "not found");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xdbg("script: message not for room, from [$fu] r-uri [$ru]
msg [$rb]\n");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!lookup("location"))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("404", "not found");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_relay();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #sl_send_reply("200", "ok");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };<br>
<br>
<br>
<br>
&nbsp;&nbsp;&nbsp; if ($rU==NULL) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # request with no Username in RURI<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("484","Address Incomplete");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; # apply DB based aliases (uncomment to enable)<br>
&nbsp;&nbsp;&nbsp; ##alias_db_lookup("dbaliases");<br>
<br>
&nbsp;&nbsp;&nbsp; if (!lookup("location")) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; switch ($retcode) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case -1:<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case -3:<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_newtran();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_reply("404", "Not Found");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case -2:<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("405", "Method Not Allowed");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; # when routing via usrloc, log the missed calls also<br>
&nbsp;&nbsp;&nbsp; setflag(2);<br>
<br>
&nbsp;&nbsp;&nbsp; route(1);<br>
}<br>
<br>
<br>
route[1] {<br>
&nbsp;<br>
<br>
&nbsp;&nbsp;&nbsp; /* example how to enable some additional event routes */<br>
&nbsp;&nbsp;&nbsp; if (is_method("INVITE")) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #t_on_branch("1");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_on_reply("1");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_on_failure("1");<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; if (!t_relay()) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_reply_error();<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; exit;<br>
}<br>
<br>
<br>
# Presence route<br>
/* uncomment the whole following route for enabling presence server */<br>
route[2]<br>
{<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; # if presence enabled, this part will not be executed<br>
&nbsp;&nbsp;&nbsp; if (is_method("PUBLISH") || $rU==null)<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("404", "Not here");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; return;<br>
}<br>
<br>
# Authentication route<br>
/* uncomment the whole following route for enabling authentication */<br>
route[3] {<br>
&nbsp;&nbsp;&nbsp; if (is_method("REGISTER"))<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # authenticate the REGISTER requests (uncomment to enable auth)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!www_authorize("", "subscriber"))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; www_challenge("", "0");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($au!=$tU) <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403","Forbidden auth ID");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # authenticate if from local subscriber (uncomment to enable
auth)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (from_uri==myself)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!proxy_authorize("", "subscriber")) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; proxy_challenge("", "0");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (is_method("PUBLISH"))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($au!=$tU) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403","Forbidden auth ID");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($au!=$fU) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403","Forbidden auth ID");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; consume_credentials();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # caller authenticated<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; return;<br>
}<br>
<br>
# Caller NAT detection route<br>
/* uncomment the whole following route for enabling Caller NAT
Detection */<br>
route[4]{<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp; return;<br>
}<br>
<br>
# RTPProxy control<br>
/* uncomment the whole following route for enabling RTPProxy Control */<br>
route[5] {<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp; return;<br>
}<br>
<br>
branch_route[1] {<br>
&nbsp;&nbsp;&nbsp; xdbg("new branch at $ru\n");<br>
}<br>
<br>
<br>
onreply_route[1] {<br>
&nbsp;&nbsp;&nbsp; xdbg("incoming reply\n");<br>
<br>
&nbsp;<br>
}<br>
<br>
<br>
failure_route[1] {<br>
&nbsp;<br>
<br>
&nbsp;&nbsp;&nbsp; if (t_was_cancelled()) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;<br>
}<br>
<br>
<br>
<div class="moz-signature">-<br>
<font color="Blue" face="Trebuchet MS" size="2"> Regards,<br>
Rajesh &nbsp; </font>
</div>
</body>
</html>