Jain Sip processRequest метод не вызывается

Я пишу приложение на Java для выполнения вызовов и просмотра, когда люди находятся в состоянии вызова, их телефон звонит или находится в режиме ожидания, используя библиотеку Jain-Sip, и в настоящее время пытаюсь правильно реализовать присутствие с сообщениями SUBSCRIBE и NOTIFY. Я могу получить данные о присутствии, но через некоторое время моя программа перестает отображать данные о присутствии.

Я считаю, что это потому, что переопределенный метод "processRequest" не вызывается. Это самая ранняя точка в программе, где обрабатываются сообщения NOTIFY и даже не выводятся операторы print.

Странно то, что уведомления отправляются, когда я звоню, и данные присутствия есть. Я знаю это, потому что я сделал трассировки Wireshark при запуске программы.

Примечание. Во время выполнения программы исключений не возникает, что может привести к ошибочному поведению.

Если у кого-нибудь есть понимание того, почему это происходит, я был бы очень благодарен.

Большое спасибо, Адам

1 ответ

Убедитесь, что вы правильно добавили свой класс слушателя. Единственная возможная причина может быть, если NOTIFY является незапрошенным, что не должно иметь место, но это происходит. Попробуйте включить этот флаг gov.nist.javax.sip.DELIVER_UNSOLICITED_NOTIFY, Подробнее об этом читайте здесь https://jsip.ci.cloudbees.com/job/jsip/javadoc/gov/nist/javax/sip/SipStackImpl.html

В противном случае вам нужно будет прикрепить журналы DEBUG, чтобы выяснить это, это может быть некорректный запрос или что-то в этом роде.

Другие вопросы по тегам