Hi list, I'd like to know if there's a way to tell FS to wait for RTP reception before sending any RTP packet ? We're facing a problem regarding early media with a PBX, NATed behind a dumb router : actually, if FS first sends RTP to the PBX, without waiting for RTP coming from the PBX, there's no audio. In some cases (related to the provider we use behind FS to establish call to the PSTN) FS isn't the 'first-shooter' of the RTP flow, and everything works fine, but when FS is the first to send RTP, it doesn't work... Because we can't change anything at our providers configs, we'd like to know if FS can "delay" RTP sending until it receives some RTP from the calling party. The schematic is following : PBX ===> FS ===> ...voice backbone... ===> Providers (FS is acting as an SBC) Thanks for your help,
Hi, To my knowledge, it is the default beahviour for freeswitch to wait for incoming rtp from nated endpoints before starting to transmit. You can explicitely force it with the profile param disable-rtp-auto-adjust=false. You can also play with the channel variable rtp_auto_adjust_threshold which defines the number of rtp packets to wait for initially (default is 10 iirc) Best Regards, -- Vallimamod Abdullah SIP Solutions linkedin.com/in/vallimamod .
On 19 Apr 2018, at 10:31, Mickael Hubert <mickael@winlux.fr> wrote:
Hi list, I'd like to know if there's a way to tell FS to wait for RTP reception before sending any RTP packet ? We're facing a problem regarding early media with a PBX, NATed behind a dumb router : actually, if FS first sends RTP to the PBX, without waiting for RTP coming from the PBX, there's no audio. In some cases (related to the provider we use behind FS to establish call to the PSTN) FS isn't the 'first-shooter' of the RTP flow, and everything works fine, but when FS is the first to send RTP, it doesn't work... Because we can't change anything at our providers configs, we'd like to know if FS can "delay" RTP sending until it receives some RTP from the calling party.
The schematic is following : PBX ===> FS ===> ...voice backbone... ===> Providers (FS is acting as an SBC)
Thanks for your help,
Thanks for your answer Vallimamod, You can see our dialplan bellow: We tried these commands "rtp auto adjust, etc ...", but the issue continues. is there a way to show if FS knows when the call is natted or not ? FYI we have an opensips of front for SIP, but RTP is send directly to FS. SIP call --> Opensips (nat detection) --> FS RTP flow ------------------------------------------> FS <condition field="${destinationAuthorized}" expression="^yes$" break="never"> <action application="export" data="codec_string=${ep_codec_string}"/> <action application="export" data="sip_h_X-cid=${uuid}"/> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="ignore_early_media=false"/> <action application="set" data="ignore_display_updates=true"/> <action application="set" data="inherit_codec=true"/> <action application="set" data="fax_enable_t38=false"/> <action application="export" data="suppress_cng=true"/> <action application="set" data="disable_rtp_auto_adjust=false"/> <action application="set" data="rtp_auto_adjust_threshold=1"/> <action application="set" data="rtp_manual_rtp_bugs=accept_any_packets"/> <action application="unset" data="sip_h_X-Username"/> <action application="bridge" data=" { sip_invite_params=user=phone, sip_cid_type=none, ignore_display_updates=true, sip_contact_user=${caller_id_number} } sofia/internal/${destination_number}@${distributor(LISTINTERNAL ${sofia(profile internal gwlist down)})}"/> Thanks in advance 2018-04-19 11:35 GMT+02:00 Vallimamod Abdullah <vma@vallimamod.org>:
Hi,
To my knowledge, it is the default beahviour for freeswitch to wait for incoming rtp from nated endpoints before starting to transmit.
You can explicitely force it with the profile param disable-rtp-auto-adjust=false. You can also play with the channel variable rtp_auto_adjust_threshold which defines the number of rtp packets to wait for initially (default is 10 iirc)
Best Regards, -- Vallimamod Abdullah SIP Solutions linkedin.com/in/vallimamod .
On 19 Apr 2018, at 10:31, Mickael Hubert <mickael@winlux.fr> wrote:
Hi list, I'd like to know if there's a way to tell FS to wait for RTP reception before sending any RTP packet ? We're facing a problem regarding early media with a PBX, NATed behind a dumb router : actually, if FS first sends RTP to the PBX, without waiting for RTP coming from the PBX, there's no audio. In some cases (related to the provider we use behind FS to establish call to the PSTN) FS isn't the 'first-shooter' of the RTP flow, and everything works fine, but when FS is the first to send RTP, it doesn't work... Because we can't change anything at our providers configs, we'd like to know if FS can "delay" RTP sending until it receives some RTP from the calling party.
The schematic is following : PBX ===> FS ===> ...voice backbone... ===> Providers (FS is acting as an SBC)
Thanks for your help,
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Hi Mickael, Are you doing SDP mangling on the opensips box? If so, freeswitch may not detect that the endpoint is nated as the RTP ip is public. Can you try to disable it and let freeswitch auto-detect the public RTP ip/port? If the auto-adjust is activated, you will get something like "Auto Changing audio port from <local ip:port> to <public ip:port>" in the debug logs. Hope this helps! Best Regards, -- Vallimamod Abdullah SIP Solutions linkedin.com/in/vallimamod .
On 20 Apr 2018, at 10:47, Mickael Hubert <mickael@winlux.fr> wrote:
Thanks for your answer Vallimamod,
You can see our dialplan bellow: We tried these commands "rtp auto adjust, etc ...", but the issue continues.
is there a way to show if FS knows when the call is natted or not ? FYI we have an opensips of front for SIP, but RTP is send directly to FS.
SIP call --> Opensips (nat detection) --> FS RTP flow ------------------------------------------> FS
<condition field="${destinationAuthorized}" expression="^yes$" break="never"> <action application="export" data="codec_string=${ep_codec_string}"/> <action application="export" data="sip_h_X-cid=${uuid}"/> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="ignore_early_media=false"/> <action application="set" data="ignore_display_updates=true"/> <action application="set" data="inherit_codec=true"/> <action application="set" data="fax_enable_t38=false"/> <action application="export" data="suppress_cng=true"/> <action application="set" data="disable_rtp_auto_adjust=false"/> <action application="set" data="rtp_auto_adjust_threshold=1"/> <action application="set" data="rtp_manual_rtp_bugs=accept_any_packets"/> <action application="unset" data="sip_h_X-Username"/> <action application="bridge" data=" { sip_invite_params=user=phone, sip_cid_type=none, ignore_display_updates=true, sip_contact_user=${caller_id_number} } sofia/internal/${destination_number}@${distributor(LISTINTERNAL ${sofia(profile internal gwlist down)})}"/>
Thanks in advance
2018-04-19 11:35 GMT+02:00 Vallimamod Abdullah <vma@vallimamod.org>: Hi,
To my knowledge, it is the default beahviour for freeswitch to wait for incoming rtp from nated endpoints before starting to transmit.
You can explicitely force it with the profile param disable-rtp-auto-adjust=false. You can also play with the channel variable rtp_auto_adjust_threshold which defines the number of rtp packets to wait for initially (default is 10 iirc)
Best Regards, -- Vallimamod Abdullah SIP Solutions linkedin.com/in/vallimamod .
On 19 Apr 2018, at 10:31, Mickael Hubert <mickael@winlux.fr> wrote:
Hi list, I'd like to know if there's a way to tell FS to wait for RTP reception before sending any RTP packet ? We're facing a problem regarding early media with a PBX, NATed behind a dumb router : actually, if FS first sends RTP to the PBX, without waiting for RTP coming from the PBX, there's no audio. In some cases (related to the provider we use behind FS to establish call to the PSTN) FS isn't the 'first-shooter' of the RTP flow, and everything works fine, but when FS is the first to send RTP, it doesn't work... Because we can't change anything at our providers configs, we'd like to know if FS can "delay" RTP sending until it receives some RTP from the calling party.
The schematic is following : PBX ===> FS ===> ...voice backbone... ===> Providers (FS is acting as an SBC)
Thanks for your help,
participants (2)
-
Mickael Hubert
-
Vallimamod Abdullah