我需要在Python脚本中访问Kamailio配置文件中的定义和变量。到目前为止,我只能通过self.my_var = int(KSR.pv.get("$sel(cfg_get.my_group.my_var)"))
访问全局变量,其中该变量在配置文件中定义为my_group.my_var = 664.
。我如何访问定义(要知道#!ifdef MY_DEFINE
成功与否)?或者至少是自己读取它们的配置文件
我在official documentation上什么也没找到,甚至$sel(cfg_get.my_group.my_var)
我在别处也找到了
更新这些值在运行时(预处理)通常不可用,因此本机代码可以这样使用它们:
#!define WITH_SIPTRACE
#!substdef "!SERVER_ID!654!g"
...
request_route {
#!ifdef WITH_SIPTRACE
xlog("L_NOTICE", "$C(yx)========= server_id=SERVER_ID NEW $rm $pr:$si:$sp$C(xx)\n");
#!endif
...
在Python中可以实现同样的行为吗
更新2在KSR.kx.get_def()
和KSR.kx.get_defn()
中找到了部分答案(如下)
我不喜欢这个解决方案,因为它为每个有趣的定义添加了额外的变量
在配置方面:
在Python方面:
更新找到部分解决方案:
!substdef
个常量,但不是!define
个常量您不应该更改定义。这是没有机制的
要生成可配置参数,请通过htable模块使用数据库或curl module+内存缓存
例如,下面是针对auth的htable优化
下面是如何使用sql从db获取信息
https://kamailio.org/docs/modules/5.0.x/modules/avpops.html#avpops.f.avp_db_query
作为此类优化的开源示例,您可以看到kazoo项目的代码
相关问题 更多 >
编程相关推荐