Menu

RTP stream has expired

Help
2007-04-27
2013-05-28
  • Nobody/Anonymous

    Hello,

    I'm trying to use siproxd-0.5.13 with libosip2-2.2.2 on FreeBSD 5.4-RELEASE with ZyXEL Prestige 2002L (AOL). All is configured as described in "6.4. Transparent SIP Proxy". The problem is, any call counld not be longer as 5 min. In messages I see the following:

    Apr 27 16:51:52 roo siproxd: proxy.c:159 INFO:Outgoing Call: XXXXXXX@sipnet.ru -> XXXXXXXXXXX@sipnet.ru
    Apr 27 16:51:53 roo siproxd: proxy.c:159 INFO:ACK Call: XXXXXXX@sipnet.ru -> XXXXXXXXXXX@sipnet.ru
    Apr 27 16:51:53 roo siproxd: proxy.c:159 INFO:Outgoing Call: XXXXXXX@sipnet.ru -> XXXXXXXXXXX@sipnet.ru
    Apr 27 16:51:59 roo siproxd: proxy.c:159 INFO:ACK Call: XXXXXXX@sipnet.ru -> XXXXXXXXXXX@sipnet.ru
    Apr 27 16:57:03 roo siproxd: rtpproxy_relay.c:367 INFO:RTP stream 535D1B969441212@192.168.0.51 (media=0) has expired
    Apr 27 16:57:03 roo siproxd: rtpproxy_relay.c:327 ERROR:sendto() [192.168.0.51:5002 size=32] call failed: Bad file descriptor
    Apr 27 16:57:03 roo siproxd: rtpproxy_relay.c:334 WARNING:stopping opposite stream
    Apr 27 16:57:47 roo siproxd: proxy.c:159 INFO:Ending Call: XXXXXXX@sipnet.ru -> XXXXXXXXXXX@sipnet.ru

    as I understand, it will be cleaned out first, possible reason: rtp_proxytable[i].timestamp+configuration.rtp_timeout)<t and on next loop clean this out. It seems like the timestamp will be never updated. It's very strange, I see the RTP communication on both sides of the rpoxy and it works, but only configuration.rtp_timeout seconds....

    I'm not sure, it may be a configuration problem. Hier is my config:

    cat siproxd.conf | egrep -v '(^#|^$)'
    if_inbound  = wi0
    if_outbound = ng0
    hosts_allow_reg = 192.168.0.0/24
    sip_listen_port = 5060
    daemonize = 1
    silence_log = 0
    log_calls = 1
    user = nobody
    chrootjail = /usr/local/siproxd/
    registration_file = siproxd_registrations
    pid_file = siproxd.pid
    rtp_proxy_enable = 1
    rtp_port_low  = 7070
    rtp_port_high = 7079
    rtp_timeout = 300
    default_expires = 600
    debug_level =      0x00000000

    Any kind of help is appreciate. I'll try to investigate this problem by myself. First of all, try X-Lite...

    rgds

    Vova

     
    • Nobody/Anonymous

      I did some debugging...

      ~/src/siproxd/siproxd-0.5.13/src > diff -c rtpproxy_relay.c_orig rtpproxy_relay.c
      *** rtpproxy_relay.c_orig       Sun Jun 18 18:28:43 2006
      --- rtpproxy_relay.c    Sun Apr 29 16:10:27 2007
      ***************
      *** 357,362 ****
      --- 357,369 ----
              if (t > (last_t+10) ) {
                 last_t = t;
               for (i=0;i<RTPPROXY_SIZE; i++) {
      +
      + if (rtp_proxytable[i].rtp_rx_sock != 0) {
      + DEBUGC(DBCLASS_BABBLE,"rtp_rx_sock=%i, %i,%i,%i,%i",
      +  rtp_proxytable[i].rtp_rx_sock,
      + (int)t, (int)rtp_proxytable[i].timestamp, (int)configuration.rtp_timeout,
      + (int)(t-(rtp_proxytable[i].timestamp+configuration.rtp_timeout)));
      + }
                    if ( (rtp_proxytable[i].rtp_rx_sock != 0) &&
                       ((rtp_proxytable[i].timestamp+configuration.rtp_timeout)<t)) {
                       /* this one has expired, clean it up */

      hier is some output (rtp_timeout is 30 now...):

      16:24:41 rtpproxy_relay.c:365 rtp_rx_sock=5, 1177856681,1177856681,30,-30
      16:24:41 rtpproxy_relay.c:365 rtp_rx_sock=6, 1177856681,1177856681,30,-30
      16:24:41 rtpproxy_relay.c:365 rtp_rx_sock=7, 1177856681,1177856667,30,-16
      16:24:41 register.c:493 sip_agemap, t=1177856681
      16:24:43 register.c:493 sip_agemap, t=1177856683
      16:24:45 register.c:493 sip_agemap, t=1177856685
      16:24:47 register.c:493 sip_agemap, t=1177856687
      16:24:49 register.c:493 sip_agemap, t=1177856689
      16:24:51 register.c:493 sip_agemap, t=1177856691
      16:24:52 rtpproxy_relay.c:365 rtp_rx_sock=5, 1177856692,1177856692,30,-30
      16:24:52 rtpproxy_relay.c:365 rtp_rx_sock=6, 1177856692,1177856692,30,-30
      16:24:52 rtpproxy_relay.c:365 rtp_rx_sock=7, 1177856692,1177856667,30,-5
      16:24:53 register.c:493 sip_agemap, t=1177856693
      16:24:55 register.c:493 sip_agemap, t=1177856695
      16:24:57 register.c:493 sip_agemap, t=1177856697
      16:24:59 register.c:493 sip_agemap, t=1177856699
      16:25:01 register.c:493 sip_agemap, t=1177856701
      16:25:03 rtpproxy_relay.c:365 rtp_rx_sock=5, 1177856703,1177856703,30,-30
      16:25:03 rtpproxy_relay.c:365 rtp_rx_sock=6, 1177856703,1177856703,30,-30
      16:25:03 rtpproxy_relay.c:365 rtp_rx_sock=7, 1177856703,1177856667,30,6
      16:25:03 INFO:rtpproxy_relay.c:374 RTP stream 505D1B969441212@192.168.88.51 (media=0) has expired
      16:25:03 sip_utils.c:370 comparing callid - matched: 505D1B969441212@192.168.88.51 <-> 505D1B969441212@192.168.88.51
      16:25:03 sip_utils.c:370 comparing callid - matched: 505D1B969441212@192.168.88.51 <-> 505D1B969441212@192.168.88.51
      16:25:03 sip_utils.c:370 comparing callid - matched: 505D1B969441212@192.168.88.51 <-> 505D1B969441212@192.168.88.51
      16:25:03 ERROR:rtpproxy_relay.c:327 sendto() [192.168.88.51:5004 size=32] call failed: Bad file descriptor
      16:25:03 WARNING:rtpproxy_relay.c:334 stopping opposite stream

      I would ask, what's the 3rd rtp_rx_sock=7? Could somebody help me? Thank You!

      Vova

       
    • Thomas Ries

      Thomas Ries - 2007-04-29

      Could you provide a detailed debug log file (debuglevel=-1)?
      The debug output you provided only shows that (for what reason ever) 3 RTP streams are running and one does expire (due to no activity). A detailed debug log will show what RTP stream are actually set up between the two parties, etc.

      Be sure that your local UAs do NOT use any NAT technique nor STUN servers. This can lead to effects that one of the UAs does send its RTP data directly (omiting the RTP relay of siproxd) which will result in an RTP timeout for this stream.

      If you like, send me the debug file directly to my SF mail account, I'll have a look at it.

      /Thomas

       
    • Vladimir Uralski

      Hello Thomas,

      very many thanks, I wrote you a mail, the size of debug output is over 300k.

      Vova

       
    • Anonymous

      Anonymous - 2008-12-19

      Hello,

      I'm using siproxd-0.7.1 with linux (centos 5.2) and have the same strange issue as described above (all calls through siproxd dropped after ~5mins). In the logfile (var/log/messages):

      Dec 18 09:08:24 gw-2 siproxd[480]: rtpproxy_relay.c:444 INFO:RTP stream 1407e3d6755b264347ef50a30ba5b8d1@10.10.0.1 (media=1) has expired
      Dec 18 09:08:27 gw-2 siproxd[480]: rtpproxy_relay.c:357 ERROR:sendto() [10.10.0.1:18162 size=16] call failed: Bad file descriptor
      Dec 18 09:08:27 gw-2 siproxd[480]: rtpproxy_relay.c:364 WARNING:stopping opposite stream
      Dec 18 09:08:27 gw-2 siproxd[480]: rtpproxy_relay.c:357 ERROR:sendto() [192.168.110.8:23548 size=172] call failed: Bad file descriptor
      Dec 18 09:08:27 gw-2 siproxd[480]: rtpproxy_relay.c:364 WARNING:stopping opposite stream

      How can I fix this problem?
      I'm using X-Lite with default settings.

      Thanks.

       
      • Thomas Ries

        Thomas Ries - 2008-12-19

        This usually happens if only one direction of RTP traffic (incoming OR outgoing) is passing through siproxd. Likely this is a wrong configuration in the SIP client (X-Lite in your case).
        Make sure that all "NAT helpers" (STUN, guess/forcxe public IP address, ...) are disabled.

        Check the siproxd/doc directory for a sample configuration of X-Lite (sample_cfg_x-lite.txt) - there are quite some settings wrong in the default X-Lite configuration. Just to name to most important ones:
        Network Settings
        - Network
        -- Use X-NAT to Choose SIP/RTP Ports: Never
        -- SIP Proxy: <IP address of 3rd party registrar>
        -- Out Bound SIP Proxy: <inbound IP address of siproxd>
        -- Force Firewall Type: Open IP
        Advanced System Settings
        - SIP Settings
        -- Send UDP Keep-alive Messages to Proxy: No
        - RTP Settings
        -- Send RTCP Messages: No

        Hope this helps,
        /Thomas

         
    • Anonymous

      Anonymous - 2008-12-20

      I've installed X-Lite 3.0 build 41150 (last available version at this moment) and configuration settings looks like differrent that you've specified earlier. I haven't seen any of "NAT helper" parameter, all the parameters that I found:

      - "Use local IP address" in the "Firewall Traversal" ("Topology" at properties of the account);
      - "Send SIP keep-alives" and "Use rport" ("Advanced" at properties of the account);
      - "Mode" combobox ("Presence" at properties of the account - is it important parameter?);

      Please explain me how to completely disable STUN and other stuff for new X-Lite version?
      Thanks in advance.

       

Log in to post a comment.