[Serdev] [Tracker] Resolved: (SER-351) force_rtp_proxy2: can't extract body from the message

Jan Janak (JIRA) tracker at iptel.org
Mon Jun 23 12:22:15 CEST 2008


     [ http://tracker.iptel.org/browse/SER-351?page=all ]

Jan Janak resolved SER-351.
---------------------------

    Resolution: False Alarm

According to the log you are calling the function on a request with 0 body size, such as ACK or BYE. The wireshark log seems to show another message, not the one that generated the error in the log.

> force_rtp_proxy2: can't extract body from the message
> -----------------------------------------------------
>
>                 Key: SER-351
>                 URL: http://tracker.iptel.org/browse/SER-351
>             Project: SER
>          Issue Type: Task
>    Affects Versions: 0.9.6
>         Environment: RHEL 5
>            Priority: Critical
>
> when i deploy my network 
> USER_SER_SERVER for NAT Solving perpose iots says "force_rtp_proxy2: can't extract body from the message"
> the full error is 
> 13(4895) Binding 'paragp','sip:paragp at 71.153.215.75:33362;rinstance=a927da9806a0ab64' has expired
>  6(4888) ERROR: extract_body: message body has length zero
>  6(4888) ERROR: force_rtp_proxy2: can't extract body from the message
>  6(4888) ERROR: on_reply processing failed
>  7(4889) ERROR: extract_body: message body has length zero
>  7(4889) ERROR: force_rtp_proxy2: can't extract body from the message
>  7(4889) ERROR: on_reply processing failed
>  5(4887) ERROR: extract_body: message body has length zero
>  5(4887) ERROR: force_rtp_proxy2: can't extract body from the message
>  5(4887) ERROR: on_reply processing failed
>  6(4888) WARNING: udp_rcv_loop: upstream bug - 0-terminated packet from 192.168.1.97 50195
>  7(4889) WARNING: udp_rcv_loop: upstream bug - 0-terminated packet from 192.168.1.97 50195
>  5(4887) WARNING: udp_rcv_loop: upstream bug - 0-terminated packet from 192.168.1.97 50195
>  5(4887) WARNING: udp_rcv_loop: upstream bug - 0-terminated packet from 192.168.1.97 50195
>  5(4887) ERROR: extract_body: message body has length zero
>  5(4887) ERROR: force_rtp_proxy2: can't extract body from the message
>  5(4887) ERROR: on_reply processing failed
>  9(4891) ERROR: extract_body: message body has length zero
>  9(4891) ERROR: force_rtp_proxy2: can't extract body from the message
>  9(4891) ERROR: on_reply processing failed
>  9(4891) ERROR: extract_body: message body has length zero
>  9(4891) ERROR: force_rtp_proxy2: can't extract body from the message
>  9(4891) ERROR: on_reply processing failed
> 13(4895) Binding 'paragp','sip:paragp at 71.153.215.75:33648;rinstance=71b2d688f6d57a01' has expired
> 13(4895) Binding 'paragp','sip:paragp at 71.153.215.75:33648;rinstance=71b2d688f6d57a01' has expired
> and WIRESHARK LOG ON SER IS
> Session Description Protocol 1E@@~a~SINVITE sip:jayv at 192.168.1.97:5060 SIP/2.0
> Record-Route: <sip:192.168.1.126;r2=on;ftag=547aad03;lr>
> Record-Route: <sip:203.109.112.108;r2=on;ftag=547aad03;lr>
> Via: SIP/2.0/UDP 192.168.1.126;branch=z9hG4bK6adf.86646834.0
> Via: SIP/2.0/UDP 192.168.1.210:4730;received=71.153.215.75;branch=z9hG4bK-d87543-d9555a2d5f3fbc3a-1--d87543-;rport=33604
> Max-Forwards: 16
> Contact: <sip:paragp at 192.168.1.210:4730>
> To: "jayv"<sip:jayv at 192.168.1.50>
> From: "paragp"<sip:paragp at 192.168.1.50>;tag=547aad03
> Call-ID: MTQ3MjNmY2MyMjYyNmZhN2JmZjFmNDAxZmNjZGUxMzY.
> CSeq: 1 INVITE
> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
> Content-Type: application/sdp
> User-Agent: X-Lite release 1011s stamp 41150
> Content-Length: 246
> v=0
> o=- 1 2 IN IP4 192.168.1.210
> s=CounterPath X-Lite 3.0
> c=IN IP4 71.153.215.75192.168.1.126
> t=0 0
> m=audio 35010 RTP/AVP 0 8 101
> a=fmtp:101 0-15
> a=rtpmap:101 telephone-event/8000
> a=sendrecv
> a=oldmediaip:192.168.1.210
> a=nortpproxy:yes
> c=IN IP4 71.153.215.75192.168.1.126
> is not working properly
> my cfg file is 
> mhomed=1
> children=4
>  loadmodule "/usr/local/lib/ser/modules/tm.so"
>  #loadmodule "/usr/local/lib/ser/modules/acc.so"
>  loadmodule "/usr/local/lib/ser/modules/sl.so"
>  loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
>  loadmodule "/usr/local/lib/ser/modules/rr.so"
>  loadmodule "/usr/local/lib/ser/modules/nathelper.so"
>  loadmodule "/usr/local/lib/ser/modules/usrloc.so"
>  loadmodule "/usr/local/lib/ser/modules/registrar.so"
>  loadmodule "/usr/local/lib/ser/modules/textops.so"
>  loadmodule "/usr/local/lib/ser/modules/domain.so"
>  loadmodule "/usr/local/lib/ser/modules/mysql.so"
>  loadmodule "/usr/local/lib/ser/modules/uri.so"
>  loadmodule "/usr/local/lib/ser/modules/uri_db.so"
> modparam("auth_db|domain|uri_db|usrloc","db_url","mysql://ser:@localhost/ser")
> modparam("usrloc", "db_mode", 2)
>  # ----------------- setting module-specific parameters ---------------
>  
> modparam("registrar", "nat_flag", 6)
> modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
> modparam("nathelper", "ping_nated_only", 1)   # Ping only clients behind NAT
> modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")
>  route{
>        /* ********* ROUTINE CHECKS  ********************************** */
>        # filter too old messages
>        if (!mf_process_maxfwd_header("10")) {
>                log("LOG: Too many hops\n");
>                sl_send_reply("483","Too Many Hops");
>                break;
>        };
>        if (msg:len >=  max_len ) {
>                sl_send_reply("513", "Wow . Message too large");
>                break;
>        };
>          if (nat_uac_test("19"))
>         {
>         # Allow RR-ed requests, as these may indicate that
>                 # a NAT-enabled proxy takes care of it; unless it is
>                 # a REGISTER
>                 if (method == "REGISTER" ) {
>                        # record_route();
>                     log("LOG: Someone trying to register from private IP, rewriting\n");
> fix_nated_contact();
>  force_rport(); # Add rport parameter to topmost Via
>                     setflag(6);    # Mark as NATed
>                 };
>         };
>         if (method == "INVITE") {
>                 if (lookup("location_internal")) {
>                         fix_nated_sdp("2");
>                         if (dst_ip == 192.168.1.126){
>                                 if (force_rtp_proxy("FAII"))
>                                         t_on_reply("1");
>                         };
>                         if (dst_ip == 203.109.112.108){
>                                 if (force_rtp_proxy("FAEI"))
>                                         t_on_reply("1");
>                         };
>                 } else if (lookup("location_external")) {
>                         fix_nated_sdp("2");
>                         if (dst_ip == 192.168.1.126){
>                                 if (force_rtp_proxy("FAIE"))
>                                         t_on_reply("1");
>                         };
>                         if (dst_ip == 203.109.112.108){
>                                 if (force_rtp_proxy("FAEE"))
>                                         t_on_reply("1");
>                         };
>                 }  else if (!lookup("location")){
>                         fix_nated_sdp("2");
>   if (dst_ip == 203.109.112.108){
>                                 if (force_rtp_proxy("FAIE"))
>                                         t_on_reply("1");
>                         };
>                 } else {
>                        sl_send_reply("403", "Call cannot be served here");
>                         break;
>                };
>         };
>                  if (method == "BYE" || method == "CANCEL")
>                 unforce_rtp_proxy();
>    #  Process record-routing
>    if (loose_route()) { t_relay(); break; };
>        # labeled all transaction for accounting
>        setflag(1);
>        if (method=="REGISTER"){
>                 record_route();
>                 if(!save("location")){
>                         sl_reply_error();
>                         break;
>                 };
>                  if (dst_ip == 192.168.1.126) {         #!! Internal IP address
>                           if (!save("location_internal")) {
>                                   sl_reply_error();
>                           };
>                   } else if (dst_ip == 203.109.112.108) {       #!! External IP address
>                           if (!save("location_external")) {
>                                   sl_reply_error();
>                           };
>   } else {
>                           sl_send_reply("403", "Call cannot be served here");
>                   };
>      if (dst_ip != 192.168.1.126) {           #!! Internal IP address
>         if (method=="INVITE") record_route();
>        if (method=="SUBSCRIBE") record_route();
>        if (method=="NOTIFY") record_route();
>                 rewritehostport("192.168.1.97:5060");
>                 route(1);
>         }else if (dst_ip != 203.109.112.108 ){
>                 if(!lookup("location")){
>                         sl_send_reply("403", "Use From=ID");
>                         break;
>                 }
>                 route(1);
>         } else {
>                 sl_send_reply("500", "unknown");
>         };
> }
>         #rewritehostport("192.168.1.11:5060");
>         #rewritehostport("192.0.2.245"); # INSERT YOUR PSTN GATEWAY IP ADDRESS
> route[1]
>         # -----------------------------------------------------------------
>         # Default Message Handler
>         # -----------------------------------------------------------------
>         {
>         t_on_reply("1");
>         if (!t_relay()) {
>         sl_reply_error();
>         };
>         }
> onreply_route[1] {
>         if (!(status=~"183" || status=~"200"))
>                 break;
>         force_rtp_proxy("FA");
> }
> so if any 1 has solution please rpy me ..
> jay vaidya
> (jvaidya at varaha.com)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tracker.iptel.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the Serdev mailing list