Страница 1 из 10

CallerID на русском

Добавлено: 12 окт 2010, 17:06
SolarW
Приветствую всех.

Вот в этом топике обсуждался вопрос русифицированных телефонов и отображения на их дисплее имени звонящего абонента на русском.
Подвели итог что проблема не в телефоне а в том, что астериск не поддерживает национальные символы.

Хотелось бы поднять данную тему.
В данный момент попался мне в руки телефон Yealink SIP-T22P.
Как сказано в описании (и это собственно говоря правда) телефон полностью русифицирован.
В качестве офисной PBX применяю сейчас Elastix 2.0 (Asterisk 1.6.2.13).
В нем обновил FreePBX до 2.8.0.3.
Установил FOP2 и модуль FreePBX для управления FOP2.
В этом модуле подписал кнопочки абонентов по русски.
Все замечательно, на кнопках подписи русские (правда отображается макс 12 символов, но это пока не важно).
Самое для меня интересное наступило когда я с помощью панели попытался позвонить.
Раздался звонок на моем телефоне чтобы я поднял трубку, я глянул на дисплей и увидел свое ФИО по русски, так как была подписана кнопка в FOP2.
Получается что в AMI по которому панель инициирует звонок русский поддерживается и он в UTF-8?
Окрыленный открывшимися перспективами попробовал добавить в FreePBX -> Tools -> Asterisk Phonebook запись на русском.
Получил облом - "Please enter a valid Name"
Глянул в исходный код страницы а там проверка

Код: Выделить всё

<script language="javascript">
<!--

var theForm = document.edit;
theForm.name.focus();

function edit_onsubmit() {
	var msgInvalidNumber = "Please enter a valid Number";
	var msgInvalidName = "Please enter a valid Name";
	var msgInvalidCode = "Please enter a valid Speeddial code or leave it empty";
	defaultEmptyOK = false;
	if (!isInteger(theForm.number.value))
		return warnInvalid(theForm.number, msgInvalidNumber);
	if (!isAlphanumeric(theForm.name.value))
		return warnInvalid(theForm.name, msgInvalidName);
	
	defaultEmptyOK = true;
	if (!isInteger(theForm.speeddial.value))
		return warnInvalid(theForm.speeddial, msgInvalidCode);
		
	return true;
}
Согласен, русские буквы не являются Alphanumeric с точки зрения Javascript.
Для удовлетворения любопытства я конечно сейчас залезу руками в базу и поправлю там для тестирования.
Но хотелось бы услышать - может еще кто-то что-то на эту тему копал?

Re: CallerID на русском

Добавлено: 12 окт 2010, 17:48
trscod
Каков результкт с правкой проверки?

Re: CallerID на русском

Добавлено: 12 окт 2010, 18:00
ded
Я предлагаю для чистоты эксперимента тестировать на малом куске ручного диалплана с ручной подстановкой Set(CALLERID(name)="Василий Печкин"), ибо кодировка самих файлов - UTF-8
А уж потом - исследовать в какой кодировке хранит имена MySQL, а уж потом переписывать javascript.

Re: CallerID на русском

Добавлено: 13 окт 2010, 12:27
SolarW
Коллеги, небольшая пауза в исследованиях - навалилась работа.
В mysql базе содержимое Asterisk Phonebook не нашел, пойду по пути предложенному ded'ом.

Re: CallerID на русском

Добавлено: 15 окт 2010, 19:57
SolarW
Увидев аналогичную тему дружественном форуме бросил все и таки провел эксперимент.
Диалплан

Код: Выделить всё

exten => 1199,1,set(CALLERID(name)="Василий Печкин")
exten => 1199,2,Dial(SIP/3404,60,Ttr) 
Лог в консоли

Код: Выделить всё

-- Executing [1199@from-internal:1] Set("SIP/3330-00000039", "CALLERID(name)="Василий Печкин"") in new stack
-- Executing [1199@from-internal:2] Dial("SIP/3330-00000039", "SIP/3404,60,Ttr") in new stack
Дисплей телефона Yealink SIP-T22P
Изображение

Re: CallerID на русском

Добавлено: 15 окт 2010, 20:23
ded
Промежуточный итог:
Если устройство А прередаёт кириллицей в UTF-8, a * транзитно пропускает (без всяких там dialparties.agi наполняющих значениями Set(CALLERID= ))
то устройство В примет кириллицу на экран, если опять таки понимает UTF-8.

Если в этой цепочке обработчик dialparties.agi, который обращается к MySQL и/или к нативной astdb, тонадо смотреть ишшо.

Re: CallerID на русском

Добавлено: 15 окт 2010, 20:46
SolarW
А устройство А передает?
В случае FreePBX подставляется то CallerID Name которое мы в свойствах экста прописали...
Потому мне, как поклоннику GUI ;) теперь интересны следующие вещи:
- научить FreePBX разрешать добавлять CallerID Name на русском.
- аналогично с Asterisk Phonebook
- научится подключать в качестве источника CallerID Name внешнии базы (Sugar, vTiger, FOP2, etc)

Проверил работу на остальных доступных мне в данный момент телефонах этой фирмы.
Yealink SIP-T12P
Yealink SIP-T20P (с алфавитно-цифровым дисплеем)
Yealink SIP-T22P (это он был на фото)
Yealink SIP-T26P
Yealink SIP-T28P
Yealink VP-2009 (видеотелефон с 7" сенсорным дисплеем)
Везде все нормально. Единственно на T20P из-за дисплея длинные имена не влезут - ширина 15 символов.

P.S. Кстати на следующей неделе в Киеве выставка профильная.
Процитирую полученное приглашение:
Приглашаем Вас посетить стенд ООО "АйПиМатика - Украина" на 8-й международной выставке и конференции индустрии телекоммуникаций expoTEL 2010, которая состоится 20-22 ОКТЯБРЯ 2010 года в г. Киеве, Украина. Выставка пройдет одновременно и на одной площадке с 8-й международной выставкой и конференцией по Телерадиовещанию, Цифровым Технологиям и Контенту ЕЕВС 2010.

Выставка будет проводится в крупнейшем выставочном центре Украины "КИЕВЭКСПОПЛАЗА" по адресу: г. Киев, ул. Салютная, 2-Б, павильон №1,вход А, В, С.

На стенде ООО "АйПиМатика - Украина" Вы можете увидеть и протестировать USB-телефоны, USB-адаптеры, USB-шлюзы и WEB-камеры SkypeMate, мультимедийные телефоны, SIP-телефоны и SIP-адаптеры IPMATIKA и Yealink, а также аналоговые и цифровые компьютерные платы для IP-телефонии, IP-АТС и факс-серверы Yeastar.

Кроме того, на стенде будет представлена новая продукция - это SIP-домофоны и SIP-камеры, что позволит ООО "АйПиМатика - Украина" предлагать своим дилерам оборудование для законченных решений.

Re: CallerID на русском

Добавлено: 15 окт 2010, 20:52
SolarW
А с чего начались мои изыскания на эту тему - играясь с FOP2 увидел что при инициации звонка на дисплее старенького Grandstream GXP-2000 появляются загадочные кракозябры очень напоминающие текст в utf-8 отображенный с системе не поддерживающей эту кодировку.
Подставил вместо него Yealink - и вуаля!

Коллеги, если не сложно - оставляйте в этом топике названия телефонов которые поддерживают русский.

Re: CallerID на русском

Добавлено: 15 окт 2010, 21:09
ded
SolarW писал(а):А устройство А передает?
В телефонах и шлюзах есть поле Name куда можно забить имя кириллицей, но это только для теста через голый *, потому что в стандартном freePBX забивая экстеншны получим callerid=device <101> на юзерах в файле extensions_addition.conf
Инфа: если на устройстве А забито кириллицей, и правильно передаётся, то мы увидим это в SIP пакетах INVITE.
Если при этом * не делает преобразований Set(CALLERID=(name) то имя в кириллице так и передаётся транзитно до устройства В.
Вот такие пререквизиты для опытов.

Re: CallerID на русском

Добавлено: 16 окт 2010, 10:18
tma
ded писал(а):Set(CALLERID(name)="Василий Печкин"), ибо кодировка самих файлов - UTF-8
Лично меня в этом интересует способ кодирования UTF-8 в SIP-заголовке.
Можно показать пример?