Update : it seems rtpproxy tries to bind on 2 sockets, one on an even port and another on the odd port just after (cf for loop in the create_twinlistener function). The first bind is successful but it fails on the second :

Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO :: (INVITE) rtpproxy set 1
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:select_rtpp_node: entering select_rtpp_node
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:select_rtpp_node: rtpproxy node count = 1
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:select_rtpp_node: node->rn_disabled = 0, node->rn_recheck_ticks = 0, get_ticks = 11
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:select_rtpp_node: result rtpp_test = 0
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:handle_command: new session 886876334, tag 1383821790;1 requested, type strong
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18014 port succeeded
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18015 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18000 port succeeded
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18001 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18016 port succeeded
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18017 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18002 port succeeded
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18003 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18012 port succeeded
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18013 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18010 port succeeded
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18011 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18008 port succeeded
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:force_rtp_proxy_body: command sent to rtpproxy, cp = E10 , err = 10
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:force_rtp_proxy_body: rtpproxy returned an error, we disable the node
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18009 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:select_rtpp_node: entering select_rtpp_node
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18018 port succeeded
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:select_rtpp_node: rtpproxy node count = 1
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:select_rtpp_node: node->rn_disabled = 1, node->rn_recheck_ticks = 71, get_ticks = 11
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18019 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: INFO:rtpproxy:select_rtpp_node: result rtpp_test = 1
Nov  9 15:01:57 WWW_64Bits ./opensips[1882]: ERROR:rtpproxy:force_rtp_proxy_body: no available proxies
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: INFO:create_twinlistener: bind to the 18004 port succeeded
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:create_twinlistener: bind to the 18005 port failed, errno = 98: Address already in use
Nov  9 15:01:57 WWW_64Bits rtpproxy[1774]: ERR:handle_command: can't create listener


Why are there 2 binds ? One should be enough (there is no video in my INVITE request).

Best regards,

Sebastien

Le 09/11/2011 12:12, Sebastien CRUAUX a écrit :
Hi Razvan,

I finally managed to get the rtpproxy logs (it only needed to be launched with the -d flag), so I added a trace in the create_twinlistener function in rtpp_command.c in order to see what was the errno on the bind attempt. I get an errno 98 (Address already in use) for all the UDP ports in my rtpproxy range (18000 - 18020) :

Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO :: (INVITE) rtpproxy set 1
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:select_rtpp_node: entering select_rtpp_node
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:select_rtpp_node: rtpproxy node count = 1
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:select_rtpp_node: node->rn_disabled = 1, node->rn_recheck_ticks = 70, get_ticks = 72
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:rtpp_test: force = 0
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:rtpp_test: rtp proxy <udp:localhost:12221> found, support for it re-enabled
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:select_rtpp_node: result rtpp_test = 0
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: INFO:handle_command: new session 944821033294@192.168.1.206, tag z9hG4bK74406739;1 requested, type strong
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18013 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18007 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18017 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18009 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18005 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18001 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18015 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:force_rtp_proxy_body: command sent to rtpproxy, cp = E10 , err = 10
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18011 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:force_rtp_proxy_body: rtpproxy returned an error, we disable the node
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:create_twinlistener: bind to the 18003 port failed, errno = 98: Address already in use
Nov  8 17:53:52 WWW_64Bits rtpproxy[22611]: ERR:handle_command: can't create listener
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:select_rtpp_node: entering select_rtpp_node
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:select_rtpp_node: rtpproxy node count = 1
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:select_rtpp_node: node->rn_disabled = 1, node->rn_recheck_ticks = 132, get_ticks = 72
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: INFO:rtpproxy:select_rtpp_node: result rtpp_test = 1
Nov  8 17:53:52 WWW_64Bits ./opensips[22671]: ERROR:rtpproxy:force_rtp_proxy_body: no available proxies


However, when I run netstat none of these ports seems to be used...

Best regards,

Sebastien

Le 08/11/2011 13:48, Razvan Crainea a écrit :
Hi Sebastien,

Taking a look into RTPProxy's code, I see that the error 10 is returned when it can't create a listener. This happens when RTPProxy can't create or bind a socket, or doesn't have enough ports allocated. My guess is that in your case it can't bind a socket on the interface specified by the "-l" parameter.

Best regards,

--
Răzvan Crainea
OpenSIPS Developer


_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to