Звуки на русском в Asterisk

Posted by

По умолчанию в только что установленном сервисе , сервис воспроизводит аудио только на Английском, но я в повседневности использую русский. А раз так, что мне необходимо это дело поправить. Для этого мне нужно установить в систему соответствующие файлы. Ну а далее в файле 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.