FreeSWITCH 简要使用教程
日积月累才有成长,拨苗助长毁人难悔
李浩
18621575908 上海宁卫信息技术有限公司
FreeSWITCH 简要使用教程
1
FreeSWITCH 简要使用教程
(草本)
李浩
18621575908
2014 年 10 月 12 日
李浩 18621575908 上海宁卫信息技术有限公司
FreeSWITCH 简要使用教程
版权声明
本文中所引用的一部分内容源于互联网,以及各个 QQ 群问答或讨论,当然更多是学
习于 https://confluence.freeswitch.org/ 或 http://wiki.freeswitch.org/ ,如果认为有代
码相关的 bug 或异常,可以提交给 https://freeswitch.org/jira ,具体更多的则由使用过程
中积累了。此文所有权属于所有互联网及使用 FreeSWITCH 的朋友们,整理发行由李浩进
行。
2
此文谨用于培训教材,不可用于其它商业性销售
http://www.freeswitch.net.cn
http://www.opentips.net.cn
QQ: 1354608370
Mail: lihao@nway.com.cn
Mobile:18621575908
李浩 18621575908 上海宁卫信息技术有限公司
3
FreeSWITCH 简要使用教程
目录
一、 通信发展历程 ......................................................................................................................... 7
1. 电话的发明者 .................................................................................................................... 7
2. 第一代结构 ........................................................................................................................ 7
3. 第二代.................................................................................................................................. 8
4. 第三代.................................................................................................................................. 8
5. 第四代.................................................................................................................................. 9
二、 呼叫中心和 IPPBX 的区别 ................................................................................................... 10
IPPBX 的说明 .......................................................................................................................... 10
呼叫中心的说明 ..................................................................................................................... 10
三、 FreeSWITCH 的安装 .............................................................................................................. 10
A. Windows 下安装 ................................................................................................................ 10
B. CentOS 下安装.................................................................................................................... 11
C. Debian 安装 ........................................................................................................................ 13
四、 FreeSWITCH 的音频通话 ...................................................................................................... 16
A. FreeSWITCH 启动及查看 ................................................................................................... 16
查看启动与否 ................................................................................................................. 19
fs_cli 连接不了本机的 freeswitch ................................................................................. 21
查看本机 freeswitch 的运行状态 .................................................................................. 21
查看 sip 相关的状态 ...................................................................................................... 21
添加一个新的用户 ......................................................................................................... 22
FreeSWITCH 中的路由配置 ............................................................................................ 22
B. linphone 配置 ..................................................................................................................... 23
C. linphone 通话及 FreeSWITCH 日志查看 ........................................................................... 24
五、 使用 FreeSWITCH 作为视频通话服务器 ............................................................................. 26
A. 配置视频相关 ................................................................................................................... 26
B. Linphone 配置视频通话..................................................................................................... 28
C.FreeSWITCH 视频会议相关 .............................................................................................. 29
六、 FreeSWITCH 与外线连接 ...................................................................................................... 29
A. 与 sangoma 板卡相连 ....................................................................................................... 29
B. 与网关或 Voip 外线连接 .................................................................................................. 29
七、 FreeSWITCH 与 WEBRTC ....................................................................................................... 30
A. 什么是 WEBRTC ................................................................................................................ 30
B. 让 FreeSWITCH 支持 WEBRTC ......................................................................................... 30
C. 使用 Jssip 来实现 webrtc 通话 ......................................................................................... 31
D. Sip.js 与 Odoo 与 FreeSWITCH 结合 .................................................................................. 31
八、 FreeSWITCH 的彩铃和 IVR ................................................................................................... 32
A. 来去电回应 ....................................................................................................................... 32
B. Ring 的格式及转码............................................................................................................. 32
C. IVR 配置 .............................................................................................................................. 32
九、 FreeSWITCH 的 API 与 APP .................................................................................................. 33
十、 FreeSWITCH Inbound 连接 ................................................................................................... 33
李浩 18621575908 上海宁卫信息技术有限公司
4
FreeSWITCH 简要使用教程
十一、 FreeSWITCH Outbound 连接 ............................................................................................ 34
十二、 FreeSWITCH 与 LUA .......................................................................................................... 35
A.什么是 Lua .......................................................................................................................... 35
B. 在 FreeSWITCH 中如何调用 Lua ....................................................................................... 36
C. 使用 lua 与数据库协助 FreeSWITCH 管理用户 ............................................................... 36
十三、 其它与 FreeSWITCH 相关的开发语言 ............................................................................. 36
十四、智能客服、外呼 ................................................................................................................. 37
十五、语音实时识别 ..................................................................................................................... 37
十六、FSGui 介绍 .......................................................................................................................... 38
附录: ............................................................................................................................................ 39
安装问题 ................................................................................................................................. 39
源码快速 git 地址 ........................................................................................................... 39
到底如何选择一个版本 ................................................................................................. 39
如何去编译某个模块 ..................................................................................................... 39
如何选择一个操作系统 ................................................................................................. 40
如何在 centos 上安装 libyuv,vpx,opus,libpng,libav ....................................................... 40
如何在 centos 上快速源码编译一套 freeswitch .......................................................... 41
如何让 freeswitch 支持 h264 ......................................................................................... 41
如何让 freeswitch 支持 postgresql ................................................................................ 42
使用问题 ................................................................................................................................. 42
如何增加一个分机帐号 ................................................................................................. 42
如何动态增加一个分机帐号 ......................................................................................... 42
FreeSWITCH 使用域名注册 ........................................................................................... 43
有关透传号码及由平台发起呼叫或回拨 ..................................................................... 43
如何采用 esl inbound 处理路由 .................................................................................... 43
如何采用 esl outbound 处理路由 ................................................................................. 43
如何向一个正在通话的通道中送 dtmf ........................................................................ 44
如何配置 mrcp ............................................................................................................... 44
Freeswitch 配置外呼并录音 .......................................................................................... 44
ESL 中获取是呼入 fs 还是由 fs 呼出的 ........................................................................ 45
ESL 中如何收 DTMF ........................................................................................................ 45
代码重启 fs ..................................................................................................................... 46
允许或限制多终端注册 ................................................................................................. 46
如何设置一个 FS 服务器支持的并发数? ................................................................... 46
如何设置一个 FS 服务器每秒呼叫数 ........................................................................... 46
如何设置一个 FS 服务器的 rtp 端口范围 .................................................................... 46
如何修改一个编码的 ptime .......................................................................................... 46
如何一直保持某个呼入不被挂断 ................................................................................. 46
将接通的电话转至 conference ...................................................................................... 47
从 fs_cli 查看相关具体的事件....................................................................................... 47
中止当前某个通道上的操作 ......................................................................................... 47
查看 fs 中相关 sip profile 信息 ...................................................................................... 47
开启 sip 包跟踪 .............................................................................................................. 47
变更日志级别 ................................................................................................................. 47
李浩 18621575908 上海宁卫信息技术有限公司
5
FreeSWITCH 简要使用教程
发送(180 RINGING)的效果 ....................................................................................... 47
重新注册网关 ................................................................................................................. 47
fs 监听某个通话 ............................................................................................................. 48
使用 esl 监听 .................................................................................................................. 48
Fs 同步系统时间 ............................................................................................................ 48
优化一、采用内存数据库 ............................................................................................. 49
优化二、使用 jemalloc .................................................................................................. 49
FreeSWITCH 与线路网关对接(IP 认证) ......................................................................... 50
FreeSWITCH 与线路采用密码验证 ................................................................................ 50
如何设置最长通话时间 ................................................................................................. 51
FreeSwitch 中用户不经过认证即可注册成功 .............................................................. 51
如何设置不听远程的彩铃,按自己的设置放彩铃 ..................................................... 51
设置呼转的号码是多个且同时振铃,当有一个接听后,其它就不再振铃 ............. 51
设置呼转的号码是多个且顺序振铃,当有一个接听后,其它就不再振铃 ............. 51
某个路由必须走某种编码 ............................................................................................. 52
如何在外呼时,让其送出的号码不是’0000000’ ......................................................... 52
控制通话的音量 ............................................................................................................. 52
fs 转发客户端的自定义头 ............................................................................................. 52
如何使用 postgresql 记录 freeswitch 话单 ................................................................... 52
修改 sdp 中的 fs 名称 .................................................................................................... 53
如何做一个 fs 的级联 .................................................................................................... 53
Fs 中如果放公网需要开放的端口(默认) ................................................................. 54
由平台先呼 a 再呼 b 时,先放彩铃再听回铃再接通 ................................................. 54
平台外呼后放音再转座席 ............................................................................................. 54
如何调整 jitterbuffer ..................................................................................................... 54
FreeSwitch 网关轮询模块 mod_distributor .................................................................. 54
遇到本机 8021fs_cli 连 fs 不上 ...................................................................................... 58
使用 webrtc 时没声音或提示 Remote Address Error! .................................................. 58
遇到总是提示 domain 被 acl 拒绝 ............................................................................... 58
刚安装好,使用时总是延时十秒才呼叫 ..................................................................... 59
修改默认密码 ................................................................................................................. 59
Webrtc 中 candidate 多个 ip 地址 ................................................................................ 59
fs 在内网,但要处理公网上的请求 ............................................................................. 60
关闭 rtp 自动调整 .......................................................................................................... 60
修改默认的 sip 端口 ...................................................................................................... 60
ULIMIT 配置 ................................................................................................................... 60
在哪里去检查语音通话的质量 ..................................................................................... 61
如何查看已注册的相关分机 ......................................................................................... 61
在 dialplan xml 中检查文件是否存在 ........................................................................... 61
如何调整 fs_cli 中日志显示的级别 ............................................................................... 61
呼叫保持和恢复 ............................................................................................................. 62
expand 的使用 ................................................................................................................ 62
limit_execute 的使用 ...................................................................................................... 62
控制呼叫频率 ................................................................................................................. 62
李浩 18621575908 上海宁卫信息技术有限公司
6
FreeSWITCH 简要使用教程
控制呼出总数 ................................................................................................................. 63
重新加载 external 配的网关 ......................................................................................... 63
呼叫保持和恢复 ............................................................................................................. 63
让通话接通后放音 ......................................................................................................... 63
如何让 fs 回复一个值,如 486 ..................................................................................... 63
放在内网的 goip 注册到公网中的 fs 如何呼叫 ........................................................... 63
如何判断是由先挂机 ..................................................................................................... 63
如何快速查看 fs 使用中的通道变量 ............................................................................ 64
Freeswitch 通道变量 ...................................................................................................... 64
选择 G711 还是 G729?................................................................................................. 80
添加 sip 头,用于非标的一些 sip server ...................................................................... 80
强行注销一个 sip 分机或重启 ...................................................................................... 81
让 fs 内核使用 postgresql 数据库 ................................................................................. 81
录音最短时间 ................................................................................................................. 81
当 b 路挂机后继续走路由 ............................................................................................. 81
freeswitch 将 sip 日志写入文件 .................................................................................... 81
如何设置 P-Asserted-Identity ........................................................................................ 82
让 freeswitch 通话进行变声 .......................................................................................... 82
限制 5080 送入需要认证才能呼叫 ............................................................................... 82
让客户端定时发送注册包 ............................................................................................. 82
让 fs 转发 info ................................................................................................................. 82
fs1.6.7 以后默认不转码处理 ......................................................................................... 82
调试 xml_curl .................................................................................................................. 83
用于控制 originate 的一些参数 .................................................................................... 83
示倒,用 pocketsphinx 实现的说省会城市就放音 ...................................................... 83
Auto Changing audio port 是什么设置导致的? ......................................................... 91
有的移动 ims 没有彩铃 ................................................................................................. 91
无法二次拨号,DTMF 不能用 ...................................................................................... 91
接通后报工号 ................................................................................................................. 91
fs 的 invite 中的几个头参数 ........................................................................................ 92
FreeSwitch 模块 mod_unimrcp 配置数据库化初探 ..................................................... 92
李浩 18621575908 上海宁卫信息技术有限公司
FreeSWITCH 简要使用教程
一、 通信发展历程
1. 电话的发明者
7
– 贝尔 – 1876 贝尔实验室
1888 年,德国青年物理学家海因里斯.赫兹(H.R.Hertz)用电波环进行了一系列实验,
发现了电磁波的存在,他用实验证明了麦克斯韦的电磁理论。这个实验轰动了整个科学界,
成为近代科学技术史上的一个重要里程碑,导致了无线电的诞生和电子技术的发展。
2. 第一代结构
4 人通话为例
在这种结构下,每条线都是专线,一户需要其它三户进行通话,则都是要拉三对专线,
成本非常大。假如从北京到上海要打电话,北京和上海各有两户,那么就需要在一千多公里
的里程中,拉三对线,而且为了传输性能和效率,必须是铜线,那么这个成本更是具大。
李浩 18621575908 上海宁卫信息技术有限公司
两条,有收有发