Android не может отменить вызов с помощью pjsip - PullRequest
0 голосов
/ 10 октября 2019

У меня возникла эта проблема

Ошибка при попытке отменить вызов: java.lang.Exception: Название: pjsua_call_reinvite2 (id, param.p_opt, param.p_msg_data) Код: 70013 Описание: недопустимая операция(PJ_EINVALIDOP) Расположение: ../src/pjsua2/call.cpp:605

Я проверил конкретную строку, есть условие if, чтобы проверить, является ли pjsua_has_video истинным, что должно быть ложным в моем случае,Поскольку для этого приложения у меня нет доступного формата видео, сначала я подумал, что этот флаг не определен, поэтому я перекомпилировал pjsip с определенным флагом в файле конфигурации, установленном в 0, но это все равно происходит.

        try {
            if (hold) {
                MainActivity.currentCall.setHold(param);
                localHold = true;
GtmUtils.pushCustomEvent("CallInterruption",this);
            } else {

                CallSetting opt = param.getOpt();
                opt.setAudioCount(1);
                opt.setVideoCount(0);
                opt.setFlag(pjsua_call_flag.PJSUA_CALL_UNHOLD.swigValue());
                MainActivity.currentCall.reinvite(param);
                localHold = false;

                Crashlytics.log("Call " + operation);
                Crashlytics.log("ReInvite param: " + param);
                Crashlytics.log("Destination nr: " + number);
                Crashlytics.log("Timezone: " + timeZone.getID());
            }
        } catch (Exception e) {
            Crashlytics.logException(new Exception("Error while trying to " + operation + " call: " + e.toString()));
        }
    }

1 Ответ

0 голосов
/ 11 октября 2019

Используйте этот код, он идеально подходит для меня.

CallOpParam prm;

     public void holdCall() {
            prm = new CallOpParam(true);
            try {
                currentCall.setHold(prm);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        public void unHoldCall() {
            prm.getOpt().setFlag(1);
            try {
                currentCall.reinvite(prm);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

Спасибо, Счастливого кодирования ....

...