Читать «ELASTIX – общайтесь свободно» онлайн - страница 92
Владислав Юров
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 имя осталось написанным по-русски.
Меры повышения безопасности
Если Elastix находится в открытом доступе, перечисленные в данном приложении мероприятия по защите станции жизненно необходимы. Без должной защиты через несколько недель или месяцев станция будет взломана и начнет использоваться злоумышленниками для звонков за счет вашей компании.
Для Elastix, установленных в локальной сети предприятия, описанные ниже меры не столь критичны, но настоятельно рекомендуются. Не забывайте про компьютеры пользователей – наличие антивирусов не спасает компьютеры от заражения и рано или поздно они станут источником взлома станции. Для взломщиков станция из локальной сети представляет не меньший интерес – злоумышленники получат пароли подключения к вашим провайдерам и будут использовать их услуги за Ваш счет.
Кроме описанных ниже настроек рекомендую приобрести и установить дополнение Anti-Hacker. Дополнение стоит $15 и позволяет существенно упростить процесс настройки защиты, защищая Elastix от атак «грубой силы» – атак, перебирающих пароли. Конечно, из чисто спортивного интереса можно самостоятельно настроить Fail2ban, но практичнее приобрести и настроить Anti‑Hacker, проделать описанные ниже настройки по изменению портов используемых сервисов и активировать FireWall, встроенный в Elastix.