pjsip - PJSIP_ESESSIONINSECURE - 错误

时间:2016-03-31 20:20:45

标签: pjsip

我正在尝试设置支持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;
        }
    }

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

2 个答案:

答案 0 :(得分:0)

添加参数

--use-tls 

到程序调用

答案 1 :(得分:0)

确保在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并因此使您上面提到的条件失败。