kamailio event route

event_route 触发机制

event_route 是由 Kamailio 模块在特定事件发生时自动触发的,不是由用户代码直接调用。

topos:msg-outgoing 命名规则

命名格式

模块名:事件名

具体解析

  • topos: 模块名,指 Topos 模块(拓扑隐藏模块)
  • msg-outgoing: 事件名,指消息外出事件

触发时机

当 Topos 模块处理外出消息时自动触发此事件路由。

Kamailio 事件路由机制

  1. 模块定义事件
  • Topos 模块定义了 msg-outgoing 事件
  • 当有消息准备发送出去时触发
  1. 事件路由注册
  • 系统自动注册 event_route[topos:msg-outgoing]
  • 当事件发生时自动执行其中的代码
  1. 常见事件路由类型

event_route[dialog:start] # 对话开始事件
event_route[dialog:end] # 对话结束事件
event_route[tm:local-request] # 本地请求事件
event_route[acc:call-start] # 呼叫开始事件
event_route[acc:call-end] # 呼叫结束事件

  1. 工作流程

    1. Topos 模块检测到有消息需要发送
    2. 自动触发 topos:msg-outgoing 事件
    3. 系统查找并执行对应的 event_route[topos:msg-outgoing]
    4. 执行完事件路由后继续正常的消息处理流程

这种机制允许模块在特定时刻插入自定义处理逻辑,而无需修改核心代码