一 安装freeswitch
环境centos6
1.安装前需要用到的RPM包和一些基础的软件包。
#rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
#yum install git gcc-c++ autoconf automake libtool wget python ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel
----------------------------------------------------------
2.使用git源去获取freeswitch的软件源代码。(注意在目录/usr/src下)
#cd /usr/src
###通过以下命令是获取最新版本的freeswitch
#git clone https://freeswitch.org/stash/scm/fs/freeswitch.git
###如果知道版本可以通过以下命令
git clone -b v1.4 https://freeswitch.org/stash/scm/fs/freeswitch.git
3.初始化安装freeswitch的某些编译环境,配置环境,以及编译安装。
#./bootstrap.sh -j
#./configure -C
#make && make install
----------------------------------------------------------
3.通过压缩源码安装包来安装
1)使用wget获取源代码安装包
1.获取代码
wget http://files.freeswitch.org/freeswitch-1.4.0.beta6.tar.bz2
2.解压包
chmod 777 freeswitch-1.4.0.beta6.tar.bz2
tar xvjf freeswitch-1.4.0.beta6.tar.bz2
3.配置和安装
cd freeswitch-1.4.0
./configure
make install
(用get源代码到安装好一部到位可以是用此命令:wget http://www.freeswitch.org.cn/Makefile && make install)
FreeSWITCH使用make install安装完成后,会显示一个有用的帮助,它会提示你接下来可以用哪些make命令执行一些其他的操作(如我们刚才安装声音文件的命令,在这里就可以看到)。下面笔者在默认的帮助信息后增加了一些中文的注释,读者可以在学习中自行练习一下。
1. +---------- FreeSWITCH install Complete ----------+
2. + FreeSWITCH has been successfully installed. +
3. + +
4. + Install sounds: + 安装声音文件
5. + (uhd-sounds includes hd-sounds, sounds) +
6. + (hd-sounds includes sounds) +
7. + ------------------------------------ +
8. + make cd-sounds-install + CD音质的声音文件
9. + make cd-moh-install +
10. + +
11. + make uhd-sounds-install + 超高清声音文件
12. + make uhd-moh-install +
13. + +
14. + make hd-sounds-install + 高清声音文件
15. + make hd-moh-install +
16. + +
17. + make sounds-install + 标准声音文件
18. + make moh-install +
19. + +
20. + Install non english sounds: + 安装其他语言的声音文件
21. + replace XX with language +
22. + (ru : Russian) + 如ru代表俄语
23. + ------------------------------------ +
24. + make cd-sounds-XX-install +
25. + make uhd-sounds-XX-install +
26. + make hd-sounds-XX-install +
27. + make sounds-XX-install +
28. + +
29. + Upgrade to latest: + 升级到最新版本
30. + ---------------------------------- +
31. + make current +
32. + +
33. + Rebuild all: + 重新编译
34. + ---------------------------------- +
35. + make sure +
36. + +
37. + Install/Re-install default config: + 安装(或重新安装)配置文件
38. + ---------------------------------- +
39. + make samples +
40. + +
41. + Additional resources: +
42. + ---------------------------------- +
43. + http://www.freeswitch.org + 官方网站
44. + http://wiki.freeswitch.org + 官方Wiki
45. + http://jira.freeswitch.org + 官方的缺陷跟踪工具
46. + http://lists.freeswitch.org + 邮件列表
47. + +
48. + irc.freenode.net / #freeswitch + IRC聊天室
49. +-------------------------------------------------+
4.安装声音文件
#pwd
make cd-sounds-install
make cd-moh-install
此过程需要一段时间。
至此,FreeSWITCH就已经安装完了。在UNIX类操作系统上,其默认的安装位置是/usr/local/freeswitch(下文所述的路径全部相对于该路径)。两个常用的命令是 bin/freeswitch 和 bin/fs_cli(我们下面会讲到它们的用法),为了便于使用,建议将这两个命令做符号链接放到你的搜索路径中,如:
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/
不管FreeSWITCH运行在前面还是后台,都可以使用客户端软件fs_cli连接到它并对它进行控制。使用方法为:
/usr/local/freeswwitch/bin/fs_cli
当然,如果上面已经做了符号连接也可以直接运行fs_cli。任何时间想退出fs_cli客户端,都可以输入/exit或按Ctrl + D组合键,也可以直接关掉终端窗口。
关闭freeswitch的命令是
freeswitch -stop
freeswitch -nc #freeswitch在后台启nc:no console
二 连接SIP电话
在这里用软电话x-lite为例。
环境在同一个局域网上安装x-lite并且保证麦克风和听筒能够正常工作。
当然,如果你没有多余的机器做这个实验,也可以在同一台机器上安装。只是需要注意,软电话不要占用 UDP 5060 端口,因为 FreeSWITCH 默认要使用该端口,你可以通过先启动 FreeSWITCH 再启动软电话来避免该问题(后者如果在启动时发现5060端口已被占用,一般会尝试选择其他端口),另外有些软电话允许你修改本地监听端口。
通过以下命令可以知道freeswitch监听的IPaddress
netstat -an | grep 5060
FreeSWITCH 默认配置了1000 ~ 1019共 20 个用户,你可以随便选择一个用户进行配置,配置过程如下:
1)在 X-Lite 上右击,选“Sip Account Settings...”,单击“Add”添加一个账号,填入以下参数:
1. Display Name: 1000
2. User name: 1000
3. Password: 1234
4. Authorization user name: 1000
Domain: 你的IP地址,就是安装freeswitch机器的动态地址。
2)其他项默认设置即可,而后单击“OK”.关闭setting窗口。接着可以在x-lite显示窗口上看到类似与“Ready. Your username is 1000”,并且拨打号码键也变为绿色。
3)用sip电话拨打9664按下绿色拨打键,看是否能听到声音。
如果没有声音就检查听筒是否坏了,如果正常检查声音安装文件是否成功。
测试声音拨打号码参考如下网站
http://wiki.freeswitch.org/wiki/Default_Dialplan_QRF
注册另外一个sip软电话,用于两电话之间互相接通。
最好是在同一个局域网中的另外一台机器上启动另一个X-Lite ,并使用 1001 注册,注册完毕后就可以在1000上呼叫 1001,或在1001上呼叫1000 。也可以在同一台机器上安装,但是可以回影响通话质量,因为只有一张声卡。
三 配置freeswitch
Freeswitch的配置文件默认放置在conf/下,最顶层文件是freeswitch.xml
一.添加一个简单的用户。
FreeSWITCH默认设置了20个用户(1000~1019),如果添加其其他的用户只需要执行下面三个步骤即可:
1)在 /conf/insideout/directory/default中增加一个用户配置文件。
2)修改拨号计划(Dialplan)使其他用户可以呼叫到它。
3)重新加载配置使其生效。
例如廷加joy 用户分机号为123456,只需要到 conf/directory/default 目录下,将 1000.xml 复制到 ,123456.xml中。打开123456.xml,将所有1000都改为123456。
<include>
<user id="1000" mailbox="1000">
<params>
<param name="password" value="1234"/>
<param name="vm-password" value="1000"/>
</params>
<variables>
<variable name="toll_allow" value="domestic,international,local"/>
<variable name="accountcode" value="1000"/>
<variable name="user_context" value="default"/>
<variable name="effective_caller_id_name" value="Extension 1000"/>
<variable name="effective_caller_id_number" value="1000"/>
<variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
<variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
<variable name="callgroup" value="techsupport"/>
</variables>
</user>
</include>
并把 effective_caller_id_name 的值改为joy,然后存盘退出,命令如下:
1. <variable name="effective_caller_id_name" value="Jack"/>
接下来,打开 conf/dialplan/default.xml,找到下面一行
1. <condition field="destination_number" expression="^(10[01][0-9])$">
将其改为
1. <condition field="destination_number" expression="^(10[01][0-9]|1234)$">
注释:正则表达式“^(10[01][0-9])$”匹配被叫号码1000~1019。因此我们修改之后的表达式就多匹配了一个123456。
然后,回到控制台或启动fs_cli,执行reloadxml命令或按快捷F6,使新的配置生效。