...
- при успешном соединении будут сгенерированы следующие события:
Code Block |
---|
099 Dial-in .... <номер принявшего добавочного> answer (не обязателен для анализа) .... а также любые иные события необязательны для анализа 099 hangup (bridged:yes - обязателен для анализа успешности вызова) |
- при неуспешном соединении будут сгенерированы следующие события:
Code Block |
---|
099 Dial-in .... любые иные события необязательны для анализа 099 hangup (bridged:no - обязателен для анализа успешности вызова) |
...
Может быть множество разных обзвонов внутренних добавочных, переводов на внешний номер и т.д. Если есть необходимость логически соотнести любые исходящие вызовы (например, перевод на внешний номер) с изначальным входящем вызовом- нужно при поступлении 099 Dial-in
поместить call_id в память (например, memcached или redis), а при появлении 099 hangup с bridged можно удалять call_id из памяти.
Т.о. внутри одного звонка все исходящие вызовы можно будет соотнести с входящим по call_id
Для исходящего вызова может быть немного сложнее:
Code Block |
---|
101 Dial-out
101 Answer (в случае ответа вызываемой стороны)
101 Hangup |
если при исходящем вызове добавочный АТС решил перевести вызов куда-либо, то будет еще один комплект событий:
Dial-out
, Answer
(в случае ответа вызываемой стороны
) и Hangup
...
При переадресации на внешний номер, но с признаком transfered = yes.
Таким образом, если при исходящем звонке из памяти не удалять сразу call id (а удалять с expires, например, 1 min после hangup) - то можно соотнести все переводы с изначальным исходящим вызовом