Bug 47404 - Созданный mod_av (freeswitch-av) файл записи звонка недействительный
Summary: Созданный mod_av (freeswitch-av) файл записи звонка недействительный
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: freeswitch-av (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-08-30 16:28 MSK by Artem Varaksa
Modified: 2023-08-30 16:28 MSK (History)
11 users (show)

See Also:


Attachments
Пример созданного файла (4.07 KB, video/x-matroska)
2023-08-30 16:28 MSK, Artem Varaksa
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Artem Varaksa 2023-08-30 16:28:44 MSK
Created attachment 14276 [details]
Пример созданного файла

Описание ошибки
===============

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. Настроить на сервере freeswitch запись звонка на номер 1008 в формате mkv (поддерживаемом только mod_av):
# 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.mkv 20 200 20\"\/>\n <\/condition>\n<\/extension>/" /etc/freeswitch/dialplan/public.xml
# fs_cli
freeswitch@...> reloadxml
(не выходить из консоли для наблюдения за логами)

4. Позвонить с помощью клиента на номер 1008. Дождаться завершения звонка.

Фактический результат
=====================

В консоли freeswitch:

[...] [DEBUG] avformat.c:2208 sample rate: 8000, channels: 1
[...] [NOTICE] avformat.c:839 sample_rate: 44100 nb_samples: 64
[...] [NOTICE] avformat.c:842 sample_fmt 8 != AV_SAMPLE_FMT_S16, start resampler
Output #0, matroska, to '/tmp/recording.mkv':
  Stream #0:0
: Unknown: none (libvorbis)
[...] [INFO] avformat.c:2458 Opening File [/tmp/recording.mkv] 44100hz

Файл /tmp/recording.mkv создаётся, но он недействительный, согласно ffprobe:

> # ffprobe /tmp/recording.mkv
> [matroska,webm @ 0x563d709745c0] Duplicate element
> [matroska,webm @ 0x563d709745c0] 0x00 at pos 110 (0x6e) invalid as first byte of an EBML number
> [matroska,webm @ 0x563d709745c0] Duplicate element
> [matroska,webm @ 0x563d709745c0] 0x00 at pos 204 (0xcc) invalid as first byte of an EBML number
> [matroska,webm @ 0x563d709745c0] Element at 0x67 ending at 0x79cec016d exceeds containing master element ending at 0x1413
> /tmp/recording.mkv: End of file

Воспроизвести его с помощью VLC также не получается.

Пример созданного файла - во вложении.

Возможно, что эта ошибка вызвана ошибкой https://bugzilla.altlinux.org/47326 (Аудио/видео не передаются и соединение нарушается через >30 секунд после начала звонка).

Ожидаемый результат
===================

Файл /tmp/recording.mkv должен корректно создаваться и содержать запись звонка.

Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[p10] server-10.1-x86-64
freeswitch-av-1.10.9-alt1.x86_64

[sisyphus] server-10.1-x86-64
freeswitch-av-1.10.10-alt1.x86_64