Why doesn’t FreeSwitch offer PCMU/PCMA to the callee?
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@48000h@20i@2c,CORE_PCM_MODULE.PCMU@8000h@20i@64000b,CORE_PCM_MODULE.PCMA@8000h @20i@64000b,mod_spandsp.G722@8000h@20i@64000b. I have enabled Late Negotiation. freeswitch@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@192.168.0.199:5060 BIND-URL sip:mod_sofia@192.168.0.199:5060;transport=udp,tcp WS-BIND-URL sip:mod_sofia@192.168.0.199:5066;transport=ws WSS-BIND-URL sips:mod_sofia@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 Дилян
participants (1)
-
Дилян Палаузов