kamailio Конфиденциальность заголовок и ОТМЕНА - PullRequest
0 голосов
/ 18 апреля 2019

Я имею дело со случаем частного абонента, когда заголовок конфиденциальности передается только в начальном сообщении INVITE, но не в последующих промежуточных запросах (например, CANCEL).

Когда заголовок Privacy присутствует, мой нисходящий поток ожидает, что я отправлю им другой заголовок.

В большинстве случаев мне удавалось справиться с этим, используя модуль dlg для отслеживания состояния в диалоговом окне, чтобы запросы в середине диалогового окна знали о наличии заголовка Privacy в начальном INVITE.

Однако у меня проблема в том, что только для запроса CANCEL я не могу добавить какие-либо заголовки к запросу SIP, передаваемому в нисходящий поток.

Я читал в других постах (датированных много лет назад), что можно было бы использовать отмены без сохранения состояния вниз по течению. Другой потенциальный вариант - начать новую транзакцию на моем уровне.

Мне интересно, есть ли другие альтернативы этому. Я бы порекомендовал своему нисходящему потоку использовать $ avp, но, похоже, что даже если начальные INVITE и CANCEL должны находиться в одной транзакции, значение $ avp, сохраненное в начальном INVITE, недоступно CANCEL.

Есть и другие приемы, которые могут сработать. Например, использование Record-Route в качестве хранилища данных (что может быть проблемой безопасности) или обращение в нисходящий поток с использованием модуля dlg, что может быть связано с большими потерями производительности.

Интересно, кто-нибудь из вас уже решил эту проблему?

1 Ответ

0 голосов
/ 18 апреля 2019

Вместо диалогового модуля я предпочитаю использовать htable для хранения транзакций до получения ACK. Это быстрее, чем это. После получения ACK сохраненная транзакция может быть удалена.

Кроме того, вы можете посмотреть на модуль TM и модуль TMX , который имеет функции отмены.

...