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

Pjsip - сопоставление каналов.

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

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

Ответить
shader
Сообщения: 117
Зарегистрирован: 09 авг 2013, 10:33

Pjsip - сопоставление каналов.

Сообщение shader »

Перехожу с chan_sip на pjsip и не могу решить 1 задачу:
Как сопоставить созданный в asterisk канал с конкретным contact?

Практика: есть exten , на котором зарегистрированы 2 contact.
Я звоню на этот exten: Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})})
asterisk создаёт два новых канала для каждого контакта.
В старом драйвере chan_sip я на создание каждого канала ловил событие AMI и потом делал так:

Код: Выделить всё

let [ip, ua] = await Promise.all([
                await this.ami.getVar('CHANNEL(peerip)', channel.name),
                await this.ami.getVar('CHANNEL(useragent)', channel.name)
            ])
И оно работало. С PJSIP - иначе.
Попробовал с ходу:
let [ip, ua] = await Promise.all([
await this.ami.getVar('PJSIP_HEADER(read,Via)', channel.name),
await this.ami.getVar('PJSIP_HEADER(read,user-agent)', channel.name)
])
На что AMI отвечает что результат выполнения Success, но вот данных - нету (пустая строка).
Такая беда - когда нужно получить ip,ua тех каналов, которые создает asterisk посредством dial.
Для исхдящих звонков - ок. Работает.

Вопрос - ну наверняка кто-то решал такую проблему? Может есть решение?
shader
Сообщения: 117
Зарегистрирован: 09 авг 2013, 10:33

Re: Pjsip - сопоставление каналов.

Сообщение shader »

update:
Частично решает проблему сие:
https://docs.asterisk.org/Asterisk_18_D ... SE_HEADER/
Но! Только если трубка снимается.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH