Kamailio 高效能 SIP Proxy,支援註冊、路由、負載平衡、NAT 穿透。CentOS 6 透過源碼編譯可自訂模組、優化效能。本文涵蓋依賴安裝、模組選擇、MySQL 資料庫初始化、kamctlrc 配置、kamailio.cfg 啟用特性、服務啟動與帳號測試全流程。

# yum install gcc make flex bison libxml2-devel openssl-devel \
mysql-devel pcre-devel radiusclient-ng-devel libuuid-devel \
hiredis-devel json-c-devel
# cd /usr/local/src
# wget https://www.kamailio.org/pub/kamailio/5.8.3/src/kamailio-5.8.3_src.tar.gz
# tar xzf kamailio-5.8.3_src.tar.gz
# cd kamailio-5.8.3
# make FLAVOUR=kamailio cfg
編輯 modules.lst,移除 exclude_modules 中的 db_mysql、presence 等需啟用模組。
# make all
# make install
預設安裝路徑:
/usr/local/sbin/kamailio/usr/local/etc/kamailio/kamctl、kamdbctl、sercmd/usr/local/etc/kamailio/kamctlrcSIP_DOMAIN=kamailio.example.com
DBENGINE=MYSQL
DBHOST=localhost
DBNAME=kamailio
DBRWUSER=kamailio
DBRWPW="StrongPass123"
DBROOTUSER="root"
DBROOTPW="RootPass456"
INSTALL_EXTRA_TABLES=yes
INSTALL_PRESENCE_TABLES=yes
STORE_PLAINTEXT_PW=0
VERBOSE=1
PID_FILE=/var/run/kamailio.pid
/usr/local/etc/kamailio/kamailio.cfg在 ####### Defined Values ######### 前加入:
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_NAT
#!define WITH_TLS
# /usr/local/sbin/kamdbctl create
依提示輸入 MySQL root 密碼,自動建立表結構。
# /usr/local/sbin/kamctl start
# /usr/local/sbin/kamctl moni
# kamctl add 1000 1000 # username=1000, password=1000
# kamctl add 1001 1001
# kamctl ul show # 顯示註冊位置表
# cp pkg/kamailio/systemd/kamailio.service /etc/systemd/system/
# systemctl enable --now kamailio
mysql.server 運行、skip-networking 關閉、防火牆放行 3306。ERROR: binding to udp:5060 failed:檢查 5060 埠佔用、SELinux semanage port -a -t sip_port_t -p udp 5060。WITH_NAT、配置 nathelper 模組、設定 listen=udp:公網IP:5060 advertise 公網IP:5060。編譯安裝 Kamailio 可深度定製模組與效能參數,配合 MySQL 持久化、Kamctl 管理,快速構建載入級 SIP 平台。