[OpenSIPS-Users] RTPproxy + Opensips 1.7.0

Razvan Crainea razvancrainea at opensips.org
Wed Nov 9 15:10:20 CET 2011


Hi Sebastien,

For every Update or Lookup command, RTPProxy tries to open 2 file 
descriptors: 1 for RTP and 1 for RTCP. Both of them are required in 
order to work properly. Therefore every successful session will 4 ports 
- 2 for caller and 2 for callee.

Regards,

--
Ra(zvan Crainea
OpenSIPS Developer


On 11/09/2011 04:03 PM, Sebastien CRUAUX wrote:
> 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 at 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,
>>>
>>> -- 
>>> Ra(zvan Crainea
>>> OpenSIPS Developer
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20111109/4c4dcc74/attachment.htm>


More information about the Users mailing list