Поддержка JAIN-SIP для RFC 7339

Есть ли способ добавить пользовательский через заголовок в jain-sip? Добавление параметров ОС из RFC 7339.
Из введите здесь описание ссылкиplace Я получил следующий пример, но не уверен если это будет работать. Цитата из ссылки:

Этого можно легко добиться, добавив некоторый код в реализацию функции javax.sip.message.Message.addHeader(Header header).

void addHeader(Header header) {
    if(!(header instanceof InternalHeaderObject)
        && header instanceof ExtensionHeader) {
            ExtensionHeader extensionHeader = (ExtensionHeader) header;
            header = headerFactory.createHeader(extensionHeader.getName(), extensionHeader.getValue());
        }
    ...
}

person Donvino    schedule 27.11.2014    source источник


Ответы (1)


Я начну с того, что вы можете абсолютно точно обрабатывать пользовательские заголовки via с точки зрения SIP, если это действительный SIP. Для этого RFC вам просто нужно использовать viaHeader.set/getParameter, если я ничего не упустил.

В сообщении блога говорится о создании собственных классов заголовков, которые, насколько я могу себе представить, не имеют отношения к вашим потребностям. Пользовательские классы заголовков сложны и неэффективны. Например, JAIN SIP автоматически создаст собственный экземпляр ViaHeader для входящих сообщений при их разборе. Подключение пользовательского заголовка для переопределения Via по умолчанию внутри нарушит множество обещаний проверки и вызовет накладные расходы.

Если у вас есть показательный случай для пользовательских классов заголовков, я с удовольствием выслушаю.

person Vladimir Ralev    schedule 27.11.2014
comment
Насколько я понимаю RFC. SIP-сообщения должны быть примерно такими: INVITE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLSp1.example.net;branch=z9hG4bK2d4790.1;oc;oc-algo=loss,A“; Поэтому мне нужно добавить несколько параметров в via-header. - person Donvino; 27.11.2014
comment
Если я не ошибаюсь, viaHeader.setParameter не существует... поправьте меня, пожалуйста, если я ошибаюсь. Вот ссылка на класс viaHeader: developer.opencloud.com/devportal/devportal/apis/jainsip/1.1/ - person Donvino; 27.11.2014
comment
Установщики и получатели параметров поступают из одного из интерфейсов, унаследованных ViaHeader, который называется Parameters developer.opencloud.com/devportal/devportal/apis/jainsip/1.1/ - person Vladimir Ralev; 28.11.2014