Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Late negotiation doesn't work when calls are bridged to a different profile #1340

Open
krishnak opened this issue Sep 13, 2021 · 7 comments
Open
Labels
bug Something isn't working

Comments

@krishnak
Copy link

krishnak commented Sep 13, 2021

I have in my external profile

2021-09-13 13:28:41.329357 [DEBUG] sofia.c:4628 inbound-codec-negotiation [greedy]
2021-09-13 13:28:41.329357 [DEBUG] sofia.c:4628 inbound-late-negotiation [true]
2021-09-13 13:28:41.329357 [DEBUG] sofia.c:4628 outbound-codec-prefs [PCMA]
2021-09-13 13:28:41.329357 [DEBUG] sofia.c:4628 inbound-codec-prefs [PCMA]
2021-09-13 13:28:41.329357 [DEBUG] sofia.c:4628 disable-transcoding [true]

In my internal profile
2021-09-13 13:28:23.089210 [DEBUG] sofia.c:4628 outbound-codec-prefs [Opus,PCMA]
2021-09-13 13:28:23.089210 [DEBUG] sofia.c:4628 inbound-codec-prefs [PCMA,Opus]
2021-09-13 13:28:23.089210 [DEBUG] sofia.c:4628 inbound-codec-negotiation [generous]
2021-09-13 13:28:23.089210 [DEBUG] sofia.c:4628 inbound-late-negotiation [true]
2021-09-13 13:28:23.089210 [DEBUG] sofia.c:4628 disable-transcoding [true]

I also have instant ringback disabled.

When a client on internal profile whose first choice of codec is Opus (whose second choice is PCMA) makes a call which gets bridged to external profile, there is NO late negotiation - the client is offered Opus and this results in transcoding.

I am aware, I can set the inbound-codec-negotiation to greedy in the internal profile to overcome this, but this results in PCMA being offered as the codec for clients wishing to use Opus as the first choice for calls to another profile which supports both Opus and PCMA.

Is this how this late negotiation is designed to work?

I have noticed that late negotiation works across profiles, if the profile responds with a 183 proceeding with a SDP as below

2021-09-13 13:51:51.309205 [DEBUG] sofia.c:7325 Channel sofia/external/987654321 entering state [proceeding][183]
2021-09-13 13:51:51.309205 [DEBUG] sofia.c:7335 Remote SDP:
v=0
o=- 1324748197 19022 IN IP4 xx.yy.zz.68
s=Outbound call
c=IN IP4 xx.yy.zz.68
t=0 0
m=audio 49194 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=maxptime:150

However in most cases, freeswitch sends an early media even before the remote client can respond with a ringing sdp

2021-09-13 14:18:50.809219 [NOTICE] sofia.c:7436 Ring-Ready sofia/external/09xxxxxxxxx!
2021-09-13 14:18:50.809219 [DEBUG] switch_channel.c:3437 (sofia/external/09xxxxxxxxx) Callstate Change DOWN -> RINGING
2021-09-13 14:18:50.829204 [INFO] switch_ivr_originate.c:1275 Sending early media
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [opus:120:48000:20:0:1]/[PCMA:8:8000:20:64000:1]
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [opus:120:48000:20:0:1]/[opus:116:48000:20:0:1]
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:5647 Audio Codec Compare [opus:116:48000:20:0:1] ++++ is saved as a match
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:5647 Audio Codec Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[opus:116:48000:20:0:1]
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:5508 Set telephone-event payload to 101@8000
2021-09-13 14:18:50.829204 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [72000bps]
2021-09-13 14:18:50.829204 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [72000bps]
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:3837 Set Codec sofia/internal/11@192.168.1.2 opus/48000 20 ms 960 samples 0 bits 1 channels
2021-09-13 14:18:50.829204 [DEBUG] switch_core_codec.c:111 sofia/internal/11@192.168.1.2 Original read codec set to opus:116
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:5909 sofia/internal/11@192.168.1.2 Set 2833 dtmf send payload to 101 recv payload to 101
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:8661 AUDIO RTP [sofia/internal/11@192.168.1.2] 192.168.1.2 port 28204 -> 192.168.1.10 port 4076 codec: 120 ms: 20
2021-09-13 14:18:50.829204 [DEBUG] switch_rtp.c:4413 Starting timer [soft] 960 bytes per 20ms
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:8975 sofia/internal/11@192.168.1.2 Set 2833 dtmf send payload to 101
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:8982 sofia/internal/11@192.168.1.2 Set 2833 dtmf receive payload to 101
2021-09-13 14:18:50.829204 [DEBUG] switch_core_media.c:9005 sofia/internal/11@192.168.1.2 Set rtp dtmf delay to 40
2021-09-13 14:18:50.829204 [NOTICE] sofia_media.c:92 Pre-Answer sofia/internal/11@192.168.1.2!
2021-09-13 14:18:50.829204 [DEBUG] switch_channel.c:3565 (sofia/internal/11@192.168.1.2) Callstate Change RINGING -> EARLY
2021-09-13 14:18:50.849212 [DEBUG] switch_core_media.c:8643 Audio params are unchanged for sofia/internal/11@192.168.1.2.
2021-09-13 14:18:50.849212 [DEBUG] mod_sofia.c:2593 Ring SDP:
v=0
o=FreeSWITCH 1631494726 1631494727 IN IP4 192.168.1.2
s=FreeSWITCH
c=IN IP4 192.168.1.2
t=0 0
m=audio 28204 RTP/AVP 120 101
a=rtpmap:120 opus/48000/2
a=fmtp:120 useinbandfec=1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv

send 1156 bytes to tcp/[192.168.1.10]:36756 at 14:18:50.850162:
------------------------------------------------------------------------
SIP/2.0 183 Session Progress
Via: SIP/2.0/TCP 192.168.1.10:6891;branch=z9hG4bK-524287-1---c426bb30366e7d57;rport=36756;alias
From: <sip:11@192.168.1.2>;tag=6e46a134
To: <sip:09xxxxxxxxx@192.168.1.2>;tag=ppc96pj18jcDK
Call-ID: _xt6bmlsHML8WpGGCgUoUA..
CSeq: 2 INVITE
Contact: <sip:09xxxxxxxxx@192.168.1.2:5060;transport=tcp>
User-Agent: KKINTERNAL
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 279
Remote-Party-ID: "09xxxxxxxxx" <sip:09xxxxxxxxx@192.168.1.2>;party=calling;privacy=off;screen=no

v=0
o=FreeSWITCH 1631494726 1631494727 IN IP4 192.168.1.2
s=FreeSWITCH
c=IN IP4 192.168.1.2
t=0 0
m=audio 28204 RTP/AVP 120 101
a=rtpmap:120 opus/48000/2
a=fmtp:120 useinbandfec=1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
2021-09-13 14:18:50.849212 [DEBUG] switch_ivr_originate.c:1333 Raw Codec Activation Success L16@48000hz 1 channel 20ms
2021-09-13 14:18:50.849212 [DEBUG] switch_core_codec.c:223 sofia/internal/11@192.168.1.2 Push codec L16:100
2021-09-13 14:18:50.849212 [DEBUG] switch_ivr_originate.c:1407 Play Ringback Tone [%(400,200,400,450);%(400,2000,400,450)]
2021-09-13 14:18:50.869210 [DEBUG] sofia.c:7325 Channel sofia/internal/11@192.168.1.2 entering state [early][183]
2021-09-13 14:18:51.429254 [DEBUG] switch_rtp.c:7722 Correct audio ip/port confirmed.
2021-09-13 14:18:55.749292 [DEBUG] sofia.c:7325 Channel sofia/external/09xxxxxxxxx entering state [proceeding][183]
2021-09-13 14:18:55.749292 [DEBUG] sofia.c:7335 Remote SDP:
v=0
o=- 6513 11774 IN IP4 1xx.yy.yy.yy
s=SBC call
c=IN IP4 1xx.yy.yy.yy
t=0 0
m=audio 18674 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-11
a=ptime:20

2021-09-13 14:18:55.749292 [NOTICE] sofia.c:7338 Pre-Answer sofia/external/09xxxxxxxxx!

Is this how it is designed to work? It appears that the early media is forcing the codec on A leg even before B leg responds.

I tried setting
<action application="set" data="ignore_early_media=ring_ready"/>
before bridging to the profile, this doesn't prevent early media but just messes the early media ringtone (audibly)

@krishnak krishnak added the bug Something isn't working label Sep 13, 2021
@dragos-oancea
Copy link
Contributor

How about if you just add Opus on the external profile too ? I am not very clear on what you're trying to do. Is it just a breakout to a SIP/PSTN trunk ?

You also have a lot of channel variables to tune your setup, from dialplan, eg:

 			<action application="set" data="inbound_codec_prefs=OPUS,PCMA"/>
			<action application="export" data="nolocal:absolute_codec_string=PCMA"/>
			<action application="set" data="ringback=${us-ring}"/>
			<action application="set" data="bridge_early_media=false" />
        		<action application="set" data="ignore_early_media=true" />

@krishnak
Copy link
Author

Thank you for trying to help.

The external profile is for PSTN which accepts only PCMA. The external profile has only PCMA as the codec choice for both inbound and outbound.

The issue arises with the internal profile which has multiple codecs of choice as per my earlier message.

Currently for sip clients connected to internal profile who have Opus and PCMA as choice of codec in that order, when they make a PSTN call via the external profile (bridge), free switch transcodes if I set inbound-codec-negotiation to generous.

If I set the inbound-codec-negotiation to scrooge or greedy then it is PCMA all the way for internal calls as well.

The inherit_codec /late negotiation fails if there is an early media ring tone provided by freeswitch - as the early media chooses the codec for A leg and it doesn't change it after B leg sends a ring SDP with its accepted codec details.

<action application="set" data="bridge_early_media=false" />
        		<action application="set" data="ignore_early_media=true" />

I have tried these two settings before but it didn't help.

When I tried as an experiment to set bridge_early_media=true ( by default it is false as per documentation)- free switch and the whole CPU hogs and the hardware becomes unresponsive.

I have 3 profiles, 1 is internal, 2 is external for PSTN, 3rd one is for remote clients to register.

Looks like when I disabled ringback and transfer-ringback, I didn't restart freeswitch. I just restarted the profiles - which probably wasn't taking effect. I just restarted freeswitch and the early media has stopped appearing and all has fallen in place.

So in short restart freeswitch if you disable instant ringback and transfer ringback.

@krishnak
Copy link
Author

krishnak commented Sep 13, 2021

Is there a way to choose between Codec Activated L16@48000hz and Codec Activated L16@8000hz using the dialplan.

I have achieved late negotiation as I intended with ringback disabled.

However this results in a delay in audio port getting established after the call setup is complete - there is a long delay of even 6 -10 seconds if the clients are behind NAT for the audio to work.

So ringback is a necessary evil, however it will no longer be an evil if I can set the codec type in the dialplan.

@dragos-oancea
Copy link
Contributor

"Is there a way to choose between Codec Activated L16@48000hz and Codec Activated L16@8000hz using the dialplan" - you cannot "choose" these directly, only by using codecs at specified sampling rates. eg: you could use for codec string "OPUS@8000h" instead of just "OPUS" so everything will be at 8khz.

@krishnak
Copy link
Author

krishnak commented Sep 14, 2021

@dragos-oancea Thank you for you reply. I tried setting Opus@8000h as you suggested. However by doing so everything gets trans-coded, i.e the clients which can handle Opus, send an SDP with Opus@48000 which gets passed to the B leg by freeswitch. So there is transcoding between Opus@8000 and Opus@48000. When calling a PCMA client, there is transcoding between Opus@8000 and PCMA.

All this transcoding occurs only if the ringback is provided. If I disable it - late negotiation works as intended and there is no transcoding.

Just to recap, I am posting my settings

Profile internal - inbound codec [PCMA, Opus] - outbound [Opus, PCMA] - late negotiation enabled, inbound-codec-negotiation [generous]
Profile external (for PSTN) - inbound codec [PCMA] outbound [PCMA] - late negotiation enabled (makes no difference), inbound-codec-negotiation [greedy]
profile external_for_internet (this is for remote clients logging in) inbound codec [PCMA, Opus] - outbound [Opus, PCMA] - late negotiation enabled, inbound-codec-negotiation [generous]

If a call is bridged between profile internal and external, I want PCMA at A leg - this currently works with ringback enabled.

if a call is bridged between profile internal and external_for_internet at A leg, I want PCMA or Opus depending on the client answering at leg B. However with ringback enabled - A leg is always set to Opus@48000 (when I use Opus@8000h instead of Opus, A leg is stuck at Opus@8000h)

For the above call setup If I change inbound-codec-negotiation [scrooge or greedy] at the internal profile, then A leg is always PCMA irrespective of B leg.

The following log is to show what happens when I use opus@8000h. This is a call originating from internal profile to external_for_internet


1502-11ec-b36a-b17db8c868a9 EXECUTE [depth=0] sofia/internal/11@192.168.1.2 hash(insert/domainof.server.runningfreeswitch-last_dial//b3a5734c-1502-11ec-b36a-b17db8c868a9)
b3a5734c-1502-11ec-b36a-b17db8c868a9 EXECUTE [depth=0] sofia/internal/11@192.168.1.2 set(api_hangup_hook=lua app.lua hangup)
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] mod_dptools.c:1672 SET sofia/internal/11@192.168.1.2 [api_hangup_hook]=[lua app.lua hangup]
b3a5734c-1502-11ec-b36a-b17db8c868a9 EXECUTE [depth=0] sofia/internal/11@192.168.1.2 export(domain_name=domainof.server.runningfreeswitch)
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] switch_channel.c:1310 EXPORT (export_vars) [domain_name]=[domainof.server.runningfreeswitch]
b3a5734c-1502-11ec-b36a-b17db8c868a9 EXECUTE [depth=0] sofia/internal/11@192.168.1.2 bridge(user/40@domainof.server.runningfreeswitch)
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [domain_name]=[domainof.server.runningfreeswitch] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [call_direction]=[local] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [origination_callee_id_name]=[40] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [dialed_extension]=[40] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [origination_callee_id_name]=[40] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [domain_name]=[domainof.server.runningfreeswitch] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.561236 [DEBUG] switch_ivr_originate.c:2242 Parsing global variables
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [domain_name]=[domainof.server.runningfreeswitch] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [call_direction]=[local] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [origination_callee_id_name]=[40] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [dialed_extension]=[40] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [origination_callee_id_name]=[40] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_channel.c:1264 sofia/internal/11@192.168.1.2 EXPORTING[export_vars] [domain_name]=[domainof.server.runningfreeswitch] to event
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_ivr_originate.c:2242 Parsing global variables
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.581245 [NOTICE] switch_channel.c:1118 New Channel sofia/external_for_internet/40@kk.yy.180.218:39603 [b402da96-1502-11ec-b3a8-b17db8c868a9]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] mod_sofia.c:5089 (sofia/external_for_internet/40@kk.yy.180.218:39603) State Change CS_NEW -> CS_INIT
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_ivr_originate.c:3111 sofia/external_for_internet/40@kk.yy.180.218:39603 Setting leg timeout to 60
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_core_state_machine.c:585 (sofia/external_for_internet/40@kk.yy.180.218:39603) Running State Change CS_INIT (Cur 2 Tot 25)
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] switch_core_state_machine.c:628 (sofia/external_for_internet/40@kk.yy.180.218:39603) State INIT
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.581245 [DEBUG] mod_sofia.c:93 sofia/external_for_internet/40@kk.yy.180.218:39603 SOFIA INIT
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] sofia_glue.c:1587 sip:40@kk.yy.180.218:52277;transport=TLS;rinstance=10e75da4 Setting proxy route to sofia/external_for_internet/40@kk.yy.180.218:39603
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] sofia_glue.c:1618 sofia/external_for_internet/40@kk.yy.180.218:39603 sending invite version: 1.10.3 -release 32bit
b402da96-1502-11ec-b3a8-b17db8c868a9 Local SDP:
b402da96-1502-11ec-b3a8-b17db8c868a9 v=0
b402da96-1502-11ec-b3a8-b17db8c868a9 o=FreeSWITCH 1631560609 1631560610 IN IP4 jj.mm.140.73
b402da96-1502-11ec-b3a8-b17db8c868a9 s=FreeSWITCH
b402da96-1502-11ec-b3a8-b17db8c868a9 c=IN IP4 jj.mm.140.73
b402da96-1502-11ec-b3a8-b17db8c868a9 t=0 0
b402da96-1502-11ec-b3a8-b17db8c868a9 m=audio 25580 RTP/AVP 102 8 103 101
b402da96-1502-11ec-b3a8-b17db8c868a9 a=rtpmap:102 opus/48000/2
b402da96-1502-11ec-b3a8-b17db8c868a9 a=fmtp:102 useinbandfec=1; maxaveragebitrate=30000; maxplaybackrate=48000; ptime=20; minptime=10; maxptime=40; stereo=1
b402da96-1502-11ec-b3a8-b17db8c868a9 a=rtpmap:8 PCMA/8000
b402da96-1502-11ec-b3a8-b17db8c868a9 a=rtpmap:103 telephone-event/48000
b402da96-1502-11ec-b3a8-b17db8c868a9 a=fmtp:103 0-16
b402da96-1502-11ec-b3a8-b17db8c868a9 a=rtpmap:101 telephone-event/8000
b402da96-1502-11ec-b3a8-b17db8c868a9 a=fmtp:101 0-16
b402da96-1502-11ec-b3a8-b17db8c868a9 a=silenceSupp:off - - - -
b402da96-1502-11ec-b3a8-b17db8c868a9 a=ptime:20
b402da96-1502-11ec-b3a8-b17db8c868a9 a=sendrecv
b402da96-1502-11ec-b3a8-b17db8c868a9
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:40 sofia/external_for_internet/40@kk.yy.180.218:39603 Standard INIT
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:48 (sofia/external_for_internet/40@kk.yy.180.218:39603) State Change CS_INIT -> CS_ROUTING
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:628 (sofia/external_for_internet/40@kk.yy.180.218:39603) State INIT going to sleep
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:585 (sofia/external_for_internet/40@kk.yy.180.218:39603) Running State Change CS_ROUTING (Cur 2 Tot 25)
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] sofia.c:7325 Channel sofia/external_for_internet/40@kk.yy.180.218:39603 entering state [calling][0]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:644 (sofia/external_for_internet/40@kk.yy.180.218:39603) State ROUTING
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] mod_sofia.c:154 sofia/external_for_internet/40@kk.yy.180.218:39603 SOFIA ROUTING
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_ivr_originate.c:67 (sofia/external_for_internet/40@kk.yy.180.218:39603) State Change CS_ROUTING -> CS_CONSUME_MEDIA
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:644 (sofia/external_for_internet/40@kk.yy.180.218:39603) State ROUTING going to sleep
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:585 (sofia/external_for_internet/40@kk.yy.180.218:39603) Running State Change CS_CONSUME_MEDIA (Cur 2 Tot 25)
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:663 (sofia/external_for_internet/40@kk.yy.180.218:39603) State CONSUME_MEDIA
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:09.681245 [DEBUG] switch_core_state_machine.c:663 (sofia/external_for_internet/40@kk.yy.180.218:39603) State CONSUME_MEDIA going to sleep
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] sofia.c:7325 Channel sofia/external_for_internet/40@kk.yy.180.218:39603 entering state [proceeding][180]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:10.381239 [NOTICE] sofia.c:7436 Ring-Ready sofia/external_for_internet/40@kk.yy.180.218:39603!
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_channel.c:3437 (sofia/external_for_internet/40@kk.yy.180.218:39603) Callstate Change DOWN -> RINGING
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [INFO] switch_ivr_originate.c:1275 Sending early media
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [opus:120:48000:20:0:1]/[PCMA:8:8000:20:64000:1]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [opus:120:48000:20:0:1]/[opus:116:48000:20:0:1]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:5647 Audio Codec Compare [opus:116:48000:20:0:1] ++++ is saved as a match
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:5647 Audio Codec Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[opus:116:48000:20:0:1]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:5508 Set telephone-event payload to 101@8000
2021-09-14 07:53:10.381239 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [32000bps]
2021-09-14 07:53:10.381239 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [32000bps]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:3837 Set Codec sofia/internal/11@192.168.1.2 opus/8000 20 ms 960 samples 0 bits 1 channels
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_codec.c:111 sofia/internal/11@192.168.1.2 Original read codec set to opus:116
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:5909 sofia/internal/11@192.168.1.2 Set 2833 dtmf send payload to 101 recv payload to 101
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:8661 AUDIO RTP [sofia/internal/11@192.168.1.2] 192.168.1.2 port 21412 -> 192.168.1.10 port 4002 codec: 120 ms: 20
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_rtp.c:4413 Starting timer [soft] 960 bytes per 20ms
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:8975 sofia/internal/11@192.168.1.2 Set 2833 dtmf send payload to 101
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:8982 sofia/internal/11@192.168.1.2 Set 2833 dtmf receive payload to 101
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [DEBUG] switch_core_media.c:9005 sofia/internal/11@192.168.1.2 Set rtp dtmf delay to 40
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.381239 [NOTICE] sofia_media.c:92 Pre-Answer sofia/internal/11@192.168.1.2!
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.401239 [DEBUG] switch_channel.c:3565 (sofia/internal/11@192.168.1.2) Callstate Change RINGING -> EARLY
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.401239 [DEBUG] switch_core_media.c:8643 Audio params are unchanged for sofia/internal/11@192.168.1.2.
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.401239 [DEBUG] mod_sofia.c:2593 Ring SDP:
b3a5734c-1502-11ec-b36a-b17db8c868a9 v=0
b3a5734c-1502-11ec-b36a-b17db8c868a9 o=FreeSWITCH 1631564778 1631564779 IN IP4 192.168.1.2
b3a5734c-1502-11ec-b36a-b17db8c868a9 s=FreeSWITCH
b3a5734c-1502-11ec-b36a-b17db8c868a9 c=IN IP4 192.168.1.2
b3a5734c-1502-11ec-b36a-b17db8c868a9 t=0 0
b3a5734c-1502-11ec-b36a-b17db8c868a9 m=audio 21412 RTP/AVP 120 101
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=rtpmap:120 opus/48000/2
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=fmtp:120 useinbandfec=1
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=rtpmap:101 telephone-event/8000
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=fmtp:101 0-16
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=silenceSupp:off - - - -
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=ptime:20
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=sendrecv
b3a5734c-1502-11ec-b36a-b17db8c868a9
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.401239 [DEBUG] switch_ivr_originate.c:1333 Raw Codec Activation Success L16@8000hz 1 channel 20ms
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.401239 [DEBUG] switch_core_codec.c:223 sofia/internal/11@192.168.1.2 Push codec L16:100
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.401239 [DEBUG] switch_ivr_originate.c:1407 Play Ringback Tone [%(400,200,400,450);%(400,2000,400,450)]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.421248 [DEBUG] sofia.c:7325 Channel sofia/internal/11@192.168.1.2 entering state [early][183]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:10.841352 [DEBUG] sofia.c:7325 Channel sofia/external_for_internet/40@kk.yy.180.218:39603 entering state [proceeding][180]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:10.961350 [DEBUG] switch_rtp.c:7722 Correct audio ip/port confirmed.
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] sofia.c:7325 Channel sofia/external_for_internet/40@kk.yy.180.218:39603 entering state [completing][200]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] sofia.c:7335 Remote SDP:
b402da96-1502-11ec-b3a8-b17db8c868a9 v=0
b402da96-1502-11ec-b3a8-b17db8c868a9 o=- 0 1 IN IP4 192.168.0.250
b402da96-1502-11ec-b3a8-b17db8c868a9 s=-
b402da96-1502-11ec-b3a8-b17db8c868a9 c=IN IP4 192.168.2.10
b402da96-1502-11ec-b3a8-b17db8c868a9 t=0 0
b402da96-1502-11ec-b3a8-b17db8c868a9 m=audio 4036 RTP/AVP 102 101
b402da96-1502-11ec-b3a8-b17db8c868a9 a=rtpmap:102 opus/48000/2
b402da96-1502-11ec-b3a8-b17db8c868a9 a=fmtp:102 useinbandfec=1; usedtx=1; maxaveragebitrate=64000
b402da96-1502-11ec-b3a8-b17db8c868a9 a=rtpmap:101 telephone-event/8000
b402da96-1502-11ec-b3a8-b17db8c868a9 a=fmtp:101 0-15
b402da96-1502-11ec-b3a8-b17db8c868a9
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] sofia.c:7325 Channel sofia/external_for_internet/40@kk.yy.180.218:39603 entering state [ready][200]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [opus:102:48000:20:0:1]/[opus:116:48000:20:0:2]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] switch_core_media.c:5647 Audio Codec Compare [opus:116:48000:20:0:2] ++++ is saved as a match
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [opus:102:48000:20:0:1]/[PCMA:8:8000:20:64000:1]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] switch_core_media.c:5508 Set telephone-event payload to 101@8000
2021-09-14 07:53:34.061479 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [72000bps]
2021-09-14 07:53:34.061479 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [72000bps]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] switch_core_media.c:3837 Set Codec sofia/external_for_internet/40@kk.yy.180.218:39603 opus/48000 20 ms 960 samples 0 bits 1 channels
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.061479 [DEBUG] switch_core_codec.c:111 sofia/external_for_internet/40@kk.yy.180.218:39603 Original read codec set to opus:116
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_core_media.c:5909 sofia/external_for_internet/40@kk.yy.180.218:39603 Set 2833 dtmf send payload to 101 recv payload to 101
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_core_media.c:8661 AUDIO RTP [sofia/external_for_internet/40@kk.yy.180.218:39603] 192.168.1.2 port 25580 -> 192.168.2.10 port 4036 codec: 102 ms: 20
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_rtp.c:4413 Starting timer [soft] 960 bytes per 20ms
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_core_media.c:8975 sofia/external_for_internet/40@kk.yy.180.218:39603 Set 2833 dtmf send payload to 101
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_core_media.c:8982 sofia/external_for_internet/40@kk.yy.180.218:39603 Set 2833 dtmf receive payload to 101
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_core_media.c:9005 sofia/external_for_internet/40@kk.yy.180.218:39603 Set rtp dtmf delay to 40
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.101245 [NOTICE] sofia.c:8503 Channel [sofia/external_for_internet/40@kk.yy.180.218:39603] has been answered
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_channel.c:3865 (sofia/external_for_internet/40@kk.yy.180.218:39603) Callstate Change RINGING -> ACTIVE
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_core_codec.c:248 sofia/internal/11@192.168.1.2 Restore previous codec opus:116.
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] switch_core_media.c:8643 Audio params are unchanged for sofia/internal/11@192.168.1.2.
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.101245 [DEBUG] mod_sofia.c:898 Local SDP sofia/internal/11@192.168.1.2:
b3a5734c-1502-11ec-b36a-b17db8c868a9 v=0
b3a5734c-1502-11ec-b36a-b17db8c868a9 o=FreeSWITCH 1631564778 1631564780 IN IP4 192.168.1.2
b3a5734c-1502-11ec-b36a-b17db8c868a9 s=FreeSWITCH
b3a5734c-1502-11ec-b36a-b17db8c868a9 c=IN IP4 192.168.1.2
b3a5734c-1502-11ec-b36a-b17db8c868a9 t=0 0
b3a5734c-1502-11ec-b36a-b17db8c868a9 m=audio 21412 RTP/AVP 120 101
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=rtpmap:120 opus/48000/2
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=fmtp:120 useinbandfec=1
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=rtpmap:101 telephone-event/8000
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=fmtp:101 0-16
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=silenceSupp:off - - - -
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=ptime:20
b3a5734c-1502-11ec-b36a-b17db8c868a9 a=sendrecv
b3a5734c-1502-11ec-b36a-b17db8c868a9
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.101245 [NOTICE] switch_ivr_originate.c:3794 Channel [sofia/internal/11@192.168.1.2] has been answered
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] switch_channel.c:3865 (sofia/internal/11@192.168.1.2) Callstate Change EARLY -> ACTIVE
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] sofia.c:7325 Channel sofia/internal/11@192.168.1.2 entering state [completed][200]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] switch_ivr_originate.c:3852 Originate Resulted in Success: [sofia/external_for_internet/40@kk.yy.180.218:39603]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] switch_ivr_originate.c:3111 sofia/external_for_internet/40@kk.yy.180.218:39603 Setting leg timeout to 60
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] switch_ivr_originate.c:3852 Originate Resulted in Success: [sofia/external_for_internet/40@kk.yy.180.218:39603]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] switch_ivr_bridge.c:1793 (sofia/external_for_internet/40@kk.yy.180.218:39603) State Change CS_CONSUME_MEDIA -> CS_EXCHANGE_MEDIA
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] switch_core_state_machine.c:585 (sofia/external_for_internet/40@kk.yy.180.218:39603) Running State Change CS_EXCHANGE_MEDIA (Cur 2 Tot 25)
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] switch_core_state_machine.c:654 (sofia/external_for_internet/40@kk.yy.180.218:39603) State EXCHANGE_MEDIA
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.121243 [DEBUG] mod_sofia.c:656 SOFIA EXCHANGE_MEDIA
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.141232 [DEBUG] switch_rtp.c:7722 Correct audio ip/port confirmed.
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.141232 [DEBUG] mod_opus.c:719 Opus decoder stats: Frames[0] PLC[0] FEC[0]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.141232 [DEBUG] mod_opus.c:734 Opus encoder stats: Frames[0] Bytes encoded[0] Encoded length ms[0] Average encoded bitrate bps[0]
2021-09-14 07:53:34.141232 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [72000bps]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.141232 [NOTICE] switch_core_media.c:15843 Activating write resampler
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.141232 [DEBUG] switch_core_media.c:16088 Engaging Write Buffer at 1920 bytes to accommodate 1920->1920
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.181248 [DEBUG] sofia.c:7325 Channel sofia/internal/11@192.168.1.2 entering state [ready][200]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.821346 [DEBUG] mod_opus.c:719 Opus decoder stats: Frames[0] PLC[0] FEC[0]
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:34.821346 [DEBUG] mod_opus.c:734 Opus encoder stats: Frames[0] Bytes encoded[0] Encoded length ms[0] Average encoded bitrate bps[0]
2021-09-14 07:53:34.821346 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [72000bps]
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.821346 [NOTICE] switch_core_media.c:15843 Activating write resampler
b3a5734c-1502-11ec-b36a-b17db8c868a9 2021-09-14 07:53:34.821346 [DEBUG] switch_core_media.c:16088 Engaging Write Buffer at 320 bytes to accommodate 320->320
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:35.001252 [INFO] switch_rtp.c:7682 Auto Changing audio port from 192.168.2.10:4036 to kk.yy.180.218:4036
b402da96-1502-11ec-b3a8-b17db8c868a9 2021-09-14 07:53:48.881268 [NOTICE] sofia.c:1089 Hangup sofia/external_for_internet/40@kk.yy.180.218:39603 [CS_EXCHANGE_MEDIA] [NORMAL_CLEARING] 

@krishnak krishnak reopened this Sep 14, 2021
@krishnak
Copy link
Author

krishnak commented Sep 15, 2021

Late negotiation works if the call originates and terminates between clients in the same profile. It doesn't work when the call is bridged across profiles. When a call is bridged between profiles, A leg is assigned a codec based on its first preference or that of the profile's first choice based on the inbound-codec-negotiation setting on the profile. B leg gets the codec based on outbound-codec-pref setting. This results in calls being transcoded, even though both the profiles support a common codec.

Late negotiation across profiles work if ring back is disabled, however this is leading to large delays in audio ports being set up when UA are behind NAT and hence not optimal. As this setup is similar to proxy or direct media.

The issue appears to be that the ringback is sent without waiting for the response for the invite. If freeswitch waits for the response for the invite which has the B leg's preferred codec, then A leg can be fed the ringback with a sampling frequency as specified in the codec of B leg. Right now it blindly sets the sampling frequency of the ringback tone based on the profile's first choice codec. This is not an optimal solution.

@krishnak
Copy link
Author

I have a work around for this problem by providing rtp_codec_negotiation=greedy/generous before calls are bridged to other profiles. I would still prefer this late negotiation works as intended when calls are bridged across profiles. It seems to be a classic issue prevailing since ages

https://freeswitch-users.freeswitch.narkive.com/ScjSjtgS/inherit-codec-failing-with-pre-media

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants