首页 > 其他分享 >FreeSWITCH部署与功能配置

FreeSWITCH部署与功能配置

时间:2023-05-10 16:48:24浏览次数:47  
标签:xml sip 部署 配置 freeswitch usr conf FreeSWITCH local

一.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(添加的用户)

标签:xml,sip,部署,配置,freeswitch,usr,conf,FreeSWITCH,local
From: https://www.cnblogs.com/kn-zheng/p/17388394.html

相关文章

  • Linux系统下NFS服务器的配置
    第1步:NFS规划。1)将本地文件系统的/home/mp3目录共享,mary客户机对该目录具有读写限权,其他所有用户对该目录具有只读限权。 2)将本地文件系统的/home/vedio目录共享,192.168.21.100与192.168.21.200两个客户机对该目录具有读写限权,而192.168.21.0、24网段内的其他客户机对该目录......
  • Linux系统下Samba服务器的配置
    第1步:将目录/home/media设置为允许所有用户访问,但仅允许用户mary具有修改该目录的权限。其配置步骤简述如下。第2步:将目录/var/samba/student设置为只允许student组的成员访问,student组中有stu01、stu02·····stu05,共5个成员。配置步骤简述如下。第3步:用testparm命令测试......
  • FreeSWITCH安装教程
    最近学习freeswitch,网络上搜罗了大把的安装教程,基本都有坑。然而,对于解决坑的过程是坑坑有惊喜。在此记录一下安装及采坑的过程。如有问题,欢迎大家留言探讨~~~1、基础环境。操作系统:CentOSLinuxrelease7.9.2009位数:LinuxSSUAiServer3.10.0-1160.el7.x86_64#1SMPMo......
  • BurpSuit配置浏览器代理 chrome
    1、BurpSuit配置默认代理 2、添加谷歌插件switchyomega,修改服务器和端口 打开代理,选择刚才添加的代理 3、访问http://burp/,获取证书 4、将证书添加到Chrome浏览器 5、访问任意网址,发现可以抓到包包啦~ ......
  • docker部署grafana
    复制文件创建数据目录#mkdirconfgrafana运行grafana#dockerrun--rm-ti--namegrafanagrafana/grafana-oss:9.5.1-ubuntu复制grafana.ini#dockercpgrafana:/etc/grafana/grafana.ini./conf设置目录权限#chown-R472conf/grafana/docker-compose.yamlver......
  • WebRTC + JsSIP + freeSWITCH一对一视频聊天
    之前几篇文件介绍了freeSWITCH和WebRTC结合在一起需要的各种环境,现在到了最关键的一篇,使用JsSIP来创建一个DEMO。这次我们需要写点JS代码。准备JsSIP库文件可以从http://www.jssip.net/download/下载一个min版的js文件,我用的是3.0.13,文件名是jssip-3.0.13.m......
  • SpringBoot 配置文件加载优先级
    我们在使用springboot开发的时候,经常会从外部获取属性值,为了记住这些规则,特此做如下记录~~~一、为什么要做外部化配置本地开发的时候,上传文件的时候,每个人想上传的路径不一样,使用外部配置,就可以单独设置自己的上传路径项目部署的时候,不同的环境使用不同的配置,使用外部挂载配置这......
  • Umi配置路由
    一、Umi路由的概念在Umi中,你可以在 .umirc.ts 文件中使用 routes 属性来配置路由。routes 属性是一个数组,每个元素都表示一个路由对象。每个路由对象都包含以下属性:path:表示路由路径,可以是字符串或正则表达式。component:表示路由组件的路径,可以是字符串或函数。r......
  • FreeSWITCH实现在视频通话中某一方视频翻转
    客户项目使用浏览器+webrtc+FreeSWITCH在各类国产化终端间(windows+kylin+android+emss等)实现音视频通信、状态呈现以及即时消息。本来实施挺顺利,但客户新引进了一批新FT终端,摄像头画面竟然向左翻转了90度,关键是,客户认为终端质量没有问题,让软件系统自行解决。翻遍了v4l2驱动配置和......
  • 1、华为路由器百兆或千兆口解决IP配置问题
    遇到的问题:通常情况下,华为路由器千兆口可以配置IP,无需划分VLAN都可以。但是,百兆口如果是不支持三层交换的话,就无法直接进行IP配置。此时,需要配置VLAN,将VLAN加入端口,并且pvid还得加上。 注意:交换机和路由器都类似。最后就是不同网段,应使用相关协议、配置路由等。......