Страница 1 из 2
Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 15:30
yurys
Добрый день!
Как можно добавить в запись CDR данные о том кто ответил на групповой вызов?
Не работает:
exten => 4581,1,Dial(SIP/4000@cisco&SIP/4501,60,Ttrg)
exten => 4581,2,Set(CDR(userfield)=Answer-${DIALEDPEERNUMBER})
Так тоже не работает:
exten => 4581,1,Dial(SIP/4000@cisco&SIP/4501,60,Ttrg)
exten => h,1,Set(CDR(userfield)=${DIALEDPEERNUMBER})
Хотя в консоли все отрабатывает правильно:
-- Executing [4581@default:1] Dial("SIP/192.168.129.58-000006d8", "SIP/4000@cisco&SIP/4501,60,Ttrg") in new stack
-- Called SIP/4000@cisco
-- Called SIP/4501
-- SIP/4501-000006da connected line has changed. Saving it until answer for SIP/192.168.129.58-000006d8
-- SIP/cisco-000006d9 connected line has changed. Saving it until answer for SIP/192.168.129.58-000006d8
-- SIP/cisco-000006d9 is ringing
-- SIP/4501-000006da is ringing
-- SIP/4501-000006da connected line has changed. Saving it until answer for SIP/192.168.129.58-000006d8
-- SIP/4501-000006da answered SIP/192.168.129.58-000006d8
== Spawn extension (default, 4581, 1) exited non-zero on 'SIP/192.168.129.58-000006d8'
-- Executing [h@default:1] Set("SIP/192.168.129.58-000006d8", "CDR(userfield)=4501") in new stack
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 15:49
Aven
смотрите имя канала
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 16:16
ded
Данные о том, кто ответил, сохраняются в CDR со статусом Answered (в отличии от соседних в группе рядом Not answered)
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 16:19
yurys
Aven писал(а):смотрите имя канала
Не подходит, т.к. нужно организовать группу из внешних абонентов. Их имя канала однозначно не идентифицирует.
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 16:25
yurys
ded писал(а):Данные о том, кто ответил, сохраняются в CDR со статусом Answered (в отличии от соседних в группе рядом Not answered)
У меня только одна запись в CDR, c Destination номером группы. Поэтому и хочется в поле Userfield добавить кто именно из группы ответил.
Call Date File Src Channel Source Application Destination Dst Channel Disposition Duration Userfield
2012-04-19 15:02:01 SIP 4000 Dial 4581 SIP ANSWERED 00:08
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 16:37
ded
У меня только одна запись в CDR, c Destination номером группы
У вас при совершённом звонке в группу в результате не одна запись в CDR, а несколько.
Первая имеет destination номер группы, например 601
вторая, третья, четвёртая - со статусом Not Answered - destination 100, 101, 102 - номера вутренние членов группы
пятая - со статусом Answered, destination 103 - тот кто ответил.
Все пять будут иметь общее имя канала, как верно заметил коллега Aven, типа SIP/gobaza-3246ca678f
На этапе первой записи CDR destination номер группы, например 601 ещё нет информации кто возьмёт звонок, а запись уже создана.
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 16:45
yurys
У меня cdr пишутся в базу mysql. Там только одна запись появляется. Может надо что-то включить?
Использую asterisk18-1.8.9.2.
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 16:50
Aven
ded, а откуда несколько записей то? Без доп. манипуляций с CDR одна запись будет.
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 16:58
ded
Видимо потому, что мы делаем через Local
Код: Выделить всё
11. 2012-04-19 16:50:21 Local/121@... 8612141103 "8612141103" <8612141103> 121 NO ANSWER 00:06
12. 2012-04-19 16:50:21 Local/107@... 9612141103 "9612141103" <9612141103> 107 NO ANSWER 00:06
13. 2012-04-19 16:50:21 Local/116@... 9612141103 "9612141103" <9612141103> 116 NO ANSWER 00:06
14. 2012-04-19 16:50:21 Local/105@... 9612141103 "9612141103" <9612141103> 105 NO ANSWER 00:06
15. 2012-04-19 16:50:21 Local/126@... 9612141103 "9612141103" <9612141103> 126 NO ANSWER 00:06
16. 2012-04-19 16:50:21 Local/108@... 9612141103 "9612141103" <9612141103> 108 NO ANSWER 00:06
17. 2012-04-19 16:50:21 Local/114@... 9612141103 "9612141103" <9612141103> 114 NO ANSWER 00:06
18. 2012-04-19 16:50:21 Local/117@... 9612141103 "9612141103" <9612141103> 117 NO ANSWER 00:06
19. 2012-04-19 16:50:21 Local/120@... 9612141103 "9612141103" <9612141103> 120 ANSWERED 01:25
Re: Как записать кто ответил на групповой вызов в CDR?
Добавлено: 19 апр 2012, 17:21
yurys
Да, через Local несколько записей. Только мне надо из внешних группу орагнизовать.
Как после Dial выполнить добавление поля в CDR?
Вот так первый шаг пишется в CDR, но в нем ${DIALEDPEERNUMBER} пустой. А третий шаг не записывается.
exten => 4581,1,Set(CDR(userfield)=Answer1-${DIALEDPEERNUMBER})
exten => 4581,2,Dial(SIP/4000@cisco&SIP/4501,60,Ttrg)
exten => 4581,3,Set(CDR(userfield)=Answer2-${DIALEDPEERNUMBER})