【问题标题】:pjsip - PJSIP_ESESSIONINSECURE - Errorpjsip - PJSIP_ESESSIONINSECURE - 错误
【发布时间】:2019-03-13 22:28:22
【问题描述】:

我正在尝试设置支持 FIPS 的 openssl 并使用 pjsip 对其进行测试。我已经建立了一切。我运行以下命令:

pjsua-x86_64-unknown-linux-gnu --local-port=5060 --srtp-secure=1 --use-srtp=2 --null-audio

pjsua-x86_64-unknown-linux-gnu --local-port=5061 --srtp-secure=1 --use-srtp=2 --null-audio

当我去调用一个节点时,我得到:

初始化媒体通道时出错:需要安全会话/传输 (PJSIP_ESESSIONINSECURE) [status=171142]

我追踪了代码中发生这种情况的位置。在文件中:

./pjsip/src/pjsua-lib/pjsua_media.c

if (acc->cfg.use_srtp != PJMEDIA_SRTP_DISABLED) {
        if (security_level < acc->cfg.srtp_secure_signaling) {
            err_code = PJSIP_SC_NOT_ACCEPTABLE;
            status = PJSIP_ESESSIONINSECURE;
            goto on_return;
        }
    }

有人知道我为什么没有通过这项检查吗?

【问题讨论】:

    标签: pjsip


    【解决方案1】:

    添加参数

    --use-tls 
    

    到程序调用

    【讨论】:

      【解决方案2】:

      确保在 pjsip config_site.h 中添加以下标志:

      #define PJMEDIA_HAS_SRTP 1
      #define PJSIP_HAS_TLS_TRANSPORT 1
      

      另外,请确保您使用 TLS 传输类型创建端点。 您还需要确保您的 sip 地址具有“sips”前缀和 ;transport=tls。 这在 pjsua_call.c / get_secure_level 函数中进行评估,该函数确定 security_level 并因此使您上面提到的条件失败。

      【讨论】:

      • 对我有用的是添加“sips”前缀。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2012-11-03
      • 2015-02-12
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多