I'm using openser 1.0.1 with rtpproxy and nathelper. Calls are goin through with good audio. Hanging up is fine too. However I've noticed I've been getting errors in my logs:
ERROR: extract_body: message body has length zero ERROR: force_rtp_proxy2: can't extract body from the message
I'm assuming I'm doin something wrong in my config but I dont know where. Can someone please point out my mistakes? Thank you
# start RTPProxy with: rtpproxy -l your_public_ip -s udp:localhost:8899 #
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=no # (cmd line: -E)
/* Uncomment these lines to enter debugging mode fork=no log_stderror=yes */
port=5060 children=4
listen=68.xxx.xxx.xxx alias=test.com
check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R)
fifo="/tmp/openser_fifo" fifo_db_url="mysql://openser:openserrw@localhost/openser"
# --- module loading
loadmodule "/usr/local/lib/openser/modules/mysql.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/auth.so" loadmodule "/usr/local/lib/openser/modules/auth_db.so" loadmodule "/usr/local/lib/openser/modules/uri.so" loadmodule "/usr/local/lib/openser/modules/uri_db.so" loadmodule "/usr/local/lib/openser/modules/domain.so" loadmodule "/usr/local/lib/openser/modules/nathelper.so" loadmodule "/usr/local/lib/openser/modules/avpops.so" loadmodule "/usr/local/lib/openser/modules/textops.so" loadmodule "/usr/local/lib/openser/modules/xlog.so" loadmodule "/usr/local/lib/openser/modules/permissions.so"
# --- setting module parameters
modparam("auth_db|permissions|uri_db|usrloc", "db_url", "mysql://openser:openserrw@localhost/openser")
# -- usrloc params -- modparam("usrloc", "db_mode", 2)
# -- registrar params -- modparam("registrar", "nat_flag", 6) modparam("registrar", "sip_natping_flag", 7)
# -- auth params -- modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password")
# -- rr params -- modparam("rr", "enable_full_lr", 1)
# -- nathelper -- modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock") modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_from", "sip:pinger@test.com")
# -- tm params -- modparam("tm", "fr_inv_timer", 27) modparam("tm", "fr_inv_timer_avp", "inv_timeout")
# -- permissions param -- modparam("permissions", "db_mode", 1) modparam("permissions", "trusted_table", "trusted")
# --- main routing logic route{
# ----------------------------------------------------------------- # Sanity Check Section # ----------------------------------------------------------------- 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; };
# ----------------------------------------------------------------- # NAT detection # ----------------------------------------------------------------- route(2);
# ----------------------------------------------------------------- # Record Route Section # ----------------------------------------------------------------- if (!method=="REGISTER") record_route();
# ----------------------------------------------------------------- # Loose Route Section # ----------------------------------------------------------------- if (loose_route()) {
append_hf("P-hint: rr-enforced\r\n"); if ((method=="INVITE" || method=="REFER") && !has_totag()) { sl_send_reply("403", "Forbidden"); return; };
if (method=="INVITE") {
if (!proxy_authorize("","subscriber")) { proxy_challenge("","0"); return; } else if (!check_from()) { sl_send_reply("403", "Use From=ID"); return; }; consume_credentials(); }; route(1); };
# ----------------------------------------------------------------- # Call Type Processing Section # ----------------------------------------------------------------- if (!is_uri_host_local()) { if (is_from_local() || allow_trusted()) { route(4); route(1); } else { sl_send_reply("403", "Forbidden"); }; };
if (method=="ACK") { route(1); return; } else if (method=="CANCEL") { route(1); return; } else if (method=="INVITE") { route(5); return; } else if (method=="REGISTER") { route(4); return; };
lookup("aliases"); if (!is_uri_host_local()) { route(4); route(1); return; };
if (!lookup("location")) { sl_send_reply("404", "User Not Found"); exit; };
append_hf("P-hint: usrloc applied\r\n");
route(1); }
route[1] { if (subst_uri('/(sip:.*);nat=yes/\1/')){ setflag(6); };
if (isflagset(5)||isflagset(6)) { route(3); }
if (!t_relay()) { sl_reply_error(); }; exit; }
route[2]{ force_rport(); if (nat_uac_test("19")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); }; setflag(5); }; }
route[3] { if (is_method("BYE|CANCEL")) { unforce_rtp_proxy(); } else if (is_method("INVITE")){ force_rtp_proxy(); t_on_failure("1"); }; if (isflagset(5)) search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes'); t_on_reply("1"); }
route[4] {
if (!www_authorize("", "subscriber")) { www_challenge("", "0"); exit; };
if (isflagset(5)) { setflag(6); # if you want OPTIONS natpings uncomment next # setflag(7); };
save("location");
if (!lookup("location")) { sl_reply_error(); };
append_hf("P-hint: usrloc applied\r\n");
}
route[5] {
# ----------------------------------------------------------------- # INVITE Message Handler # ----------------------------------------------------------------- if (!allow_trusted()) {
if (!proxy_authorize("","subscriber")) { proxy_challenge("","0"); return; } else if (!check_from()) { sl_send_reply("403", "Use From=ID"); return; }; };
lookup("aliases"); if (!is_uri_host_local()) { route(1); return; };
if (uri=~"^sip:[0-9]{3}@") { lookup("aliases"); lookup("location"); route(1); return; };
if(!lookup("location")){ if (uri=~"^sip:[0-9]*@") { route(6); return; };
sl_send_reply("404", "User Not Found"); return; };
route(1); }
route[6] {
# ----------------------------------------------------------------- # PSTN Handler # -----------------------------------------------------------------
rewritehostport("pstn.gateway:5060");
avp_write("i:45", "inv_timeout");
route(1); }
failure_route[1] { if (isflagset(6) || isflagset(5)) { unforce_rtp_proxy(); } }
onreply_route[1] { if ((isflagset(5) || isflagset(6)) && status=~"(183)|(2[0-9][0-9])") { force_rtp_proxy(); } search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');
if (isflagset(6)) { fix_nated_contact(); }
exit; }
--------------------------------- Do you Yahoo!? Everyone is raving about the all-new Yahoo! Mail Beta.