При использовании 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 регистрируется, он отправляет подтверждение. Если это хорошо. ответ, который вы получите, будет "Готов", иначе он даст вам код ошибки, который можно увидеть на этой странице

https://stuff.mit.edu/afs/sipb/project/android/OldFiles/docs/reference/android/net/sip/SipErrorCode.html

Ссылаясь на это, вы можете увидеть, какую ошибку вы получаете. Также есть строка для сообщения об ошибке. Вы можете сохранить это в строку, а затем показать в пользовательском интерфейсе.

Надеюсь это поможет

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