Different codec negotiation behaviour
Hi, i have noticed a difference in the codec negotiation between version 1.2.stable and current master and would like to ask if this is intentional or a bug. My FS codec string in vars.xml contains this: <X-PRE-PROCESS cmd="set" data="global_codec_prefs=opus,speex,silk,G722"/> The UAC (CSIPsimple) sends the following SDP: v=0 o=- 3606049718 3606049718 IN IP4 10.0.0.30 s=pjmedia c=IN IP4 10.0.0.30 t=0 0 m=audio 4000 RTP/AVP 106 99 9 8 3 101 c=IN IP4 10.0.0.30 a=rtpmap:106 speex/16000 a=rtpmap:99 SILK/24000 a=fmtp:99 useinbandfec=0 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=rtcp:4001 IN IP4 10.0.0.30 FS 1.2 accepts SPEEX with 16kHz: [DEBUG] sofia_glue.c:5282 Audio Codec Compare [speex:106:16000:20:0]/[opus:116:48000:20:0] [DEBUG] sofia_glue.c:5282 Audio Codec Compare [speex:106:16000:20:0]/[SPEEX:99:8000:20:24600] [DEBUG] sofia_glue.c:5282 Audio Codec Compare [speex:106:16000:20:0]/[G722:9:8000:20:64000] [DEBUG] sofia_glue.c:5355 Substituting codec SPEEX@20i@16000h [DEBUG] sofia_glue.c:3190 Set Codec sofia/internal/ally.mcbeal@petitenet.prv SPEEX/16000 20 ms 320 samples 42200 bits while FS 1.5 seems only to check for SPEEX with 8kHz and then jumps to G722 as closest match: [DEBUG] switch_core_media.c:3389 Audio Codec Compare [speex:106:16000:20:0]/[opus:116:48000:20:0] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [speex:106:16000:20:0]/[SPEEX:99:8000:20:24600] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [speex:106:16000:20:0]/[SILK:117:8000:20:20000] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [speex:106:16000:20:0]/[G722:9:8000:20:64000] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [SILK:99:24000:20:0]/[opus:116:48000:20:0] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [SILK:99:24000:20:0]/[SPEEX:99:8000:20:24600] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [SILK:99:24000:20:0]/[SILK:117:8000:20:20000] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [SILK:99:24000:20:0]/[G722:9:8000:20:64000] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [G722:9:8000:20:64000]/[opus:116:48000:20:0] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [G722:9:8000:20:64000]/[SPEEX:99:8000:20:24600] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [G722:9:8000:20:64000]/[SILK:117:8000:20:20000] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [G722:9:8000:20:64000]/[G722:9:8000:20:64000] [DEBUG] switch_core_media.c:3443 Audio Codec Compare [G722:9:8000:20:64000] ++++ is saved as a match [DEBUG] switch_core_media.c:3389 Audio Codec Compare [PCMA:8:8000:20:64000]/[opus:116:48000:20:0] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [PCMA:8:8000:20:64000]/[SPEEX:99:8000:20:24600] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [PCMA:8:8000:20:64000]/[SILK:117:8000:20:20000] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [PCMA:8:8000:20:64000]/[G722:9:8000:20:64000] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [GSM:3:8000:20:13200]/[opus:116:48000:20:0] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [GSM:3:8000:20:13200]/[SPEEX:99:8000:20:24600] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [GSM:3:8000:20:13200]/[SILK:117:8000:20:20000] [DEBUG] switch_core_media.c:3389 Audio Codec Compare [GSM:3:8000:20:13200]/[G722:9:8000:20:64000] [DEBUG] switch_core_media.c:3315 Set telephone-event payload to 101 [DEBUG] switch_core_media.c:2343 Set Codec sofia/internal/ally.mcbeal@petitenet.prv G722/8000 20 ms 160 samples 64000 bits The same occurs with SILK too. Is this the new behaviour in FS 1.5 ? Does now the codec string always have to be exactly defined to work for SPEEX or SILK like "speex@16000h,silk@24000h" ? Torsten
I wrote up some docs in vars.xml, you didn’t allow speex@16000h -- Brian West brian@freeswitch.org FreeSWITCH Solutions, LLC PO BOX 2531 Brookfield, WI 53008-2531 Twitter: @FreeSWITCH , @briankwest http://www.freeswitchbook.com http://www.freeswitchcookbook.com T: +1.918.420.9001 | F: +1.918.420.9002 | M: +1.918.424.WEST iNUM: +883 5100 1420 9001 ISN: 410*543 Skype:briankwest PGP Key: http://www.bkw.org/key.txt (AB93356707C76CED) On Apr 11, 2014, at 9:21 AM, Torsten Hantzsche <thantzsche@petitenet.de> wrote:
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=opus,speex,silk,G722"/>
On Fri, 11 Apr 2014, Brian West wrote:
I wrote up some docs in vars.xml, you didn?t allow speex@16000h
My interpretation of the line "codecname[@8000h|16000h|32000h[@XXi]]" was that the sole naming of the codecname is valid for all frequencies and frame sizes. I took the following lines as example for only narrowing the choices on the side of FS. Thanks for your clarification, Brian. Torsten
participants (2)
-
Brian West
-
Torsten Hantzsche