使用pjsua2 Android保持和取消保持呼叫

man*_*nao 3 android voip sip pjsip

我正在使用Android构建版本2.2.1的pjsua2.我可以使用以下方式暂停通话:

    CallOpParam prm = new CallOpParam();
    prm.setOptions(pjsua_call_flag.PJSUA_CALL_UPDATE_CONTACT.swigValue());

    try {
        currentCall.setHold(prm)
    } catch(Exception e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

要取消电话,我试过这个,但不起作用:

    CallOpParam prm = new CallOpParam();
    prm.setOptions(pjsua_call_flag.PJSUA_CALL_UNHOLD.swigValue());

    try {
        currentCall.reinvite(prm);
    } catch(Exception e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

这是pjsua的错误吗?我该如何调用reinvite方法?

小智 9

看看我的代码:

public void holdCall() {
    CallOpParam prm = new CallOpParam(true);

    try {
        currentCall.setHold(prm);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public void unHoldCall() {
    CallOpParam prm = new CallOpParam(true);

    prm.getOpt().setFlag(1);
    try {
        currentCall.reinvite(prm);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

根据这个问题,有必要设置标志CallOpParam.

常数PJSUA_CALL_UNHOLD == 1,但我无法PJSUA_CALL_UNHOLD直接使用.

我正在使用Asterisk而且它正在运行.