Freeswitch-基础配置-wss-api简化-acl

文章目录

一、使用证书certs(N)

https://freeswitch.org.cn/books/case-study/8.2-ssl.html

第一步:创建/usr/local/freeswitch/certs

FreeSWITCH支持WebRTC,但是现在以chrome为主的web浏览器都对WebRTC应用加限制,要求与服务端的连接必须是SSL连接(也就是wss://),所以我们需要让FreeSWITCH可以支持wss协议的接入方式而不是ws,理论上这一层可以由nginx等代理服务实现,但是笔者目前还没有成功实现,所以本文就先简单实现直接在FreeSWITCH中部署SSL证书。

第二步:申请证书

向域名提供商申请SSL证书,然后下载证书文件,应该会得到2个文件,分别是xxx.key和xxx.pem。

第三步:上传证书(至freeswitch目录)

把xxx.key文件和xxx.pem文件上传到freeswitch安装目录的certs目录下,如/usr/local/freeswitch/certs。

第四步:合成wss.pem文件

别忘了把原有的wss.pem文件先备份一下

shell 复制代码
cat xxx.pem xxx.key > wss.pem

第五步:配置wss端口

shell 复制代码
vim /usr/local/freeswitch/conf/sip_profiles/internal.xml

第六步:重启freeswitch服务

shell 复制代码
freeswitch -stop
freeswitch -nc -nonat

二、使用mod_abstraction(N)

官方文档

说白了就是添加快捷方式,再次优化原来的API

三、ACL访问控制,限制IP访问(Y)

3.1 说明

端口5080是不需要鉴权的,直接访问呼叫

端口5060是需要鉴权的,也是我们通常走的点,而让所有来话都送到5060端口上(internal Profile)。5060端口上的来话是需要先鉴权才能路由的。在这种汇接局模式中,一般会使用IP地址鉴权的方式。而IP地址鉴权就会用到ACL。

3.2 配置

internal Profile默认使用domains这个ACL进行鉴权。读者可以在internal.xml配置中找到如下的配置:

powershell 复制代码
  <param name="apply-inbound-acl" value="domains"/>
xml 复制代码
<configuration name="acl.conf" description="Network Lists">
  <network-lists>
    <!--
	以下的ACL是在启动时自动创建的。

	 rfc1918.auto  - 这个ACL包含了RFC1918规定的私有IP地址范围。
	 nat.auto      - 这个ACL包含了除了本地局域网之外的RFC1918私有IP地址范围。
	 localnet.auto - 这个ACL用于本地局域网的地址范围。
	 loopback.auto - 这个ACL用于本地环回接口的地址范围。
    -->
    
	<!--开始定义一个新的网络列表lan,默认情况下允许所有流量  -->
    <list name="lan" default="allow">
	<!--在lan列表中定义了一个节点,该节点拒绝来自CIDR块192.168.42.0/24的所有流量。 -->
      <node type="deny" cidr="192.168.42.0/24"/>
    <!--在lan列表中定义了一个节点,该节点允许CIDR块192.168.42.42/32(即单一IP地址192.168.42.42)的流量。-->
      <node type="allow" cidr="192.168.42.42/32"/>
    </list>

    <!--
	domains列表的作用是通过遍历目录来添加带有cidr=标签的所有用户到此ACL,并在匹配用户的变量和参数时,如同它们已经被摘要认证一样应用。
    -->
    <list name="domains" default="deny">
      <!-- 注释说明domain=是一个特殊的标签,它会从目录中扫描域以构建ACL。 -->
      <node type="allow" domain="$${domain}"/>
      <!-- 在domains列表中定义了一个节点,该节点允许域变量$${domain}所代表的流量。
      注释建议如果需要允许IP范围到此域的ACL,则应使用cidr=。-->
      <!-- <node type="allow" cidr="192.168.0.0/24"/> -->
    </list>

  </network-lists>
</configuration>

可以额外设置注释里面的

3.3 解释

  • deny 代表拒绝
  • allow 带边允许

二、关闭默认音频

相关推荐
贾宝玉的玉宝贾1 天前
FreeSWITCH 简单图形化界面52 - 拨号应用 Answer 介绍
python·django·voip·freeswitch·sip·ippbx·jssip
小毅&Nora1 个月前
【人工智能】【AI外呼】 ⑤ FreeSWITCH 深度解析:原理、安装、在智能外呼中的核心地位与未来演进
人工智能·freeswitch·ai外呼
Mike_Zhang2 个月前
FreeSWITCH开启silk编码及转码
voip·freeswitch
Mike_Zhang2 个月前
FreeSWITCH使用mod_fail2ban模块来提升安全
voip·freeswitch
Mike_Zhang2 个月前
FreeSWITCH使用RNNoise进行实时通话降噪
voip·freeswitch·音频技术
爱学习的大牛1232 个月前
Ubuntu 24.04 安装 FreeSWITCH 完整教程
linux·freeswitch
若尘拂风3 个月前
FreeSWITCH配置文件解析(11) 模块配置文件(modules.conf)
服务器·tcp/ip·udp·freeswitch
若尘拂风3 个月前
centos 7.9 编译安装 freeswitch 1.10.12
服务器·udp·freeswitch·sip