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

Подсчет исход. мин в транке.

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Ответить
ss777
Сообщения: 19
Зарегистрирован: 20 июн 2011, 18:55

Подсчет исход. мин в транке.

Сообщение ss777 »

Подскажите, кто решал такую задачу. Имеется 10 городских номеров подключенных SIP транком, нужно считать количество исходящих минут по каждому номеру, проблема заключается в том, что в CDR таблицу при исходящем звонке в поля callid и src записывается внутренний номер, а не внешний который присваивается абоненту в соответствующем блоке extension. С подсчетом входящих проблем нет.
ss777
Сообщения: 19
Зарегистрирован: 20 июн 2011, 18:55

Re: Подсчет исход. мин в транке.

Сообщение ss777 »

Не понял что именно еще сделать.
Вот тестовый блок, в нем при исходящем звонке внут. номеру 1010 назначается внешний номер 751015, но в CDR таблице записано, что исходящий был не с 751015(что и нужно), а с 1010.

exten => _N.,1,NoOp(Call from ${CALLERID(all)} to ${EXTEN})
exten => _N.,n,GotoIf($["${CALLERID(num)}" = "1010"]?co751015:end)
exten => _N.,n(co751015),Set(CALLERID(num)=751015)
exten => _N.,n,Dial(${OPER}/${EXTEN})
exten => _N.,n(end),Congestion()
exten => _N.,n,Hangup()
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Подсчет исход. мин в транке.

Сообщение ded »

ss777 писал(а): Имеется 10 городских номеров подключенных SIP транком
Тут тонкости: это может быть один SIP транк, и номера DID в нём просто передаются, соответственно, при исходящих - городской номер указываются в качестве Caller ID.
Или это 10 SIP транков, каждый со своей регистрацией. Тогда для нужного Caller ID исходящий посылается с соответствующим username.

Как вариант можно предложить в диалплане добавлять городской номер в Caller ID Name

exten => _N./1010,1,Set(CALLERID(name)=751015)
exten => _N./1010,n,NoOp(Call from ${CALLERID(all)} to ${EXTEN})
exten => _N./1010,n,Dial(${OPER}/${EXTEN})
exten => _N./1010,n(end),Congestion()
exten => _N./1010,n,Hangup()
ss777
Сообщения: 19
Зарегистрирован: 20 июн 2011, 18:55

Re: Подсчет исход. мин в транке.

Сообщение ss777 »

Спасибо всем за то, что откликнулись. Это один SIP транк (5-ть каналов/10 номеров). тут ещё подсказали. Я не знал о существовании функции CDR, я ж новичок. Думаю пока мне этого хватит.
ded прошу прощения, я не понял зачем нужно писать в Caller ID Name, почему не в number? Разве в данном случае в CDR в полe callid запишется именно этот Name или все же запишется Name внут. абонента? Почему тогда у меня этой exten => _N.,n(co751015),Set(CALLERID(num)=751015) строкой не заносился в CDR внешний номер.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Подсчет исход. мин в транке.

Сообщение ded »

Зачем нужно писать в Caller ID Name, почему не в number? Вы написали что
проблема заключается в том, что в CDR таблицу при исходящем звонке в поля callid и src записывается внутренний номер,
Если в CDR CIDnum записывается внутренний номер, тов поле CIDname можем писать при этом внешний номер.
Вот если звонит внутренний номер 1010, то при такой обработке не нужные никакие GotoIf
exten => _N./1010,1,Set(CALLERID(name)=1010)
exten => _N./1010,n,Set(CALLERID(num)=751015)
exten => _N./1010,n,NoOp(Call from ${CALLERID(all)} to ${EXTEN})
такой трюк, чтобы получить информативно такие записи например
Call from "1010" <751015> to 23456
и это можно уже фильтровать в CDR.
Последний раз редактировалось ded 17 июл 2011, 21:01, всего редактировалось 2 раза.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Подсчет исход. мин в транке.

Сообщение ded »

ss777 писал(а): Почему тогда у меня этой exten => _N.,n(co751015),Set(CALLERID(num)=751015) строкой не заносился в CDR внешний номер?
Скорее всего неверный синтаксис, анализировать что там не правильно - не интересно sorry ^(==:(
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH