Книга: ELASTIX – общайтесь свободно
Назад: Вопросы по телефонам Yealink
Дальше: Меры повышения безопасности

Приложения

Русификация Elastix 2.4

Русификация Elastix состоит из нескольких частей:
• добавление русского голоса
• настройка в Asterisk языка по умолчанию
• настройка говорящих часов (номер «100»)
• конвертация базы данных asterisk из кодировки latin1 в кодировку utf8
• настройка для подключений к базам данных mySQL использования кодировки utf8
• отключение контроля вводимых символов в интерфейсе администрирования Elastix

Добавление русского голоса

Скачайте русский голос, используя следующие команды:
su root
cd /tmp
wget https://github.com/pbxware/asterisk-sounds/tarball/master – O asterisk-sounds-ru.tar.gz
tar xzvf asterisk-sounds-ru.tar.gz
mv /var/lib/asterisk/sounds/ru /var/lib/asterisk/sounds/ru-orig
mkdir /var/lib/asterisk/sounds/ru
mv pbxware-asterisk-sounds-1fd21fa/* /var/lib/asterisk/sounds/ru/

 

Либо установите русский голос, используя бесплатный модуль bSmart Voice Manager:

 

Настройка говорящих часов (номер «100»)

Если не выбрали при установке, настройте также часовой пояс:
sudo cp /etc/localtime /etc/localtime.orig
sudo ln – sf /usr/share/zoneinfo/Europe/Moscow localtime
В web-интерфейсе откройте меню «Feature Codes» в разделе «PBX», укажите номер «100» в поле «Speaking Clock»:

 

 

Сохраните изменения.

Настройка в Asterisk языка по умолчанию

Откройте меню «General Settings» в разделе «PBX»:
Укажите вашу страну:

 

 

И сохраните изменения.

 

Откройте меню «Asterisk File Editor» в закладке «Tools» раздела «PBX»:

 

 

Убедитесь, что в файле «sip_general_custom.conf» есть строка «language=ru»:

 

 

При необходимости добавьте строку, сохраните изменения и перезапустите Asterisk.

Конвертация базы данных в UTF8

Начиная с Elastix 2.5 поддерживается работа в кодировке UTF-8, что позволяет использовать для абонентов имена на кириллице и на других языках. Однако Elastix 2.4 и более ранние умеют работать только с алфавитом latin1. Если компания уже давно использует Elastix, порой проще русифицировать текущую версию, чем обновить систему.

 

Чтобы добавить в Elastix 2.4 полноценную поддержку русского языка экспортируйте, пересоздайте и восстановите БД в UTF-8, а также настройте использование кодировки UTF8 для подключения к mySQL. Для этого создайте скрипт astdb2utf.sh (или загрузите):
sudo mkdir /root/tasks
sudo nano /root/tasks/astdb2utf.sh
напишите следующий текст скрипта:
#!/bin/bash
#конвертация базы данных в UTF-8
fcfg=/etc/amportal.conf
dbuser=$(grep '^AMPDBUSER=' ${fcfg} | sed "s/.*[=]//g" | sed "s/[]//g" | tr – d '\n')
dbpassword=$(grep '^AMPDBPASS=' ${fcfg} | sed "s/.*[=]//g" | sed "s/[]//g" | tr – d '\n')

 

#конвертация БД в кодировку utf-8
db2utf8() {
db=$1
dbu=$2
dbpwd=$3
fdb=/tmp/${db}.sql
fdbutf=/tmp/${db}-utf8.sql
sql="DROP DATABASE ${db}"
sql="$sql; CREATE DATABASE ${db} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysqldump ${db} – u ${dbu} – p${dbpwd} >${fdb}
sed "s/CHARSET[=]latin1/CHARSET=utf8/g" ${fdb} >${fdbutf}
echo ${sql} | mysql ${db} – u${dbu} – p${dbpwd}
cat $fdbutf | mysql ${db} – u${dbu} – p${dbpwd}
}

 

#настройка utf8 для подключения к базе данных
ifnotexists() {
str=$1
after=$2
patt=$(echo $2 | sed 's/[=]/[=]/g')
fn=$3
cnt=$(grep – c "${str}" ${fn})
if [$cnt – le 0]; then
sed – i – e "s/.*${patt}/${after}\n${str}/g" ${fn}
echo "added string ${str}"
fi
}

 

db2utf8 'asterisk' «$dbuser» «$dbpassword»
db2utf8 'asteriskcdrdb' "$dbuser" "$dbpassword"

 

ifnotexists «character-set-server=utf8» «user=mysql» «/etc/my.cnf»
ifnotexists "collation-server=utf8_general_ci" "user=mysql" "/etc/my.cnf"
ifnotexists "init-connect='set charset utf8; SET NAMES utf8;'" "user=mysql" "/etc/my.cnf"

 

fl1=/var/www/html/admin/components.class.php
cp $fl1 ${fl1}-orig
txt_old='htmlentities[(][$]this[-][>]currentvalue[)]'
txt_new='htmlentities($this->currentvalue, ENT_COMPAT, "utf-8")'
sed "s/$txt_old/$txt_new/g" – i $fl1
txt_old='htmlentities[(][$]currentvalue[)]'
txt_new='htmlentities($currentvalue, ENT_COMPAT, "utf-8")'
sed "s/$txt_old/$txt_new/g" – i $fl1

 

fl1=/var/www/html/modules/pbxadmin/js/libfreepbx.javascripts.js
fl2=/var/www/html/modules/pbxadmin/js/script.legacy.js
cp $fl1 ${fl1}-orig
cp $fl2 ${fl2}-orig
txt_old='function isLetter[(]c[)]'
txt_new='function isLetter(c) { return (1==1); } function isLetter_old(c)'
sed "s/$txt_old/$txt_new/g" – i $fl1
sed "s/$txt_old/$txt_new/g" – i $fl2
txt_old='function isCallerIDChar[(]c[)]'
txt_new='function isCallerIDChar(c) { return (1==1); } function isCallerIDChar_old(c)'
sed "s/$txt_old/$txt_new/g" – i $fl1
sed "s/$txt_old/$txt_new/g" – i $fl2
txt_old='function isAlphanumeric[(]c[)]'
txt_new='function isAlphanumeric(c) { return (1==1); } function isAlphanumeric_old(c)'
sed "s/$txt_old/$txt_new/g" – i $fl1
sed "s/$txt_old/$txt_new/g" – i $fl2
Запустите созданный скрипт и перезапустите mySQL:
sudo bash /root/tasks/astdb2utf.sh
service mysqld restart

 

Проверьте, что теперь Вы можете создавать абонентов (Extensions) с русскими именами. Откройте меню «Extensions» в разделе «PBX». Обновите страницу браузера, чтобы обновился скрипт, проверяющий корректность ввода. Добавьте новый телефон, указав русское имя в поле «Display Name»:

 

 

Сохраните изменения и проверьте, что в поле Display Name имя осталось написанным по-русски.
Назад: Вопросы по телефонам Yealink
Дальше: Меры повышения безопасности