Dear sir: i am trying openser 1.2.0 version.and now i want to drop call when i got 180 or 183.this is my openser.cfg.can you help me. thanks a lot!
# ----------- global configuration parameters ------------------------
debug=9 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=yes # (cmd line: -E)
/* Uncomment these lines to enter debugging mode fork=no log_stderror=yes */
check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) port=5060 children=4 #fifo="/tmp/openser_fifo"
listen=192.168.1.254 alias=openser.org
# Uncomment this to prevent the blacklisting of temporary not available destinations disable_dns_blacklist=yes
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database # - MySQL loaded for accounting as well loadmodule "/usr/local/lib/openser/modules/mysql.so" loadmodule "/usr/local/lib/openser/modules/xlog.so" loadmodule "/usr/local/lib/openser/modules/uri.so" loadmodule "/usr/local/lib/openser/modules/uri_db.so" loadmodule "/usr/local/lib/openser/modules/sl.so" loadmodule "/usr/local/lib/openser/modules/tm.so" loadmodule "/usr/local/lib/openser/modules/rr.so" loadmodule "/usr/local/lib/openser/modules/maxfwd.so" loadmodule "/usr/local/lib/openser/modules/usrloc.so" loadmodule "/usr/local/lib/openser/modules/registrar.so" loadmodule "/usr/local/lib/openser/modules/textops.so" loadmodule "/usr/local/lib/openser/modules/acc.so" loadmodule "/usr/local/lib/openser/modules/avpops.so" # Uncomment this if you want digest authentication # mysql.so must be loaded ! loadmodule "/usr/local/lib/openser/modules/auth.so" loadmodule "/usr/local/lib/openser/modules/auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
#modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database # for persistent storage and comment the previous line modparam("usrloc", "db_mode", 2)
# -- auth params -- # Uncomment if you are using auth module # modparam("auth_db", "calculate_ha1", yes) # # If you set "calculate_ha1" parameter to yes (which true in this config), # uncomment also the following parameter) # modparam("auth_db", "password_column", "password")
# -- rr params -- # add value to ;lr param to make some broken UAs happy modparam("rr", "enable_full_lr", 1)
# -- acc params -- modparam("acc", "db_url", "mysql://openser:openserrw@localhost/openser") modparam("acc", "db_flag", 7) modparam("acc", "db_missed_flag", 8) modparam("acc", "log_level", 3) modparam("acc", "log_flag", 2) modparam("acc", "log_missed_flag", 8) modparam("acc", "report_ack", 1) modparam("acc", "report_cancels", 1) modparam("acc", "failed_transaction_flag", 1) modparam("acc", "early_media", 1) modparam("acc", "db_extra", "src_ip=$si;dst_user=$tU;dst_domain=$du;src_user=$hdr(User-Agent)")
# -- avpops params -- # avp aliases - define c_uri (canonical uri) as AVP ID 888 and s_ip as ID 999 avp_aliases="c_uri=i:888;s_ip=i:999"
#tm timeout for voicemail params modparam("tm", "fr_timer", 2) modparam("tm", "fr_inv_timer", 35) modparam("tm", "noisy_ctimer", 1)
# ------------------------- request routing logic ------------------- # main routing logic #Routing Script route { #check for old messages: could mean a problem with the DNS entries or some other loop-causer... if (!mf_process_maxfwd_header("10")) { xlog("L_WARN", "WARNING: Too many hops\n"); sl_send_reply("483", "Too many hops, forward count exceeded limit\n"); return; };
#check for extremely large messages; we don't need a sip dos attack if (msg:len >= 2048) { xlog("L_WARN", "WARNING: Message too large, >= 12048 bytes\n"); sl_send_reply("513", "Message too large, exceeded limit\n"); return; };
#record everything besides registers and acks if(method!="REGISTER" && method!="ACK") { setflag(1); };
#do not send to voicemail if BYE or CANCEL #is used to end call before user pickup or timeout if(method=="CANCEL" || method=="BYE") {
setflag(7); setflag(8); };
#grant route if route headers already present if (loose_route()) { route(1); return; };
#Always require authentication, which could result in a PSTN, ie $$$ if (method=="REGISTER") { # if(!www_authorize("openser.org", "subscriber")) # { # www_challenge("openser.org", "0"); # return; # } # else # { # if (!check_to()) # { # sl_send_reply("401", "Unauthorized"); # return; # };
#Save into user database, used below when checking if user is available xlog("L_INFO", "REGISTER: User Authenticated Correctly\n"); save("location"); return; # }; };
if (method=="INVITE") { setflag(2); setflag(7); setflag(8); route(1);
}
}
route[1] { #send the call outward if(uri=~"sip:[0-9]+@.*") { rewritehostport("192.168.1.100:5070"); #record_route(); t_on_reply("1"); # t_relay();
}
if (!t_relay()) { xlog("L_WARN", "ERROR: t_relay failed"); sl_reply_error(); };
}
onreply_route[1] {
xlog("----------aaaaaaaaaa-------\n"); if (t_check_status("183")||t_check_status("180")){
exit; xlog("------------bbbbbbb------- \n"); } }