[OpenSIPS-Users] rtpproxy (rtp.io) dual-stack parameters

Maxim Sobolev sobomax at sippysoft.com
Fri Jan 2 17:38:45 UTC 2026


P.S. When using rtpp_bind_local you should also be able to do "-l * -6
::" to allow rtpproxy pick any v4 or v6 address available.

On Fri, Jan 2, 2026 at 9:28 AM Maxim Sobolev <sobomax at sippysoft.com> wrote:
>
> Hey Ihor, thanks for your interest. Technically speaking I/E mechanism is very limited, we keep it around mostly for historical and backward-compatibility purposes, albeit I know people who use it in production with the latest rtpproxy version. Yes, if you want to use that mode that's the correct way to do it i.e. set -6 /OPENSIPS_IPV6_ADDR and use "ei", "ie", "ee" or "ii" as appropriate.
>
> The better way to do multi-homing (including multi-transport) with rtpproxy is via R/L modifiers of the corresponding offer/answer requests. In that case you just provide V6 addresses via -6 argument and "bind it" using "L[:x:y:z::]" in the rtpproxy_xxx(). Unfortunately that support has not yet been implemented into the rtpproxy module. Good news is your message finally tipped me over to add that missing feature. If you want to play with it here is the PR: https://github.com/OpenSIPS/opensips/pull/3794. With that in place, you can just use modparam("rtpproxy", "rtpp_bind_local_avp", "$socket_out(ip)") (or set it on a route level by assigning to $avp(rtpp_bind_local)) to request a matching media address for the transport in question for your v4-to-v6 scenario.
>
> In general, for the rtp.io module the direction I wanted to take is to have this module figure out parameters based on opensips configuration (i.e. generate -l / -6 based on listen directives). So if you are brave enough you can try to add something along those lines.
>
> Regards,
>
> Max
>
> On Thu, Jan 1, 2026, 4:19 a.m. Ihor Olkhovskyi <igorolhovskiy at gmail.com> wrote:
>>
>> Hello!
>>
>> Just a small clarification for running rtpproxy (via rtp.io) in dual-stack IPv4/IPv6 flavour.
>>
>> When I'm tryin to run rtp.io with a following params
>>
>> loadmodule "rtp.io.so"
>> modparam("rtp.io", "rtpproxy_args", "-m 11000 -M 11512 -l 127.0.0.1 -6 OPENSIPS_IPV6_ADDR -F")
>>
>> I'm getting
>> opensips: exactly 1 listen addresses required, 2 provided
>>
>> From manual I got the way to call it
>>
>> modparam("rtp.io", "rtpproxy_args", "-m 11000 -M 11512 -l 127.0.0.1 -6 /OPENSIPS_IPV6_ADDR -F")
>>
>> A bit confusing, as I'm not specifying "first" IPv6 address.
>> And what mode in this way rtpproxy is working? Means I want to build ipv4 (localhost) / ipv6 (external) bridge, so how it's considered? Like usual bridge ("ie") mode? Or something else?
>>
>> Thanks in advance!
>> --
>> Best regards,
>> Ihor (Igor)
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users



-- 
Maksym Sobolyev
Sippy Software, Inc.
Internet Telephony (VoIP) Experts
Tel (Canada): +1-778-783-0474
Tel (Toll-Free): +1-855-747-7779
Fax: +1-866-857-6942
Web: http://www.sippysoft.com
MSN: sales at sippysoft.com
Skype: SippySoft



More information about the Users mailing list