artem
22.07.2013
23232

Русский Caller ID во FreePBX

Многие спрашивают, а можно ли сделать русские имена во FreePBX, что бы при звонках отображались русские имена к примеру.

Можно, для этого нам нужно будет поправить несколько файлов. (При этом сам телефон должен иметь возможность поддержки кодировки UTF-8)

По умолчанию, FreePBX разрешает сохранить CallerID только на английском языке. Что бы исправить это ограничение, нам нужно поправить файл:

/var/www/html/admin/modules/core/functions.inc.php (примерный номер строки 6862) в которой мы должны ихменить метод проверки символов, получаем следующую строку

$currentcomponent->addguielem($section, new gui_textbox(‘name’, $name, _(“Display Name”), _(“The CallerID name for calls from this user will be set to this name. Only enter the name, NOT the number.”),  ‘isWhitespace()’, $msgInvalidDispName, false));

 Теперь мы можем сохранять имена в любой кодировке, и Caller ID в консоле будет русский, однако во FreePBX эти имена после сохранения будут отображаться некорректно. Для этого нам понадобится PHP версии 5.4+ либо правка файла в котором мы включим возможность отображения UTF-8:

/var/www/html/admin/libraries/components.class.php (примерный номер строки 655) и получаем:

$this->html_input = “<input type=”text” name=”$this->_elemname” id=”$this->_elemname” size=”35″ $disable_state $maxlength tabindex=”$tabindex” value=”” . htmlentities($this->currentvalue, ENT_COMPAT | ENT_HTML401, ‘UTF-8’) . “”>”;

Но и это еще не все. В фале /var/www/html/admin/libraries/db_connect.php  (примерный номер строки 30) после строки:

$db = DB::connect($datasource); // attempt connection

Нужно добавить следующее:

$db->query(‘SET character set utf8’);
$db->query(‘SET names utf8’);

Еще нужно изменить кодировки двух таблиц на UTF-8 в бд asterisk:

ALTER TABLE `devices` COLLATE=’utf8_general_ci’, CONVERT TO CHARSET utf8;
ALTER TABLE `users` COLLATE=’utf8_general_ci’, CONVERT TO CHARSET utf8;

Если после этого у вас отображаются вопросы, нужно пересохранить номер с нужным именем

Для корректного отображения CDR:

в /etc/asterisk/cdr_mysql.conf нужно добавить charset = utf8
и меняем кодировку таблицы
ALTER TABLE `cdr` COLLATE=’utf8_general_ci’, CONVERT TO CHARSET utf8; (не забываем что таблица находится в asteriskcdrdb, если у вас FreePBX)

Все, звоним, проверяем отображение русских имен. Еще раз хочется добавить, что сам телефон должен иметь возможность поддержки UTF-8.

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices