[Freeswitch-users] Codec negotiation. Totally confused

Sergey Okhapkin sos at sokhapkin.dyndns.org
Mon Mar 7 01:53:05 MSK 2016


I also have <param name="outbound-codec-prefs" 
value="$${outbound_codec_prefs}"/> in the profile settings.

On Sunday 06 March 2016 17:50:32 Sergey Okhapkin wrote:
> What if you do NOT set inherit_codec=true and set inbound-late-
> negotiation=true? This works perfect to me...
> 
> On Monday 07 March 2016 00:42:24 Igor Olhovskiy wrote:
> > 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/2
> > >> 88
> > >> 3
> > >> 
> > >> > > 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-user
> > >> s
> > >> http://www.freeswitch.org
> > > 
> > > --
> > > Best regards,
> > > Igor



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