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

Подмена номера в CDR-файле TrixBox

Обо всем касательно FreePBX, MetPBX, TrixBox, Elastix, AstPBX и всех других дистрибутивов

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

Zebar
Сообщения: 51
Зарегистрирован: 07 сен 2010, 08:54

Подмена номера в CDR-файле TrixBox

Сообщение Zebar »

Добрый день!
Дошли руки до импорта звонков в WinTariff.
У нас своя серия номеров - 2927XX
При звонках "наружу" внутренний номер абонента подменяется на внешний, иначе вышестоящая АТС не выпустит.
В результате в CSV-файл логов попадает следующее:
CLID= "2247" <4855292790>, SRC=4855292790
И, как я понимаю, WinTariff видит номер вида 4855292790, удивляется(?) и не импортирует данный вызов.

Я попытался использовать дополнительные поля для вывода нужной информации.
В extensions_custom.conf прописал следующее:

[from-internal-custom]
exten => _9256XXX,n,NoOp(${EXTEN})
exten => _9256XXX,n,Set(CDR(userfield)=test)

Как я понимаю, при наборе номера 9256XXX в лог в поле userfield должно попадать слово test
Сделал sip reload
В файле cdr_custom.conf
давно прописано Следующее:
[mappings]
Master.csv => ${CSV_QUOTE(${CDR(clid)})}, [порезал лишнее] ${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})}

В общем, CSV-файлы пишутся, слово test не попадает.

Вопрос:
Как все-таки правильно сделать, чтобы можно было установить userfield в CVS-файле? По-идее, я туда запихаю какой-нибудь ${EXTEN}

Или как сделать так, чтобы в этом файле CallerID или Source записывался внутренним номером, а не внешним, и чтобы вышестоящая АТС получала от нас все-таки внешний номер, а не внутренний.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Подмена номера в CDR-файле TrixBox

Сообщение ded »

[from-internal-custom]
exten => _9256XXX,1,NoOp(${EXTEN})
exten => _9256XXX,n,Set(CDR(userfield)=test)
exten => _9256XXX,n,NoOp(${CDR(userfield)}) ; ну смотрите тут, что там напихалось, будет ли test?
а лучше то туда внутренний номер, как хотелось запихнуть?
exten => _9256XXX,n,Set(CDR(userfield)=${CALLERID(num)})
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Подмена номера в CDR-файле TrixBox

Сообщение ded »

Zebar писал(а):Или как сделать так, чтобы в этом файле CallerID или Source записывался внутренним номером, а не внешним, и чтобы вышестоящая АТС получала от нас все-таки внешний номер, а не внутренний.
Или - или.
Можно как пытались - внутренний номер в качестве CallerID name, но не покатило ведь?
А чтобы вышестоящая АТС получала от вас все-таки внешний номер укажите его на транке во freePBX.
Zebar
Сообщения: 51
Зарегистрирован: 07 сен 2010, 08:54

Re: Подмена номера в CDR-файле TrixBox

Сообщение Zebar »

ded писал(а):
Zebar писал(а):Или как сделать так, чтобы в этом файле CallerID или Source записывался внутренним номером, а не внешним, и чтобы вышестоящая АТС получала от нас все-таки внешний номер, а не внутренний.
Или - или.
Можно как пытались - внутренний номер в качестве CallerID name, но не покатило ведь?
А чтобы вышестоящая АТС получала от вас все-таки внешний номер укажите его на транке во freePBX.
Насчет внутренний номер в качестве CallerID - даже не пробовал.
И указать номер на транке тоже неинтересно.
Весь смысл в том, что у нас серия на 100 номеров. И мне абсолютно не хочется прикрывать всех единым номером.
Zebar
Сообщения: 51
Зарегистрирован: 07 сен 2010, 08:54

Re: Подмена номера в CDR-файле TrixBox

Сообщение Zebar »

В общем, ситуация такая:
[from-internal-custom]
exten => _9.,1,Set(CDR(userfield)=${CALLERID(num)})

Я все сократил, оставил одну строчку. После этого в логах перестал писаться CLID, теперь появляется только общий CLID канала.
Так что временно я это дело закомментировал.
Похоже, что в результате этой строки CLID уже не устанавливается.
Какие еще есть идеи?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Подмена номера в CDR-файле TrixBox

Сообщение ded »

Что у вас серия на 100 номеров и нет желания прикрывать всех одним номером сказано не было.
Идеи такие: указать каждому экстену его личний внешний номер из этих 100 в поле Outbound callerID.
При звонках внутри на экранах и в CDR рисуется внутренний номер, при внешних звонках - внешний.
Zebar
Сообщения: 51
Зарегистрирован: 07 сен 2010, 08:54

Re: Подмена номера в CDR-файле TrixBox

Сообщение Zebar »

ded писал(а):Что у вас серия на 100 номеров и нет желания прикрывать всех одним номером сказано не было.
Идеи такие: указать каждому экстену его личний внешний номер из этих 100 в поле Outbound callerID.
При звонках внутри на экранах и в CDR рисуется внутренний номер, при внешних звонках - внешний.
Про серию было сказано в самом начале.
Что касается Outbound CID - сейчас именно так и сделано.
Например, мой номер прописан так: "2205" <4852292790>
И вот тут-то как раз и получается та проблема, с которой я борюсь -
ded писал(а):При звонках внутри на экранах и в CDR рисуется внутренний номер, при внешних звонках - внешний.
В результате в логах моих звонков наружу наблюдается именно мой внешний номер, которы 4852292790, и его Wintariff не кушает.
Задача в том и есть, этот номер оставить, но в логах чтобы был мой внутренний номер 2205
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Подмена номера в CDR-файле TrixBox

Сообщение ded »

Zebar писал(а):
ded писал(а):Можно как пытались - внутренний номер в качестве CallerID name, но не покатило ведь?
Насчет внутренний номер в качестве CallerID - даже не пробовал.
Чудак-человек!
Zebar писал(а):Например, мой номер прописан так: "2205" <4852292790>.
Это и есть внутренний номер в качестве CallerID name!
Полный формат номера - переменная CALLERID(all) состоит из CallerID name + CallerID num "2205" <4852292790> или "Zebar" <2205>
Отдельно каждая половинка - в переменных CALLERID(name) & CALLERID(num) то есть
CALLERID(name) = "Zebar"
CALLERID(num) = 2205
ded писал(а):Идеи такие: указать каждому экстену его личний внешний номер из этих 100 в поле Outbound callerID.
При звонках внутри на экранах и в CDR рисуется внутренний номер, при внешних звонках - внешний.
Zebar
Сообщения: 51
Зарегистрирован: 07 сен 2010, 08:54

Re: Подмена номера в CDR-файле TrixBox

Сообщение Zebar »

ded писал(а):Это и есть внутренний номер в качестве CallerID name!
Полный формат номера - переменная CALLERID(all) состоит из CallerID name + CallerID num "2205" <4852292790> или "Zebar" <2205>
Отдельно каждая половинка - в переменных CALLERID(name) & CALLERID(num) то есть
CALLERID(name) = "Zebar"
CALLERID(num) = 2205
Уважаемый ded!
Я очень благодарен за описание CallerID, но, к сожалению, данная информация ни на шаг не приблизила меня к решению задачи.
Последнее, что было мной сделано - это добавление строки
exten => s,n,Set(CDR(userfield)=${CALLERID(num)})
второй строчкой в макрос macro-outbound-callerid в файле extensions_additional.conf

Я прекрасно понимаю, что это неправильно - правильно писать в макрос macro-outbound-callerid-custom в файле extensions_custom.conf
Но, к сожалению, это не работает.
Похоже, единственный вариант, который мне остается - писать конвертер, который будет разбирать CallerID и заменять его на короткий.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Подмена номера в CDR-файле TrixBox

Сообщение ded »

Zebar писал(а):Я прекрасно понимаю, что это неправильно - правильно писать в макрос macro-outbound-callerid-custom в файле extensions_custom.conf
Нет, это не правильно. Макросы -custom хоть инклюдятся автоматом, но не будут работать.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH