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

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

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

Модератор: april22

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

Сообщение ded » 12 ноя 2017, 16:43

werter писал(а): можно ли привязать все это дело в зависимости от номера абонента?
Конечно можно, но и нужно. Строку конвертации надо чуть усложнить: для внутреннего номера 1234 делаем конвертацию
Код: выделить все
exten => s,n,ExecIf(${CALLERID(num)}=1234?Set(AMPUSERCIDNAME=${ICONV(UTF-8,CP1251,${DB(AMPUSER/${AMPUSER}/cidname)})})

Синтаксис сами поправите?
ded
 
Сообщений: 13135
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение werter » 13 ноя 2017, 16:06

Приветствую вас, коллеги.
Уважаемый 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, 18:30

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

Сообщение werter » 13 ноя 2017, 16:16

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

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

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

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

Сообщение ded » 13 ноя 2017, 17:29

Посмотрите лучше сколько хороших полей в нативной базе -
CLI> database show
ded
 
Сообщений: 13135
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение werter » 21 ноя 2017, 12:06

Решил для себя 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
werter
 
Сообщений: 7
Зарегистрирован: 10 ноя 2017, 18:30

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

Сообщение otrazhenie » 26 апр 2018, 14:00

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

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

Сообщение otrazhenie » 26 апр 2018, 15:30

с входящим разобрался.
добавил в файл extensions_custom.conf
звонок на номер 455 7912 отображается по русски:

[Показать] Спойлер:
[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 исходящего абонента
либо убрать с экрана имя пользователя
otrazhenie
 
Сообщений: 14
Зарегистрирован: 28 авг 2015, 09:38

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

Сообщение werter » 28 апр 2018, 11:54

Добрый.
У меня 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
werter
 
Сообщений: 7
Зарегистрирован: 10 ноя 2017, 18:30

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

Сообщение awsswa » 28 апр 2018, 12:40

KVM - не спортивно
Спортивно - lxc
платный суппорт по мере возможностей
awsswa
 
Сообщений: 2292
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

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

Сообщение werter » 28 апр 2018, 12:53

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

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

P.s. Вы сперва гляньте, что умеет Proxmox. Там и LXC есть из коробки.
werter
 
Сообщений: 7
Зарегистрирован: 10 ноя 2017, 18:30

Пред.След.

Вернуться в VoIP оборудование

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

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

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