Я внедрил SIP-клиент Android со встроенным SIP-стеком. Это работает нормально, но есть одна проблема, с которой я столкнулся, и я не знаю, как ее решить.
После того, как я ответил на входящий вызов, я хочу завершить этот вызов нажатием кнопки. При нажатии кнопки «END CALL» будет выполнен следующий код («call» является экземпляром текущего «SipAudioCall»).
try {
call.endCall()
} catch (exc: Exception) {
Logger.exception(TAG, exc)
} finally {
call.close()
}
Приложение завершает вызов, аудиопоток уничтожается и состояние вызова изменилось. Но это не сигнализирует фактический BYE обратно вызывающей стороне.
Это ошибка в базовой реализации, почему BYE не отправляется, или есть что-то, что я пропустил в коде?
кстати. Выполнение кода ON-RINGING работает нормально и отправляет CANCEL обратно вызывающей стороне. Вот почему я немного озадачен тем, что он не передает сигнал после установления вызова.