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

Кодировка caller id в cisco 7912G

Вопросы по использованию и настройке IP телефонов, шлюзов и всего прочего

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

ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Кодировка caller id в cisco 7912G

Сообщение ded »

werter писал(а): можно ли привязать все это дело в зависимости от номера абонента?
Конечно можно, но и нужно. Строку конвертации надо чуть усложнить: для внутреннего номера 1234 делаем конвертацию

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

exten => s,n,ExecIf(${CALLERID(num)}=1234?Set(AMPUSERCIDNAME=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${AMPUSER}/cidname)})})
Синтаксис сами поправите?
werter
Сообщения: 7
Зарегистрирован: 10 ноя 2017, 17:30

Re: Кодировка caller id в cisco 7912G

Сообщение werter »

Всем хорошего настроения!
Уважаемый ded, огромное спасибо. Получилось!

Решение(-я):

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

exten => s,n,ExecIf($["${CALLERID(num)}" = "800"]?Set(AMPUSERCIDNAME=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${AMPUSER}/cidname)})}):Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}))
или

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

exten => s,n,ExecIf($["${CALLERID(dnid)}" = "800"]?Set(AMPUSERCIDNAME=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${AMPUSER}/cidname)})}):Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}))
werter
Сообщения: 7
Зарегистрирован: 10 ноя 2017, 17:30

Re: Кодировка caller id в cisco 7912G

Сообщение werter »

Двигаюсь далее.

Вариант 1.
Знаю, что возможно создать алиас\пул номеров экстеншенов, чтобы их туда вносить и далее выполнялось преобразование описанное выше?

Вариант 2 (более универсальный)
"Заставить" астериск "узнавать" cisco 7912. Идея у меня такая. В имени экстеншена на cisco 7912 будет присутствовать, например слово "C7912". И если астериск видит это слово в имени - происходит преобразование. Но как сделать так, чтобы на телефоне абонента, к-ому звонят с циски это слово не отображалось, а отображалось только имя и номер звонящего ? Вроде бы задумка хороша :oops:
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Кодировка caller id в cisco 7912G

Сообщение ded »

Посмотрите лучше сколько хороших полей в нативной базе -
CLI> database show
werter
Сообщения: 7
Зарегистрирован: 10 ноя 2017, 17:30

Re: Кодировка caller id в cisco 7912G

Сообщение werter »

Решил для себя 2-мя способами.

Вар.1 (с добавлением в имя экстеншена метки "sccp")
Строка в extensions_override_freepbx.conf:

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

[macro-user-callerid]
...

; --- Original
; exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
; ---
exten => s,n,ExecIf($["${CALLERID(name):-4}" != "sccp"]?Set(AMPUSERCIDNAME=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${AMPUSER}/cidname)})}):Set(AMPUSERCIDNAME=${CUT(DB(AMPUSER/${AMPUSER}/cidname), ,1&2)}))
...
Для корректного отображения имени экстн-на в CDR Reports пришлось поправить там же в extensions_override_freepbx.conf :

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

; --- Original
; exten => s,n,Set(CDR(cnam)=${CALLERID(name)})
; ---
exten => s,n,ExecIf($["${CUT(CHANNEL,/,1)}" != "SCCP"]?Set(CDR(cnam)=${ICONV(CP1251,UTF-8,${CALLERID(name)})}):Set(CDR(cnam)=${CALLERID(name)}))
...
Также на 7905\7912 неверно отображалось имя того, кому звоню при наборе
Поправил там же в extensions_override_freepbx.conf:

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

[macro-dial-one]
...
; --- Original
; exten => s,n,Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY})
; ---
exten => s,n,ExecIf($["${CUT(DB(AMPUSER/${EXTTOCALL}/cidname), ,1&2)}" != "sccp"]?Set(CONNECTEDLINE(name,i)=${ICONV(UTF-8,CP1251,${CUT(DB(AMPUSER/${EXTTOCALL}/cidname), ,1&2)}${PRESENCESTATE_DISPLAY})}):Set(CONNECTEDLINE(name,i)=${CUT(DB(AMPUSER/${EXTTOCALL}/cidname), ,1&2)}${PRESENCESTATE_DISPLAY}))
...
Вар.2 (более универсальный, но только, если в сети по sccp будут подключаться модели 7905\7912)

Строка в extensions_override_freepbx.conf:

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

[macro-user-callerid]
; --- Original
; exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
; ---
...
exten => s,n,ExecIf($["${CUT(CHANNEL,/,1)}" != "SCCP"]?Set(AMPUSERCIDNAME=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${AMPUSER}/cidname)})}):Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}))
...
Для корректного отображения имени экстн-на в CDR Reports поправить там же в extensions_override_freepbx.conf :

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

; --- Original
; exten => s,n,Set(CDR(cnam)=${CALLERID(name)})
; ---
exten => s,n,ExecIf($["${CUT(CHANNEL,/,1)}" != "SCCP"]?Set(CDR(cnam)=${ICONV(CP1251,UTF-8,${CALLERID(name)})}):Set(CDR(cnam)=${CALLERID(name)}))
...
На 7905/7912 неверно отображалось имя того, кому звоню при наборе. Поправил в extensions_override_freepbx.conf:

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

[macro-dial-one]
...
; --- Original
; exten => s,n,Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY})
; ---
exten => s,n,ExecIf($["${CUT(CHANNEL,/,1)}" = "SCCP"]?Set(CONNECTEDLINE(name,i)=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY})}):Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY})
...
После проделанного перезагрузил:

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

fwconsole reload
otrazhenie
Сообщения: 15
Зарегистрирован: 28 авг 2015, 08:38

Re: Кодировка caller id в cisco 7912G

Сообщение otrazhenie »

Доброго дня!
а можно поподробней где править?
у меня в файле extensions_override_freepbx.conf только ссылка на extensions_override_elastix.conf
ну а в этом файле этого нету!
у меня elastix Elastix 2.5.0-8
otrazhenie
Сообщения: 15
Зарегистрирован: 28 авг 2015, 08:38

Re: Кодировка caller id в cisco 7912G

Сообщение otrazhenie »

с входящим разобрался.
добавил в файл extensions_custom.conf
звонок на номер 455 7912 отображается по русски:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[from-internal-custom]
; Перекодировка для 7912 аппаратов
;exten => 455,1,NoOp(qqqqqq)
exten => 455,1,Set(CALLERID(name)=${ICONV(UTF-8,CP1251,${CALLERID(name)})})
exten => 455,n,Dial(SCCP/455)
осталось разобраться с отображением на русском имени на 7912 исходящего абонента
либо убрать с экрана имя пользователя
werter
Сообщения: 7
Зарегистрирован: 10 ноя 2017, 17:30

Re: Кодировка caller id в cisco 7912G

Сообщение werter »

Добрый.
У меня freepbx.
otrazhenie писал(а):с входящим разобрался.
Это решение не универсально, т.к. привязано к номеру.
Лучше привязываться к CHANNEL (вылавливать SCCP) или к модели телефона: CHANNEL(useragent)
Я вылавливал SCCP в CHANNEL :
В файле extensions_override_freepbx.conf ищем

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

exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
Комментируем строку.
Добавляю вместо:

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

exten => s,n,ExecIf($[["${CHANNEL(channeltype)}" = "SIP" & "${CUT(DB(DEVICE/${CALLERID(dnid)}/dial),/,1)}" = "SIP"] | ["${CHANNEL(channeltype)}" = "SCCP" & "${CUT(DB(DEVICE/${CALLERID(dnid)}/dial),/,1)}" = "SIP"]]?Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}))

exten => s,n,ExecIf($[["${CHANNEL(channeltype)}" = "SCCP" & "${CUT(DB(DEVICE/${CALLERID(dnid)}/dial),/,1)}" = "SCCP"] | ["${CHANNEL(channeltype)}" = "SIP" & "${CUT(DB(DEVICE/${CALLERID(dnid)}/dial),/,1)}" = "SCCP"]]?Set(AMPUSERCIDNAME=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${AMPUSER}/cidname)})}))
Также в этом же файле для корректного отображения имени звонящего в отчетах freepbx ищем:

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

exten => s,n,Set(CDR(cnam)=${CALLERID(name)})
Комментируем строку.
Добавляю вместо:
exten => s,n,ExecIf($[["${CHANNEL(channeltype)}" = "SIP" & "${CUT(DB(DEVICE/${CALLERID(dnid)}/dial),/,1)}" = "SIP"] | ["${CHANNEL(channeltype)}" = "SCCP" & "${CUT(DB(DEVICE/${CALLERID(dnid)}/dial),/,1)}" = "SIP"]]?Set(CDR(cnam)=${CALLERID(name)}))

exten => s,n,ExecIf($[["${CHANNEL(channeltype)}" = "SCCP" & "${CUT(DB(DEVICE/${CALLERID(dnid)}/dial),/,1)}" = "SCCP"] | ["${CHANNEL(channeltype)}" = "SIP" & "${CUT(DB(DEVICE/${CALLERID(dnid)}/dial),/,1)}" = "SCCP"]]?Set(CDR(cnam)=${ICONV(CP1251,UTF-8,${CALLERID(name)})}))
Сохраняемся. Перезапускаемся.
осталось разобраться с отображением на русском имени на 7912 исходящего абонента
В файле extensions_override_freepbx.conf ищем строку

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

exten => s,n,Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY})
Комментируем ее
Добавляем вместо

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

exten => s,n,ExecIf($["${CUT(CHANNEL,/,1)}" = "SCCP"]?Set(CONNECTEDLINE(name,i)=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY})}):Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY})
Сохряняем и перезапускаемся.
Проверяем.

P.s. Elastix же вроде не развивается больше ? Переходите на что-то другое.

P.p.s. Кому интересно, freepbx (и не только) живет у меня в вирт. среде на Proxmox VE (KVM). Более полутора десятков инсталляций в филиалах за ~6 месяцев - полет нормальный. Крайне рекомендую. Удобно, надежно, не требуется брендовое железо. Автоматическое резервное копирование сразу из коробки (!)
У меня живет на софтовом ZFS рейде (zfs raid1, zfs raid10 + ssd исп-ся для l2 arc cache )
Мои заметки, касаемо вирт-ции, pfsense etc - https://forum.pfsense.org/index.php?topic=136398.0
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Кодировка caller id в cisco 7912G

Сообщение awsswa »

KVM - не спортивно
Спортивно - lxc
платный суппорт по мере возможностей
werter
Сообщения: 7
Зарегистрирован: 10 ноя 2017, 17:30

Re: Кодировка caller id в cisco 7912G

Сообщение werter »

Зависит от задач. Можно и микроскопом гвозди забивать. Отличные от Linux ОСи в LXC не развернешь. Плюс ядро lxc привязано к ядру host-а. Ни старее ни новее ядро в lxc-контейнере не используешь. Также уязвимости , присущие ядру хоста будут и в lxc. В отличие от KVM.

Спортивно Docker и Kubernetes. Если уж быть в тренде.

P.s. Вы сперва гляньте, что умеет Proxmox. Там и LXC есть из коробки.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH