主页 详情

《FreeSWITCH权威指南》_杜金房,张令考著_13580939_9787111466260

【书名】:《FreeSWITCH权威指南》
【作者】:杜金房,张令考著
【出版社】:北京:机械工业出版社
【时间】:2014
【页数】:616
【ISBN】:9787111466260
【SS码】:13580939

最新查询

内容简介

第一部分 基础篇

第1章 PSTN与VoIP基础

1.1 PSTN起源与发展

1.1.1 最早的电话网

1.1.2 人工电话交换时代

1.1.3 自动电话交换时代

1.1.4 半电子交换机时代

1.1.5 空分交换机时代

1.1.6 数字交换机时代

1.1.7 现代PSTN时代

1.1.8 下一代网络及VoIP时代

1.2 电话实现技术

1.2.1 电话号码

1.2.2 模拟信号与数字信号

1.2.3 PCM

1.2.4 局间中继与电路复用技术

1.3 我国电话网结构

1.4 信令

1.4.1 信令分类

1.4.2 用户线信令

1.4.3 局间信令

1.4.4 七号信令

1.4.5 H.323与SIP信令

1.5 媒体

1.6 电路交换与分组交换

1.6.1 电路交换

1.6.2 分组交换

1.7 VoIP

1.8 IMS

1.8.1 什么是IMS

1.8.2 IMS的特点

1.8.3 IMS核心网元

1.8.4 SIP协议的参考点

1.9 小结

第2章 PSTN、PBX及呼叫中心业务

2.1 PSTN业务

2.1.1 POTS

2.1.2 商务业务

2.1.3 其他增值业务

2.2 PBX业务

2.2.1 呼叫转移

2.2.2 同组代答

2.3 PBX与中继线

2.4 IP-PBX业务

2.5 呼叫中心

2.5.1 什么是呼叫中心

2.5.2 呼叫中心的历史

2.5.3 呼叫中心的分类

2.5.4 呼叫中心的主要技术指标

2.5.5 CTI中间件

2.5.6 FreeSWITCH在呼叫中心的应用

2.6 小结

第3章 初识FreeSWITCH

3.1 什么是FreeSWITCH?

3.1.1 FreeSWITCH的概念

3.1.2 FreeSWITCH的功能

3.2 快速体验

3.2.1 安装基本FreeSWITCH系统

3.2.2 连接SIP电话

3.3 配置FreeSWITCH

3.4 FreeSWITCH用作软电话

3.5 配置SIP网关拨打外部电话

3.5.1 从某一分机上呼出

3.5.2 呼入电话处理

3.6 小结

第4章 运行FreeSWITCH

4.1 命令行参数

4.2 系统启动脚本

4.3 判断FreeSWITCH是否运行

4.4 控制台与命令客户端

4.5 呼叫

4.5.1 发起呼叫

4.5.2 呼叫字符串

4.6 API与App

4.7 API命令帮助

4.8 小结

第5章 FreeSWITCH架构

5.1 总体架构

5.1.1 核心

5.1.2 接口实现

5.2 目录结构

5.3 配置文件

5.3.1 freeswitch.xml

5.3.2 vars.xml

5.3.3 autoload_configs目录

5.3.4 其他

5.4 XML用户目录

5.5 呼叫相关概念

5.5.1 来去话、Session、Channel与Call

5.5.2 回铃音与Early Media

5.5.3 全局变量与局部变量

5.6 小结

第6章 拨号计划

6.1 XMLDialplan

6.1.1 配置文件的结构

6.1.2 默认的配置文件简介

6.1.3 正则表达式

6.1.4 通道变量

6.1.5 测试条件

6.1.6 动作与反动作

6.1.7 工作机制深入剖析

6.1.8 内联执行

6.1.9 实例解析

6.2 inline Dialplan

6.3 其他Dialplan

6.4 常用的Dialplan App

6.5 在Dialplan 中使用API命令

6.6 深入理解通道变量及相关操作

6.7 小结

第7章 SIP协议

7.1 SIP协议基础

7.1.1 HTTP与SIP协议基础

7.1.2 SIP的基本概念和相关元素

7.1.3 SIP协议的基本方法和头域简介

7.2 SIP注册

7.3 SIP呼叫流程

7.3.1 UA间直接呼叫

7.3.2 通过B2BUA呼叫

7.4 深入理解SIP

7.4.1 SIP URI

7.4.2 SDP和SOA

7.4.3 3PCC

7.4.4 SIP承载

7.5 小结

第8章 媒体

8.1 媒体与媒体处理

8.1.1 音频编码

8.1.2 媒体工作机理和相关配置

8.2 媒体协商

8.2.1 协商过程

8.2.2 SDP及其在编码协商中的作用

8.2.3 协商时机与策略

8.3 其他媒体相关的问题

8.3.1 RTP和RTCP

8.3.2 转码

8.3.3 透传、媒体绕过与媒体代理

8.3.4 Media Bug

8.3.5 视频

8.3.6 排错

8.4 小结

第9章 SIP模块

9.1 基本概念

9.2 Sofia配置文件

9.2.1 Profile配置文件

9.2.1 Profile的几个重要参数

9.2.2 external.xml

9.2.3 Gateway

9.3 常用命令

9.3.1 状态相关命令

9.3.2 Profile相关命令

9.3.3 SIP Capture

9.3.4 global相关

9.3.5 debug相关

9.3.6 其他命令

9.3.7 其他

9.4 NAT穿越

9.4.1 NAT的种类

9.4.2 FreeSWITCH的拓扑结构

9.4.3 NAT是怎么影响SIP/RTP通信的

9.4.4 NAT的穿越方法

9.5 小结

第二部分 实战篇

第10章 基本技能

10.1 调试与排错

10.1.1 解决问题的一般方法和流程

10.1.2 查看日志

10.2 使用外部工具抓包

10.2.1 tcpdump

10.2.2 tshark

10.2.3 ngrep

10.2.4 pcapsipdump

10.3 使用Wireshark抓包并分析呼叫

10.3.1 使用Wireshark抓包

10.3.2 使用Wireshark对抓包进行分析

10.4 originate命令实例解析

10.4.1 使用格式和参数

10.4.2 转入Dialplan

10.4.3 更改主叫号码

10.4.4 处理呼叫超时

10.4.5 防止命令阻塞

10.4.6 使用通道变量

10.4.7 Early Media对呼叫的影响

10.4.8 bridge也使用originate

10.4.9 bridge中的Early Media

10.4.10 bridge中的主叫号码

10.5 呼叫是怎样工作的?

10.6 FreeSWITCH图形用户界面简介

10.6.1 FusionPBX

10.6.2 blue.box

10.6.3 FreeSWITCH Portal

10.7 小结

第11章 基本功能与实现

11.1 批量创建用户

11.2 用FreeSWITCH实现WR

11.2.1 最简单的菜单

11.2.2 默认IVR简介

11.3 按时间进行路由

11.4 配置中文语音提示

11.4.1 最简单的实现方案

11.4.2 使用sound prefix

11.4.3 使用Phrase

11.4.4 使用中文语音提示

11.5 录音

11.5.1 单腿录音

11.5.2 对两条腿的通话进行录音

11.5.3 立体声

11.5.4 录音相关的通道变量

11.5.5 原生格式

11.6 放音

11.6.1 playback的参数

11.6.2 循环播放

11.6.3 Say

11.7 TTS

11.7.1 使用mod flite

11.7.2 mod_tts_commandline

11.7.3 MRCP

11.7.4 Google Translate

11.7.5 TTS小结

11.8 在呼叫失败的情况下向主叫用户播放语音提示

11.8.1 实现方法

11.8.2 进阶

11.8.3 使用TTS

11.8.4 原理

11.9 实现呼叫前转业务

11.10 小结

第12章 高级功能与配置实例

12.1 使用mod_fifo实现简单呼叫队列

12.1.1 呼叫停泊与取回

12.1.2 配置座席

12.1.3 fifo

12.2 使用mod callcenter实现呼叫中心应用

12.2.1 mod_callcenter模块简介

12.2.2 座席配置与管理

12.3 数据库

12.3.1 默认数据库中有什么?

12.3.2 ODBC

12.3.3 使用数据库原生客户端库直接连接数据库

12.4 视频通话

12.4.1 配置视频通话

12.4.2 视频录像与回放

12.4.3 视频转码

12.5 多人电话会议

12.5.1 音频会议

12.5.2 视频会议

12.6 话单

12.6.1 CSV格式的话单

12.6.2 直接将话单写入数据库

12.6.3 使用HTTP服务器接收话单

12.7 计费

12.8 小结

第13章 FreeSWITCH与FreeSWITCH对接

13.1 在同一台主机上启动多个FreeSWITCH实例

13.1.1 背景故事

13.1.2 练习

13.1.3 进阶

13.2 FreeSWITCH与FreeSWITCH对接

13.2.1 双机对接

13.2.2 汇接

13.2.3 双归属

13.2.4 长途局

13.2.5 ACL

13.3 FreeSWITCH作为PBX

13.3.1 普通的PBX设置

13.3.2 DID

13.3.3 使用PBX上的网关呼出

13.4 小结

第14章 FreeSWITCH与其他设备或系统对接

14.1 使用Doubango客户端连接

14.2 对接IMS

14.2.1 网关配置

14.2.2 通过IMS呼出

14.2.3 通过IMS呼入

14.2.4 其他问题

14.3 连接模拟话机和模拟中继线

14.3.1 FXS和FXO

14.3.2 拓扑结构

14.3.3 使用潮流网关连接模拟话机

14.3.4 使用迅时网关连接模拟话机和模拟中继线

14.4 通过E1线路与其他系统对接

14.4.1 配置FS1

14.4.2 配置E1网关设备

14.4.3 配置FS2

14.4.4 对接其他厂家的E1网关

14.5 对接Asterisk

14.5.1 从FreeSWITCH呼叫Asterisk

14.5.2 从Asterisk上呼叫FreeSWITCH

14.5.3 其他

14.6 使用H.323协议对接

14.6.1 mod_h323

14.6.2 mod_opal

14.6.3 其他

14.7 小结

第15章 其他技巧与实例

15.1 转接和代接

15.1.1 盲转

15.1.2 协商转

15.1.3 代接

15.2 共享线路呈现

15.3 使用组播功能做网络广播

15.4 DTMF

15.4.1 带内DTMF

15.4.2 RFC2833

15.4.3 SIP INFO

15.5 号码连选

15.5.1 注册到运营商服务器

15.5.2 通过单个号码呼出

15.5.3 使用随机数做号码连选

15.5.4 使用mod distributor进行连选

15.5.5 其他

15.6 收发传真

15.7 多租户

15.7.1 Domain简介

15.7.2 配置与实例

15.7.3 进阶

15.7.4 其他

15.8 使用loopback Endpoint外呼

15.9 在Web浏览器中打电话

15.9.1 Flash

15.9.2 WebRTC

15.10 HA

15.10.1 崩溃恢复实验

15.10.2 HA简介

15.10.3 双机HA实现细节及需要注意的问题

15.11 集群及分布式部署

15.11.1 大规模集群的总体结构

15.11.2 负载均衡配置实例

15.12 压力测试

15.12.1 参数和指标

15.12.2 呼叫测试

15.12.3 注册测试

15.12.4 编解码测试

15.12.5 测试结果

15.13 生产环境下的稳定性和安全性

15.13.1 稳定性

15.13.2 安全性

15.14 小结

第三部分 高级篇

第16章 嵌入式脚本

16.1 FreeSWITCH中的嵌入式脚本

16.2 Lua

16.2.1 Lua语法简介

16.2.2 将电话路由到Lua脚本

16.2.3 Session相关函数

16.2.4 非Session函数和独立的Lua脚本

16.2.5 Event相关函数

16.2.6 Chat相关函数

16.2.7 LUA拨号计划

16.2.8 连接数据库

16.3 其他脚本语言

16.3.1 JavaScript

16.3.2 Python

16.4 小结

第17章 嵌入式及HTTP开发

17.1 用Lua脚本写个小游戏

17.2 用Lua实现IVR

17.3 在会议中呼出

17.4 一个在FreeSWITCH中外呼的脚本

17.5 使用Lua脚本通过多个网关循环外呼

17.6 在FreeSWITCH中执行长期运行的嵌入式脚本

17.7 使用Lua提供XML Binding

17.8 语音识别

17.8.1 使用Pocket Sphinx进行中文语音识别

17.8.2 通过商业语音识别软件进行识别

17.9 使用mod_xml_curl提供动态用户管理

17.10 使用mod_xml_cdr模块处理话单

17.11 小结

第18章 Event Socket

18.1 架构

18.1.1 外连模式

18.1.2 内连模式

18.2 Event Socket协议

18.2.1 外连

18.2.2 内连

18.2.3 Event Socket命令详解

18.3 Event Socket库

18.3.1 Event Socket示例

18.3.2 ESL函数说明

18.4 事件

18.4.1 事件的学习方法

18.4.2 常用事件简介

18.5 小结

第19章 使用ESL开发

19.1 创建独立的ESL应用

19.1.1 创建目录和源文件

19.1.2 编译和执行

19.1.3 将源代码纳入版本控制

19.2 用ESL重写空中充值服务

19.3 用ESL写一个ACD

19.4 用Inbound模式实现IVR

19.5 使用Java连接ESL

19.6 使用Erlang控制呼叫流程

19.6.1 准备工作

19.6.2 将来话交给Erlang处理

19.6.3 用Erlang实现空中充值服务

19.6.4 用Erlang状态机实现空中充值服务

19.6.5 其他

19.7 定时呼叫

19.8 小结

第20章 源代码导读及编译指南

20.1 准备FreeSWITCH源代码环境

20.2 FreeSWITCH源代码目录结构

20.3 FreeSWITCH源代码导读

20.3.1 APR

20.3.2 SWITCH APR

20.3.3 main函数

20.3.4 可加载模块

20.3.5 模块的结构

20.3.6 Session和Channel

20.3.7 SWITCH IVR

20.3.8 Core IO

20.3.9 Core Media

20.3.10 Core RTP

20.3.11 SWITCH XML

20.3.12 SWITCH Event

20.3.13 Core Codec和Core File

20.4 FreeSWITCH源代码的编译

20.4.1 首次编译

20.4.2 增量编译

20.4.3 常见问题及最佳实践

20.5 小结

第21章 FreeSWITCH源代码分析

21.1 mod_dptools

21.1.1 echo

21.1.2 answer

21.1.3 set

21.1.4 bridge

21.1.5 Endpoint Interface

21.1.6 模块框架

21.2 mod_commands

21.2.1 模块框架

21.2.2 originate

21.3 mod_sofia

21.3.1 模块加载

21.3.2 Sofia的加载及通话建立

21.4 小结

第22章 FreeSWITCH二次开发

22.1 给FreeSWITCH汇报Bug和打补丁

22.1.1 修复内存泄露问题

22.1.2 给中文模块打补丁

22.1.3 给FreeSWITCH核心打补丁

22.1.4 高手也会犯错误

22.1.5 汇报严重的问题

22.1.6 给Sofia-SIP打补丁

22.1.7 给现有App增加新功能

22.1.8 给FreeSWITCH增加一个新的Interface

22.2 写一个新的FreeSWITCH编解码模块

22.3 从头开始写一个模块

22.3.1 初始准备工作

22.3.2 写一个简单的Dialplan

22.3.3 增加一个App

22.3.4 写一个API

22.3.5 小结

22.4 使用libfreeswitch

22.4.1 自己写一个软交换机

22.4.2 使用libfreeswitch提供的库函数

22.4.3 其他

22.5 调试跟踪

22.6 小结

附录A FreeSWITCH开源软件社区指南

附录B 关于FreeSWITCH常用术语翻译的意见

附录C 模块列表

附录D FreeSWITCH架构详细示意图

后记


书查询(www.shuchaxun.com)本网页唯一编码:
f45abff32cca8d388dab3ff5c4319ad6#7c62d7368cc67f79b70248d805860475#111693069#FREESWITCH权威指南_13580939.zip