主页 > 软件开发  > 

kamailio中CoreCookbook核心配置手册

kamailio中CoreCookbook核心配置手册
Core Cookbook 核心配置手册

版本: Kamailio SIP 服务器 v6.0.x (稳定版)

概述

本教程收集了 Kamailio 核心导出到配置文件的功能和参数。

注意: 本页参数未按字母顺序排列。

结构

kamailio.cfg 的结构可分为三部分:

全局参数模块设置路由块

建议按此顺序排列以保持清晰和易于维护,但部分内容可混合使用。


全局参数部分

这是配置文件的第一部分,包含 Kamailio 核心参数及自定义全局参数。 通常形式为 name=value,若名称不匹配核心参数,Kamailio 将启动失败并报错。

示例:

log_facility=LOG_LOCAL0 children=4 disable_tcp=yes alias="sip.mydomain " listen=udp:10.0.0.10:5060
模块设置部分

第二部分包含加载模块和设置模块参数的指令,主要使用 loadmodule 和 modparam。

示例:

loadmodule "debugger.so" ... modparam("debugger", "cfgtrace", 1)
路由块部分

最后部分包含处理 SIP 流量的路由逻辑。 唯一必需的路由块是 request_route,用于决策 SIP 请求的路由。

示例:

request_route { # 每个请求的初始检查 route(REQINIT); ... } branch_route[MANAGE_BRANCH] { xdbg("新分支 [$T_branch_idx] 到 $ru\n"); route(NATMANAGE); }
通用元素 注释 行注释以 # 或 // 开头。块注释以 /* 开始,以 */ 结束。

示例:

# 这是行注释 // 另一种行注释 /* 这是 块注释 */
配置预处理器指令 include_file

包含文件内容到配置中,路径可为相对或绝对路径。 示例:

include_file "/etc/kamailio/checks.cfg" define

控制配置文件的执行部分,类似 C 语言的宏定义。 示例:

#!define TESTBED_MODE #!ifdef TESTBED_MODE debug=5 #!else debug=2 #!endif
核心关键字 af: 地址族 (IPv4/IPv6)method: SIP 方法 (如 INVITE, REGISTER)proto: 传输协议 (UDP, TCP, TLS)uri: 请求 URImyself: 本地域名列表

示例:

if (method == "INVITE") { log("这是 INVITE 请求\n"); }
核心参数 网络与进程 listen: 监听地址和协议 (如 udp:10.0.0.10:5060)children: UDP 子进程数disable_tcp: 禁用 TCPlog_stderror: 输出日志到标准错误

示例:

listen=udp:10.0.0.10:5060 advertise "sip.dns.example ":5060 children=16 内存与性能 shm_mem_size: 共享内存大小 (MB)memlog: 内存日志级别

示例:

shm_mem_size=256 memlog=3
DNS 参数 use_dns_cache: 启用 DNS 缓存dns_retr_time: DNS 重试时间dns_try_ipv6: 启用 IPv6 DNS 查询

示例:

use_dns_cache=yes dns_retr_time=3
路由块类型 request_route: 处理所有 SIP 请求branch_route: 处理每个请求分支failure_route: 处理事务失败reply_route: 处理 SIP 响应event_route: 处理特定事件

示例:

request_route { if (is_method("OPTIONS")) { sl_send_reply("200", "OK"); exit; } }
脚本语句 条件与循环 if-else: 条件判断switch: 多分支选择while: 循环

示例:

if ($ru =~ "sip:.*@kamailio.org") { log("目标为 kamailio.org 用户\n"); } switch ($rU) { case "1001": log("目标用户 1001\n"); break; default: log("未知用户\n"); }
命令行参数 -f: 指定配置文件-l: 监听地址-n: 子进程数-d: 调试级别

示例:

kamailio -f /etc/kamailio/kamailio.cfg -l udp:0.0.0.0:5060 -d 3
日志引擎

使用 --log-engine=json 输出 JSON 格式日志。

示例:

{ "level": "DEBUG", "module": "core", "message": "收到请求: $rm" }
总结

本手册详细介绍了 Kamailio v6.0.x 的核心配置要素,包括全局参数、模块设置、路由逻辑及脚本语法。正确配置这些参数和路由块,可高效管理 SIP 流量并优化服务器性能。

标签:

kamailio中CoreCookbook核心配置手册由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“kamailio中CoreCookbook核心配置手册