[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