一.FreeSWITCH服务部署
1.wget http://www.freeswitch.org.cn/Makefile && make install
2.cd freeswitch
3.运行./bootstrap.sh(作用:初始化环境)
4.执行./configure(主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包)
5.make install
6.修改配置文件/usr/local/freeswitch/conf/vars.xml中的默认密码
<X-PRE-PROCESS cmd="set" data="default_password=1234"/>
7./usr/local/freeswitch/bin
执行 ./freeswitch -nc -nonat启动
执行 ./freeswitch -stop关闭
 
二.用户批量配置
/usr/local/freeswitch/conf/directory/default/2000.xml
1 <include>
2 <user id="2000" number-alias="root">
3 <params>
4 <param name="password" value="123456"/>
5 <param name="reverse-auth-user" value="2000"/>
6 <param name="reverse-auth-pass" value="123456"/>
7 <param name="vm-password" value="c99ecff92015"/>
8 <param name="vm-enabled" value="true"/>
9 <param name="directory-exten-visible" value="true"/>
10 <param name="dial-string" value="{sip_invite_domain=${domain_name},leg_timeout=30,presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
11 </params>
12 <variables>
13 <variable name="domain_name" value="xxx.xxx.xxx.xxx"/>
14 <variable name="toll_allow" value=""/>
15 <variable name="user_context" value="default"/>
16 <variable name="directory-visible" value="true"/>
17 <variable name="limit_max" value="5"/>
18 <variable name="sip-force-contact" value="NDLB-connectile-dysfunction-2.0"/>
19 <variable name="sip-force-expires" value="180"/>
20 </variables>
21 </user>
22 </include>
批量生成用户脚本:
1 #!/bin/bash
2 for ((a=20000;a<=20010;a++)) ;
3 do
4 i=$(echo $a)
5 sed -e "s/2000/$i/" 2000.xml > $i.xml;
6 done
7
批量删除用户脚本:
1 #!/bin/bash
2 for ((a=10000;a<=200000;a++)) ;
3 do
4 i=$(echo $a)
5 rm $i.xml;
6 done
7
 
三.音频通话配置
/usr/local/freeswitch/conf/dialplan/public.xml||default.xml
1.一对一:
<extension name="One_on_one">
<condition field="destination_number" expression="^(\d{5,6})$">
<action application="set" data="dialed_extension=$1" />
<action application="set" data="media_webrtc=true"/>
<action application="bridge" data="user/${dialed_extension}@${domain}"/>
</condition>
</extension>
2.一对多(会议):
1 <extension name="nb_conferences">
2 <condition field="destination_number" expression="^(\d{4})$">
3 <action application="answer"/>
4 <action application="set" data="conference_auto_outcall_flags=none"/>
5 <action application="set" data="conference_auto_outcall_caller_id_name=$1"/>
6 <action application="set" data="conference_auto_outcall_caller_id_number=$1"/>
7 <action application="set" data="conference_auto_outcall_profile=default"/>
8 <action application="conference" data="$1-${domain_name}@default"/>
9 </condition>
10 </extension>
 
四.视频会议通话配置
在/usr/local/freeswitch/conf/vars.xml配置支持的视频编码
259 <X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,iLBC,G722,PCMU,PCMA,H263,H263-1998,H264,GSM,VP8,VP9"/>
260 <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,iLBC,G722,PCMU,PCMA,H263,H263-1998,H264,GSM,VP8,VP9"/>
 
配置用户路由
/usr/local/freeswitch/conf/dialplan/public.xml||default.xml
23 <extension name="cdquality_conferences">
24 <!-- <condition field="destination_number" expression="^(35\d{2})$"> -->
25 <condition field="destination_number" expression="^(\d{4})$">
26 <action application="answer"/>
27 <action application="conference" data="$1-${domain_name}@video-mcu-stereo"/>
28 </condition>
29
30 </extension>
 
而video-mcu-stereo是在文件
/usr/local/freeswitch/conf/autoload_configs/
230 <profile name="video-mcu-stereo">
231 <param name="domain" value="$${domain}"/>
232 <param name="rate" value="48000"/>
233 <param name="channels" value="1"/>
234 <param name="interval" value="20"/>
235 <!-- <param name="interval" value="auto"/> -->
236 <param name="energy-level" value="300"/>
237 <param name="auto-gain-level" value="2200"/>
238 <param name="caller-controls" value="none"/>
239 <!--
240 <param name="tts-engine" value="flite"/>
241 <param name="tts-voice" value="kal16"/>
242 <param name="muted-sound" value="conference/conf-muted.wav"/>
243 <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
244 <param name="alone-sound" value="conference/conf-alone.wav"/>
245 <param name="moh-sound" value="$${hold_music}"/>
246 -->
247 <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
248 <param name="exit-sound" value="conference/conf-goodbye.wav"/>
249 <!--
250 <param name="auto-record" value="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
251 <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
252 <param name="kicked-sound" value="conference/conf-kicked.wav"/>
253 <param name="locked-sound" value="conference/conf-locked.wav"/>
254 <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
255 <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
256 <param name="auto-record" value="/home/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.mp4"/>
257 <param name="pin-sound" value="conference/conf-pin.wav"/>
258 <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
259 -->
260 <param name="caller-id-name" value="$${outbound_caller_name}"/>
261 <param name="caller-id-number" value="$${outbound_caller_id}"/>
262
263 <param name="comfort-noise" value="0"/>
264 <param name="conference-flags" value="video-floor-only|rfc-4579|livearray-sync|livearray-json-status|auto-3d-position|transcode-video|minimize-video-encoding"/>
265 <param name="video-mode" value="mux"/>
266 <param name="video-layout-name" value="4"/>
267 <!-- <param name="video-layout-name" value="group:grid"/> -->
268 <!-- 1280x720 800x600 -->
269 <param name="video-canvas-size" value="1280x720"/>
270 <param name="video-canvas-bgcolor" value="#333333"/>
271 <param name="video-layout-bgcolor" value="#000000"/>
272 <param name="video-codec-bandwidth" value="auto"/>
273 <param name="video-fps" value="25"/>
274 </profile>
275
 
五.通过sip trunk跟其他产品对接
配置sip trunk网关/usr/local/freeswitch/conf/sip_profiles/external/sip_trunk.xml
1 <include>
2 <gateway name="trunk.com">
3 <param name="realm" value="xxx.xxx.xxx.xxx"/>
4 <param name="proxy" value="ip:port"/>
5 <param name="register" value="false"/>
6 </gateway>
7 </include>
配置路由/usr/local/freeswitch/conf/dialplan/public/000_sip_trunk.xml
1 <include>
2 <extension name="extension-trunk.com">
3 <condition field="destination_number" expression="^0(\d+)$">
4 <action application="set" data="dialed_extension=$1"/>
5 <action application="bridge" data="sofia/gateway/trunk.com/$1"/>
6 </condition>
7 </extension>
8 </include>
 
六.freeswitch在多网卡服务器下指定IP地址
修改internal.xml和external.xml
位置:/usr/local/freeswitch/conf/sip_profiles
修改内容:
64 <param name="rtp-ip" value="$${local_ip_v4}"/>
65 <param name="sip-ip" value="$${local_ip_v4}"/>
把$${local_ip_v4}改为指定的ip地址
 
七.权限问题
在使用sudo命令时,经常性会提示出“不在 sudoers 文件中。此事将被报告”的错误信息。
这是因为当前登录的账号不在sudo权限里面。
sudo命令可以让你以root身份执行命令,来完成一些我们这个帐号完成不了的任务。
其实并非所有用户都能够执行sudo,因为有权限的用户都在/etc/sudoers中
打开:/etc/sudoers
修改:
# User privilege specification
root ALL=(ALL:ALL) ALL
username ALL=(ALL:ALL) ALL(添加的用户)
 

FreeSWITCH部署与功能配置的更多相关文章

  1. JBOSS EAP 6 系列五 Managed domains 管理域最主要的功能是“统一部署,统一配置”

    摘要 本文首先介绍Managed Domain的概念,管理域最主要的功能是"统一部署,统一配置".接下来通过一个实例在"统一配置"部分实现一个双机配置起来的域, ...

  2. [转载]eclipse的远程调试功能配置

    原文地址:eclipse的远程调试功能配置作者:我的 用途:web应用部署并运行于外部(区别于eclipse环境中启动的)应用服务器中,当出现问题时,可以使用eclipse工程的源代码进行跟踪调试. ...

  3. 站点部署,IIS配置优化指南[转]

    站点部署,IIS配置优化指南 目录 一.       设置应用程序池默认设置 二.       常规设置 三.       优化回收策略 四.       性能 五.       IIS初始化(预加载 ...

  4. [转帖]站点部署,IIS配置优化指南

    站点部署,IIS配置优化指南 https://www.cnblogs.com/heyuquan/p/deploy-iis-set-performance-guide.html 挺值得学习的 毕竟之前很 ...

  5. Java学习-032-JavaWeb_001 -- Tomcat环境部署及基本配置

    首先到 Tomcat 官网,下载对应的版本,我本机的系统是 WIN7 64BIT 的,因而我选择的是64bit 的zip包,如下图所示:

  6. centos6.5中部署Zeppelin并配置账号密码验证

    centos6.5中部署Zeppelin并配置账号密码验证1.安装JavaZeppelin支持的操作系统如下图所示.在安装Zeppelin之前,你需要在部署的服务器上安装Oracle JDK 1.7或 ...

  7. Apache运维中常用功能配置笔记梳理

    Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...

  8. mysql主从备份功能配置与測试

    在高訪问量服务环境下,单机配置mysql服务将无法满足频繁快速的数据读写操作. 一旦mysql出现故障造成数据丢失.无法恢复. 因此.在mysql服务上启用主从备份功能,支持读写分离技术.最靠可的是搭 ...

  9. (转)Centos7上部署openstack ocata配置详解

    原文:http://www.cnblogs.com/yaohong/p/7601470.html 随笔-124  文章-2  评论-82  Centos7上部署openstack ocata配置详解 ...

随机推荐

  1. Python基础(六)_全局变量声明、可变参数、关键字参数

    1. global声明全局变量 #声明name这个变量为全局变量,只是写在函数里面 #写代码时,尽量不要用全局变量,会一直占用内存.       ------->{'name':'abc','s ...

  2. php5.6 安装intl扩展

    PHP intl 是国际化扩展,是ICU 库的一个包装器.所以在安装PHP intl扩展前要先安装ICU库,安装ICU库的具体步骤见:http://www.linuxeye.com/Linux/237 ...

  3. Git冲突和解决冲突-测试方法

    原文链接:https://www.cnblogs.com/blogslee/p/6828659.html

  4. 【Alpha】Scrum Meeting 5

    目录 前言 任务分配 燃尽图 会议照片 签入记录 遇到的困难 前言 时间: 4.9日中午11.30 地点:F-220 本次会议旨在统计各位同学的进度以及催促任务的进展. 任务分配 姓名 当前阶段任务 ...

  5. SIP协议简单介绍

    sip协议是由IETF提出的IP电话信令协议,主要目的是为了解决ip网络中的信令控制,以及同软交换通信. sip协议类似http协议: 报文结构: start-line message-header ...

  6. EJB到底是什么?

    EJB到底是什么?   1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业 ...

  7. 【Mac AndroidStudio】download gradle fail问题

    第一次运行application时,会发现一直在download gradle,而且进度一直卡着.这时,可以直接拷贝download的链接,粘贴到浏览器下载.下载完了.然后,可以用命令行在用户目录下o ...

  8. Python:将数组中的元素导出到变量中 (unpacking)

    问题 你需要将数组(list)或元组(tuple)中的元素导出到N个变量中. 解决方案 任何序列都可以通过简单的变量赋值方式将其元素分配到对应的变量中,唯一的要求就是变量的数量和结构需要和序列中的结构 ...

  9. 【Python】【自动化测试】【pytest】

    https://docs.pytest.org/en/latest/getting-started.html#create-your-first-test http://www.testclass.n ...

  10. CodeForces - 363D --二分和贪心

    题目:CodeForces - 363D 题意:给定n个学生,其中每个学生都有各自的私己钱,并且自己的私己钱只能用在自己买自行车,不能给别人. 给定m个自行车,每个自行车都有一个价格. 给定公有财产a ...