SRProxy部署安装

一,环境准备

1,Linux主机

准备一台Linux主机:Cenos7.0及以上64位系统,可以从阿里云,腾讯云,华为云等云厂商购买,或者自己搭建的Centos开发环境也可。

如果在公网部署,需要一个可访问的公网EIP。

同时需要防火墙开放端口:

 

端口号协议描述
22tcpssh端口
80tcpHttp端口
443tcpHttps端口
5060udp/tcpSip注册端口
   

参考FreeSwitch防火墙

FreeSwitch Typical Ports:

FireWall PortsNetwork ProtocolApplication ProtocolDescription
1719UDPH.323 Gatekeeper RAS port 
1720TCPH.323 Call Signaling 
2855-2856TCPMSRPUsed for call with messaging
3478UDPSTUN serviceUsed for NAT traversal
3479UDPSTUN serviceUsed for NAT traversal
5002TCPMLP protocol server 
5003UDPNeighborhood service 
5060UDP & TCPSIP UASUsed for SIP signaling (Standard SIP Port, for default Internal Profile)
5070UDP & TCPSIP UASUsed for SIP signaling (For default "NAT" Profile)
5080UDP & TCPSIP UASUsed for SIP signaling (For default "External" Profile)
8021TCPESLUsed for mod_event_socket *
16384-32768UDPRTP/ RTCP multimedia streamingUsed for audio/video data in SIP, Verto, and other protocols
5066TCPWebsocketUsed for WebRTC
7443TCPWebsocketUsed for WebRTC
8081-8082TCPWebsocketUsed for Verto

 

2,创建一个应用

anyRTC官网注册一个开发者账号,并创建一个应用

 

 

 

3,SSH连接工具

我使用的是Win10系统,用的工具是FinalShell3.6.2,这工具也有Mac版本。非常好用,值得推荐。

 

二,安装FreeSwitch

环境:

[root@iZuf6b8f6yfdzv8c0m5fnsZ ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

安装:

1,准备好FreeSWITCH安装包

(我用的1.6版本)源码安装 包:github获取FreeSWITCH官网下载他人的蓝奏云并解压

[root@iZuf6b8f6yfdzv8c0m5fnsZ src]# pwd
/usr/local/src
[root@iZuf6b8f6yfdzv8c0m5fnsZ src]# unzip freeswitch-1.6.zip
[root@iZuf6b8f6yfdzv8c0m5fnsZ src]# ll
总用量 58448
drwxr-xr-x 22 root root     4096 5月   8 2018 freeswitch-1.6
-rw-r--r--  1 root root 59842116 8月  27 20:20 freeswitch-1.6.zip

 

2,安装依赖环境

yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release

如果只是使用freeswitch的SIP功能,可以不要安装这么多,保险起见还是安装下吧

yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel

需要点时间,等待中。。。

---------------------------------------------------------------------

好了,继续编译安装:

进入解压目录:

cd freeswitch-1.6

执行:

./bootstrap.sh

再继续执行编译安装

./configure(此过程出现众多未知错误,一般是依赖包没装,百度一下或加QQ群:597181019)
make(**make时 出现错误我遇到的处理方法在下下下面**)
make install

经过一段时间的等待,至此,FreeSWITCH就已经安装完了。在CentOS系统上,其默认的安装位置是/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/

安装成功之后,系统会默认创建20个账号,分别是1000 - 1019,密码是:1234

默认用户在/usr/local/freeswitch/conf/directory/default/ 下

 

3,运行FreeSwitch

启动

# 默认后台运行

freeswitch -nc

# 关闭

freeswitch -stop

#进入后台:

fs_cli(直接执行,如果你创建软链接,没有创建需要到bin目录找到fs_cli执行)

# 生成环境后台运行

freeswitch -rp -nc -nonat

# 可以看到详细启动日志,启动后进入控制台模式,退出使用shutdown

freeswitch -c -nonat -rp

 

三,安装SRProxy

SRProxy的安装相对要简单很多

1,下载srproxy.zip

下载srproxy.zip 并放至 /usr/local/src/ 下

 

2,安装

unzip srproxy.zip -d srproxy
cd srproxy
chmod +x install.sh && ./install.sh

提示:Install program ok! 并且没有错误日志则代表安装成功。

安装成功后,系统会自动启动SRProxy,但是此时我们还没有配置相关服务,所以服务暂时不可用。

 

四,相关配置

1,配置Sip的Proxy转发规则

在/usr/local/freeswitch/conf/dialplan目录的 default.xml 配置文件中加入以下配置

<extension name="group_dial_sip_proxy">        
    <condition field="destination_number" expression="^0(.*)$">                
        <action application="set"><![CDATA[sip_h_X-Number=<sip:$1@${domain_name}>]]></action>       
        <action application="bridge" data="user/1000@192.168.x.xx"/>        
    </condition>
</extension>

意思是:如果呼叫的SIP号码前面加0,则自动路由到1000号码上;这个1000号码是SRProxy中配置的Proxy账号,这样SRProxy就可以收到Sip外呼的请求,从发对RTC发起呼叫。

:配置中192.168.x.xx是你机器的真实IP,有公网EIP填公网EIP地址,局域网则填局域网IP地址。

修改完配置,保存,然后记得重新加载下配置:

freeswitch -nc 

 

2,配置SRProxy

以下文件内容仅作为讲解配置文件用,不可拷贝直接在服务器上使用,相关配置文件服务器上已有,可直接修改

[global]
appid="你的应用ID,还记得吗?"
sip_svr="本机的EIP或局域网IP"
​
[ivr]
on=0    "是否开启IVR,0:不开启 1:开启"
rtm_account= "RTM的登陆账号,可设置为任意的字符串比如:1086,此账号后续会用到不可任性设置"
sip_account= "IVR对应的SIP号码,即呼叫此SIP号,进入语音导航"
​
[proxy]
on=0    "是否开启SIP代理,0:不开启 1:开启"
account=    "SIP代理的账号:1000"
pwd=        "SIP代理的密码:1234"
​
[sip]   "SIP普通账号,用于RTC和SIP互通"
acc_prefix=1    "账号的Prefix"
acc_pwd=1234    "账号的密码"
acc_rule=002-019"账号的拼接规则,Prefix+rule组成账号数组,1002 - 1019 共18个账号"
​
​
​
[log]
#* 0:SENSITIVE 1:VERBOSE 2:INFO 3:WARNING 4:ERROR 5:NONE
level=2 "日志级别"
file=rtc_sip.log    "日志名称"
max_file_size=100   "单位:M,日志最大不超过100M"
 

配置好之后进入srproxy的安装目录下执行:

cd /usr/local/ar4/srproxy
rtx.sh restart SRProxy

 

五,FAQ

1,Freeswitch的安装错误

由于每个人的环境不一样遇到的问题也不相同,所以先度娘或者进群讨论

2,问题描述:FreeSwitch部署在公网上 webRTC相互拨打电话,可以接通但没有声音传输,阿里云的安全组已经开放了RTP端口,但还是没有声音。

问题的解决:在/usr/local/freeswitch/conf/sip_profiles/internal.xml 中修改

<param name="ext-rtp-ip" value="60.205.**.**"/> <param name="ext-sip-ip" value="60.205.**.**"/>

把这改成自己的外网ip 重启freeswitch就可以解决

 

注:

在安装过程中遇到任何问题可以提iSsue

或者加入QQ群进行咨询:

QQ咨询群:580477436

ArCall技术交流群:597181019

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值