有时候,需要用到多个FreeSWITCH进行测试,或者需要在一台服务器上部署多个“不兼容”的系统。我们在这一节探讨一下怎么做。

背景故事

几年前我还在Idapted工作的时候,由于需要连接Skype及Google Talk。就曾经做过这样的部署(如下图,附录中也有)。

                       |--- PSTN gateways
/-------\              |--- FS-skype
| FS    |--------------|--- FS-gtalk
\-------/              |--- FS-skype2|--- more ...

当时主要的考虑是Skype(mod_skypiax,后来改名为mod_skypopen)模块不太稳定,所以我们把带Skype的FreeSWITCH启动到另一个实例,这样就避免了由于Skype模块崩溃影响所有业务。后来,我们在这上面又做了扩展,即再启动一个带Skype的实例。对于主的FreeSWITCH而言,他们就相当于两个Skype网关。平时可以负荷分担的工作,其中一个崩溃,另一个也可以正常工作,起到了HA(High Availability,高可用)效果。

后来我们又启到了一个带mod_dingaling的FreeSWITCH实例,用于跟Google Talk互通。除了当时mod_dingaling也有点稳定性问题外,我们主要是为了让呼叫处理更方便,如,不管是呼叫什么用户,呼叫字符串都是 sofia/gateway/,编程就方便了许多。

练习

闲话少叙,我们今天虽不能复现当时的场景,但基本概念是差不多的。我们今天的练习就是在同一机器上启动两个FreeSWITCH实例而互相不冲突,甚至,可以用各种方式互通。

我们都知道FreeSWITCH默认的配置文件在 /usr/local/freeswitch/conf。这里假设第一个实例已启动并正确运行。

首先,我们要复制一份新的环境(放到freeswitch2目录中,以下的操作都在该目录中):

mkdir /usr/local/freeswitch2
cd /usr/local/freeswitch2
cp -R /usr/local/freeswitch/conf .
mkdir log
mkdir db
ln -sf ../freeswitch/sounds .

其中第1行创建一个新目录,第3行把旧的配置文件复制过来,第4、5行分别创建log和db目录,最后一行做个符号链接,确保有正确的声音文件。

然后,需要修改一些配置以防止端口冲突。第一个要修改的是 conf/autoload_configs/event_socket.conf.xml,把其中的8021改成另一个端口,比方说9021。

修改 conf/vars.xml,把其中的5060,5080也改成其它的,如7060,7080。

默认的这样就行了,当然如果你还加载了其它的模块,注意要把可能引起冲突的资源都改一下。比如因为我用到 mod_erlang 模块,我就需要改autoload_configs/erlang_event.conf.xml中的listen-port和nodename。

下面我们可以启动试试了:

cd /usr/local/freeswitch2/
/usr/local/freeswitch/bin/freeswitch -conf conf -log log -db db

以上命令分别用 -conf、-log、-db 指定新的目录。启动完成后将进入控制台。如果想使用 fs_cli,则可以打开另外一个终端窗口,连接(还记得我们把端口改成9021了吧?):

/usr/local/freeswitch/bin/fs_cli -P 9021

找个软电话注册到7060端口试试,比如我用Xlite注册的地址就是 192.168.1.100:7060。

进阶

当然,上面的两个FreeSWITCH实例都运行的同一份代码。有时候,你还可能运行两个不同版本的FreeSWITCH。你可以在编译的时候指定一个不同的安装目录,如:

./configure --prefix=/opt/freeswitch
make && make install

这样就可以将FreeSWITCH安装到/opt/freeswitch目录中,如果执行 /opt/freeswitch/bin/freeswitch,它就默认使用 /opt/freeswitch/conf 下面的配置文件,我们也不需要再copy一份了。

当然,如果需要两个实例同时运行,你还是要改其中一个的某些端口,以避免冲突。改完后运行:

/opt/freeswitch/bin/freeswitch

真好玩。

让两个实例相互通信?

我记得已经写过了,看《多台 FreeSWITCH 服务器级联》一节。

小结

通过本节,相信你对FreeSWITCH配置文件、运行方式、及 fs_cli 等工具又多了一层认识。当然,即使你不需要启动多个实例,相信也能从这一节学到一些有用的东西。

在同一台服务器上启动多个 FreeSWITCH 实例相关推荐

  1. 一个服务器启动2套mysql_一台服务器上启动两个mysql实例

    一台服务器上启动两个mysql实例 操作环境:centos6.8 有时由于服务器硬件资源紧张,而又需要新增mysql服务.这时我们可以采取在一台服务器上部署两个mysql实例,来解决. 1.创建新的m ...

  2. mysql多实例的安装和管理(一台服务器上运行两个mysql实例)

    mysql的多实例有两种方式可以实现,两种方式各有利弊. 第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便. 第二种是通过官方自带的mysq ...

  3. 一台服务器可以安装多个mysql数据库_在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式...

    (一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...

  4. 一台服务器两个mysql_在一台服务器上安装两个或多个mysql的实现步骤_MySQL

    如何在一台服务器上安装两个或者更多个的mysql呢?下面是详细的操作步骤,一起来学习学习吧. 一.环境 mysql软件包: mysql-5.6.31.tar mysql-5.5.32.tar 操作系统 ...

  5. 从本机发送信息到另一台服务器上时中文乱码

    2019独角兽企业重金招聘Python工程师标准>>> 从本机发送信息到另一台服务器上时中文乱码 别的电脑都没问题,只有本机通过sts开tomcat并发送信息到另一服务器时中文乱码. ...

  6. 在多台服务器上简单实现Redis的数据主从复制

    http://www.cnblogs.com/liping13599168/archive/2011/04/14/2016226.html Redis的主从复制功能非常强大,一个master可以拥有多 ...

  7. 单台mysql增加节点_如何在一台服务器上安装两个PXC集群节点

    我认为在单个物理服务器上运行2个或多个Percona XtraDB Cluster(PXC)节点这样没有什么意义,除了教育和测试目的,但在这种情况下这样做仍然是有用的.最受欢迎的实现方式似乎是服务器的 ...

  8. 在一台服务器上配置多个Tomcat的方法

    这段时间在开发智能导航的热部署功能,需要从一台服务器去访问其它的24台服务器去进行相关配置的热部署. 如果要在一台服务器上配置多个Tomcat,主要就是要避免Tomcat服务器的端口冲突的问题.只需要 ...

  9. 服务器多网站布置,如何在一台服务器上实现多个web站点的方法

    如何在一台服务器上实现多个web站点的方法 2007-04-30 00:00:00 作者: 如何在一台服务器上实现多个web站点的方法 摘要:Windows2000Server安装成功后,一般会启动一 ...

最新文章

  1. 支付宝支付 第六集:生成支付二维码
  2. linux安装jdk和tomcat命令
  3. 【DND图形库】二、创建控制台窗口和游戏循环
  4. 前端学习(1297):第三方模块gulp
  5. mysql 导致iis 假死_php使用MySql函数导致Apache(iis)崩溃的问题解决方案
  6. Gamma分布和逆Gamma分布
  7. 数据建模-聚类分析-K-Means算法
  8. zabbix 4.0 安装配置
  9. 【跃迁之路】【468天】程序员高效学习方法论探索系列(实验阶段225-2018.05.19)...
  10. can总线一帧多少字节多少位_汽车CAN总线数据帧解析---汽车语言知多少
  11. Java抓取网页图片
  12. (zotero+坚果云+pdf expert+欧陆词典)实现PC平板同步阅读管理科研文献(完美教程)
  13. 自控原理学习笔记-系统稳定性分析(2)-环路分析及Nyquist-Bode判据
  14. LUN、ThickLUN与Thin LUN的联系和区别
  15. 数字信号处理中各种频率关系
  16. UEditor整合代码高亮插件SyntaxHighlighter
  17. Python上位机,监视串口,逐字符匹配字头
  18. 蓝桥杯算法训练-过河马
  19. 计算机全国统考深圳考点,2019深圳市公务员考试笔试考点及考场安排表汇总(各考区)-深圳市考试院...
  20. 九号电动国标车BC系列区别于传统电动车之新颖功能全览

热门文章

  1. LeetCode(15):三数之和
  2. arcgis api 3.x for js 入门开发系列二不同地图服务展示(附源码下载)
  3. 解决11g Rac实例状态为Stuck Archiver
  4. 使用Ant将windows下开发的Struts2应用直接部署到Linux上
  5. 博客搬迁地址到csdn了
  6. HDUOJ-----Brave Game
  7. jquery插件---自动补全类插件
  8. CEMAPI实战攻略(四)——发送短消息
  9. 我有一个竞争方法,让用户去选择你的产品而不是别人
  10. SD卡格式化怎么恢复?只需要五个步骤