суббота, 5 августа 2017 г.

Радиоприемник на громкой связи. Asterisk. В двух вариантах.

Суть простая - набираешь цифру, а потом выбираешь радиостанцию, которая звучит из потока.

Ver.1

В вашем внутреннем контескте в extensions.conf:

exten => 9,1,NoOp(=radio=)
exten => 9,n,Answer()
exten => 9,n,Background(beep)
exten => 9,n,WaitExten(3)
exten => 1,1,MusicOnHold(radio1)
exten => 2,1,Set(VOLUME(TX)=5) ;поток тихо звучал, поднял ему громкость
exten => 2,2,MusicOnHold(radio2)
exten => t,1,Hangup()


В musiconhold.conf:

[radio1]
mode=custom
application=/usr/bin/mpg123 -q -s --mono -r 8000 -f 4096 -Z http://address1/stream.mp3

[radio2]
mode=custom
application=/usr/bin/mpg123 -q -s --mono -r 8000 -f 4096 -Z http://address2/stream.mp3

В консоли asteriska делаем:

dialplan reload

и

module reload res_musiconhold.so

Ver.2
Все же решил сделать без musiconhold. Так как musiconhold постоянно тянет поток из Интернет, вне зависимости от того слушаете вы его или нет. Мне не очень нравится, что нагрузка на сеть и железо (пусть и небольшая) осуществляется без необходимости.
Если используется CDR, можно добавить NoCDR по желанию, я добавил

Достаточно этого (перед MP3Player обязательно должен быть Answer или Progress!):

exten => 9,1,NoCDR()
exten => 9,n,NoOp(=radio=)
exten => 9,n,Answer()
exten => 9,n,Background(beep)
exten => 9,n,WaitExten(10)
exten => 9,n,Hangup()
exten => 1,1,MP3Player(http://stream1.com.mp3)
exten => 2,1,MP3Player(http://stream2.com.mp3)
exten => 3,1,MP3Player(http://stream3.com.mp3)
exten => t,1,Hangup()

и

dialplan reload

Потоки можно ТУТ поискать.