Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Использование Iconv

0

Добрый день. Может кто сталкивался с такой проблемой?

АТС-ка содержит имена пользователй в кодировке WINDOWS-1251. Астериск понимает UTF-8. Для перекодирования использую Set(CALLERID(name)=${ICONV(WINDOWS-1251,UTF-8,${CALLERID(name)})})

Кодируется нормально, но проблема в наложении прошлых записей, например: - Первым звонит Ивонов И.П. Executing [4001@from-internal:2] Set("SIP/utde-0000002b", "CALLERID(name)=Иванов И.П.") in new stack - Вторым звонит test Executing [4001@from-internal:2] Set("SIP/utde-0000002d", "CALLERID(name)=testванов И.П.") in new stack

Получается, что test налаживается на Иванов И.П.

Как убрать это наложение?

удалить закрыть спам изменить тег редактировать

спросил 2011-07-15 12:03:04 +0400

delpavel Gravatar delpavel
51 8 2 9

2 Ответа

0

Есть идея обрезать значение переменной. Если в астериске способ как это сделать?

ссылка удалить спам редактировать

ответил 2011-07-18 11:49:59 +0400

delpavel Gravatar delpavel
51 8 2 9

обновил 2011-07-18 11:51:03 +0400

0

Первое, что приходит в голову - использовать переменные уровня канала с наследованием в дочерних каналах. Сделать макрос iconv_callerid, в котором проверять флаг сделанной ранее конверсии. Если пусто - преобразуем, и перебиваем callerid, если уже было - ничего не делаем. Переменные с наследованием делаются с помощью префикса _. Пример:

Set(_ICONV_DONE=1)
ссылка удалить спам редактировать

ответил 2011-07-17 12:48:45 +0400

litnimax Gravatar litnimax
1453 11 8 29
http://www.pbxware.ru/

Comments

А можно немного подробнее? Я мало что понял из Вашего ответа. Что касается CALLERID(name), то он всегда правильный. Такое ощущение, что проблема в самой функции ICONV. Может ее можно как то обнулять в начале звонка? delpavel ( 2011-07-18 09:17:54 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-07-15 12:03:04 +0400

Просмотрен: 994 раз

Обновлен: Jul 18 '11

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.