ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

CallerID на русском

Проблемы и их решения Asterisk как такового

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

CallerID на русском

Сообщение SolarW » 12 окт 2010, 17:06

Приветствую всех.

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

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

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

Сообщение trscod » 12 окт 2010, 17:48

Каков результкт с правкой проверки?
Аватар пользователя
trscod
 
Сообщений: 358
Зарегистрирован: 30 авг 2010, 17:34

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

Сообщение ded » 12 окт 2010, 18:00

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

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

Сообщение SolarW » 13 окт 2010, 12:27

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

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

Сообщение SolarW » 15 окт 2010, 19:57

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

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

Сообщение ded » 15 окт 2010, 20:23

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

Если в этой цепочке обработчик dialparties.agi, который обращается к MySQL и/или к нативной astdb, тонадо смотреть ишшо.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение SolarW » 15 окт 2010, 20:46

А устройство А передает?
В случае 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 » 15 окт 2010, 20:52

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

Коллеги, если не сложно - оставляйте в этом топике названия телефонов которые поддерживают русский.
Аватар пользователя
SolarW
 
Сообщений: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

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

Сообщение ded » 15 окт 2010, 21:09

SolarW писал(а):А устройство А передает?

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

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

Сообщение tma » 16 окт 2010, 10:18

ded писал(а):Set(CALLERID(name)="Василий Печкин"), ибо кодировка самих файлов - UTF-8

Лично меня в этом интересует способ кодирования UTF-8 в SIP-заголовке.
Можно показать пример?
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
 
Сообщений: 1809
Зарегистрирован: 18 сен 2010, 20:50

След.

Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 16

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH