Добрый.
У меня 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