【发布时间】:2016-11-21 11:59:10
【问题描述】:
我正在尝试在 sip 客户端和 FS 系统之间进行集成。 SIP 客户端在身份验证阶段发送一个 JWT 令牌作为密码。
为了验证客户端,FS 创建一个带有密码字段的目录条目,并将其与从客户端收到的密码进行比较,在我的情况下,我需要通过获取显示为密码的“令牌”来覆盖此行为,验证它并将验证结果的答案返回给 FS,以便它知道是接受还是拒绝用户。
我不确定如何在不更改源代码的情况下在 FS 中覆盖此行为。我宁愿写一个 python 或 lua 插件来处理。
非常感谢,
【问题讨论】:
-
您能否详细说明完整的工作流程?您可以通过 mod_xml_curl 即时生成 FS 目录条目,其中包含动态密码字段。但这需要测试。另一种方法是使用 Kamailio 作为 SIP 注册器而不是 FreeSWITCH。
-
嗨,我们有一个使用 PJSIP 库的客户端,在 AuthCredInfo 结构(数据字段)中,我们将 JWT 令牌传递给 FS。我们需要找到一种方法来验证令牌,而不是使用标准程序完成的密码比较。基本上我需要在用户名/密码上执行一个脚本并向 FS 返回 true 或 false,这样它就会知道用户是否被允许。
-
我仍然认为 kamailio 在这种情况下更适合作为 SIP 注册商。如果有预算,我很乐意为此设计和构建 POC 提供帮助。如果需要,您可以轻松找到我的联系人。
标签: python lua jwt sip freeswitch