#!KAMAILIO
#
# Kamailio SIP 服务器 v6.0 - 默认配置脚本
# - 网站: https://www.kamailio.org
# - GitHub: https://github.com/kamailio/kamailio
#
# 关于此文件的问题,请发送邮件至: <[email protected]>
#
# 参考 Kamailio 核心 Cookbook: https://www.kamailio.org/wikidocs/
# 以了解可能的语句、函数和参数的解释。
#
# 注意:注释可以是:
# - 以 # 开头的行,但不包括预处理指令,
# 预处理指令以 #! 开头,例如 #!define, #!ifdef, #!endif, #!else, #!trydef,
# #!subst, #!substdef 等。
# - 以 // 开头的行
# - 包含在 /* */ 之间的块
# 注意:此配置执行对称的 SIP 信令
# - 它将回复发送到请求的源地址
# - 删除对称 SIP 信令的 force_rport() 使用
#
# 可以使用 '#!define WITH_FEATURE' 指令启用多个功能:
#
# *** 要运行调试模式:
# - 定义 WITH_DEBUG
# - 调试级别增加到 3,日志仍然发送到 syslog
# - 加载调试器模块,并启用 cfgtrace
#
# *** 启用 MySQL:
# - 定义 WITH_MYSQL
#
# *** 启用认证执行:
# - 启用 mysql
# - 定义 WITH_AUTH
# - 使用 'kamctl' 或 'kamcli' 添加用户
#
# *** 启用 IP 认证执行:
# - 启用 mysql
# - 启用认证
# - 定义 WITH_IPAUTH
# - 向 'address' 表中添加 ID 为 1 的 IP 地址
#
# *** 启用持久用户位置执行:
# - 启用 mysql
# - 定义 WITH_USRLOCDB
#
# *** 启用 Presence 服务器执行:
# - 启用 mysql
# - 定义 WITH_PRESENCE
# - 如果配置中修改了标头或正文,Presence 处理必须使用这些内容:
# - 定义 WITH_MSGREBUILD
#
# *** 启用 NAT 穿透执行:
# - 定义 WITH_NAT
# - NAT SIP OPTIONS keepalives 选项:WITH_NATSIPPING
# - 安装 RTPProxy: http://www.rtpproxy.org
# - 启动 RTPProxy:
# rtpproxy -l _your_public_ip_ -s udp:localhost:7722
#
# *** 使用 RTPEngine(替代 RTPProxy)进行 NAT 穿透执行:
# - 定义 WITH_RTPENGINE
# - 安装 RTPEngine: https://github.com/sipwise/rtpengine
# - 启动 RTPEngine:
# rtpengine --listen-ng=127.0.0.1:2223 ...
#
# *** 启用 PSTN 网关路由执行:
# - 定义 WITH_PSTN
# - 设置 pstn.gw_ip 的值
# - 检查 route[PSTN] 中的正则表达式路由条件
#
# *** 启用数据库别名查找执行:
# - 启用 mysql
# - 定义 WITH_ALIASDB
#
# *** 启用快速拨号查找执行:
# - 启用 mysql
# - 定义 WITH_SPEEDDIAL
#
# *** 启用多域支持执行:
# - 启用 mysql
# - 定义 WITH_MULTIDOMAIN
#
# *** 启用 TLS 支持执行:
# - 根据需要调整 CFGDIR/tls.cfg
# - 定义 WITH_TLS
#
# *** 启用 JSONRPC over HTTP(S) 支持执行:
# - 定义 WITH_JSONRPC
# - 根据访问策略调整 event_route[xhttp:request]
#
# *** 启用防洪检测执行:
# - 根据需要调整 pike 和 htable=>ipban 设置(默认是
# 如果 2 秒内请求超过 16 次,则阻止,并且禁止 300 秒)
# - 定义 WITH_ANTIFLOOD
#
# *** 启用 htable 模块执行:
# - 定义 WITH_HTABLE
#
# *** 阻止 3XX 重定向回复执行:
# - 定义 WITH_BLOCK3XX
#
# *** 阻止 401 和 407 认证回复执行:
# - 定义 WITH_BLOCK401407
#
# *** 启用语音信箱路由执行:
# - 定义 WITH_VOICEMAIL
# - 设置 voicemail.srv_ip 的值
# - 调整 voicemail.srv_port 的值
# 第二段
# *** 要增强计费功能执行:
# - 启用 mysql
# - 定义 WITH_ACCDB
# - 向数据库添加以下列
#!ifdef ACCDB_COMMENT
ALTER TABLE acc ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT '';
# 向 acc 表添加 src_user 列,类型为 VARCHAR(64),默认为空字符串
ALTER TABLE acc ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT '';
# 向 acc 表添加 src_domain 列,类型为 VARCHAR(128),默认为空字符串
ALTER TABLE acc ADD COLUMN src_ip varchar(64) NOT NULL default '';
# 向 acc 表添加 src_ip 列,类型为 VARCHAR(64),默认为空字符串
ALTER TABLE acc ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';
# 向 acc 表添加 dst_ouser 列,类型为 VARCHAR(64),默认为空字符串
ALTER TABLE acc ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';
# 向 acc 表添加 dst_user 列,类型为 VARCHAR(64),默认为空字符串
ALTER TABLE acc ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT '';
# 向 acc 表添加 dst_domain 列,类型为 VARCHAR(128),默认为空字符串
ALTER TABLE missed_calls ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT '';
# 向 missed_calls 表添加 src_user 列,类型为 VARCHAR(64),默认为空字符串
ALTER TABLE missed_calls ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT ''; # 向 missed_calls 表添加 src_domain 列,类型为 VARCHAR(128),默认为空字符串
ALTER TABLE missed_calls ADD COLUMN src_ip varchar(64) NOT NULL default '';
# 向 missed_calls 表添加 src_ip 列,类型为 VARCHAR(64),默认为空字符串
ALTER TABLE missed_calls ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';
# 向 missed_calls 表添加 dst_ouser 列,类型为 VARCHAR(64),默认为空字符串
ALTER TABLE missed_calls ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';
# 向 missed_calls 表添加 dst_user 列,类型为 VARCHAR(64),默认为空字符串
ALTER TABLE missed_calls ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT ''; # 向 missed_calls 表添加 dst_domain 列,类型为 VARCHAR(128),默认为空字符串
#!endif
####### 如果存在本地配置,则包含本地配置文件 #########
import_file "kamailio-local.cfg"
# 如果 kamailio-local.cfg 存在,则导入该文件作为配置的一部分
# 第三段
####### 定义的值 #########
# *** 值定义 - 在配置中稍后使用的 ID
#!ifdef WITH_DEBUG
#!define DBGLEVEL 3
# 如果启用了调试,设置调试级别为 3
#!else
#!define DBGLEVEL 2
# 如果没有启用调试,设置调试级别为 2
#!endif
#!ifdef WITH_MYSQL
# - 数据库 URL - 用于通过模块连接到数据库服务器,
# 例如:auth_db, acc, usrloc 等模块。
#!trydef DBURL "mysql://kamailio:kamailiorw@localhost/kamailio"
# 如果启用 MySQL,定义数据库连接 URL
#!endif
#!ifdef WITH_MULTIDOMAIN
# - 'use_domain' 参数的值
#!define MULTIDOMAIN 1
# 启用多域支持时,将 MULTIDOMAIN 设置为 1
#!else
#!define MULTIDOMAIN 0
# 启用多域支持时,将 MULTIDOMAIN 设置为 0
#!endif
#!ifdef WITH_ANTIFLOOD
# - 用于存储被阻止的 IP 地址的哈希表 'ipban'
#!trydef WITH_HTABLE
# 如果启用防洪功能,尝试定义 HTABLE 模块
#!endif
# - 标志
# FLT_ - 每个事务(消息)的标志
#!define FLT_ACC 1
# 账户标志
#!define FLT_ACCMISSED 2
# 漏接账户标志
#!define FLT_ACCFAILED 3
# 账户失败标志
#!define FLT_NATS 5
# NAT 标志
# FLB_ - 每个分支的标志
#!define FLB_NATB 6
# NAT 分支标志
#!define FLB_NATSIPPING 7
# NAT SIP 保活分支标志
####### 全局参数 #########
/* 日志级别: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR, ... */
debug=DBGLEVEL
# 设置调试日志级别,值从定义的 DBGLEVEL 取
/* 设置为 'yes' 以将日志消息打印到终端,或者使用 '-E' CLI 选项 */
log_stderror=no
# 禁用将日志消息打印到终端
memdbg=5
# 设置内存调试级别为 5
memlog=5
# 设置内存日志级别为 5
log_facility=LOG_LOCAL0
# 设置日志设施为 LOG_LOCAL0
log_prefix="{
$mt $hdr(CSeq) $ci} "
# 设置日志前缀格式
/* 每个 UDP 套接字的 SIP 路由进程数
* - 如果未显式设置,值会继承到 tcp_children 和 sctp_children */
children=8
# 设置每个 UDP 套接字的 SIP 路由进程数为 8
/* 取消注释以下行以禁用 TCP(默认启用) */
# disable_tcp=yes
# 禁用 TCP(默认情况下是启用的)
/* 所有 TCP/TLS 套接字的 SIP 路由进程数 */
# tcp_children=8
# 设置 TCP 套接字的 SIP 路由进程数为 8
/* UDP 接收模式:
* - 0: 多进程(默认)
* - 1: 使用异步工作组 'udp' 的多线程
* - 2: 每个套接字的配置(请参见核心 Cookbook) */
# async_workers_group="name=udp;workers=8"
# 设置 UDP 的异步工作组
# udp_receiver_mode = 1
# 设置为多线程模式
/* 取消注释以下行以禁用基于 IP 的反向 DNS 发现本地别名(默认启用) */
# auto_aliases=no
# 禁用自动发现本地别名
/* 添加本地域别名 - 可以多次设置 */
# alias="sip.mydomain.com"
# 设置本地域别名
/* 监听套接字 - 如果未设置,则 Kamailio 会绑定到所有本地 IP 地址
* - 基本原型(完整原型请参见 Wiki - Core Cookbook):
* listen=[proto]:[localip]:[lport] advertise [publicip]:[pport]
* - 可以多次设置以添加更多要监听的套接字 */
# listen=udp:10.0.0.10:5060
# 设置监听套接字为指定的本地 IP 和端口
/* 没有流量时 TCP 连接的生命周期
* - 稍高于注册过期时间,以适应 NAT 后的 UA */
tcp_connection_lifetime=3605
# 设置 TCP 连接的生命周期为 3605 秒
/* TCP 连接的上限(包括 TLS 连接) */
tcp_max_connections=2048
# 设置 TCP 连接的最大数量为 2048
/* 每个 IP 地址的 TCP 连接上限 - 默认 1024 */
#tcp_accept_iplimit=1024
# 设置每个 IP 地址的最大连接数
#!ifdef WITH_JSONRPC
tcp_accept_no_cl=yes
# 如果启用 JSONRPC,设置为不接受客户端连接
#!endif
#!ifdef WITH_TLS
enable_tls=yes
# 启用 TLS 支持
/* TLS 连接的上限 */
tls_max_connections=2048
# 设置 TLS 连接的最大数量为 2048
/* OpenSSL 3 集成
* 调用 libssl3 的函数可以在临时线程中执行
* 0: 禁用线程调用
* 1: 仅对进程 #0 使用线程执行器
* 2: 不使用线程执行器,但使用 atfork 处理程序将线程本地变量重置为 NULL */
tls_threads_mode=2
# 设置 OpenSSL 3 集成的线程模式为 2
#!endif
/* 设置为 yes 以启用 sctp 并加载 sctp.so 模块 */
enable_sctp=no
# 禁用 SCTP 支持
# 第四段
####### 自定义参数 #########
/* 这些参数可以通过 RPC 接口在运行时修改
* - 参见 'cfg_rpc' 模块的文档。
*
* 格式: group.id = value 'desc' 描述
* 访问方式: $sel(cfg_get.group.id) 或 @cfg_get.group.id */
#!ifdef WITH_PSTN
/* PSTN 网关路由
*
* - pstn.gw_ip: 有效的 IP 地址或主机名,示例:
* pstn.gw_ip = "10.0.0.101" desc "我的 PSTN 网关地址"
*
* - 默认值为空,以避免错误路由 */
pstn.gw_ip = "" desc "PSTN 网关地址"
# 设置 PSTN 网关的 IP 地址
pstn.gw_port = "" desc "PSTN 网关端口"
# 设置 PSTN 网关的端口
#!endif
#!ifdef WITH_VOICEMAIL
/* 语音邮件路由(用于离线、忙线或无应答情况)
*
* - 默认情况下,语音邮件服务器的 IP 地址为空,以避免错误路由 */
voicemail.srv_ip = "" desc "语音邮件服务器 IP 地址"
# 设置语音邮件服务器的 IP 地址
voicemail.srv_port = "5060" desc "语音邮件服务器端口"
# 设置语音邮件服务器的端口,默认为 5060
#!endif
####### 模块部分 ########
/* 设置模块的路径位置 */
# mpath="/usr/local/lib/kamailio/modules/"
# 设置模块路径
# 使用 OpenSSL 启用 TLS 时,建议首先加载此模块
# 以确保 OpenSSL 被正确初始化
#!ifdef WITH_TLS
loadmodule "tls.so"
# 如果启用了 TLS,加载 tls.so 模块
#!endif
#!ifdef WITH_MYSQL
loadmodule "db_mysql.so"
# 如果启用了 MySQL,加载 db_mysql.so 模块
#!endif
#!ifdef WITH_JSONRPC
loadmodule "xhttp.so"
# 如果启用了 JSONRPC,加载 xhttp.so 模块
#!endif
loadmodule "jsonrpcs.so"
loadmodule "kex.so"
loadmodule "corex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "textopsx.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "cfg_rpc.so"
lo
kamailio的配置文件kamailio.cfg的中文解释
最新推荐文章于 2025-05-28 09:12:56 发布