При использовании Android sip API ответ об ошибке при вызове приходит очень поздно. Можем ли мы минимизировать это?
Я использую Android SIP API для создания своего sip-клиента и БЕСПЛАТНОЙ УАТС для sip-сервера. Но я сталкиваюсь с этой проблемой, при обращении к какому-либо добавочному номеру, если этот пользователь не зарегистрирован на сервере, он выдает мне сообщение об ошибке через 8 секунд. Вот мой код
SipAudioCall.Listener listener = new SipAudioCall.Listener() {
// Much of the client's interaction with the SIP Stack will
// happen via listeners. Even making an outgoing call, don't
// forget to set up a listener to set things up once the call is
// established.
@Override
public void onCallEstablished(SipAudioCall call) {
call.startAudio();
call.setSpeakerMode(true);
if (call.isMuted())
call.toggleMute();
updateStatus("call established.");
}
@Override
public void onCallEnded(SipAudioCall call) {
updateStatus("call ended.");
}
@Override
public void onError(SipAudioCall call, int errorCode,
String errorMessage) {
delay = System.currentTimeMillis() - delay;
delay = delay / 1000;
Log.v("", "call failed: time taken in decision is " + delay
+ " seconds.");
endCall(call);
makeGsmCall(numberString);
super.onError(call, errorCode, errorMessage);
}
};
delay=System.currentTimeMillies();
SipState.sipAudioCall = SipState.sipManager.makeAudioCall(SipState.localSipProfile.getUriString(), sipAddress,
listener, 0);
В этом коде метод onError() вызывается через 8 секунд. Можем ли мы минимизировать это? Или, если есть какой-то другой метод, мы могли бы достичь этого?
Также я видел другие приложения, такие как sipdroid и linephone, они, кажется, не тратят время, чтобы сказать, что указанное имя пользователя недоступно.
Пожалуйста, помогите мне. Благодарю.
1 ответ
Когда ваш SIP регистрируется, он отправляет подтверждение. Если это хорошо. ответ, который вы получите, будет "Готов", иначе он даст вам код ошибки, который можно увидеть на этой странице
Ссылаясь на это, вы можете увидеть, какую ошибку вы получаете. Также есть строка для сообщения об ошибке. Вы можете сохранить это в строку, а затем показать в пользовательском интерфейсе.
Надеюсь это поможет