[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