Страница 1 из 2
elastix перекодировка callerid
Добавлено: 03 авг 2017, 16:03
otrazhenie
Доброго дня!
есть некоторое количество cisco7940. подключены по sccm
у них не отображаются русские буквы в поле callerid при входящем вызове.
в астериске присутствует функция перекодировки iconv но куда ее вставлять я чет-то не пойму.
на других аппаратах 7942, 7911, 7912 все работает. имена пользователей отображаются корректно.
Re: elastix перекодировка callerid
Добавлено: 03 авг 2017, 16:15
ded
Нужны файлы русской локали для CP-7940 SCCP
iconv тут не при чём.
Re: elastix перекодировка callerid
Добавлено: 03 авг 2017, 16:22
otrazhenie
файлы есть локаль залита. менюшки на телефоне на русском.
вот только при звонке на 7940 аппарат имя пользователя в черных прямоугольниках.
вот тут
https://supportforums.cisco.com/ru/discussion/11829826
сказано, что 7940 работают с ISO8859-5 кодировкой
а вот тут
http://asteriskforum.ru/viewtopic.php?t=7623
народ перекодирует поля .
Так вот. Можно ли сделать так, чтобы отображались русские буквы имени звонящего на данных аппаратах?
Re: elastix перекодировка callerid
Добавлено: 03 авг 2017, 16:58
ded
Там по ссылке и пример выдан -
exten => _XXXXX,n,Iconv(CIDNAME/UTF-8=${CIDNAME}/KOI8-R)
вам же надо видимо
exten => _4XX,n,Iconv(CIDNAME/UTF-8=${CIDNAME}/ISO8859-5) где предполагаем, что имена прибегают в UTF-8, а телефоны СР-7940 имеют номера 4ХХ
Re: elastix перекодировка callerid
Добавлено: 04 авг 2017, 07:39
otrazhenie
ded писал(а):exten => _4XX,n,Iconv(CIDNAME/UTF-8=${CIDNAME}/ISO8859-5) где предполагаем, что имена прибегают в UTF-8, а телефоны СР-7940 имеют номера 4ХХ
с этим то как раз все понятно.
я никак не могу понять в какой контекст мне это все вставлять.
я редактирую файл extensions-custom.conf
вот что в консоли
Код: Выделить всё
-- Executing [410@Moscow:1] Set("SIP/302-000005da", "__RINGTIMER=30") in new stack
-- Executing [410@Moscow:2] Macro("SIP/302-000005da", "exten-vm,novm,410,0,0,0") in new stack
-- Executing [s@macro-exten-vm:1] Macro("SIP/302-000005da", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/302-000005da", "TOUCH_MONITOR=1501822459.1892") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/302-000005da", "AMPUSER=302") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/302-000005da", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/302-000005da", "1?Set(REALCALLERIDNUM=302)") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/302-000005da", "AMPUSER=302") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/302-000005da", "0?limit") in new stack
звоню с номера 303 на номер 410 (cisco7940)
Re: elastix перекодировка callerid
Добавлено: 04 авг 2017, 09:23
awsswa
override надо
вставьте стандартный кусок и перепишите под себя
Re: elastix перекодировка callerid
Добавлено: 04 авг 2017, 09:39
ded
awsswa имеет ввиду - скопируйте текст macro-user-callerid в файл extensions_override_freepbx.conf
и добавьте там 6-м шагом, например
exten => s,n,Iconv(CIDNAME/UTF-8=${CIDNAME}/ISO8859-5) где предполагаем, что имена прибегают в UTF-8, а телефоны СР-7940 имеют номера 4ХХ
Re: elastix перекодировка callerid
Добавлено: 04 авг 2017, 10:01
otrazhenie
у меня эластикс 2.5.08
вставил кусок в файл extensions_override_elastix.conf
Код: Выделить всё
[macro-user-callerid-custom]
exten => s,1,Set(TOUCH_MONITOR=${UNIQUEID})
exten => s,n,Set(AMPUSER=${IF($["${AMPUSER}" = ""]?${CALLERID(number)}:${AMPUSER})})
exten => s,n,GotoIf($["${CUT(CHANNEL,@,2):5:5}"="queue" | ${LEN(${AMPUSERCIDNAME})}]?report)
exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)}))
exten => s,n,Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,Iconv(CIDNAME/UTF-8=${CIDNAME}/ISO8859-5)
exten => s,n,GotoIf($["${AMPUSER}" = "none"]?limit)
exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => s,n,GotoIf($["${AMPUSERCIDNAME:1:2}" = ""]?report)
exten => s,n,Set(AMPUSERCID=${IF($["${ARG2}" != "EXTERNAL" & "${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})})
exten => s,n,Set(__DIAL_OPTIONS=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/dialopts)}" = "1"]?${DB_RESULT}:${DIAL_OPTIONS})})
exten => s,n,Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>)
exten => s,n,GotoIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})} & "${DB(AMPUSER/${AMPUSER}/concurrency_limit)}">"0" & "${GROUP_COUNT(${AMPUSER}@concurrency_limit)}">="${DB(AMPUSER/${AMPUSER}/concurrency_limit)}"]?limit)
exten => s,n,ExecIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})}]?Set(GROUP(concurrency_limit)=${AMPUSER}))
exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""]?Set(CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)}))
exten => s,n(report),GotoIf($[ "${ARG1}" = "SKIPTTL" | "${ARG1}" = "LIMIT" ]?continue)
exten => s,n(report2),Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])})
exten => s,n,GotoIf($[ ${TTL} > 0 ]?continue)
exten => s,n,Wait(${RINGTIMER})
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(im-sorry&an-error-has-occured&with&call-forwarding)
exten => s,n,Macro(hangupcall,)
exten => s,n(limit),Answer
exten => s,n,Wait(1)
exten => s,n,Playback(beep&im-sorry&your&simul-call-limit-reached&goodbye)
exten => s,n,Macro(hangupcall,)
exten => s,n,Congestion(20)
exten => s,n(continue),Set(CALLERID(number)=${CALLERID(number):0:40})
exten => s,n,Set(CALLERID(name)=${CALLERID(name):0:40})
exten => s,n,Set(CDR(cnum)=${CALLERID(num)})
exten => s,n,Set(CDR(cnam)=${CALLERID(name)})
exten => s,n,Set(CHANNEL(language)=${MASTER_CHANNEL(CHANNEL(language))})
exten => h,1,Macro(hangupcall,)
;--== end of [macro-user-callerid-custom] ==--;
не помогло.
и, если не ошибаюсь, так будут перекодироваться все номера, а мне нужно только часть.
Re: elastix перекодировка callerid
Добавлено: 04 авг 2017, 10:23
zzuz
А Iconv() то у вас скомпилирован? Уже как много лет это переехало в сторону функции ICONV() .
Re: elastix перекодировка callerid
Добавлено: 04 авг 2017, 10:24
awsswa
exten => s,n,ExecIf(а не 400 ли номер случайно ?)?Опаньки... делаем это)
PS платные консультации не так и дороги как кажется