Описание ошибки =============== 1. Настроить сервер с freeswitch: # apt-get install -y freeswitch-daemon freeswitch-lang-ru freeswitch-sounds-ru-ru-elena-* # sed -i "/default_password/s/1234/Pa##word/" /etc/freeswitch/vars.xml # sed -i "s/<include>/<include>\n<X-PRE-PROCESS cmd=\"set\" data=\"force_local_ip_v4=$(hostname -i)\"\/>\n<X-PRE-PROCESS cmd=\"set\" data=\"local_ip_v4=\$\${force_local_ip_v4}\"\/>/" /etc/freeswitch/vars.xml # systemctl enable freeswitch; systemctl start freeswitch; systemctl status freeswitch 2. Настроить linphone на клиенте: * При запуске закрыть мастер настройки. * Открыть Опции > Параметры > вкладка по умолчанию Управление учётными записями SIP > в разделе Учётные записи нажать Добавить. * Ввести данные: ** Ваш идентификатор SIP: sip:1000@<ip-адрес сервера c freeswitch> ** Адрес SIP прокси: sip:<ip-адрес сервера c freeswitch>:5080 ** Остальные параметры оставить по умолчанию. ** При запросе ввести пароль по умолчанию (Pa##word). * Закрыть окно настроек. 3. Включить модуль mod_vlc и настроить его использование на сервере freeswitch для записи звонка на номер 1008 в формате mp4 (поддерживаемом как mod_av, так и mod_vlc, но freeswitch использует mod_vlc в данном случае; можно использовать и формат m4v, поддерживаемый только mod_vlc): # sed -i "s/<\/modules>/<load module=\"mod_vlc\"\/><\/modules>/" /etc/freeswitch/autoload_configs/modules.conf.xml # sed -i "s/<context name=\"public\">/<context name=\"public\">\n<extension name=\"public_extensions\">\n<condition field=\"destination_number\" expression=\"^1008$\">\n<action application=\"answer\"\/>\n<action application=\"record\" data=\"\/tmp\/recording.mp4 20 200 20\"\/>\n <\/condition>\n<\/extension>/" /etc/freeswitch/dialplan/public.xml # fs_cli freeswitch@...> reloadxml (не выходить из консоли для наблюдения за логами) 4. Позвонить с помощью клиента на номер 1008. Дождаться завершения звонка. Фактический результат ===================== В консоли freeswitch ошибки: > [...] [DEBUG] mod_vlc.c:838 VLC attempt to open /tmp/recording.mp4 write > [...] [DEBUG] mod_vlc.c:939 VLC open /tmp/recording.mp4 for writing > VLC: PulseAudio server connection failure: Connection refused > [...] [ERR] switch_core_file.c:426 File [/tmp/recording.mp4] not created! Файл /tmp/recording.mp4 не создаётся. Возможно, что эта ошибка вызвана ошибкой https://bugzilla.altlinux.org/47326 (Аудио/видео не передаются и соединение нарушается через >30 секунд после начала звонка). Ожидаемый результат =================== Файл /tmp/recording.mp4 должен создаваться и содержать запись звонка. Воспроизводимость ================= Воспроизводится на виртуальных машинах: [p10] server-10.1-x86-64 freeswitch-vlc-1.10.9-alt1.x86_64 [sisyphus] server-10.1-x86-64 freeswitch-vlc-1.10.10-alt1.x86_64
Поведение ошибки несколько изменилось. Теперь в консоли fs_cli при попытке на указанный в конфигах для записи номер выводится сообщение: 2026-07-16 11:54:26.881196 99.00% [ERR] mod_vlc.c:772 VLC error: cannot initialise VLC handle В самом linphone выводится сообщение: DESTINATION OUT OF ORDER При этом на все остальные номера вызов выполняется корректно, в том числе и с номера, для которого настроена запись. Воспроизводится с разными номерами и на разных машинах. Воспроизводится на версии: freeswitch-vlc-1.11.1-alt1.x86_64
freeswitch-1:1.11.2-alt1 -> sisyphus: Thu Aug 13 2026 Anton Farygin <rider@altlinux> 1:1.11.2-alt1 - 1.11.1 -> 1.11.2 - fs_encode: treat only the part after the last dot as the file extension (Closes: 56577) - fs_encode: only use the output extension as a codec when it names a real codec; formats encoded by the file module (wav, flac, ogg, ...) now work as output, wav -> wav included (Closes: 47345, 47348) - fs_encode: do not encode twice when the output extension is claimed by mod_sndfile (gsm, ...): the file was gsm-compressed by the codec and then again by libsndfile, producing short noise-only files (Closes: 47344) - fs_tts: fixed argument handling: the text argument was ignored unless an extra argument followed it, and -i FILE was unreachable so the tool hung on stdin instead of reading the file; extra arguments are rejected now (Closes: 54889) - switch_xml: do not abort on assert in switch_xml_open_cfg() when the main configuration could not be loaded; fixes fs_tts/fs_encode/ tone2wav crash under a regular user (Closes: 47334) - fs_tts: load mod_dptools (tts:// provider) instead of mod_ssml removed upstream, and load the module of the selected TTS engine (mod_flite by default), so text-to-speech actually works (Closes: 47335) - mod_imagick: bound the lazy loading thread by the real page count; fixes endless re-reading of GIF frames with lazy=1 ending in an OOM kill (Closes: 47382) - mod_xml_rpc: build against the bundled xmlrpc-c as upstream intends instead of mixing bundled private headers with the system library; fixes the HTTP server failing to start and every /api, /webapi, /portal request answered with 404, which broke freeswitch-webui (Closes: 47399, 54894) - added a native systemd unit ordered after network-online.target; the unit generated from the SysV script started freeswitch before the network was up, so after a reboot sofia bound to the wrong address and clients could not connect (Closes: 47333) - freeswitch-vlc: require vlc-mini: without the VLC core plugins libvlc_new() returns NULL and mod_vlc fails with "cannot initialise VLC handle" on every call (Closes: 47403) - freeswitch-lang-he: package mod_say_he.so; the subpackage shipped the Hebrew prompts without the module that speaks them - packaged gentls_cert, the TLS certificate helper for sofia and verto - dropped mod_say_hu, mod_say_it and mod_say_nl from the build: they were built and thrown away, upstream ships no lang data for them - do not install the switch_eavesdrop unit test into the bin dir, the unnamespaced /usr/include/test headers, and the Flash-era htdocs leftovers - run the network-free part of tests/unit at build time (switch_utils, switch_hash, switch_event, switch_xml, switch_console); the binaries were already being built and thrown away