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

CallerID на русском

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

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

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

Сообщение joe » 20 июн 2013, 23:54

С языком у меня все ок:
# env | grep LANG
LANG=en_US.UTF-8


Если делаю вот так:
exten => _+.,1,Set(CALLERID(name)=тест)
exten => _+.,n,Iconv(CALLERID(name)/ISO-8859-1=${CALLERID(name)}/UTF-8)

то астер отвечает No application 'Iconv' for extension

Если делаю вот так
exten => _+.,1,Set(CALLERID(name)=тест)
exten => _+.,n,Set(CALLERID(name)=${ICONV(ISO8859-1,UTF-8,${CALLERID(name)})})

то в консоли путти отдает
Set("Dongle/datacard16-0100000005", "CALLERID(name)=ÑеÑÑ") in new stack

а на икслайте выводит вместо имени - %c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82

не просто пустоту, а именно - %c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82

В общем завтра буду еще думать. Если поборю, то дам знать, но похоже действительно что-то с кодировкой файла extensions.conf
Хотя с MYSQL-я тоже с SET NAMES utf8 все равно точно такая же ситуация....
joe
 
Сообщений: 17
Зарегистрирован: 20 июн 2013, 19:46
Откуда: Kiev

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

Сообщение ded » 21 июн 2013, 00:15

Если делаю вот так:
exten => _+.,1,Set(CALLERID(name)=тест)
exten => _+.,n,Iconv(CALLERID(name)/ISO-8859-1=${CALLERID(name)}/UTF-8)

то астер отвечает No application 'Iconv' for extension
В старых версиях Астериска это была аппликация, теперь - функция. Разберётесь?
Если делаю вот так
exten => _+.,1,Set(CALLERID(name)=тест)
exten => _+.,n,Set(CALLERID(name)=${ICONV(ISO8859-1,UTF-8,${CALLERID(name)})})

то в консоли путти отдает
Set("Dongle/datacard16-0100000005", "CALLERID(name)=ÑеÑÑ") in new stack
putty - не показатель, у вас может в putty не настроен charset UTF-8

а на икслайте выводит вместо имени - %c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82
X-lite тоже не показатель.
Разберитесь в могуществе конвертера iconv на уровне командной строки и поточных перенаправлений, и всё у Вас получится.
На самом деле во всём виновата винда и putty, Вы никогда не понимаете в какой кодировке пристутствуете в системе с Астериск.
Например, если правильно всё выставлено, то Midnight Commander открывается правильными значками псевдографики, которыми отрисованы таблички.
И тогда с 99% вероятностью что всё верно можно отредактировать файлы extensions.conf в UTF-8 через mcedit
ded
 
Сообщений: 15823
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение joe » 21 июн 2013, 00:36

Ок, спасибо уважаемый ded.
Не поймите неправильно, но я не новичек в линуксе.
Если в путти стоит UTF8, то это UTF-8 без вариантов. В миднайте графические символы на месте.
С икслайтом тоже все ок, так как один и тот же икслайт от одного астера принимает нэйм отлично по русски, а от другого - крякозябры.
Кроме того если я включаю например sip set debug 1403 и посылаю звонок на него, предварительно выставив CALLERID(name), то вот из дибага:

SIP/2.0 100 Trying
Via: SIP/2.0/UDP х.х.х.х:5060;branch=z9hG4bK4ee2b1dc;rport=5060
To: <sip:1403@195.138.217.167:16250;rinstance=88bd42a6709c675d>
From: "%c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82" <sip:0632825038@х.х.х.х>;tag=as0685353c
Call-ID: 6908bd674684412e1aa8cc0729672b81@91.194.251.205
CSeq: 102 INVITE
Content-Length: 0



Имея заголовок фром такого характера
From: "%c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82" <sip:0632825038@х.х.х.х>;tag=as0685353c
который кстати формирует астериск а не икслайт естественно любой сип-клиент отбразит херню....

То есть дело в астере точно....

P.S. У меня всего около 60 серверов работающих. Из них на трех или четырех работает телефонная книга моей разработки без танцев с бубном через MYSQL и SET NAMES.
А вот на двух серверах неработает. Год назад пытался разобраться и забил, потом три сервака отконфижились без гемора и вот опять нарвался. Тр*хаюсь уже два дня бесполезно....
joe
 
Сообщений: 17
Зарегистрирован: 20 июн 2013, 19:46
Откуда: Kiev

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

Сообщение ded » 21 июн 2013, 00:50

Я бы сказал - не в Астере, а в системе.
Поле From: "%c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82" <sip:0632825038@х.х.х.х>;tag=as0685353c
который кстати формирует астериск на основе команды Set(CALLERID(name)=
можно сравнить, да ещё и добавить NoOp(${CALLERID(name)} для наглядности.
Посмотрите на два разных файла extensions.conf с правильно работающего Астера, и с неправильного, но в рамках одной ОС и другой ОС.
Там одинаково ли будут отображаться Ваши Set(CALLERID(name)="Что-то по-русски")??
ded
 
Сообщений: 15823
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение joe » 21 июн 2013, 01:00

Я бы сказал - не в Астере, а в системе.
Поле From: "%c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82" <sip:0632825038@х.х.х.х>;tag=as0685353c
который кстати формирует астериск на основе команды Set(CALLERID(name)=
можно сравнить, да ещё и добавить NoOp(${CALLERID(name)} для наглядности.
Посмотрите на два разных файла extensions.conf с правильно работающего Астера, и с неправильного, но в рамках одной ОС и другой ОС.
Там одинаково ли будут отображаться Ваши Set(CALLERID(name)="Что-то по-русски")??

NoOp'ом естественно выводил - в NoOpe - все ок в консоли.
Завтра попробую с помощью System сохранить переменную CALLERID(name) в файл и посмотреть как оно сохранит.
По поводу переноса конфигов между двумя машинами можно, но один сервак на котором как раз не работает он рабочий. На нем 10 одновременных звонков и 35 донглов. На него подбрасывать конфиг не рискну. Короче завтра расскажу еще что пытался и что помогло. Как вариант можно проапгредиться до 1.8. Там есть интересные переменные - http://www.voip-info.org/wiki/view/Aste ... c+callerid

Вот
Asterisk 1.8 has an expanded CALLERID function. <item> can be one of:

all
name
name-valid
name-charset
name-pres
num
num-valid
num-plan
num-pres
subaddr
subaddr-valid
subaddr-type
subaddr-odd
tag
ANI-all
ANI-name
ANI-name-valid
ANI-name-charset
ANI-name-pres
ANI-num
ANI-num-valid
ANI-num-plan
ANI-num-pres
ANI-tag
RDNIS
DNID
dnid-num-plan
dnid-subaddr
dnid-subaddr-valid
dnid-subaddr-type
dnid-subaddr-odd

Но обновляться очень стремно - сильно уж живой сервак. + думаю что не поможет. Может точно дело в системе а не в астере, но кроме как кодировки и языка в системе на эту тему ничего вроде нет...
joe
 
Сообщений: 17
Зарегистрирован: 20 июн 2013, 19:46
Откуда: Kiev

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

Сообщение ded » 21 июн 2013, 01:08

Не надо меня полностью цитировать.
Joe писал(а):сервак на котором как раз не работает он рабочий. На нем 10 одновременных звонков и 35 донглов. На него подбрасывать конфиг не рискну.

Не надо на него подбрасывать. Просто скопируйте файл через scp, хоть в /tmp
и посмотрите как там выглядят русские вставки в оргинальном файое и в скопированном.
Вижу, Вы там с донглами, серая терминация, Украина, машины для зарабатывания денег?
Не интересно.
в консоли путти отдает
Set("Dongle/datacard16-0100000005", "CALLERID(name)=ÑеÑÑ") in new stack

Кстати, From: "%c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82" = From: "тест" = From: "тест" ( iso-8859-1)
То есть CALLERID(name)=ÑеÑÑ") у вас передаётся в iso-8859-1
таким образом ICONV точно поможет.
Последний раз редактировалось ded 21 июн 2013, 01:36, всего редактировалось 1 раз.
ded
 
Сообщений: 15823
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение joe » 21 июн 2013, 01:36

Не надо на него подбрасывать. Просто скопируйте файл через scp, хоть в /tmp
и посмотрите как там выглядят русские вставки в оргинальном файое и в скопированном.
Вижу, Вы там с донглами, серая терминация, Украина, машины для зарабатывания денег?
Не интересно.


Ок, попробую скопировать файл.
По поводу серой терминации - не так. Просто на одной машине пару контор крутится крупных. Ничего супер серого там нет...
Все симки контрактные, все честно никакой перепродажи и т.д.
joe
 
Сообщений: 17
Зарегистрирован: 20 июн 2013, 19:46
Откуда: Kiev

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

Сообщение ded » 21 июн 2013, 01:37

Ох, продублирую!
From: "%c3%91%c2%82%c3%90%c2%b5%c3%91%c2%81%c3%91%c2%82" = From: "тест" = From: "тест" ( iso-8859-1)
То есть CALLERID(name)=ÑеÑÑ") у вас передаётся в iso-8859-1
таким образом ICONV точно поможет.
ded
 
Сообщений: 15823
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение joe » 21 июн 2013, 01:42

Ок, попробую завтра с ним еще поиграться. Спасибо большое.
joe
 
Сообщений: 17
Зарегистрирован: 20 июн 2013, 19:46
Откуда: Kiev

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

Сообщение joe » 21 июн 2013, 17:00

Вобщем, ничего не получилось. ICONV честно перекодирует, но все равно выводятся кракозябры с процентами. Боюсь дело не в чарсете а в энкодинге, но я пока ненагуглил как его можно поменять.
joe
 
Сообщений: 17
Зарегистрирован: 20 июн 2013, 19:46
Откуда: Kiev

Пред.След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

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