其他分享
首页 > 其他分享> > 使用pjsua2 Android保持和取消保持呼叫

使用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而且它正在运行.

标签:sip,android,voip,pjsip
来源: https://codeday.me/bug/20190722/1506429.html