我正在尝试设置具有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]
我跟踪了代码中发生的事情。在档案中:
./啤酒四瓶/双人床/潘静苏阿-礼拜/潘静苏阿_Media.从
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;
}
}
有谁知道为什么我没有通过这项检查?
添加参数
--use-tls
程序调用
确保在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并因此使上面提到的条件失败。