Приветствую!
Прошу помощи по вопросу грамотного определения участников вызовов при формировании собственного cdr в нескольких примерах.
Asterisk 1.8.19.0
1. Определение пира который перехватил вызов используя функцию из features.conf либо используя Pickup() на примере простенького диалплана
[incoming]
exten => какойто_номер,1,Answer()
exten => какойто_номер,n,Queue(test_queue)
exten => h,1,Noop(${BRIDGEPEER}) ; Решение выдирать информацию из bridgepeer но она не помогает в случае если вызов был трансфернут.
[pickip_exten]
exten => **,1,Pickup() ; На этом действие данного контекста заканчивается, он не будет продолжен и здесь не сработает h exten включая h exten того контекста куда этот контекст инклюдится.
Родной cdr в dst укажет номер того пира с которого перехватили звонок, хотя фактически разговаривал другой участник сети а именно перехвативший вызов.
Каким образом правильно понять кто перехватил вызов для примера просто звонка где позвонили - перехватили - завершили вызов.
2. Смысл тот-же но интересует информация обо всех пирах участвовавших в рамках одного "внешнего" входящего разговора со множеством attended трансферов. Где и на каком этапе можно понять кто и сколько участников было для того чтобы иметь возможность загнать в базу под видом
таблица а) uid, время, callerid (к примеру сотовый), общее время разговора.
таблица б) uid, участник1, его длительность, его аудиозапись разговора
таблица б) uid, участник2, его длительность, его аудиозапись разговора