Kamailio 實戰

杜金房//呂佳娉

  • 出版商: 機械工業
  • 出版日期: 2022-12-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 282
  • 裝訂: 平裝
  • ISBN: 7111712471
  • ISBN-13: 9787111712473
  • 相關分類: 網路通訊
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

這是一本全面介紹Kamailio的專業技術書,也會是市面上第1本Kamailio的圖書。
第1章介紹Kamailio的基本背景和架構,同時對SIP協議進行了比較深入的介紹。
第2~3章介紹了Kamailio運行環境的搭建和配置。
第4~5章對Kamailio的組件組件和KEMI進行深入解析。
第6章介紹如何使用Kamailio做SIP路由轉發。
第7章介紹Kamailio如何與數據庫對接並進行相關操作。
第8章介紹了20種路由方法。
第9章和第10章分別從高性能和安全兩個維度介紹對Kamailio的使用。

目錄大綱

目錄
推薦序一
推薦序二
前言
第1章Kamailio與SIP1
1.1 什麼是Kamailio1
1.2 背景3
1.3 SIP5
1.3.1 SIP基礎6
1.3.2 SIP的基本概念和相關元素7
1.3.3 SIP的基本方法和頭域9
1.3.4 SIP URI9
1.3.5 SDP和SOA10
1.3.6 SIP承載14
1.3.7 事務、對話和會話14
1.3.8 Stateless與Stateful17
1.3.9 嚴格路由和鬆散路由18
1.3.10 Record-Route19
1.4 Kamailio基本架構19
第2章理解Kamailio配置文件23
2.1 基本配置文件23
2.2 原生腳本27
2.3 Lua腳本32
2.4 Lua腳本的其他寫法38
第3章Kamailio基本概念和組件40
3.1 core詳解40
3.1.1 全局參數部分40
3.1.2 模塊設置部分41
3.1.3 路由塊部分41
3.1.4 通用元素42
3.1.5 核心關鍵字46
3.1.6 核心值48
3.1.7 核心參數49
3.1.8 DNS相關參數60
3.1.9 TCP相關參數或選項61
3.1.10 TLS相關參數66
3.1.11 SCTP概述66
3.1.12 UDP相關參數66
3.1.13 核心函數67
3.1.14 自定義全局參數73
3.1.15 腳本語句73
3.1.16 腳本操作符75
3.2 其他概念和組件78
3.2.1 偽變量78
3.2.2 htable79
3.2.3 AVP80
3.2.4 模塊81
第4章KEMI詳解83
4.1 KEMI Lua入口84
4.2 KEMI函數85
4.2.1 函數整型返回值規則85
4.2.2 函數返回0的情況86
4.2.3 模塊函數86
4.3 在C函數中導出KEMI函數86
4.4 KEMI和偽變量89
4.4.1 偽變量靜態名稱限制89
4.4.2 針對特定偽變量的函數90
4.5 核心和pv模塊中的函數91
4.5.1 核心中的常用函數91
4.5.2 pv模塊相關函數94
4.5.3 KSR.hdr子模塊96
4.5.4 特殊的KEMI函數99
4.6 原生腳本與KEMI對比100
4.6.1 函數名100
4.6.2 函數的參數100
4.6.3 停止當前腳本執行101
4.7 其他101
第5章Kamailio運行環境與實例104
5.1 運行Kamailio104
5.1.1 環境準備104
5.1.2 在命令行上運行Kamailio105
5.1.3 將配置文件保存到宿主機113
5.1.4 使用Docker Compose管理
 容器113
5.2 將SIP呼叫轉發到FreeSWITCH115
5.3 從簡單的路由腳本開始116
5.4 Kamailio命令行工具117
5.4.1 kamctl117
5.4.2 kamdbctl120
5.4.3 kamcmd121
5.4.4 kamcli122
5.4.5 sipexer124
5.5 Web管理界面127
5.6 調試與排錯130
5.6.1 使用sipdump模塊跟踪SIP
 消息130
5.6.2 其他SIP相關工具簡介131
第6章使用Kamailio做SIP
 路由轉發132
6.1 什麼是路由132
6.2 基本路由轉發134
6.2.1 簡單、安全的路由轉發134
6.2.2 無狀態轉發134
6.2.3 有狀態轉發135
6.2.4 並行轉發135
6.2.5 串行轉發138
6.3 使用dispatcher模塊做路由轉發
 和負載均衡140
6.3.1 基本用法140
6.3.2 dispatcher模塊142
6.3.3 優先級路由及備用路由144
6.3.4 按權重路由145
6.3.5 特殊參數145
6.3.6 從數據庫中加載146
6.4 呼叫從哪裡來146
6.4.1 根據IP地址段判斷147
6.4.2 使用dispatcher模塊判斷148
6.4.3 使用permissions模塊判斷149
6.4.4 使用geoip2模塊判斷150
6.5 API路由151
6.5.1 通過HTTP查詢路由151
6.5.2 rtjson157
6.5.3 evapi161
6.6 在KEMI腳本中調用原生腳本
 中的路由塊168
第7章數據庫操作169
7.1 初始化數據庫169
7.1.1 PostgreSQL169
7.1.2 MySQL171
7.2 配置數據庫連接172
7.3 在路由時進行SQL查詢172
7.4 其他函數和偽變量174
7.5 常用數據庫表結構175
第8章15個典型的路由示例177
8.1 通過號碼分析樹進行路由177
8.2 號碼翻譯179
8.3 低成本路由181
8.4 前綴路由184
8.5 動態路由186
8.6 縮位撥號188
8.7 通過別名數據庫路由189
8.8 運營商路由190
8.9 字冠域名翻譯192
8.10 用戶註冊和查詢193
8.11 向外註冊195
8.12 更多AVP示例198
8.13 話單200
8.14 SBC202
8.14.1 代理註冊202
8.14.2 NAT穿透206
8.14.3 代理媒體209
8.14.4 使用FreeSWITCH做B2BUA
 模式217
8.14.5 拓撲隱藏218
8.15 WebRTC219
第9章性能223
9.1 性能測試223
9.1.1 早期的性能測試223
9.1.2 KEMI性能測試234
9.1.3 使用VoIPPerf進行性能
 測試235
9.2 拆解Kamailio高性能信令服務
 設計238
9.2.1 懶解析238
9.2.2 內存管理240
9.2.3 並發和同步241
9.2.4 定時器和異步操作242
9.2.5 緩存242
9.2.6 異步處理243
9.2.7 其他243
第10章安全244
10.1 基本安全手段和策略244
10.2 限呼245
10.2.1 限制User-Agent頭域245
10.2.2 限呼某些目的地246
10.2.3 限制高頻呼叫247
10.2.4 限制太多的錯誤鑑權248
10.2.5 限制並發呼叫249
10.3 TLS250
10.3.1 理解TLS證書及密鑰251
10.3.2 自簽名證書252
10.3.3 在Kamailio中配置TLS252
10.3.4 TLS連接測試253
10.3.5 自製CA根證書254
10.3.6 其他255
10.4 iptables256
10.5 其他安全建議和相關鏈接257
附錄A 安裝Kamailio258
附錄B FreeSWITCH快速入門262
附錄C Lua快速入門267
附錄D Docker簡介及常用命令275
附錄E 模塊索引表280
後記282