К основному контенту

Freepbx + русский Caller ID


FreePBX к сожалению по умолчанию не хочет сохранять CallerID на языках отличных от английского.
Чтобы это исправить нужно удалить !isAlphaNumeric в файле /var/www/html/admin/modules/core/functions.inc.php:6850 (позиция строки может различаться)

Итоговый вид такой:

$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));

После этого станет возможным ввод русских символов и станет отображаться русский CallerID, однако в самой GUI эти символы станут отображаться кракозяблями.

Решение - или обновить PHP до версии 5.4+ или подправить 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;

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

Комментарии

Популярные сообщения из этого блога

Автообзвон на Asterisk (FreePBX)

Syntax of call files Specify where and how to call Channel : <channel>: Channel to use for the call. CallerID : «name» <number> Caller ID, Please note: It may not work if you do not respect the format: CallerID: «Some Name» <1234> MaxRetries : <number> Number of retries before failing (not including the initial attempt, e.g. 0 = total of 1 attempt to make the call). Default is 0. RetryTime : <number> Seconds between retries, Don't hammer an unavailable phone. Default is 300 (5 min). WaitTime : <number> Seconds to wait for an answer. Default is 45. Account : Set the account code to use. If the call answers, connect it here: Context : <context-name> Context in extensions.conf Extension : <ext> Extension definition in extensions.conf Priority : <priority> Priority of extension to start with Set : Set a variable for use in the extension logic (example: file1=/tmp/to ); in Asterisk 1.0.x use

Настройка записи разговоров freepbx

1. Заходим на Web-интерфейс  2. Выбираем   « Панель пользователя» и вводим логин и пароль для входа(логин и пароль — это внутренний номер абонента). 3. Если правильный логин и пароль, то попадаем в интерфейс пользователя: Дата  — дата звонка; Время  — время звонка; Номер  — отображается телефонный номер   ( а под ним — внутренний номер   ), с которого был произведен звонок; Источник  — указывается внутренний номер; Назначение  — указывается внутренний номер, куда был послан звонок; Длительность  — указывается время в секундах, телефонного разговора; Монитор  — имеет две иконки:  — открывает флеш плеер для проигрывания записи разговора;  — предлагает сохранить запись разговора на жесткий диск. 3. Прослушивание записи разговоров может происходить в двух вариантах: Вариант 1 Выбираете интересующий Вас звонок и нажимаете на иконку  , после чего под строчкой звонка откроется полоска флеш-плеера, где можно будет управлять ходом прослушивания звукового файла: Ва

Запись и обслуживание разговоров в Asterisk FreePBX

Как и многие другие компании мы используем  FreePBX —  графический интерфейс для Астериск. Служба безопасности требует записывать все входящие и исходящие звонки , не проблема все делается просто: Заходим в админку http://sip.domain.local/admin/config.php , далее General Settings и делаем как у казанно у меня на скрине: Вот вроде и все , но если не следить за записями  они забьют все место на масиве. На помощь нам приходит bash =) , пишем скрипт который будет удалять записи старше 14 дней ( для службы безопасности такой срок устраивает) #!/bin/bash # Указываем директорию где расположены файлы RECORDINGS=/var/spool/asterisk/monitor # Указываем период за какой срок удалять файлы записи  RECORDINGEXPIRY=14 # Указываем за какой срок хранить логи LOGEXPIRY=365 # Дата DATE=`date` # Удаляем записи старше $RECORDINGEXPIRY дней find $RECORDINGS -mtime +$RECORDINGEXPIRY -exec rm -rfv > removal-$DATE.log # Удаляем логи старше $LOGEXPRY find . -mtime +$LO