kamailio event route
event_route 触发机制
event_route 是由 Kamailio 模块在特定事件发生时自动触发的,不是由用户代码直接调用。
topos:msg-outgoing 命名规则
命名格式
模块名:事件名
具体解析
- topos: 模块名,指 Topos 模块(拓扑隐藏模块)
- msg-outgoing: 事件名,指消息外出事件
触发时机
当 Topos 模块处理外出消息时自动触发此事件路由。
Kamailio 事件路由机制
- 模块定义事件
- Topos 模块定义了 msg-outgoing 事件
- 当有消息准备发送出去时触发
- 事件路由注册
- 系统自动注册 event_route[topos:msg-outgoing]
- 当事件发生时自动执行其中的代码
- 常见事件路由类型
event_route[dialog:start] # 对话开始事件
event_route[dialog:end] # 对话结束事件
event_route[tm:local-request] # 本地请求事件
event_route[acc:call-start] # 呼叫开始事件
event_route[acc:call-end] # 呼叫结束事件
工作流程
- Topos 模块检测到有消息需要发送
- 自动触发 topos:msg-outgoing 事件
- 系统查找并执行对应的 event_route[topos:msg-outgoing]
- 执行完事件路由后继续正常的消息处理流程
这种机制允许模块在特定时刻插入自定义处理逻辑,而无需修改核心代码