通过标志或开关进行实时控制是任何 VoIP 操作的一个关键方面。对系统中的功能进行管理的能力(如打开或关闭功能、控制其行为),或对用户权限(或能力)进行管理的能力,都属于功能标志的范畴。
OpenSIPS 有很多方法来实现这些功能标志,如使用 ACL、权限或各种实体的属性。但是,在复杂、高度集成的解决方案中,特征标志支持超越了 OpenSIPS 本身的限制–你需要特征标志支持被各种服务(不仅是 OpenSIPS 或 VoIP)使用,还需要被各种工具(网络接口、应用程序接口等)提供。在这种情况下,功能标志支持本身就成为一种微服务。
LauchDarkly 是一家基于云的功能标记服务提供商。Five9 公司对将此类功能与 OpenSIPS 结合使用很感兴趣。得益于 Five9 的赞助,OpenSIPS 3.5 开发了一个新模块,提供与 LaunchDarkly 功能标志云的接口。
新的 Launch Darkly 模块提供了与 Launch Darkly 云服务的连接,以及检查特征标志的基本原理。为此,该模块使用了 Launch Darkly C SDK。请注意模块 README 中关于如何正确编译 Launch Darkly SDK 以适应 OpenSIPS 的特殊说明。
在云连接部分,该模块的设计尽可能具有弹性,这意味着它在云无法连接(网络缺乏连接)的情况下也能运行。模块仍能启动,对功能标志的检查将返回默认值,模块将定期尝试重新连接。
在功能标志操作方面,Launch Darkly SDK 提供了多种可能性。不过,OpenSIPS 模块目前仅实现对功能标志的基本检查:
$avp(extra) = "domainId=123456";
if (ld_feature_enabled("my-flag","opensips", $avp(extra), false))
xlog("-------TRUE\n");
else
xlog("-------FALSE\n");
根据未来的使用情况,该模块可以很容易地进行扩展,以提供越来越多的功能标志操作,我们非常欢迎任何建议,甚至是任何相关的贡献。
原文:https://blog.opensips.org/2024/03/04/launchdarkly-integration-with-opensips-3-5/
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/44372.html