[Freeswitch-users] Codec negotiation. Totally confused

Igor Olhovskiy igorolhovskiy at gmail.com
Mon Mar 7 01:42:24 MSK 2016


To be more clear
with inbound-late-negotitation and inherit_codec=true I assume this
scenario:
I got a call to internal profile with codecs G722, PCMU and PCMA. Than, I’m
dialing external with putbound-codecs-prefs=PCMU,PCMA,GSM. At this point I
assume external profile will make an offer with PCMU and PCMA (accordint to
restrictions), but I got offer from external only on G722, which is not
supported by my provider.

2016-03-07 0:29 GMT+02:00 Igor Olhovskiy <igorolhovskiy at gmail.com>:

> Yep, tried to play with it, same idea, on external profile call - only
> g722. Which is not even in outbound codec list. And, according to manual,
> FS should offer all codecs in list to next endpoint, which is not happens.
> That’s my main confusion…
>
> 2016-03-07 0:05 GMT+02:00 Sergey Okhapkin <sos at sokhapkin.dyndns.org>:
>
>> <param name="inbound-late-negotiation" value="true"/>
>>
>> ?
>>
>> On Sunday 06 March 2016 23:51:53 Igor Olhovskiy wrote:
>> > Hi!
>> > Thanks, but transcoding is also working with option
>> absolute_codec_string.
>> > What I’m trying to understand - what I’ve missed and why with profile
>> > settings, external profile totally ignores outbound-codec-prefs and
>> takes
>> > ONLY FIRST from incoming call to internal profile.
>> >
>> > 2016-03-06 22:45 GMT+02:00 Volodymyr Fedorov <lexxua at gmail.com>:
>> > > Hi Igor,
>> > > If you want to do transcoding try to set*
>> > > media_mix_inbound_outbound_codecs=true.* This is described in detail
>> here
>> > >
>> > >
>> https://freeswitch.org/confluence/plugins/servlet/mobile#content/view/2883
>> > > 752 .
>> > >
>> > > On Mar 6, 2016 11:28 AM, "Igor Olhovskiy" <igorolhovskiy at gmail.com>
>> wrote:
>> > >> Working only when I’m setting
>> > >> export nolocal:absolute_codec_string=${outbound_codec_prefs}
>> > >>
>> > >> 2016-03-06 11:47 GMT+02:00 Igor Olhovskiy <igorolhovskiy at gmail.com>:
>> > >>> Main question - why it’s ignores outbound-codec-prefs on external
>> > >>> profile and use G722 as a first avail codec in list?
>> > >>>
>> > >>> 2016-03-06 9:51 GMT+02:00 Igor Olhovskiy <igorolhovskiy at gmail.com>:
>> > >>>> Hi!
>> > >>>> I’m getting really strange things, or I’m just missed something.
>> > >>>> My phone is dials to freeswitch with this this line in log
>> > >>>>
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] sofia.c:6770 Remote SDP:
>> > >>>> v=0
>> > >>>> o=root 1697549695 1697549695 IN IP4 <EXTERNAL IP HERE>
>> > >>>> s=call
>> > >>>> c=IN IP4 <EXTERNAL IP HERE>
>> > >>>> t=0 0
>> > >>>> m=audio 26894 RTP/AVP 9 0 8
>> > >>>> a=rtpmap:9 G722/8000
>> > >>>> a=rtpmap:0 PCMU/8000
>> > >>>> a=rtpmap:8 PCMA/8000
>> > >>>> a=ptime:20
>> > >>>> a=nortpproxy:yes
>> > >>>>
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [G722:9:8000:20:64000:1]/[G722:9:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4216 Audio
>> Codec
>> > >>>> Compare [G722:9:8000:20:64000:1] ++++ is saved as a match
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [G722:9:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [G722:9:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [PCMU:0:8000:20:64000:1]/[G722:9:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [PCMU:0:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4216 Audio
>> Codec
>> > >>>> Compare [PCMU:0:8000:20:64000:1] ++++ is saved as a match
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [PCMU:0:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [PCMA:8:8000:20:64000:1]/[G722:9:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [PCMA:8:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4161 Audio
>> Codec
>> > >>>> Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:4216 Audio
>> Codec
>> > >>>> Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match
>> > >>>> 2016-03-06 08:31:56.681036 [DEBUG] switch_core_media.c:2906 Set
>> Codec
>> > >>>> sofia/internal/10 at consertis.securenetvox.net G722/8000 20 ms 160
>> > >>>> samples 64000 bits 1 channels
>> > >>>>
>> > >>>> And when switches to external profile, I see
>> > >>>>
>> > >>>> 2016-03-06 08:31:56.721010 [DEBUG] sofia_glue.c:1257
>> sofia/external/
>> > >>>> 00972543279009 sending invite version: 1.6.6 git d2d0b32
>> 2016-01-11
>> > >>>> 20:16:12Z 64bit
>> > >>>> Local SDP:
>> > >>>> v=0
>> > >>>> o=FreeSWITCH 1457219712 1457219713 IN IP4 10.0.20.71
>> > >>>> s=FreeSWITCH
>> > >>>> c=IN IP4 10.0.20.71
>> > >>>> t=0 0
>> > >>>> m=audio 29804 RTP/AVP 9 101 13
>> > >>>> a=rtpmap:9 G722/8000
>> > >>>> a=rtpmap:101 telephone-event/8000
>> > >>>> a=fmtp:101 0-16
>> > >>>> a=rtpmap:13 CN/8000
>> > >>>> a=ptime:20
>> > >>>> a=sendrecv
>> > >>>>
>> > >>>>
>> > >>>> The question is - why only G722 left?
>> > >>>> Across dialplan there is no things like inherit_codec, bypass
>> media or
>> > >>>> other codec-related stuff
>> > >>>>
>> > >>>> Profiles
>> > >>>> external
>> > >>>> ext-sip-ip [10.0.20.71]
>> > >>>> rtp-timeout-sec [300]
>> > >>>> rtp-hold-timeout-sec [1800]
>> > >>>> tls [false]
>> > >>>> tls-only [false]
>> > >>>> tls-bind-params [transport=tls]
>> > >>>> tls-sip-port [5081]
>> > >>>> tls-cert-dir [/usr/local/freeswitch/conf/ssl]
>> > >>>> tls-passphrase []
>> > >>>> tls-verify-date [true]
>> > >>>> tls-verify-depth [2]
>> > >>>> tls-verify-in-subjects []
>> > >>>> tls-version [tlsv1]
>> > >>>> tls-verify-policy [all]
>> > >>>> odbc-dsn [pgsql://hostaddr=127.0.0.1 port=5432 dbname=freeswitch
>> > >>>> user=fusionpbx password=pass options=''
>> application_name='freeswitch']
>> > >>>> track-calls [true]
>> > >>>> inbound-codec-negotiation [greedy]
>> > >>>> debug [0]
>> > >>>> user-agent-string [FreeSWITCH]
>> > >>>> sip-trace [no]
>> > >>>> sip-capture [no]
>> > >>>> rfc2833-pt [101]
>> > >>>> sip-port [5080]
>> > >>>> dialplan [XML]
>> > >>>> context [public]
>> > >>>> dtmf-duration [2000]
>> > >>>> inbound-codec-prefs [G7221 at 32000h,G7221 at 16000h
>> > >>>> ,G722,PCMU,PCMA,OPUS,SILK]
>> > >>>> outbound-codec-prefs [PCMU,PCMA,GSM]
>> > >>>> hold-music [local_stream://default]
>> > >>>> zrtp-passthru [true]
>> > >>>> rtp-timer-name [soft]
>> > >>>> local-network-acl [localnet.auto]
>> > >>>> manage-presence [false]
>> > >>>> nonce-ttl [60]
>> > >>>> auth-calls [false]
>> > >>>> rtp-ip [10.0.20.71]
>> > >>>> sip-ip [10.0.20.71]
>> > >>>> ext-rtp-ip [10.0.20.71]
>> > >>>>
>> > >>>> internal
>> > >>>> tls-cert-dir [/usr/local/freeswitch/conf/ssl]
>> > >>>> tls-passphrase []
>> > >>>> tls-verify-date [true]
>> > >>>> tls-verify-depth [2]
>> > >>>> tls-verify-in-subjects []
>> > >>>> tls-version [tlsv1]
>> > >>>> nonce-ttl [60]
>> > >>>> auth-calls [true]
>> > >>>> inbound-reg-force-matching-username [true]
>> > >>>> auth-all-packets [false]
>> > >>>> ext-rtp-ip [10.0.20.71]
>> > >>>> ext-sip-ip [10.0.20.71]
>> > >>>> rtp-timeout-sec [300]
>> > >>>> rtp-hold-timeout-sec [1800]
>> > >>>> tls-verify-policy [all]
>> > >>>> multiple-registrations [contact]
>> > >>>> enable-timer [false]
>> > >>>> dbname [share_presence]
>> > >>>> send-presence-on-register [true]
>> > >>>> inbound-codec-negotiation [greedy]
>> > >>>> NDLB-force-rport [safe]
>> > >>>> challenge-realm [auto_to]
>> > >>>> outbound-proxy [10.0.20.70]
>> > >>>> track-calls [true]
>> > >>>> odbc-dsn [pgsql://hostaddr=127.0.0.1 port=5432 dbname=freeswitch
>> > >>>> user=fusionpbx password=btgJek49 options=''
>> > >>>> application_name='freeswitch']
>> > >>>> nat-options-ping [true]
>> > >>>> liberal-dtmf [true]
>> > >>>> all-reg-options-ping [true]
>> > >>>> force-publish-expires [true]
>> > >>>> unregister-on-options-fail [true]
>> > >>>> user-agent-string [FreeSWITCH]
>> > >>>> debug [0]
>> > >>>> sip-trace [no]
>> > >>>> sip-capture [no]
>> > >>>> watchdog-enabled [no]
>> > >>>> watchdog-step-timeout [30000]
>> > >>>> watchdog-event-timeout [30000]
>> > >>>> log-auth-failures [true]
>> > >>>> forward-unsolicited-mwi-notify [false]
>> > >>>> context [public]
>> > >>>> rfc2833-pt [101]
>> > >>>> sip-port [5060]
>> > >>>> dialplan [XML]
>> > >>>> dtmf-duration [2000]
>> > >>>> inbound-codec-prefs [G7221 at 32000h,G7221 at 16000h
>> > >>>> ,G722,PCMU,PCMA,OPUS,SILK]
>> > >>>> outbound-codec-prefs [G7221 at 32000h,G7221 at 16000h
>> > >>>> ,G722,PCMU,PCMA,OPUS,SILK]
>> > >>>> rtp-timer-name [soft]
>> > >>>> rtp-ip [10.0.20.71]
>> > >>>> sip-ip [10.0.20.71]
>> > >>>> hold-music [local_stream://default]
>> > >>>> apply-nat-acl [nat.auto]
>> > >>>> aggressive-nat-detection [true]
>> > >>>> apply-inbound-acl [domains]
>> > >>>> local-network-acl [localnet.auto]
>> > >>>> record-path [/usr/local/freeswitch/recordings]
>> > >>>> record-template
>> > >>>>
>> [${domain_name}/archive/${strftime(%Y)}/${strftime(%b)}/${strftime(%d)}
>> > >>>> /${uuid}.${record_ext}] manage-presence [true]
>> > >>>> presence-probe-on-register [true]
>> > >>>> manage-shared-appearance [true]
>> > >>>> tls [false]
>> > >>>> tls-only [false]
>> > >>>> tls-bind-params [transport=tls]
>> > >>>> tls-sip-port [5061]
>> > >>>>
>> > >>>> Tried with indbound-late-negotiation=false, also not helps…
>> > >>>> Can you please, point, what is missing? Thanks
>> > >>>>
>> > >>>> --
>> > >>>> Best regards,
>> > >>>> Igor
>> > >>>
>> > >>> --
>> > >>> Best regards,
>> > >>> Igor
>> > >>
>> > >> --
>> > >> Best regards,
>> > >> Igor
>> > >>
>> > >>
>> _________________________________________________________________________
>> > >> Professional FreeSWITCH Consulting Services:
>> > >> consulting at 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 at lists.freeswitch.org
>> > >> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> > >> UNSUBSCRIBE:
>> http://lists.freeswitch.org/mailman/options/freeswitch-users
>> > >> http://www.freeswitch.org
>> > >
>> > >
>> _________________________________________________________________________
>> > > Professional FreeSWITCH Consulting Services:
>> > > consulting at 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 at lists.freeswitch.org
>> > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> > > UNSUBSCRIBE:
>> http://lists.freeswitch.org/mailman/options/freeswitch-users
>> > > http://www.freeswitch.org
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at 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 at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>
>
>
> --
> Best regards,
> Igor
>



-- 
Best regards,
Igor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20160307/405b126c/attachment-0001.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list