VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

CallerID на русском

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

CallerID на русском

Сообщение 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.
Для удовлетворения любопытства я конечно сейчас залезу руками в базу и поправлю там для тестирования.
Но хотелось бы услышать - может еще кто-то что-то на эту тему копал?
Аватара пользователя
trscod
Сообщения: 358
Зарегистрирован: 30 авг 2010, 17:34

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

Сообщение trscod »

Каков результкт с правкой проверки?
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Я предлагаю для чистоты эксперимента тестировать на малом куске ручного диалплана с ручной подстановкой Set(CALLERID(name)="Василий Печкин"), ибо кодировка самих файлов - UTF-8
А уж потом - исследовать в какой кодировке хранит имена MySQL, а уж потом переписывать javascript.
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

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

Сообщение SolarW »

Коллеги, небольшая пауза в исследованиях - навалилась работа.
В mysql базе содержимое Asterisk Phonebook не нашел, пойду по пути предложенному ded'ом.
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

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

Сообщение 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
Изображение
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

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

Если в этой цепочке обработчик dialparties.agi, который обращается к MySQL и/или к нативной astdb, тонадо смотреть ишшо.
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

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

Сообщение 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-камеры, что позволит ООО "АйПиМатика - Украина" предлагать своим дилерам оборудование для законченных решений.
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

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

Сообщение SolarW »

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

Коллеги, если не сложно - оставляйте в этом топике названия телефонов которые поддерживают русский.
ded
Сообщения: 15619
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

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

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

Сообщение tma »

ded писал(а):Set(CALLERID(name)="Василий Печкин"), ибо кодировка самих файлов - UTF-8
Лично меня в этом интересует способ кодирования UTF-8 в SIP-заголовке.
Можно показать пример?
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH