По умолчанию в только что установленном сервисе Asterisk, сервис воспроизводит аудио только на Английском, но я в повседневности использую русский. А раз так, что мне необходимо это дело поправить. Для этого мне нужно установить в систему соответствующие файлы. Ну а далее в файле extensions.conf с применением SayDigits,SayNumber,Playback и т.д я смогу управлять поведением на родном мне языке.
У меня развернут на системе консольный Asterisk, я считаю, что лучше тратить время на обучение консольного Asterisk чем надстройки на него для управления через Web-интерфейс.
ekzorchik@srv-phone:~$ sudo asterisk -r
Asterisk 13.14.1~dfsg-2, Copyright (C) 1999 - 2014, Digium, Inc. and others.
Местонахождение файлов звуков по умолчанию предопределено в следующем каталоге:
ekzorchik@srv-phone:~$ ls /usr/share/asterisk/sounds/
custom en en_US en_US_f_Allison priv-callerintros recordings
Но т. к. я Asterisk ставил из deb пакетов, то мне не подходит установка набора звуковых файлов через команду make menuselect
, а значит мне на помощь должны прийти все также имеющие место быть дефолтные репозитарии пакетов:
ekzorchik@srv-phone:~$ apt-cache search asterisk | grep sounds-ru
asterisk-core-sounds-ru - asterisk PBX sound files - Russian
asterisk-core-sounds-ru-g722 - asterisk PBX sound files - ru-ru/g722
asterisk-core-sounds-ru-gsm - asterisk PBX sound files - ru-ru/gsm
asterisk-core-sounds-ru-wav - asterisk PBX sound files — ru-ru/wav
ekzorchik@srv-phone:~$ sudo apt-get install asterisk-core-sounds-ru asterisk-core-sounds-ru-gsm asterisk-core-sounds-ru-wav asterisk-core-sounds-ru-g722 -y
ekzorchik@srv-phone:~$ ls /usr/share/asterisk/sounds/
custom en en_US en_US_f_Allison priv-callerintros recordings ru ru_RU ru_RU_f_IvrvoiceRU
Как проверить, что звуковые файлы на русском работают, нужно обозначить в sip.conf что язык аудио файлов русский:
ekzorchik@srv-phone:~$ sudo nano /etc/asterisk/sip.conf
language = ru
и описать план обработки звонков:
ekzorchik@srv-phone:~$ sudo nano /etc/asterisk/extensions.conf
[office]
exten => 101,1,Dial(SIP/101)
exten => 102,1,Dial(SIP/102)
exten => 103,1,Answer()
exten => 103,n,Set(CHANNEL(language)=ru)
exten => 103,n,Playback(digits/today)
exten => 103,n,SayNumber(${CALLERID(num)},f)
exten => 103,n,Wait(0.5)
exten => 103,n,Hangup()
После применяем изменения:
ekzorchik@srv-phone:~$ sudo asterisk -rx "dialplan reload"
Dialplan reloaded.
Теперь если позвонить на номер 103, то проиграется звуковой файл today из каталога digits который находится внутри основного с учетом языка. Если же файл внутри основного каталога, то просто указываем его именование, но без расширения.
ekzorchik@srv-phone:~$ ls /usr/share/asterisk/sounds/ru/digits/ | grep today
today.g722
today.gsm
today.wav
В данном файле содержится слово «Сегодня».
А чтобы проиграть текущий номер который в данный момент сейчас на аппарате переделываем:
ekzorchik@srv-phone:~$ sudo nano /etc/asterisk/extensions.conf
exten => 103,1,Answer()
exten => 103,n,Set(CHANNEL(language)=ru)
exten => 103,n,SayDigits(${CALLERID(num)})
ekzorchik@srv-phone:~$ sudo asterisk -rx "dialplan reload"
Dialplan reloaded.
После при звонке на 103 в трубку будет по цифрам сообщено с какого номера вы звоните. Также данный номер 103 не обязательно должен существовать в sip.conf
Работает. Отлично. Итак я двигаюсь по своему плану изучения консольного asterisk вместо нагромождения в роли FreePBX(Asterisk), пока все просто. Но ставя задачи самому себе я учусь не спеша. На этом у меня пока все, с уважением автор блога Олло Александр aka ekzorchik.