我正在尝试在sip客户端和FS系统之间进行集成。SIP客户端在身份验证阶段将JWT令牌作为密码发送。
为了验证客户端,FS创建了一个带有密码字段的目录条目,并将其与从客户端接收到的密码进行比较,在我的示例中,我需要通过获取显示为密码的"token“来覆盖此行为,验证它并向FS返回有关验证结果的答案,以便它知道是接受还是拒绝用户。
我不确定如何在不更改源代码的情况下在FS中覆盖此行为。我更喜欢写一个python或者lua插件来解决这个问题。
非常感谢,
发布于 2016-11-23 01:13:03
似乎应该使用以下解决方案。
为了允许FS使用JWT进行身份验证,必须将JWT内的自定义标头从用户代理发送到FS。此外,将一些已知密码放入用户代理也很重要。
当UA连接到文件系统,并且使用lua脚本(xml-handler- script,xml-handler-bindings)动态构建目录时,可以验证JWT并通过读取自定义标头字段为用户提供正确的目录条目。
如果JWT是有效的,则将使用正确的密码(已知密码)来允许FS继续该操作,否则将提供另一个无效的密码,并且FS将断开连接。
希望这对某些人有帮助,
发布于 2016-11-23 21:42:14
FreeSWITCH中有两个参数:
请查看更多https://wiki.freeswitch.org/wiki/Sofia.conf.xml#auth-calls。
所以现在你可以在调用和注册时调用你的lua脚本,这实际上是检查注册,使用自定义logic.now的invite不会执行任何身份验证。
https://stackoverflow.com/questions/40719659
复制相似问题