[Freeswitch-users] Codec negotiation. Totally confused

Sergey Okhapkin sos at sokhapkin.dyndns.org
Mon Mar 7 01:50:32 MSK 2016


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/288
> >> 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-users
> >> http://www.freeswitch.org
> > 
> > --
> > Best regards,
> > Igor



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