如何知道来电在Android中的PJSIP中是否有视频

时间:2017-06-14 05:09:52

标签: android pjsip

我正在研究Android中的PJSIP,如何检查来电只是音频通话或视频。怎么识别?我使用了以下代码,但它无法正常工作

 @Override
    public void onIncomingCall(OnIncomingCallParam prm) {
        System.out.println("======== Incoming call ======== ");
        MyCall call = new MyCall(this, prm.getCallId());
        try {
            CallSetting setting = call.getInfo().getSetting();
            Log.d(" Log APP ", "onIncomingCall: Audio " + setting.getAudioCount() + "  Video" + setting.getVideoCount());
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

但音频和视频计数总是1,但在拨打电话时,我已经放了视频0

 MyCall call = new MyCall(account);
        CallOpParam prm = new CallOpParam();
        CallSetting setting = new CallSetting();
        setting.setAudioCount(1);
        setting.setVideoCount(0);
        prm.setOpt(setting);
        try {
            call.makeCall(buddy_uri, prm);
        } catch (Exception e) {
            call.delete();
            e.printStackTrace();
            return;
        }

请告诉我如何识别来电有没有视频。?

2 个答案:

答案 0 :(得分:1)

经过大量研究,我发现PJSIP协议不提供来电视频计数。 CallSetting是所有用户自己设置的。星号服务器不向接收方端发送呼叫设置。但Asterisk id提供有关媒体支持的信息

long videoCount = (callInfo.getRemOfferer()) ? callInfo.getRemVideoCount() : callInfo.getSetting().getVideoCount();
// if server support video call then check remote server video count value its retrun value in 0,1 format if server not support then chek call setting 

所以你可以使用像这样的逻辑

{{1}}

视频数量是1意味着这是视频通话。

有关详细信息,请查看此 PJSIP Call Setting

答案 1 :(得分:-2)

您需要检查远程详细信息: sipCall.getInfo()。getRemVideoCount()

其中" sipCall"是你的电话(MyCall)"对象