当前位置:主页 > 书籍配套资源 > SWITCH配套资源
《FreeSWITCH权威指南》素材

《FreeSWITCH权威指南》素材

  • 更新:2022-04-10
  • 大小:4.4 MB
  • 类别:SWITCH
  • 作者:杜金房、张令考
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书是FreeSWITCH领域最为权威的著作之一,在这本书面前,FreeSWITCH了无秘密!

由中国FreeSWITCH领域“第一人”、全球FreeSWITCH开源社区知名专家、FreeSWITCH-CN中文社区创始人兼执行主席Seven撰写,FreeSWITCH之父鼎力推荐。内容极为全面,涵盖FreeSWITCH的方方面面,从它的系统结构、核心概念、各项功能和使用、维护的方法和要点、系统的调试与排除、系统的性能优化、到脚本开发、基于源代码的二次开发和内部实现原理,深度与广度兼备;实战性极强,从呼叫排队、多人电话会议、话单计费等基本的配置实例到生产环境中的应用实例,从单个的FreeSWITCH应用到FreeSWITCH集群,从脚本开发到基于源代码的二次开发,各种案例应用尽有,很多案例中的参数都可以拿来直接使用。

封面图

目录

  • 前言
  • 第一部分基础篇
  • 第1章PSTN与VoIP基础2
  • 1.1PSTN起源与发展2
  • 1.1.1最早的电话网2
  • 1.1.2人工电话交换时代3
  • 1.1.3自动电话交换时代3
  • 1.1.4半电子交换机时代6
  • 1.1.5空分交换机时代6
  • 1.1.6数字交换机时代6
  • 1.1.7现代PSTN时代6
  • 1.1.8下一代网络及VoIP时代6
  • 1.2电话实现技术8
  • 1.2.1电话号码8
  • 1.2.2模拟信号与数字信号11
  • 1.2.3PCM11
  • 1.2.4局间中继与电路复用技术12
  • 1.3我国电话网结构12
  • 1.4信令14
  • 1.4.1信令分类14
  • 1.4.2用户线信令15
  • 1.4.3局间信令15
  • 1.4.4七号信令16
  • 1.4.5H.323与SIP信令17
  • 1.5媒体19
  • 1.6电路交换与分组交换20
  • 1.6.1电路交换20
  • 1.6.2分组交换20
  • 1.7VoIP21
  • 1.8IMS22
  • 1.8.1什么是IMS22
  • 1.8.2IMS的特点22
  • 1.8.3IMS核心网元23
  • 1.8.4SIP协议的参考点26
  • 1.9小结27
  • 第2章PSTN、PBX及呼叫中心业务28
  • 2.1PSTN业务28
  • 2.1.1POTS28
  • 2.1.2商务业务30
  • 2.1.3其他增值业务30
  • 2.2PBX业务31
  • 2.2.1呼叫转移31
  • 2.2.2同组代答31
  • 2.3PBX与中继线31
  • 2.4IP-PBX业务34
  • 2.5呼叫中心35
  • 2.5.1什么是呼叫中心35
  • 2.5.2呼叫中心的历史36
  • 2.5.3呼叫中心的分类37
  • 2.5.4呼叫中心的主要技术指标39
  • 2.5.5CTI中间件40
  • 2.5.6FreeSWITCH在呼叫中心的应用41
  • 2.6小结42
  • 第3章初识FreeSWITCH43
  • 3.1什么是FreeSWITCH ?43
  • 3.1.1FreeSWITCH的概念43
  • 3.1.2FreeSWITCH的功能45
  • 3.2快速体验46
  • 3.2.1安装基本FreeSWITCH系统46
  • 3.2.2连接SIP电话57
  • 3.3配置FreeSWITCH61
  • 3.4FreeSWITCH用作软电话63
  • 3.5配置SIP网关拨打外部电话64
  • 3.5.1从某一分机上呼出65
  • 3.5.2呼入电话处理66
  • 3.6小结66
  • 第4章运行FreeSWITCH67
  • 4.1命令行参数67
  • 4.2系统启动脚本68
  • 4.3判断 FreeSWITCH 是否运行69
  • 4.4控制台与命令客户端69
  • 4.5呼叫72
  • 4.5.1发起呼叫72
  • 4.5.2呼叫字符串72
  • 4.6API 与 App73
  • 4.7API命令帮助75
  • 4.8小结76
  • 第5章FreeSWITCH架构77
  • 5.1总体架构77
  • 5.1.1核心77
  • 5.1.2接口实现81
  • 5.2目录结构83
  • 5.3配置文件85
  • 5.3.1freeswitch.xml86
  • 5.3.2vars.xml88
  • 5.3.3autoload_configs 目录89
  • 5.3.4其他90
  • 5.4XML 用户目录91
  • 5.5呼叫相关概念93
  • 5.5.1来去话、Session 、Channel与Call93
  • 5.5.2回铃音与 Early Media94
  • 5.5.3全局变量与局部变量94
  • 5.6小结95
  • 第6章拨号计划96
  • 6.1XML Dialplan96
  • 6.1.1配置文件的结构96
  • 6.1.2默认的配置文件简介99
  • 6.1.3正则表达式100
  • 6.1.4通道变量101
  • 6.1.5测试条件105
  • 6.1.6动作与反动作108
  • 6.1.7工作机制深入剖析109
  • 6.1.8内联执行111
  • 6.1.9实例解析112
  • 6.2inline Dialplan118
  • 6.3其他Dialplan120
  • 6.4常用的Dialplan App120
  • 6.5在Dialplan中使用API命令123
  • 6.6深入理解通道变量及相关操作124
  • 6.7小结125
  • 第7章SIP协议126
  • 7.1SIP协议基础126
  • 7.1.1HTTP与SIP协议基础127
  • 7.1.2SIP的基本概念和相关元素129
  • 7.1.3SIP协议的基本方法和头域简介131
  • 7.2SIP注册132
  • 7.3SIP呼叫流程135
  • 7.3.1UA间直接呼叫136
  • 7.3.2通过 B2BUA 呼叫137
  • 7.4深入理解SIP147
  • 7.4.1SIP URI147
  • 7.4.2SDP和SOA147
  • 7.4.33PCC151
  • 7.4.4SIP承载152
  • 7.5小结152
  • 第8章媒体154
  • 8.1媒体与媒体处理154
  • 8.1.1音频编码154
  • 8.1.2媒体工作机理和相关配置159
  • 8.2媒体协商160
  • 8.2.1协商过程160
  • 8.2.2SDP及其在编码协商中的作用161
  • 8.2.3协商时机与策略163
  • 8.3其他媒体相关的问题163
  • 8.3.1RTP和RTCP163
  • 8.3.2转码165
  • 8.3.3透传、媒体绕过与媒体代理167
  • 8.3.4Media Bug168
  • 8.3.5视频168
  • 8.3.6排错169
  • 8.4小结170
  • 第9章SIP模块171
  • 9.1基本概念171
  • 9.2Sofia配置文件172
  • 9.2.1Profile配置文件173
  • 9.2.1Profile的几个重要参数175
  • 9.2.2external.xml177
  • 9.2.3Gateway179
  • 9.3常用命令181
  • 9.3.1状态相关命令181
  • 9.3.2Profile相关命令182
  • 9.3.3SIP Capture183
  • 9.3.4global相关184
  • 9.3.5debug相关184
  • 9.3.6其他命令185
  • 9.3.7其他186
  • 9.4NAT穿越186
  • 9.4.1NAT的种类188
  • 9.4.2FreeSWITCH的拓扑结构189
  • 9.4.3NAT是怎么影响SIP/RTP通信的190
  • 9.4.4NAT的穿越方法191
  • 9.5小结198
  • 第二部分实战篇
  • 第10章基本技能200
  • 10.1调试与排错200
  • 10.1.1解决问题的一般方法和流程200
  • 10.1.2查看日志203
  • 10.2使用外部工具抓包205
  • 10.2.1tcpdump205
  • 10.2.2tshark206
  • 10.2.3ngrep207
  • 10.2.4pcapsipdump208
  • 10.3使用Wireshark抓包并分析呼叫208
  • 10.3.1使用Wireshark抓包209
  • 10.3.2使用Wireshark对抓包进行分析210
  • 10.4originate命令实例解析213
  • 10.4.1使用格式和参数213
  • 10.4.2转入Dialplan214
  • 10.4.3更改主叫号码215
  • 10.4.4处理呼叫超时215
  • 10.4.5防止命令阻塞216
  • 10.4.6使用通道变量216
  • 10.4.7Early Media对呼叫的影响217
  • 10.4.8bridge也使用originate217
  • 10.4.9bridge中的Early Media218
  • 10.4.10bridge中的主叫号码219
  • 10.5呼叫是怎样工作的?220
  • 10.6FreeSWITCH图形用户界面简介223
  • 10.6.1FusionPBX223
  • 10.6.2blue.box223
  • 10.6.3FreeSWITCH Portal224
  • 10.7小结226
  • 第11章基本功能与实现227
  • 11.1批量创建用户227
  • 11.2用FreeSWITCH实现IVR229
  • 11.2.1最简单的菜单229
  • 11.2.2默认IVR简介232
  • 11.3按时间进行路由233
  • 11.4配置中文语音提示234
  • 11.4.1最简单的实现方案234
  • 11.4.2使用sound_prefix235
  • 11.4.3使用Phrase236
  • 11.4.4使用中文语音提示238
  • 11.5录音239
  • 11.5.1单腿录音239
  • 11.5.2对两条腿的通话进行录音240
  • 11.5.3立体声241
  • 11.5.4录音相关的通道变量242
  • 11.5.5原生格式243
  • 11.6放音244
  • 11.6.1playback的参数244
  • 11.6.2循环播放248
  • 11.6.3Say249
  • 11.7TTS251
  • 11.7.1使用mod_flite251
  • 11.7.2mod_tts_commandline252
  • 11.7.3MRCP256
  • 11.7.4Google Translate257
  • 11.7.5TTS小结258
  • 11.8在呼叫失败的情况下向主叫用户播放语音提示259
  • 11.8.1实现方法259
  • 11.8.2进阶260
  • 11.8.3使用TTS261
  • 11.8.4原理262
  • 11.9实现呼叫前转业务263
  • 11.10小结265
  • 第12章高级功能与配置实例266
  • 12.1使用mod_fifo实现简单呼叫队列266
  • 12.1.1呼叫停泊与取回266
  • 12.1.2配置座席268
  • 12.1.3fifo270
  • 12.2使用mod_callcenter实现呼叫中心应用272
  • 12.2.1mod_callcenter模块简介273
  • 12.2.2座席配置与管理274
  • 12.3数据库277
  • 12.3.1默认数据库中有什么?277
  • 12.3.2ODBC279
  • 12.3.3使用数据库原生客户端库直接连接数据库282
  • 12.4视频通话283
  • 12.4.1配置视频通话283
  • 12.4.2视频录像与回放285
  • 12.4.3视频转码285
  • 12.5多人电话会议286
  • 12.5.1音频会议286
  • 12.5.2视频会议292
  • 12.6话单297
  • 12.6.1CSV格式的话单297
  • 12.6.2直接将话单写入数据库298
  • 12.6.3使用HTTP服务器接收话单299
  • 12.7计费300
  • 12.8小结302
  • 第13章FreeSWITCH与FreeSWITCH对接303
  • 13.1在同一台主机上启动多个FreeSWITCH实例303
  • 13.1.1背景故事304
  • 13.1.2练习305
  • 13.1.3进阶306
  • 13.2FreeSWITCH与FreeSWITCH对接306
  • 13.2.1双机对接306
  • 13.2.2汇接308
  • 13.2.3双归属309
  • 13.2.4长途局311
  • 13.2.5ACL311
  • 13.3FreeSWITCH作为PBX312
  • 13.3.1普通的PBX设置313
  • 13.3.2DID315
  • 13.3.3使用PBX上的网关呼出319
  • 13.4小结319
  • 第14章FreeSWITCH与其他设备或系统对接321
  • 14.1使用Doubango客户端连接321
  • 14.2对接IMS322
  • 14.2.1网关配置323
  • 14.2.2通过IMS呼出324
  • 14.2.3通过IMS呼入324
  • 14.2.4其他问题325
  • 14.3连接模拟话机和模拟中继线326
  • 14.3.1FXS和FXO326
  • 14.3.2拓扑结构327
  • 14.3.3使用潮流网关连接模拟话机328
  • 14.3.4使用迅时网关连接模拟话机和模拟中继线329
  • 14.4通过E1线路与其他系统对接335
  • 14.4.1配置FS1335
  • 14.4.2配置E1网关设备340
  • 14.4.3配置FS2342
  • 14.4.4对接其他厂家的E1网关345
  • 14.5对接Asterisk346
  • 14.5.1从FreeSWITCH呼叫Asterisk346
  • 14.5.2从Asterisk上呼叫FreeSWITCH347
  • 14.5.3其他347
  • 14.6使用H.323协议对接348
  • 14.6.1mod_h323348
  • 14.6.2mod_opal350
  • 14.6.3其他351
  • 14.7小结351
  • 第15章其他技巧与实例353
  • 15.1转接和代接353
  • 15.1.1盲转353
  • 15.1.2协商转356
  • 15.1.3代接357
  • 15.2共享线路呈现358
  • 15.3使用组播功能做网络广播360
  • 15.4DTMF361
  • 15.4.1带内DTMF361
  • 15.4.2RFC2833362
  • 15.4.3SIP INFO363
  • 15.5号码连选363
  • 15.5.1注册到运营商服务器364
  • 15.5.2通过单个号码呼出364
  • 15.5.3使用随机数做号码连选365
  • 15.5.4使用mod_distributor进行连选365
  • 15.5.5其他366
  • 15.6收发传真367
  • 15.7多租户368
  • 15.7.1Domain简介368
  • 15.7.2配置与实例370
  • 15.7.3进阶372
  • 15.7.4其他373
  • 15.8使用loopback Endpoint外呼373
  • 15.9在Web浏览器中打电话375
  • 15.9.1Flash376
  • 15.9.2WebRTC379
  • 15.10HA382
  • 15.10.1崩溃恢复实验382
  • 15.10.2HA简介383
  • 15.10.3双机HA实现细节及需要注意的问题384
  • 15.11集群及分布式部署386
  • 15.11.1大规模集群的总体结构386
  • 15.11.2负载均衡配置实例387
  • 15.12压力测试392
  • 15.12.1参数和指标392
  • 15.12.2呼叫测试393
  • 15.12.3注册测试395
  • 15.12.4编解码测试396
  • 15.12.5测试结果396
  • 15.13生产环境下的稳定性和安全性396
  • 15.13.1稳定性397
  • 15.13.2安全性397
  • 15.14小结398
  • 第三部分高级篇
  • 第16章嵌入式脚本400
  • 16.1FreeSWITCH中的嵌入式脚本400
  • 16.2Lua401
  • 16.2.1Lua语法简介402
  • 16.2.2将电话路由到Lua脚本408
  • 16.2.3Session 相关函数408
  • 16.2.4非Session函数和独立的Lua脚本412
  • 16.2.5Event相关函数412
  • 16.2.6Chat相关函数415
  • 16.2.7LUA拨号计划416
  • 16.2.8连接数据库417
  • 16.3其他脚本语言419
  • 16.3.1JavaScript419
  • 16.3.2Python420
  • 16.4小结421
  • 第17章嵌入式及HTTP开发423
  • 17.1用Lua脚本写个小游戏423
  • 17.2用Lua实现IVR425
  • 17.3在会议中呼出429
  • 17.4一个在FreeSWITCH中外呼的脚本431
  • 17.5使用Lua脚本通过多个网关循环外呼433
  • 17.6在FreeSWITCH中执行长期运行的嵌入式脚本434
  • 17.7使用Lua提供XML Binding436
  • 17.8语音识别437
  • 17.8.1使用Pocket Sphinx进行中文语音识别438
  • 17.8.2通过商业语音识别软件进行识别444
  • 17.9使用mod_xml_curl提供动态用户管理446
  • 17.10使用mod_xml_cdr模块处理话单448
  • 17.11小结450
  • 第18章Event Socket452
  • 18.1架构452
  • 18.1.1外连模式453
  • 18.1.2内连模式454
  • 18.2Event Socket协议454
  • 18.2.1外连455
  • 18.2.2内连456
  • 18.2.3Event Socket命令详解457
  • 18.3Event Socket库465
  • 18.3.1Event Socket示例465
  • 18.3.2ESL函数说明470
  • 18.4事件475
  • 18.4.1事件的学习方法475
  • 18.4.2常用事件简介476
  • 18.5小结478
  •  
  • 第19章使用ESL开发479
  • 19.1创建独立的ESL应用479
  • 19.1.1创建目录和源文件479
  • 19.1.2编译和执行480
  • 19.1.3将源代码纳入版本控制481
  • 19.2用ESL重写空中充值服务482
  • 19.3用ESL写一个ACD490
  • 19.4用Inbound模式实现IVR496
  • 19.5使用Java连接ESL501
  • 19.6使用Erlang控制呼叫流程502
  • 19.6.1准备工作503
  • 19.6.2将来话交给Erlang处理504
  • 19.6.3用Erlang实现空中充值服务506
  • 19.6.4用Erlang状态机实现空中充值服务509
  • 19.6.5其他514
  • 19.7定时呼叫516
  • 19.8小结517
  • 第20章源代码导读及编译指南518
  • 20.1准备FreeSWITCH源代码环境518
  • 20.2FreeSWITCH源代码目录结构519
  • 20.3FreeSWITCH源代码导读519
  • 20.3.1APR520
  • 20.3.2SWITCH APR520
  • 20.3.3main函数522
  • 20.3.4可加载模块524
  • 20.3.5模块的结构530
  • 20.3.6Session和Channel531
  • 20.3.7SWITCH IVR536
  • 20.3.8Core IO537
  • 20.3.9Core Media540
  • 20.3.10Core RTP541
  • 20.3.11SWITCH XML543
  • 20.3.12SWITCH Event544
  • 20.3.13Core Codec 和 Core File547
  • 20.4FreeSWITCH源代码的编译548
  • 20.4.1首次编译549
  • 20.4.2增量编译550
  • 20.4.3常见问题及最佳实践551
  • 20.5小结552
  • 第21章FreeSWITCH源代码分析553
  • 21.1mod_dptools553
  • 21.1.1echo553
  • 21.1.2answer555
  • 21.1.3set557
  • 21.1.4bridge559
  • 21.1.5Endpoint Interface563
  • 21.1.6模块框架564
  • 21.2mod_commands566
  • 21.2.1模块框架566
  • 21.2.2originate566
  • 21.3mod_sofia567
  • 21.3.1模块加载568
  • 21.3.2Sofia的加载及通话建立568
  • 21.4小结576
  • 第22章FreeSWITCH二次开发577
  • 22.1给FreeSWITCH汇报Bug和打补丁577
  • 22.1.1修复内存泄露问题577
  • 22.1.2给中文模块打补丁578
  • 22.1.3给FreeSWITCH核心打补丁579
  • 22.1.4高手也会犯错误581
  • 22.1.5汇报严重的问题581
  • 22.1.6给Sofia-SIP打补丁582
  • 22.1.7给现有App增加新功能584
  • 22.1.8给FreeSWITCH增加一个新的Interface586
  • 22.2写一个新的FreeSWITCH编解码模块587
  • 22.3从头开始写一个模块589
  • 22.3.1初始准备工作589
  • 22.3.2写一个简单的Dialplan590
  • 22.3.3增加一个App592
  • 22.3.4写一个API593
  • 22.3.5小结594
  • 22.4使用libfreeswitch594
  • 22.4.1自己写一个软交换机594
  • 22.4.2使用libfreeswitch提供的库函数595
  • 22.4.3其他599
  • 22.5调试跟踪600
  • 22.6小结601
  • 附录AFreeSWITCH开源软件社区指南603
  • 附录B关于FreeSWITCH常用术语翻译的意见605
  • 附录C模块列表607
  • 附录DFreeSWITCH架构详细示意图614
  • 后记615

资源下载

资源下载地址1:https://pan.baidu.com/s/1316fmOmqKfnErerSiI8A-w

网友留言