我正在尝试设置支持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;
}
}
有谁知道我为什么没有通过这项检查?
答案 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并因此使您上面提到的条件失败。