OpenSIPS 核心函数

本文介绍了OpenSIPS中缓存属性值的获取方法及事件接口的外部应用订阅过程。通过cache_fetch函数可以从本地或Redis缓存中获取属性值,并利用subscribe_event函数实现对外部应用程序的事件订阅。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • cache_fetch(storage_id, attribute_name, result_pvar)

此函数用于从类内存缓存的存储系统中获取属性值。属性名称可能包含伪变量。结果(如果有)将存储在 result_pvar 指定的伪变量中。

如果找到属性并且返回其数值,那么函数返回值是 true。

cache_fetch("local", "my_attr", $var(result));

或者:

modparam("cachedb_redis", "cachedb_url", "redis:cluster1://192.168.2.134:6379/")
...
cache_fetch("redis:cluster1", "my_attr", $var(ret));

  • subscribe_event(string, string [, int])

为 OpenSIPS 事件接口的特定事件订阅外部应用程序。这用于无法自行订阅的传输协议(例如 event_rabbitmq)。

如果订阅未过期,则此函数应仅在启动路径中调用一次,如果订阅应每隔一段时间续订,则应在计时器路径中调用一次。

第一个参数是一个字符串,表示应通知外部应用程序的事件名称。第二个参数是一个字符串,用于指定外部应用程序的套接字。请注意,此套接字应遵循现有加载的事件接口传输模块的语法(例如:event_datagram、event_rabbitmq)。

最后一个参数是可选的,用于指定订阅的过期时间。如果不存在,则订阅根本不会过期。

使用示例(从不过期的订阅者,由 RabbitMQ 模块通知):

startup_route {
    subscribe_event("E_PIKE_BLOCKED", "rabbitmq:127.0.0.1/pike");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值