[Freeswitch-users] Why doesn’t FreeSwitch offer PCMU/PCMA to the callee?

Дилян Палаузов dpa-freeswitch at aegee.org
Fri Apr 8 17:47:02 UTC 2022


Hello,

I want to call from Linphone on Android to Gnome Calls.  The SIP trace
can be found at https://gitlab.gnome.org/GNOME/calls/-/issues/434 . 
Linphone announces OPUS.  FreeSWITCH is supposed to do transcoding
between codecs.  It proposes however to Gnome Calls only OPUS as viable
protocol. Gnome Calls rejects the INVITATION, as it does not speak
OPUS.

I the SIP profile I have

<param name="inbound-codec-prefs"
value="OPUS,G722,PCMU,PCMA,H264,VP8"/>
<param name="outbound-codec-prefs"
value="OPUS,G722,PCMU,PCMA,H264,VP8"/>

While calling, the variable ep_codec_string has the value
mod_opus.opus at 48000h@20i at 2c,CORE_PCM_MODULE.PCMU at 8000h@20i at 64000b,CORE_PCM_MODULE.PCMA at 8000h
@20i at 64000b,mod_spandsp.G722 at 8000h@20i at 64000b.

I have enabled Late Negotiation.

freeswitch at d> sofia status profile internal
=======================================================================
==========================
Name                    internal
Domain Name             N/A
Auto-NAT                false
DBName                  sofia_reg_internal
Pres Hosts              192.168.0.199,192.168.0.199
Dialplan                XML
Context                 public
Challenge Realm         auto_from
RTP-IP                  192.168.0.199
SIP-IP                  192.168.0.199
URL                     sip:mod_sofia at 192.168.0.199:5060
BIND-URL               
sip:mod_sofia at 192.168.0.199:5060;transport=udp,tcp
WS-BIND-URL             sip:mod_sofia at 192.168.0.199:5066;transport=ws
WSS-BIND-URL            sips:mod_sofia at 192.168.0.199:7443;transport=wss
HOLD-MUSIC              local_stream://moh
OUTBOUND-PROXY          N/A
CODECS IN               OPUS,G722,PCMU,PCMA,H264,VP8
CODECS OUT              OPUS,G722,PCMU,PCMA,H264,VP8
TEL-EVENT               101
DTMF-MODE               rfc2833
CNG                     13
SESSION-TO              0
MAX-DIALOG              0
MAX-RECV-RPS            1000
NOMEDIA                 false
LATE-NEG                true
PROXY-MEDIA             false
ZRTP-PASSTHRU           true
AGGRESSIVENAT           false
CALLS-IN                12
FAILED-CALLS-IN         6
CALLS-OUT               6
FAILED-CALLS-OUT        6
REGISTRATIONS           4

FreeSwith offers only OPUS to Gnome Calls and the latter rejects the
connection.

The question is, why doesn't FreeSwitch offer transcoding, and the
PCMA+PCMU codecs to the callee?




I have one more question.  I want to execute some actions
unconditionally in a dialplan, in particular to record all calls.

I do:


<context name="default">
  <extension name="recording" continue="true">
    <condition  break='never' >
      <anti-action application="set" data="record_sample_rate=32000"/>
      <anti-action application="record_session"
data="$${recordings_dir}/B-${strftime(%Y-%m-%d-%H-%M-
%S)}_${destination_number}_${caller_id_number}.wav"/>

      <action application="set" data="record_sample_rate=32000"/>
      <action application="record_session" data="$${recordings_dir}/A-
${strftime(%Y-%m-%d-%H-%M-
%S)}_${destination_number}_${caller_id_number}.wav"/>
    </condition>
  </extension>
  <!-- other extensions -->
</context>

It does work, but sometimes the action is executed, sometimes the anti-
action.  ( I hope I say the truth, since I made a lot of changes
recently and these are the results I remember).

Is there any way to execute a condition unconditionally, or rather to
execute actions outside of a condition and extension?  Here, to record
all calls, without having an extension/condition?

Thanks in advance for your ideas!

Greetings
  Дилян



More information about the FreeSWITCH-users mailing list