0%

FreeSWITCH权威指南(二)

什么是FreeSWITCH

FreeSWITCH是一个开源的电话交换平台。世界上第一个跨平台的、伸缩性极好的、免费的、多协议的电话软交换平台。

安装包

Index of /windows/installer

安装声音文件

在源代码目录下执行

1
2
3
4
5
make sounds-install
make moh-install
# 安装高清声音文件
make cd-sounds-install
make cd-moh-install

默认安装在/usr/local/freeswitch/sounds

安装路径

/usr/local/freeswitch

常用命令

bin/freeswitchbin/fs_cli

建立软连接

1
2
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/

FreeSWITCH默认号码

配置FreeSWITCH

配置文件默认放在 conf/ 下

添加网关

conf/sip_profiles/external创建一个网关的xml,例如gw-xxx.xml,可参考同目录下的example.xml,执行以下命令使之生效

1
2
3
4
5
6
7
8
# 使网关配置生效
freeswitch> sofia profile external scan
# 显示网关注册状态
freeswitch> sofia status
# 测试网关是否正常工作 gw1网关名称, xxxxx呼叫号码
freeswitch> originate sofia/gateway/gw1/xxxxx &echo
# 查看注册状态
freeswitch> sofia status profile internal reg

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 后台启动
freeswitch -nc
# 关闭
freeswitch -stop
# 关闭nat
freeswitch -nonat
# 判断freeswitch是否运行
ps aux|grep freeswitch
# 看相关端口是否被占用
netstat -an | grep 5060

# 发起呼叫
freeswitch> originate user/1000 &echo
# 挂起
freeswitch> originate user/1000 &park
# 等待同时播放保持音乐(Music on Hold,MOH)
freeswitch> originate user/1000 &hold
# 播放特定声音文件
freeswitch> originate user/1001 &playback(/root/welcome.wav)
# 录音
freeswitch> originate user/1001 &record(/root/voice_of_1001.wav)
# 桥接
freeswitch> originate user/1001 &bridge(user/1002)

FreeSWITCH还在conf/autoload_configs/switch.conf.xml“中定义了一些控制台快捷键。可以通过F1~F12这几个按键来使用它们,最常用的快捷键是F6(reloadxml)、F7(关闭log输出)、F8(开启debug级别的log输出)。

默认的配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<cli-keybindings>
<key name="1" value="help"/>
<key name="2" value="status"/>
<key name="3" value="show channels"/>
<key name="4" value="show calls"/>
<key name="5" value="sofia status"/>
<key name="6" value="reloadxml"/>
<key name="7" value="console loglevel 0"/>
<key name="8" value="console loglevel 7"/>
<key name="9" value="sofia status profile internal"/>
<key name="10" value="sofia profile internal siptrace on"/>
<key name="11" value="sofia profile internal siptrace off"/>
<key name="12" value="version"/>
</cli-keybindings>

fs_cli 支持很多命令行参数,例如: -x 参数,执行一条命令后退出

1
fs_cli -x version