asterisk отправляет команду отключения звука на музыкальный автомат при входящем звонке

Мы пробуем использовать сервер Asterisk Now, чтобы заменить нашу устаревшую АТС. Одной из функций "приятно иметь" будет возможность приостановить или понизить громкость офисного музыкального автомата в случае обнаружения входящего вызова.

В настоящее время мы запускаем linux jukebox, который воспроизводит музыку из динамиков с помощью mpd и может управляться клиентом mpc. Мы можем вручную выполнить следующую команду для достижения этой цели:

объем 20 MPC

Кто-нибудь знает, как получить звездочку для выполнения этой команды или какое-либо действие, которое мы могли бы подключить при поступлении телефонного звонка на определенные добавочные номера?

2 ответа

Какая новая идея! Я этого не делал, но думаю, что смогу заставить вас пойти по правильному пути. Если ваша система похожа на мою, вы найдете следующие файлы, которые будут служить примерами:

Для цифрового факса:

/etc/asterisk/extensions.conf

/var/lib/asterisk/bin/fax-process.pl

Для писем с вложенными звуковыми сообщениями:

/etc/asterisk/extensions_additional.conf

/var/lib/asterisk/bin/audio-email.pl

Мы сосредоточимся на втором действии, посмотрев на часть файла extensions_additional.conf, которая имеет дело с аудио-вложениями:

[app-dictate-send]
include => app-dictate-send-custom
exten => *35,1,Answer
exten => *35,n,Macro(user-callerid,)
exten => *35,n,Noop(CallerID is ${AMPUSER})
exten => *35,n,Set(DICTENABLED=${DB(AMPUSER/${AMPUSER}/dictate/enabled)})
exten => *35,n,GotoIf($[$["x${DICTENABLED}"="x"]|$["x${DICTENABLED}"="xdisabled"]]?nodict:dictok)
exten => *35,n(nodict),Playback(feature-not-avail-line)
exten => *35,n,Hangup
exten => *35,n(dictok),Read(DICTFILE,enter-filename-short,,,,)
exten => *35,n,Set(DICTEMAIL=${DB(AMPUSER/${AMPUSER}/dictate/email)})
exten => *35,n,Set(DICTFMT=${DB(AMPUSER/${AMPUSER}/dictate/format)})
exten => *35,n,Set(NAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => *35,n,Playback(dictation-being-processed)
exten => *35,n,System(/var/lib/asterisk/bin/audio-email.pl --file /var/lib/asterisk/sounds/dictate/${AMPUSER}/${DICTFILE}.raw --attachment dict-${DICTFILE} --format ${DICTFMT} --to ${DICTEMAIL} --subject "Dictation from ${NAME} Attached")
exten => *35,n,Playback(dictation-sent)
exten => *35,n,Macro(hangupcall,)

; end of [app-dictate-send]

Вы увидите, что на /var/lib/asterisk/bin/audio-email.pl есть ссылка. Функция работает построчно, поэтому, если кто-то зависает (т.е. строка 8), файл.pl никогда не запускается. Но прежде чем эта функция сможет функционировать, ее необходимо включить так:

include => app-dictate-send

Я не собираюсь распечатывать файл.pl здесь. Если вы можете написать pl-файл, который уменьшит громкость на вашем офисном музыкальном автомате, когда вы запустите его вручную, вы определенно можете настроить Asterisk для отключения pl при получении входящего вызова.

Взгляните на /var/lib/asterisk/bin/fax-process.pl, чтобы увидеть, как звездочка запускает электронные письма.

Теперь вы, вероятно, захотите настроить первый файл, на который я ссылался выше: /etc/asterisk/extensions.conf. Этот файл сообщает Asterisk, что делать, когда впервые поступают вызовы. Посмотрите на верхнюю часть файла для этого:

[from-did-direct]
include => ext-findmefollow
include => ext-local

Вы можете создать что-то вроде "turn_down_music.pl" и включить его в функцию, например [app-lower-music]. Затем вы должны включить его с:

[from-did-direct]
include => app-lower-music
include => ext-findmefollow
include => ext-local

Обратите внимание, что файл [ext-local] определен в файле extensions_additional.conf, но на него ссылаются в файле extensions.conf. Вы можете создать свой собственный файл расширений и ссылаться на него в файле extensions.conf следующим образом:

#include extensions_custom.conf
#include extensions_music.conf

Также обратите внимание, что # не комментирует строки. Вместо; комментарии выкладываются.

Я многому научился из этих двух книг:

Удачи!

Если этот AsteriskNow похож на Elastix, вы должны определить новый раздел в extensions_custom.conf, например:

[from-pstn-custom]
exten = 0123456,n,System(/var/lib/asterisk/bin/whatever-command.pl)

Первое число - ваш входящий DID, "n" - порядок выполнения команд (этот обычно идет в начало списка, потому что from-pstn-custom включен вверху). Это также может быть решено с помощью сценариев AGI, но это может быть излишним для вас.

Другие вопросы по тегам