Bug 54898 - freeswitch: imagick, http_cache: Invalid file format
Summary: freeswitch: imagick, http_cache: Invalid file format
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: freeswitch-imagick (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-06-23 17:03 MSK by Artem Varaksa
Modified: 2025-06-23 19:12 MSK (History)
11 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Artem Varaksa 2025-06-23 17:03:11 MSK
Шаги
====

1. Настроить сервер:
  # apt-get install -y freeswitch-imagick 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 && \
    sed -i "s/<\/modules>/<load module=\"mod_imagick\"\/><\/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=\"^1007$\">\n<action application=\"answer\"\/>\n<action application=\"playback\" data=\"{lazy=1}\/etc\/freeswitch\/file.pdf\"\/>\n <\/condition>\n<\/extension>/" /etc/freeswitch/dialplan/public.xml && \
    systemctl enable --now freeswitch  && \
    sleep 5 && \
    systemctl status freeswitch --no-pager -l && \
    fs_cli

  Не выходить из консоли для просмотра логов.

2. Поместить любые тестовые файлы pdf, gif в `/etc/freeswitch/file.{pdf,gif}`.

3. На клиенте с p10:
  # apt-get install -y linphone

  Настроить Linphone:

  - При запуске закрыть мастер настройки.
  - Открыть Опции > Параметры > вкладка по умолчанию Управление учётными записями SIP > в разделе Учётные записи нажать Добавить.
  - Ввести данные:
    - Ваш идентификатор SIP:  sip:1001@<ip-адрес сервера c freeswitch>
    - Адрес SIP прокси:   sip:<ip-адрес сервера c freeswitch>:5080
    - Остальные параметры оставить по умолчанию.
  - При запросе ввести пароль по умолчанию (Pa##word).
  - Закрыть окно настроек.

4. Позвонить на номер 1007 с клиента.

5. Также можно попробовать с gif:
  # sed -i 's/file.pdf/file.gif/' /etc/freeswitch/dialplan/public.xml

  # fs_cli
  freeswitch@...> reloadxml

  и позвонить на тот же номер.


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

Вывод в консоли:

> 2025-06-23 16:22:22.113298 93.67% [INFO] mod_enum.c:884 ENUM Reloaded
> 2025-06-23 16:22:22.113298 93.67% [INFO] switch_time.c:1436 Timezone reloaded 597 definitions
> 2025-06-23 16:23:02.553272 99.77% [NOTICE] switch_channel.c:1142 New Channel sofia/external/1001@SERVER_IP [325176f2-b8e1-4171-8c7e-793ff7213580]
> 2025-06-23 16:23:02.553272 99.77% [INFO] sofia.c:10460 sofia/external/1001@SERVER_IP receiving invite from <CALLER_IP>:52380 version: 1.10.12-release  64bit call-id: A2zwwjXUEg
> 2025-06-23 16:23:02.553272 99.77% [INFO] mod_dialplan_xml.c:639 Processing 1001 <1001>->1007 in context public
> EXECUTE [depth=0] sofia/external/1001@SERVER_IP answer()
> 2025-06-23 16:23:02.593155 99.77% [INFO] switch_core_media.c:9560 Activating VIDEO RTCP PORT 9079 interval 1000 mux -1
> 2025-06-23 16:23:02.593155 99.77% [NOTICE] sofia_media.c:90 Pre-Answer sofia/external/1001@SERVER_IP!
> 2025-06-23 16:23:02.593155 99.77% [NOTICE] mod_dptools.c:1406 Channel [sofia/external/1001@SERVER_IP] has been answered
> EXECUTE [depth=0] sofia/external/1001@SERVER_IP playback({lazy=1}/etc/freeswitch/file.pdf)
> 2025-06-23 16:23:02.593155 99.77% [ERR] switch_core_file.c:346 Invalid file format [pdf] for [/etc/freeswitch/file.pdf]!
> 2025-06-23 16:23:02.593155 99.77% [NOTICE] switch_core_state_machine.c:382 sofia/external/1001@SERVER_IP has executed the last dialplan instruction, hanging up.
> 2025-06-23 16:23:02.593155 99.77% [NOTICE] switch_core_state_machine.c:384 Hangup sofia/external/1001@SERVER_IP [CS_EXECUTE] [NORMAL_CLEARING]
> 2025-06-23 16:23:02.613172 99.77% [NOTICE] switch_core_session.c:1762 Session 1 (sofia/external/1001@SERVER_IP) Ended
> 2025-06-23 16:23:02.613172 99.77% [NOTICE] switch_core_session.c:1766 Close Channel sofia/external/1001@SERVER_IP [CS_DESTROY]

Аналогично с gif:

> 2025-06-23 16:33:07.733215 99.33% [ERR] switch_core_file.c:346 Invalid file format [gif] for [/etc/freeswitch/file.gif]!


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

В окне с видео отображается pdf/gif-файл.

Примечание: могут воспроизводится также и другие ошибки:
* https://bugzilla.altlinux.org/47326
* https://bugzilla.altlinux.org/47382

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

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

[sisyphus] ALT Server 11.0 x86_64
freeswitch-daemon-1.10.12-alt4.x86_64

[p11] ALT Server 11.0 x86_64
freeswitch-daemon-1.10.12-alt2.x86_64

[p10] ALT Workstation 11.0 x86_64
freeswitch-daemon-1.10.11-alt1.x86_64
Comment 1 Artem Varaksa 2025-06-23 19:12:01 MSK
Воспроизводится и с модулем mod_http_cache (подставить MEDIA_URL):

# MEDIA_URL="http://example.com/file.wav" && \
    sed -i 's|</modules>|<load module="mod_http_cache"/></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="^1017$">\n<action application="answer"/>\n<action application="playback" data="http_cache://MEDIA_URL"/>\n </condition>\n</extension>|' /etc/freeswitch/dialplan/public.xml
    sed -i "s|MEDIA_URL|$MEDIA_URL|" /etc/freeswitch/dialplan/public.xml && \
    fs_cli -x "reloadxml" && \
    fs_cli

Позвонить на 1017 с клиента.

> 2025-06-23 19:09:16.160182 99.83% [ERR] switch_core_file.c:346 Invalid file format [http_cache] for [http://git.testlink.ipa.basealt.ru/bigdata/multimedia/audio_files/file.wav]!