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

Как записать кто ответил на групповой вызов в CDR?

Проблемы Asterisk без вэб-оболочек и их решения

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

yurys
Сообщения: 6
Зарегистрирован: 19 апр 2012, 15:24

Как записать кто ответил на групповой вызов в CDR?

Сообщение 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
Аватара пользователя
Aven
Сообщения: 798
Зарегистрирован: 28 янв 2011, 16:20

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение Aven »

смотрите имя канала
Решения телефонии на базе Asterisk || http://it-need.ru
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение ded »

Данные о том, кто ответил, сохраняются в CDR со статусом Answered (в отличии от соседних в группе рядом Not answered)
yurys
Сообщения: 6
Зарегистрирован: 19 апр 2012, 15:24

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение yurys »

Aven писал(а):смотрите имя канала
Не подходит, т.к. нужно организовать группу из внешних абонентов. Их имя канала однозначно не идентифицирует.
yurys
Сообщения: 6
Зарегистрирован: 19 апр 2012, 15:24

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение 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
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение ded »

У меня только одна запись в CDR, c Destination номером группы
У вас при совершённом звонке в группу в результате не одна запись в CDR, а несколько.
Первая имеет destination номер группы, например 601
вторая, третья, четвёртая - со статусом Not Answered - destination 100, 101, 102 - номера вутренние членов группы
пятая - со статусом Answered, destination 103 - тот кто ответил.

Все пять будут иметь общее имя канала, как верно заметил коллега Aven, типа SIP/gobaza-3246ca678f

На этапе первой записи CDR destination номер группы, например 601 ещё нет информации кто возьмёт звонок, а запись уже создана.
yurys
Сообщения: 6
Зарегистрирован: 19 апр 2012, 15:24

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение yurys »

У меня cdr пишутся в базу mysql. Там только одна запись появляется. Может надо что-то включить?
Использую asterisk18-1.8.9.2.
Аватара пользователя
Aven
Сообщения: 798
Зарегистрирован: 28 янв 2011, 16:20

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение Aven »

ded, а откуда несколько записей то? Без доп. манипуляций с CDR одна запись будет.
Решения телефонии на базе Asterisk || http://it-need.ru
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение 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
yurys
Сообщения: 6
Зарегистрирован: 19 апр 2012, 15:24

Re: Как записать кто ответил на групповой вызов в CDR?

Сообщение 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})
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH