2015-09-18 2 views
0

У нас есть несколько радиостанций, которые мы передаем по телефону. Большинство из них имеют свой поток в формате MP3. Некоторые используют MMS, в то время как другие используют RTSP.Решение для игры на разных строках в Asterisk

У нас есть две проблемы:

1) Нахождение решения для всех распространенных formatss. В настоящее время только MP3 работает с madplay. MMS требует mplayer, который продолжает умирать. 2) Даже при использовании madplay ящики могут обрабатывать только 20-30 различных потоков, так как каждый поток использует 2-3% процессора. В настоящее время musiconhold.conf запускает каждый скрипт bash при запуске, поэтому, если мы говорим, что у нас есть 30 каналов, нам нужно вытащить их всех, независимо от того, звонит ли кто-нибудь на прослушивание.

Ниже приведены два Баш сценариев, которые мы используем:

Madplay:

#!/bin/bash 
wget -q -T 120 -O - http://example.org/stream.mp3 | /usr/local/bin/madplay -Q -o raw:- --mono -R 8000 -a -6 - 

Mplayer

#!/bin/bash 
if [ -n "`ls /tmp/pdmohpipe`" ]; then 
    rm -f /tmp/pdmohpipe 
fi 
PIPE="/tmp/pdmohpipe" 
mknod $PIPE p 
sleep 3 
/usr/local/bin/mplayer mms://10.10.10.10/radio_online -really-quiet -quiet -ao pcm:nowaveheader,file=$PIPE -af resample=8000,channels=1,format=mulaw | cat $PIPE 
rm $PIPE 

Возможно, используя MOH в реальном времени поможет, как это было бы только втянуты если какой-то один хочет слушать? Я знаю, что FreeSwitch поддерживает VLC, знает ли кто-нибудь, поддерживает ли Asterisk такую ​​поддержку?

ответ

0

Вы можете использовать любое решение, которое в состоянии вывода изменений в SLIN (8khz 16 битных несжатый РСМ)

Вы можете использовать одну нить удержания на поле в каждом классе MOH. Для этого необходимо использовать

[general] 
;cachertclasses=yes ; use 1 instance of moh class for all users who are using it, 
        ; decrease consumable cpu cycles and memory 
        ; disabled by default 

Обратите внимание, что это GLOBAL-настройки модуля musiconhold. В результате каждый новый вызывающий объект с таким же классом moh будет подключен к тем же (перекодированным) классам moh через аудиокниги, аналогичные конференции. Все будут слышать ТОЛЬКО момент файла/потока

+0

Любые предложения о том, что будет использовать меньше CPU, чем madplay? Проблема в том, что если у меня 50 потоков, даже если никто не слушает, он все еще использует CPU. –

+0

50 различных потоков? – arheops

+0

На самом деле сейчас проект должен сыграть 150. В настоящее время я его распространяю на 3 VPS. –