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

CDR и ответивший номер

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

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

Ответить
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

CDR и ответивший номер

Сообщение tol_iwan »

Понимаю, что тема поднималась, изучил ответы, сделал как написано было, но результата нет.
Суть вопроса.
При вызове в CDR(через cdr_mysql) пишется информация о вызове.
Нужно чтобы писалось, кто принял вызов реально в случаях:
одновременных вызовов Dial(SIP/ext1&SIP/ext2)
при перехвате вызова
Есть поле CDR(dstchannel) ответившего на вызов канала, но оно не удобно для восприятия.
Хотел выцепить это поле в диалплане, записать туда(или скажем в userfield) обработанный результат - не канал, а номер.
Пробовал обработку производить:
- в exten => ext1,1,Dial(SIP/${EXTEN},,g)
same => n,Set(CDR(userfield)=${CDR(dstchannel)})
- в exten => h,1,Set(CDR(userfield)=${CDR(dstchannel)})
- в exten => ext1,1,Dial(SIP/${EXTEN},,gM(answered))
Во всех случаях в консоли видно, что "обработка" происходит, но в MySQl ничего нет, за исключением группового вызова, у неответившего ext поле записывается как хотелось.
Вместо ${CDR(dstchannel)} пробовал использовать ${DIALEDPEERNUMBER}, но это скорее относится уже к "обработке" нужного поля, а вопрос касается как записать результат "обработки".

Вообщем-то когда, начал это все делать без изучения форумов, ситуация показалась логичной, т.к. предполагал, что поля в CDR можно менять ДО вызова Dial(). Но изучив в форумах, понял, что у кого-то реализовано это. Соответственно вопрос - что не так?
Голый Asterisk 11.15.0

Добавление:
В MYSQL, помимо поля dstchannel, можно отследить при групповом вызове на каком конкретно из номеров сняли трубку оп полю disposition, т.к. присутствуют записи для каждого из вызовов и на ответившем естественно ANSWERED. Это конечно не дает ответ на то, кто ответил, если был перехват вызова, но тоже используется кем-то, как я понял по форумам.
Мне хочется же иметь в первичном вызове поле "этот номер реально принял вызов", т.е. некое обработанное неким образом поле dstchannel.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: CDR и ответивший номер

Сообщение Vlad1983 »

зачем городить это в диалплане?
сделать постобработку в БД. все необходимые данные там есть.
ЛС: @rostel
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Re: CDR и ответивший номер

Сообщение tol_iwan »

Согласен, что можно.
Но захотелось в диалплане. Судя по форуму у кого-то работает. Хочу попробовать у себя, делаю все вроде как описано, а не получается.
Вариантов-то немного:
1. можно писать только до dial().
2. cdr_mysql нельзя, можно cdr_odbc.
3. можно писать cdr_mysql после/во время dial(), надо смотреть, что не так.
4. может, что не учел :-)
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: CDR и ответивший номер

Сообщение Vlad1983 »

совершите "Индейский ритуал НАХУА"
ЛС: @rostel
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: CDR и ответивший номер

Сообщение ded »

1) Правильное название ритуала - "НАХОА?"
2) Попробуйте установить AsterNIC репорты - там расширенные, всё продумано.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH