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

我正在使用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();
    }

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

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

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

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

解决方法:

看看我的代码:

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();
    }
}

根据this issue,有必要在CallOpParam上设置标志.

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

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

上一篇:php – 如何在拨号方案中获取dtmf值


下一篇:Android SIP堆栈:寄存器上的NullPointerException