Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / MusicOnHold + mpg123 = проблема

MusicOnHold + mpg123 = проблема

1 23>
Сообщений: 1530

MusicOnHold + mpg123 = проблема

Есть такая проблема:
На сервере стоит * (1.0.7) + mpg123 (0.59s). Звук играет (правда в X-Lite его нет -- не поддерживает?), но если продолжить разговор, то * пишет, что музыка остановлена, но процесс mpg123 остается висеть. При этом если опять перевести линию в hold и обратно, то повиснет еще один mpg123. Завершение работы * и повторного запуск на процессы mpg123 никак не влияют. Убиваются только по kill -9.

Что я так неправильно собрал/настроил?

P.S. mpg123 собран с последними патчами от ALT Linux...
http://www.telecomtechnology.net - premium терминация
2005-04-16 04:13

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: MusicOnHold + mpg123 = проблема

А что говорит AltLinux?
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2005-04-16 13:30

Сообщений: 1530

Re: MusicOnHold + mpg123 = проблема

litnimaxА что говорит AltLinux?
А они-то причем?
У меня есть пара вопросов:
1. Почему * просит строго определенную версию mpg123 иначе ругается?
2. Почему * не убивает неиспользуемые процессы?
http://www.telecomtechnology.net - premium терминация
2005-04-16 14:37

Сообщений: 29

Re: MusicOnHold + mpg123 = проблема

Вообще-то на ВИКИ писали, что только версия mpg123 0.59r а не 0.59s нормально работает. Есть еще альтернативые плееры. Можно их попробовать..... У меня с этим не было проблем (если делал все строго по инструкции).
2005-04-16 21:17

Сообщений: 6521

Re: MusicOnHold + mpg123 = проблема

Цитита с http://www.asterisk.org.ru/forum/viewtopic.php?t=73

Если при компиляции подряд выдается множество warning'ов типа:
Код:
localtime.c: In function `ast_tzset':
localtime.c:958: warning: passing arg 3 of `__ast_pthread_mutex_lock' discards qualifiers from pointer target type
localtime.c:960: warning: passing arg 3 of `__ast_pthread_mutex_unlock' discards qualifiers from pointer target type


, то выключите (закоментируйте) опцию '-DDEBUG_THREADS', иначе Asterisk на слабой машине будет выпадать в coredump от (вероятно) нехватки памяти, тут же "возрождаться", снова умирать и так далее, пока, простите, не засрет всю память десятками клонов mpg123, которые он оставляет после себя, не умея убирать их нормально. В конечном итоге система начнет убивать (out of memory...) вполне приличные приложения, вроде sshd? так, что вы вылетите из консоли и сможете подключиться только локально, и то с грехом пополам, так как вся консоль будет забита криками kernel
2005-04-16 23:52

Сообщений: 1530

Re: MusicOnHold + mpg123 = проблема

michaВообще-то на ВИКИ писали, что только версия mpg123 0.59r а не 0.59s нормально работает. Есть еще альтернативые плееры. Можно их попробовать..... У меня с этим не было проблем (если делал все строго по инструкции).
Да, читал. Но я не видел описания причины такого выбора!
Возможно mpg123 просто не убивается по SIGKILL (именно так его пытается убить asterisk судя по исходникам). Проверку еще не проводил -- на машине, на которой крутится asterisk нет звуковой карты и mpg123 просто не запускается в консоле...
http://www.telecomtechnology.net - premium терминация
2005-04-17 10:43

Сообщений: 1530

Re: MusicOnHold + mpg123 = проблема

ded
localtime.c: In function `ast_tzset':
localtime.c:958: warning: passing arg 3 of `__ast_pthread_mutex_lock' discards qualifiers from pointer target type
localtime.c:960: warning: passing arg 3 of `__ast_pthread_mutex_unlock' discards qualifiers from pointer target type
Ни одного сообщения.

ded
, то выключите (закоментируйте) опцию '-DDEBUG_THREADS', иначе Asterisk на слабой машине будет выпадать в coredump от (вероятно) нехватки памяти, тут же "возрождаться", снова умирать и так далее, пока, простите, не засрет всю память десятками клонов mpg123, которые он оставляет после себя, не умея убирать их нормально. В конечном итоге система начнет убивать (out of memory...) вполне приличные приложения, вроде sshd? так, что вы вылетите из консоли и сможете подключиться только локально, и то с грехом пополам, так как вся консоль будет забита криками kernel


У меня asterisk собирается на другой машине в rpm'ку...
Собирается на PIV-1800, работает на PIV-2600. Я сомневаюсь, что обе машины такие уж слабые, тем более, что первая машина участвует исключительно в процессе сборки. Ключи оптимизации были полностью переработаны мной под стандартные для своей системы (Openwall).

Я грешу либо на mpg123, который не умирает по SIGKILL, но это больно странно. Возможно * просто не во всех ситуациях посылает сигнал SIGKILL...
http://www.telecomtechnology.net - premium терминация
2005-04-17 11:01

Сообщений: 1530

Re: MusicOnHold + mpg123 = проблема

Хм. Сейчас глняул -- висит два mpg123.
Попробовал провести эксперимент на Sipura SPA-841 (у нее 2 линии).
Звонил с одной линии на другую и вешал на Hold.
Новые mpg123 не появлялись. Так два процесса и висит...
Правда другой странный глюк -- при снятии с Hold'а музыка так и продолжает играть. ;)

-- Executing Wait("SIP/101-a51c", "1") in new stack
-- Executing SetMusicOnHold("SIP/101-a51c", "random") in new stack
-- Executing Answer("SIP/101-a51c", "") in new stack
-- Executing Dial("SIP/101-a51c", "SIP/102|70") in new stack
-- Called 102
-- SIP/102-70f1 is ringing
-- SIP/102-70f1 answered SIP/101-a51c
-- Attempting native bridge of SIP/101-a51c and SIP/102-70f1
-- Started music on hold, class 'random', on SIP/101-a51c
-- Started music on hold, class 'random', on SIP/102-70f1
-- Stopped music on hold on SIP/101-a51c
-- Started music on hold, class 'random', on SIP/101-a51c
-- Stopped music on hold on SIP/102-70f1
-- Stopped music on hold on SIP/101-a51c
== Spawn extension (tmapvt, 102, 4) exited non-zero on 'SIP/101-a51c'

Stopped было. Хотя если в реальной жизни вроде все работает правильно (нужно, конечно, проверить).

P.S. Не в тему: X-Lite не поддерживает MusicOnHold?
http://www.telecomtechnology.net - premium терминация
2005-04-17 11:18

Сообщений: 194

Re: MusicOnHold + mpg123 = проблема

у меня - нормально поддерживает и икс-лайт, и икс-про, и сипуры :-)
2005-04-18 11:14

Сообщений: 44

Re: MusicOnHold + mpg123 = проблема

Да забейте на mpg123.
В CVS-HEAD есть замечательная штука rawplayer.c
Скомпилить, изменить musiconhold.conf как написано в asterisk/contrib/utils/README.rawplayer и все пашет на ура.
Сам провернул подобное, причем все это работает на FreeBSD 5-STABLE.
Ни чего не зависает, не продолжает играть и корректно убивается при перезагрузке *.
2005-04-19 05:17

1 23>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru