PJSUA2:创建 SDP 答案时出错:需要 SRTP 加密属性

PJSUA2: Error creating SDP answer: SRTP crypto attribute required

我正在尝试使用最新版本的 pjsip android https://github.com/VoiSmart/pjsip-android.

来电时出现错误:

Error creating SDP answer: SRTP crypto attribute required (PJMEDIA_SRTP_ESDPREQCRYPTO) [status=220228]
inv0x78653290a8  .Sending Response msg 406/INVITE/cseq=47488686 (tdta0x78bfbcf0a8)

使用srtp的账户配置

    SrtpOpt opt = new SrtpOpt();
    IntVector optVector = new IntVector();
    optVector.add(pjmedia_srtp_keying_method.PJMEDIA_SRTP_KEYING_DTLS_SRTP);
    optVector.add(pjmedia_srtp_keying_method.PJMEDIA_SRTP_KEYING_SDES);
    opt.setKeyings(optVector);

    accCfg.getMediaConfig().setSrtpOpt(opt);

    accCfg.getMediaConfig().setSrtpUse(pjmedia_srtp_use.PJMEDIA_SRTP_OPTIONAL);
    accCfg.getMediaConfig().setRtcpMuxEnabled(true);
    accCfg.getMediaConfig().setSrtpSecureSignaling(0);

看起来好像错过了 sdp 中的 a=crypto: 属性,但我不明白如何包含它。

但是,我们之前使用的旧版本可以使用,但我不明白原因。

而且我认为如果在创建 SDP 答案时出错,那么问题可能出在传入的 sdp 中。 是客户端问题还是服务器问题?

请帮我解决一下。

这是服务器问题。 在升级服务器并将 a=crypto 属性添加到 SDP 后运行良好。