Hi Aadilkhan,
Try to debug the script by yourself by : 1) get a network trace to see how the request is processed (be sure and listen on all interfaces) 2) place xlog() messages through your script to follow the execution path.
Good luck, Bogdan
Aadilkhan Maniyar wrote:
Hi,
Please find my openser.cfg file below. Whenever I try to call a softphone registered with Openser from another softphone (also registered with Openser) i get a 513 Message Too Big. I guess there is a loop in the configuration file but I am unable to find it out.
Any help would be appreciated.
Regards, Aadil
####### Global Parameters #########
debug=9 log_stderror=no log_facility=LOG_LOCAL0
fork=yes children=4
/* uncomment the next line to disable TCP (default on) */ #disable_tcp=yes
/* uncomment the next line to enable the auto temporary blacklisting of not available destinations (default disabled) */ #disable_dns_blacklist=no
/* uncomment the next line to enable IPv6 lookup after IPv4 dns lookup failures (default disabled) */ #dns_try_ipv6=yes /* uncomment the next line to disable the auto discovery of local aliases based on revers DNS on IPs (default on) */ #auto_aliases=no
/* uncomment the following lines to enable TLS support (default off) */ #disable_tls = no #listen = tls:your_IP:5061 #tls_verify_server = 1 #tls_verify_client = 1 #tls_require_client_certificate = 0 #tls_method = TLSv1 #tls_certificate = "/opt/openser/etc/openser/tls/user/user-cert.pem" #tls_private_key = "/opt/openser/etc/openser/tls/user/user-privkey.pem" #tls_ca_list = "/opt/openser/etc/openser/tls/user/user-calist.pem"
port=5060
/* uncomment and configure the following line if you want openser to bind on a specific interface/port/proto (default bind on all available) */ listen=udp:IP1:5060 listen=udp:IP2:5060
####### Modules Section ########
#set module path mpath="/opt/openser/lib/openser/modules/"
/* uncomment next line for MySQL DB support */ loadmodule "mysql.so" loadmodule "sl.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "maxfwd.so" loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "textops.so" loadmodule "mi_fifo.so" loadmodule "uri_db.so" loadmodule "uri.so" loadmodule "xlog.so" loadmodule "acc.so" loadmodule "avpops.so"
/* uncomment next lines for MySQL based authentication support NOTE: a DB (like mysql) module must be also loaded */ loadmodule "auth.so" loadmodule "auth_db.so"
/* uncomment next line for aliases support NOTE: a DB (like mysql) module must be also loaded */ #loadmodule "alias_db.so" /* uncomment next line for multi-domain support NOTE: a DB (like mysql) module must be also loaded NOTE: be sure and enable multi-domain support in all used modules (see "multi-module params" section ) */ loadmodule "domain.so" /* uncomment the next two lines for presence server support NOTE: a DB (like mysql) module must be also loaded */ #loadmodule "presence.so"
# ----------------- setting module-specific parameters ---------------
modparam("usrloc|auth_db|avpops|domain", "db_url", "mysql://openser:openserrw@localhost/openser")
# ----- mi_fifo params ----- modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
# ----- rr params ----- # add value to ;lr param to cope with most of the UAs modparam("rr", "enable_full_lr", 1) # do not append from tag to the RR (no need for this script) modparam("rr", "append_fromtag", 0)
# ----- rr params ----- modparam("registrar", "method_filtering", 1) /* uncomment the next line to disable parallel forking via location */ # modparam("registrar", "append_branches", 0) /* uncomment the next line not to allow more than 10 contacts per AOR */ #modparam("registrar", "max_contacts", 10)
# ----- uri_db params ----- /* by default we disable the DB support in the module as we do not need it in this configuration */ modparam("uri_db", "use_uri_table", 0) modparam("uri_db", "db_url", "")
# ----- acc params ----- /* what sepcial events should be accounted ? */ modparam("acc", "early_media", 1) modparam("acc", "report_ack", 1) modparam("acc", "report_cancels", 1) /* by default ww do not adjust the direct of the sequential requests. if you enable this parameter, be sure the enable "append_fromtag" in "rr" module */ modparam("acc", "detect_direction", 0) /* account triggers (flags) */ modparam("acc", "failed_transaction_flag", 3) modparam("acc", "log_flag", 1) modparam("acc", "log_missed_flag", 2) /* uncomment the following lines to enable DB accounting also */ modparam("acc", "db_flag", 1) modparam("acc", "db_missed_flag", 2)
# ----- usrloc params ----- #modparam("usrloc", "db_mode", 0) /* uncomment the following lines if you want to enable DB persistency for location entries */ modparam("usrloc", "db_mode", 1)
# ----- auth_db params ----- /* uncomment the following lines if you want to enable the DB based authentication */ modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password") modparam("auth_db", "load_credentials", "")
# ----- alias_db params ----- /* uncomment the following lines if you want to enable the DB based aliases */ #modparam("alias_db", "db_url", # "mysql://openser:openserrw@server/openser")
# ----- domain params ----- /* uncomment the following lines to enable multi-domain detection support */ modparam("domain", "db_mode", 1) # Use caching
# ----- multi-module params ----- /* uncomment the following line if you want to enable multi-domain support in the modules (dafault off) */ #modparam("alias_db|auth_db|usrloc|uri_db", "use_domain", 1)
# ----- presence params ----- /* uncomment the following lines if you want to enable presence */ #modparam("presence", "db_url", # "mysql://openser:openserrw@server/openser") #modparam("presence", "force_active", 1) #modparam("presence", "server_address", "sip:192.168.1.2:5060")
modparam("avpops", "avp_table", "usr_preferences")
####### Routing Logic ########
# main request routing logic
route { # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; }; # we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol if (!method=="REGISTER") record_route(); # subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); }; if (!uri==myself) { if (method=="REGISTER") { # if (!www_authorize("", "subscriber")) { #www_challenge("", "0"); #exit; #} # #save("location"); #exit; #xlog("L_DEBUG", "Unknown Domain"); #sl_send_reply("403", "Forbidden"); }; if (method=="INVITE") { xlog("L_DEBUG", "INVITE for other domain"); route(4); };
# mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); }; # if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { if (method=="REGISTER") { if (!www_authorize("", "subscriber")) { www_challenge("", "0"); exit; }; save("location"); exit; }; # requests for Media server #if(is_method("INVITE") && !has_totag() ) { if(is_method("INVITE")) { ;route(3); exit; };
# native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { if(isflagset(2)) { # route to Asterisk Media Server prefix("1"); rewritehostport("asterisk:6060"); route(1); } else { sl_send_reply("404", "Not Found"); exit; } }; append_hf("P-hint: usrloc applied\r\n"); }; route(1); } route[1] {
xlog("L_INFO","Entered route 1\n"); if(isflagset(2)) t_on_failure("1"); if (!t_relay()) { sl_reply_error(); }; exit; } route[3] { xlog("L_INFO","Entered route 3\n"); t_on_reply("3");
# Authenticate calls #if(!proxy_authorize("","subscriber")) { # proxy_challenge("","0"); # exit; #} # end Authenticate calls
# route to Asterisk Media Server #rewritehostport("asterisk:6060"); route(1); }
#Route for calls to other domains route[4] { xlog("L_INFO","Entered route 4"); t_on_reply("4");
rewritehostport("asterisk:6060"); if (!t_relay()) { sl_reply_error(); }; exit;
}
failure_route[1] { if (t_was_cancelled()) { xdbg("transaction was cancelled by UAC\n"); return; } # restore initial uri avp_pushto("$ruri","$avp(i:10)"); prefix("1"); # route to Asterisk Media Server rewritehostport("asterisk:6060"); resetflag(2); route(1); } failure_route[4] { t_relay(); } onreply_route[3] { if(status =~"180") { t_on_failure("4"); }; }
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users