[Users] ERROR: extract_body: message body has length zero

Daniel-Constantin Mierla daniel at voice-system.ro
Fri Jul 7 10:56:00 CEST 2006


Hello,

On 07/03/06 00:46, Kenny Chua wrote:
> 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

you call force_rtp_proxy() for messages which have no SDP body. Using 
search() or pseudo-variables you can check if content length is > 0 and 
content type is application/sdp. The error is harmless, just fills the 
log files.

Cheers,
Daniel

>
> 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 at 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. 
> <http://us.rd.yahoo.com/evt=42297/*http://advision.webevents.yahoo.com/handraisers> 
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>   




More information about the Users mailing list