Добрый день!
Используем MikoPBX. Столкнулись с тем, что при звонке в Stasis-приложение в SQLite-базе АТС ряд полей CDR остаётся пустым. Для обычных звонков эти же поля заполняются корректно.
Сравнение записей в SQLite:
[Обычный звонок, сотрудник → сотрудник (554 → 666)]
dst_chan = PJSIP/666-00000004
to_account = 666
dialstatus = ANSWERED
dst_call_id = 24cbaab3-c442-4724-a5c6-7313f52c72a1
[Внутренний → Stasis (554 → 123)]
dst_chan = (пусто)
to_account = (пусто)
dialstatus = (пусто)
dst_call_id = (пусто)
dst_num = 123 ← заполнено
[Внешний → Stasis (79959306851 → 123)]
dst_chan = (пусто)
to_account = (пусто)
dialstatus = (пусто)
dst_call_id = (пусто)
dst_num = 123 ← заполнено
AMI-события для сравнения:
[Обычный звонок — Hangup]
Channel: PJSIP/554-00000003
CallerIDNum: 554
ConnectedLineNum: 666
CDR(lastapp)=Dial
CDR(src)=554
CDR(dst)=666
[Внутренний → Stasis — Hangup]
Channel: AudioSocket/127.0.0.1:8090-b58fcafb-…
CallerIDNum:
ConnectedLineNum: 554
CDR(lastapp)=Stasis
CDR(src)=
CDR(dst)=s
[Внешний → Stasis — Hangup]
Channel: AudioSocket/127.0.0.1:8090-d16143f5-…
CallerIDNum:
ConnectedLineNum: 79959306851
CDR(lastapp)=Stasis
CDR(src)=
CDR(dst)=s
Во всех Stasis-сценариях финальный Hangup приходит от AudioSocket-канала, а не от PJSIP. CDR(src), CDR(dst) и CallerIDNum в нём пустые.
Вопросы:
Ожидаемо ли такое поведение CDR при маршрутизации в Stasis?
Есть ли способ настроить АТС или диалплан так, чтобы dst_chan и to_account корректно заполнялись для Stasis-сценариев?
Есть ли способ повлиять на то, какой канал генерирует финальный Hangup — сейчас это AudioSocket, а не PJSIP?
Спасибо!