吴伟贤のBlog

Feed Rss

FreeSWITCH 1.0.6 第二章-编译安装(一)

07.20.2013, freeswitch, by .

转自:http://www.8000hz.com/archives/14.html

 

第二章:Building and Installation

编译和安装
FreeSWITCH 是开源的软件,简单来说就是任何人都可以获得程序的源代码,阅读,编译, mangle, 修改,或是任何你想到的。许多用户,大部分是初学者,会发现与源代码打交道是一项艰巨的任务。但请放心,我们会尽我们最大的努力让这个经历一点都不痛苦。将来,我们会为一个比较流行linux发行版添加编译好的二进制包,但暂时,我们会阐明如何手动获取和安装Freeswitch在Unix和Windows上(为了本章节的目地,称为”类UNIX”和”linux/unix”不仅仅是指unix和linux,也包含FreeBSD和Mac OSX.)如何这个过程看起来是无法战胜的请不要烦恼, 多一些耐心和运气,整个过程会很顺利的。这有些像牙根管。听说很多牙根管会在没有受力的情况下脱落,但他们错了,他们完全的错了。我们全部都是听说的这就是这个恐怖的故事来源。
在此章节中,我们会论述如何下载源码和通过源码为类UNIX操作系统安装FreeSWICH,同样还有Windows.我们会为每个操作系统介绍必要的准备工作。最后,我们会讲解如何去运行FreeSWITCH和如何在后台运行FreeSWITCH.
在这个章节中,我们会涉及以下内容:
•安装FreeSWITCH
•设置FreeSWITCH的编译环境
•下载和安装FreeSWITCH
•运行FreeSWITCH和后台进行
•我们商业的第一步是铺设地基,打好基础
Setting up the FreeSWITCH environment
构建FreeSWITCH环境
FreeSWITCH和大多数软件应用一样都需要一个适当的运行环境。
主要就是说为你的硬件选择适当的操作系统和LAN/WAN的网络连接良好以及物理环境。
Operating system
操作系统
在这里我们要考虑的第一个问题是操作系统: 我们应该使用哪一个操作系统呢?
通常来说,选择你熟悉和觉得爽的操作系统是比较好的。还有一个考虑就是32位VS64位。一些用户告知当在64位的硬件上运行32位的OS会有问题。我们强烈建议如果你有64位的硬件环境就使用64位的操作系统。
如果你更愿意用windows的话你可以选择XP,VISTA,WINDOWS7, Server 2003或server 2008.部分用户回复在发烧的硬件上成功构建一个生产环境中的通信系统,使用的就是windows server 2008.
另一方面,非常多的类UNIX操作系统可以选择,并且大多数它们是可以免费下载的。我们中的大多数都会有一个自己喜欢用的操作系统(linux,BSD,Solaris等等)和发行版(CentOS, Debian, Ubuntu等等)。FreeSWITCH的开发者不会鼓吹任何特定的操作系统或发行版。
有人问在哪个平台下运行FreeSWITCH是最好的。选择一个选择电话系统的平台要有很多的因素需要考虑。FreeSWITCH是跨平台的,因此,它可以在很多平台上被编译和运行。然而,来之不易的经验告诉我们哪一个操作系统和发行版给与我们real-time电话应用。你的底线是系统要稳定和可靠。我们的经验是在RHEL上安装或它的”堂弟”(CentOS), RHEL和CentOS提供最佳的性能和最少的故障。
有些人把RHEL和CentOS描述成“枯燥且缺乏创新”。这些品质正是运行像FreeSWITCH这样的实时电话系统所需要的。
Operating system prerequisites
系统准备工作
每个操作系统的准备工作都是不同的。请确定你看的是你系统平台的准备工作。
Linux/Unix
下面的选项通常情况下都已经安装在你的系统上了。提醒一个SVN或GIT客户端并不是必须的:
•SVN: A Subversion (SVN) client gives you access to the current code repository (recommended for those who simply want the latest code)
•Git: A Git client also gives you access to the current code repository (recommended especially for developers)
•GNUMAKE: The GNU version of make
•AUTOCONF: Version 2.60 or higher
•AUTOMAKE: Version 1.9 or higher
•LIBTOOL: Version 1.5.14 or higher
•GCC: Version 3.3 or higher
•WGET: Any recent version
•LIBNCURSES: Any recent version
Mac OS X
强烈建议Mac用户至少拥有OS X Version 10.4.
在OSX系统上编译FreeSWITCH需要安装Apple XCODE开发工具。你可以从http://connect.apple.com下载,需要注册,免费。
Windows

在windows环境上FreeSWITCH需要两个主要的要求。以下:
1. Microsoft Visual C++ 2008 (or 2008 Express Edition)
2. A fle decompression utility(解压缩工具)
在windows上编译和构建FreeSWITCH用到Microsoft Visual C++ 2008
(MSVC) 或 Visual C++ 2008 Express Edition (MSVCEE).

Express版本是免费下载的尽管同样需要注册。
下载地址http://www.microsoft.com/Express/VC
另一个对于windows环境下的必要条件是一个文件压缩工具像WinZip(www.winzip.com)或WinRAR(www.rarlab.com).另一个免费的工具可供选择7-Zip(www.7-zip.org).这些工具都会在你的windows资源管理器(Windows Explorer)右键菜单里多出一个选项。
Text editors and XML
文本编辑器和XML
与FreeSWITCH打交道你需要一个你比较习惯的文本编辑器。
不管你更喜欢哪种文本编辑器,我们强烈建议你使用一个支持XML语法高亮的。
你会发现编辑XML配置文件时开启了高亮会相对更容易些。
如果你还没有一个自己较终爱的编辑器,我们建议你在你的平台上多尝试几种。
请注意,如果你在使用一个没有GUI(图形用户接口)的linux/Unix环境的话,那么你的选择会很少。
不过,依然有几款优秀的文本编辑器:
Emacs—这个文本编辑器是在类unix环境下使用的,包括Mac OSX. 它可以高亮源代码,XML, HTML,等等。FreeSWITCH的开发小组就使用的这个编辑器(EMACS同样拥有GUI版本。)
Vi/Vim—这个文件编码器也是仅仅适用在类UNIX环境下。像EMACS一样它也是可以高亮源代码和标记型语言。(同样也有GUI版本)
Notepad++—这是一个WINDOWS环境下的图形文本编辑器。它支持高亮很多种语言和标记型语言。它是Windows上非常有用的编辑器,并且它是免费的。
Downloading the source
下载源代码
大多开源项目会把他们的源码分为两个类别:稳定版和最新版。虽然最新版本的FreeSWITCH源码通常也非常的稳定,但我们建议你开始先使用最新的稳定RELEASE版本。以后你可以更新到最新的TRUNK。(请看本章中的使用最新的源代码编译小节)另一点也要知道:你的平台可能可以使用已经编译好的版本。但它们只是特定的环境,以我们的经历,从源码编译可以很容易的排错,更新,定制你的FreeSWITCH安装过程。
请确定你的系统可以上网,因为编译的过程有时会需要下载额外的库。
源代码可以从以下的FreeSWITCH下载站中获得:
http://files.freeswitch.org.找到一个文件名为freeswitch-1.0.6.tar.gz.
下载它到一个本地目录中,然后解压。一个典型的linux操作可能看起来像下面这样:
#>cd /usr/src
#>wget http://files.freeswitch.org/freeswitch-1.0.6.tar.gz
#>tar zxvf freeswitch-1.0.6.tar.gz
这些操作创建了一个包含FreeSWITCH源代码的新目录,准备在你的系统上编译吧。(从现在开始,这个目录我们就称为FreeSWITCH的源代码目录)。
Windows用户应该创建一个新的目录然后下载源码包。本章稍后会有windows上编译FreeSWITCH的小节。
Building from the latest code
使用最新的源码编译
如果你更愿意使用最新的FreeSWITCH源码,那么你需要一个Subversion(SVN)客户端或一个Git客户端。
FreeSWITCH的开发都最近已经把开发树从subversion到Git.
不过,他们依然在维护一个只读的SVN镜像,所以你依然能通过SVN获取最新的源码。
你也可以使用Git去获取最新的源码;不过如果你是一个想提交一些代码的开发都,你需要使用GIT客户端。
大多数的linux/UNIX环境已经安装或可以很简单的安装一个SVN的客户端。
在Windows环境中,一个流行并且免费的Subversion客户端是TortoiseSVN (tortoisesvn.tigris.org). 同样也有一个TortoiseGit (code.google.com/p/tortoisegit).
在Windows环境下,编译的过程实际是相同的:打开恰当的项目文件然后编译。
在Linux/Unix环境下,在编译前要必须要先执行”bootstrap”。
不过呢,也有捷径可走。下面的命令就会下载和编译一个从SVN中下载的最新的FreeSWITCH,使用默认的配置和所有的声音文件:
#>cd /usr/src ; wget http://www.freeswitch.org/eg/Makefile ; make
#>make all
#>cd freeswitch.trunk
#>make install
#>make cd-sounds-install
#>make cd-moh-install
前面的命令可以要花费一些时间才能完成,你可以通过&&操作符把命令串连在一起使它自动完成整个过程。
Compiling FreeSWITCH for Linux/Unix/Mac OS X
在Linux/Unix/Ma OSX上编译FreeSWITCH
实际上Linux,Unix 和Mac OS X的安装过程是相同的。然而,确定你已经在你的系统上做了之前章节中列出的准备工作。
Compiling FreeSWITCH
编译FreeSWITCH
编译Freeswitch仅仅需要几步操作,它需要花费一些时间,要看你的系统运行速度。
编译FreeSWITCH的基本步骤如下:
•编辑modules.conf文件定制你默认想编译的模块
•执行configure脚本
•执行make和make install编译和安装
•编译modules.conf.xml定制默认加载哪些模块
•安装声音和音乐文件
下面是详细的手把手教你编译FreeSWITCH的说明。
Step 1: Edit modules.conf
第一步:修改modules.conf
Modules.conf 文件包含着FreeSWITCH中默认configured和编译的模块列表。默认的modules.conf文件中的模块设置是比较合乎情理的,预选择的都会编译。然而,有一个可选的模块我们将会开启它。你现在在你的源码文件夹中有一个名为Freesiwtch-x.y.x子目录,x.y.z在这里代表版本号。例如,如果最新的稳定版本是1.0.6,那么,你的freeswitch源码目录将会是/usr/src/freeswitch-1.0.6. 执行下面的步骤:
1.       进入新的FreeSWITCH源码目录
    #>cd /usr/src/freeswitch-1.0.6
2.       使用文本编译器打开modules.conf. 移动到下面的一行:
   #asr_tts/mod_flite
3.       删除这一行前面的#符号,保存退出。mod_flite模块让freeSwitch可以使用开源的TTS(文字到语音)引擎Festival Lite(Flite TTS 引擎并不具备产生特别高质量的语音合成的能力。但是,用它来进行TTS测试是非常的便捷。).
编辑完modules.conf文件后,我们就可以开始编译了。
在modules.conf中删除一行起始的#符号,则当我们执行make命令时,这一行中写的模块将会默认编译。同样的,在每一行起始添加#符号则会阻止自动编译相应的模块。
Step 2: Run configure script
步骤2:执行configure脚本
和多数的开源项目一样,类UNIX环境下FreeSWITCH也使用当下非常流行的configure脚本。
在包含FreeSWITCH的源码路径中,执行configure脚本,如下:
#>./configure
Configure脚本会执行很多任务,包括确保准备工作已经完毕。如果编译前的准备工作没有做好,configure 脚本会退出并且告诉你哪一个依赖没有正确添加。如果有错误发生,你必须先解决提示的问题,并且重新运行configure脚本。在执行configure脚本前,你应该确保所有的准备工作都已经到位,configure会正常完成。
在执行配置的过程中,你会看到它会configure会执行很多次。
FreeSWITCH使用了很多的库像apache Portable Runtime(APR)和Perl Compatible Regular Expressions(PCRE)。这些库都有自己特定的根据自身项目需要定义的configure脚本。
等待一些时间configure脚本完成,它会显示系统的提示信息。你肯定会在系统configuration的过程中在屏幕上看到很多的输出内容,但如果你没有看到任何的错误,你就可以进行编译的过程了。
Step 3: Run make and make install
步骤3:执行make和make install
上一步的configuration过程实际是生成了FreeSWITCH的Makefile, 以及它依赖的库和它自己一系列的模块的Makefile。 编译和安装FreeSWITCH都是由make来进行的。首先执行make,然后再执行make install. 大多数都会合二为一的执行命令,看起来像这样:
#>make && make install
和configure脚本一样,make 的过程会花费一些时间,中间有错误会停止。通常情况下不会出错误,编译和安装的最后你会看到下面的欢迎信息:
+——– FreeSWITCH install Complete ———-+
+ FreeSWITCH has been successfully installed.   +
+                                               +
+       Install sounds:                         +
+       (uhd-sounds includes hd-sounds, sounds) +
+       (hd-sounds includes sounds)             +
+       ————————————    +
+               make cd-sounds-install          +
+               make cd-moh-install             +
+                                               +
+               make uhd-sounds-install         +
+               make uhd-moh-install            +
+                                               +
+               make hd-sounds-install          +
+               make hd-moh-install             +
+                                               +
+               make sounds-install             +
+               make moh-install                +
+                                               +
+       Install non english sounds:             +
+       replace XX with language                +
+       (ru : Russian)                          +
+       ————————————    +
+               make cd-sounds-XX-install       +
+               make uhd-sounds-XX-install      +
+               make hd-sounds-XX-install       +
+               make sounds-XX-install          +
+                                               +
+       Upgrade to latest:                      +
+       ———————————-      +
+               make current                    +
+                                               +
+       Rebuild all:                            +
+       ———————————-      +
+               make sure                       +
+                                               +
+       Install/Re-install default config:      +
+       ———————————-      +
+               make samples                    +
+                                               +
+                                               +
+       Additional resources:                   +
+       ———————————-      +
+       http://www.freeswitch.org               +
+       http://wiki.freeswitch.org              +
+       http://jira.freeswitch.org              +
+       http://lists.freeswitch.org             +
+                                               +
+       irc.freenode.net / #freeswitch          +
+                                               +
+———————————————–+
如果你看到了类似的消息,那么你已经成功的编译了FreeSWITCH, 你可以执行下面的步骤了。如果在编译过程中发生了错误,过程会停止并且报告提示错误。如果错误信息是不常见的,你需要通过附件A(The FreeSWITCH Online Community)中的资源去联系FreeSWITCH的社区。
Step 4: Edit modules.conf.xml
步骤4:修改modules.conf.xml
modules.conf.xml 文件包含FreeSWITCH运行时默认加载的模块列表。默认的modules.conf.xml文件中的内容是和modules.conf的内容一致的。模块通过modules.conf默认编译同样默认开启通过modules.conf.xml文件。因为我们在modules.conf中开启了mod_flite的默认编译,所以我们需要在modules.conf.xml中启用mod_flite,以便在FreeSWITCH启动时它就会被默认加载。一般来说,任何模块,你需要它在FreeSWITCH启动时加载,你都必须在modules.conf.xml中开启。module.conf.xml文件位于conf/autoload_configs子目录中。默认的配置路径是/usr/local/freeswitch/conf/autoload_configs/modules.conf.xml。
使用文本编辑器打开,然后在文件快结束的地方找到下面的一行:
<!– <load module=”mod_flite”/> –>
去除<!–和 –> 标签,那么这句话就看起来像这样:
<load module=”mod_flite”/>
保存和退出。你差不多已经准备好可以运行FreeSWITCH了。
modules.conf和mofules.conf.xml文件之间的区别是什么呢?modules.conf文件存在于源码路径中,它是用来决定执行make命令时哪些FreeSWITCH模块将会被编译。Modules.conf.xml文件是默认的XML配置中的一部分,它存在于FreeSWITCH的autoload_configs子目录中。它控制当FreeSWITCH启动时哪些模块被加载。
Step 5: Install sound and music files
步骤5:安装声音和音乐文件
Sound和music文件并不是一定需要。然后,强烈建立安装它们。如果你不装它们,通话操持时你会没有音乐,示例IVR和语音邮件应用也会没有声音。FreeSWITCH有不同的采样率的示例声音,音乐文件。我们建议全部安装以便于你在有些可能的条件下得到高质量的声音连接。
安装sound文件只需要在FreeSWITCH的源码目录中执行下面命令:
#>make cd-sounds-install
安装music文件执行下面的命令:
#>make cd-moh-install
这些命令会下载和安装8kHz,16kHz,32kHz和48kHz的声音和音乐文件。当给一个呼叫者播放一个声音或音乐文件时,FreeSWITCH会使用相应的采样率(sampling rate)。
Compiling FreeSWITCH for Windows
Windows上编译FreeSWITCH
在系统准备工作章节中提到,FreeSWITCH使用MSVC或MSVCEE编译。目前的步骤是使用Express Edition版,但是,使用标准版本的步骤也是大致相同的。
Building the solution with MSVC/MSVCEE
使用MSV/MSVCEE编译项目
在使用MSVC编译前,有几个小步骤是要先做的,那就是:
1. 创建一个新的目录,然后拷贝tar.gz的文件到它里面。在我们的示例中,我们使用的是
C:\FreeSWITCH\freeswitch-1.0.6.tar.gz.
2. 右击freeswitch-1.0.6.tar.gz,使用你的解压工具解压文件。现在你会得到一个新的名为freeswitch-1.0.6.tar的文件。
3. 右击freeswitch-1.0.6.tar 再次解压。这个过程会花费一些时间。你会看到一个和下面截图相似的一个窗口:
ssss1.png
备注:WinRAR可以一步同时解压.gz和.tar文件。
1.       解压成功后,你会得到一个新的后面包含FreeSWITCH最新版本的子文件夹。在我们例子中,我们现在拥有一个名为freeswitch-1.0.6的子文件夹。双击进入文件夹查看完整的Freeswitch 源码结构。屏幕看起来应该和下面的截图相似:
s2.png
5. 文件夹中有不少的文件,我们只需要关注其中的两个项目文件。MSVC的项目文件是Freeswitch.2008.sln,MSVCEE的项目文件是Freeswitch.2008.experess.sln. 根据你的MSVC版本双击打开相应的项目文件。示例中的截图是使用的MSVC2008 Express Edition. 不过,标准版和专业版看起来也大致相同。
6. 项目文件加载后,单击 Build -> Build Solution 或 按F7。项目会开始编译。Output窗口会出现很多的信息。当项目编译完后,你会在Output窗口的底部看到一个像下面截图中那样的提示:
s3.png
7. 备注:MSVC/EE项目文件会自动执行有些我们在Linux/Unix安装过程中手动执行的一些步骤。包括下载所有的声音和音乐文件,还有编译可选的模块像Flite(text-to-speech)和PocketSphinx(speech recognition). 但是,如果你希望这些可选的模块自动加载,你需要在modules.conf.xml文件中开启。
8. 项目一旦编译完成,你就可以关闭MSVC了。所有剩下的步骤都可以从Windows资源管理器和windows命令行中执行。
9. 再次来到Windows资源管理器中。你会发现编译过程中已经创建了一个新的名为DEBUG的文件夹。这就是FreeSWITCH的安装目录。在运行FreeSWITCH前的最后一步是编辑modules.conf.xml文件让FreeSWTICH启动中自动加载mod_flite模块。在本书中的很多的示例中我们会用到mod_flite(TTS)引擎。
10. 双击conf目录,然后再双击autoload_configs目录。
11. 使用编辑器打开modules.conf.xml。在我们的例子中,我们使用Notepad++编辑,如下图所示:
s4.png
12. 找到靠近文件结尾的下面一行:
<!– <load module=”mod_flite”/> –>
删除<!—和–>标签,让它看起来像这样:
<load module=”mod_flite”/>
保存退出编辑器。现在你已经准备好可以第一次运行FreeSWITCH了。

评论已关闭。