freeswitch的多租户模式
概述
freeswitch是一款简单好用的VOIP开源软交换平台。
现在的VOIP服务越来越倾向于云端服务,包括呼叫中心云服务,线路云平台。
而云平台对多个客户的服务就需要做好隔离,包括数据隔离、线路隔离、服务隔离等。
freeswitch内部的多租户模式根据不同用户SIP域的配置,来实现呼叫的服务隔离。
环境
centos:CentOS release 7.0 (Final)或以上版本
freeswitch:v1.10.7
GCC:4.8.5
多租户模式
云端的服务不可能只提供给一个客户使用,如何在服务上区分客户,做到数据和资源的隔离。
服务中的多租户模式意味着多个客户可以同时使用一套服务,但又要求不会互相影响。
对于VOIP服务来说,多租户代表在整个服务系统中,多家公司通过一定的规则实现号码、路由规则、资源的互相隔离,同时又互不影响,最大程度的利用好有限的资源。
对于云端PBX来说,多个客户甚至可以使用相同的sip账号注册和呼叫,又各自独立。
fs已经实现了通过SIP域的方式,达到多租户模式的效果。
配置方案
复制并修改注册端口文件conf/sip_profile/internal5062.xml,不再强制修改用户注册SIP域为"$${domain}"。
<!-- <param name="force-register-domain" value="$${domain}"/> -->
<!-- <param name="force-subscription-domain" value="$${domain}"/> -->
<!-- <param name="force-register-db-domain" value="$${domain}"/> -->
修改sip终端10011账户注册信息,使用“test123.com”的SIP域注册。
domain修改为”test123.com”。
domain proxy的send outbound via设置为”10.55.55.138:5062”。
10011终端的注册信令如下。
REGISTER sip:test123.com SIP/2.0
Via: SIP/2.0/UDP 10.9.0.16:14542;branch=z9hG4bK-d87543-ef1e50670e66bb09-1--d87543-;rport
Max-Forwards: 70
Contact: <sip:10011@10.9.0.16:14542;rinstance=1937ab4fc61e1076>
To: "10011"<sip:10011@test123.com>
From: "10011"<sip:10011@test123.com>;tag=0479973d
Call-ID: MzU2MjgzMmI2NWM3ZmM2YTE5YTJmYzZmM2E2NTdlZjM.
CSeq: 1 REGISTER
Expires: 3600
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
User-Agent: eyeBeam release 1004p stamp 31962
Content-Length: 0
freeswitch注册告警信息,注册失败,因为还没有设置”test123.com”对应的SIP域信息。
2022-12-12 16:05:17.568684 [WARNING] sofia_reg.c:2973 Can't find user [10011@test123.com] from 10.9.0.16
You must define a domain called 'test123.com' in your directory and add a user with the id="10011" attribute
and you must configure your device to use the proper domain in it's authentication credentials.
复制并修改conf/directory/default5062.xml,设置”test123.com”对应的SIP域信息,域用户的user_context使用test123.com。
<domain name="test123.com">
...
<variables>
<variable name="user_context" value="test123.com"/>
</variables>
...
<group name="default">
<users>
<X-PRE-PROCESS cmd="include" data="default5062/*.xml"/>
</users>
</group>
复制并修改conf/directory/default5062/10011.xml,删除账户默认的user_context设置,统一使用SIP域设置的user_context。
删除行<variable name="user_context" value="default"/>
修改conf/dialplan/test.xml拨号计划,增加context为test123.com的呼叫流程。
<context name="test123.com">
<extension name="test123">
<condition field="destination_number" expression="^(\d+)$">
<action application="bridge" data="user/$1@test123.com"/>
</condition>
</extension>
</context>
测试
使用10011呼叫1002,测试日志如下。
2022-12-12 17:29:03.375298 [INFO] mod_dialplan_xml.c:637 Processing 10011 <10011>->1002 in context test123.com
Dialplan: sofia/internal5062/10011@test123.com parsing [test123.com->test123] continue=false
Dialplan: sofia/internal5062/10011@test123.com Regex (PASS) [test123] destination_number(1002) =~ /^(\d+)$/ break=on-false
Dialplan: sofia/internal5062/10011@test123.com Action bridge(user/1002@test123.com)
10011账户的呼出流程使用“context test123.com”的拨号计划。
总结
freeswitch可以通过不同的SIP域配置实现多租户模式,针对云端服务的用户配置有一定的参考意义。
多租户模式的呼出流程通过注册SIP域实现隔离,回呼流程则需要根据号码或端口的方式来区分目标SIP域。
空空如常
求真得真
freeswitch的多租户模式的更多相关文章
- K8S-OVS使用Openvswitch为提供SDN功能支持单租户模式和多租户模式
k8s-ovs ============================== 最近在寻求一些工作机会,如果有kubernetes相关研发招聘的朋友,欢迎随时联系我.我的个人简历可以通过百度网盘:htt ...
- SaaS多租户模式数据存储方案
云计算多租户几乎用于所有软件即服务 (Software as a Service, SaaS) 应用程序,因为计算资源是可伸缩的,而且这些资源的分配由实际使用决定.话虽如此,用户可以通过 Intern ...
- SaaS多租户模式数据存储方案比较
云计算多租户几乎用于所有软件即服务 (Software as a Service, SaaS) 应用程序,因为计算资源是可伸缩的,而且这些资源的分配由实际使用决定.话虽如此,用户可以通过 Intern ...
- 近乎产品MVC架构介绍-多租户模式
应用的数据部分支持多租户,租户可以是呈现区域(PersentArea)也可以是另一个应用.在数据库设计方面采用最简单的方式,在应用数据表中增加TenantTypeId(存储对应的Application ...
- Azure AD(五)使用多租户应用程序模式让任何 Azure Active Directory 用户登录
一,引言 距离上次分享关于 “Azure AD" 的知识过去差不多2个多月了, 今天最近刚好也是学习,分享一下关于Azure AD 使用多租户应用程序模式让任何 Azure Active D ...
- Module-Zero之租户管理
返回<Module Zero学习目录> 开启多租户 租户实体 租户管理者 默认租户 开启多租户 ABP和Module-Zero可以运行多租户或单租户模式.多租户默认是禁用的.我们可以在mo ...
- OpenStack 企业私有云的若干需求(3):多租户和租户间隔离(multi-tenancy and isolation)
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- ABP Zero 多租户管理
ABPZero - 多租户管理 启用多租户 ASP.NET Boilerplate和module-zero可以运行多租户或单租户模式.多租户默认为禁用.我们可以在我们的模块PreInitialize方 ...
- 番外篇--Moddule Zero多租户管理
番外篇--Moddule Zero多租户管理 2.1.1 关于多租户 强烈建议阅读这个文件前阅读多租户文档. 2.1.2 启用多租户 ASP.NET Boilerplate和module-zero可以 ...
- 数据层的多租户浅谈(SAAS多租户数据库设计)
在上一篇“浅析多租户在 Java 平台和某些 PaaS 上的实现”中我们谈到了应用层面的多租户架构,涉及到 PaaS.JVM.OS 等,与之相应的是数据层也有多租户的支持. 数据层的多租户综述 多租户 ...
随机推荐
- 吉特日化MES & Redis 运行远程访问的配置
在吉特日化MES系统部署实施过程中,经常需要配置Redis需要运行远程IP访问Redis.使用Redis的目的主要是为了解决缓存的问题,同时解决打印过程中推送数据的问题. 一. Redis 的安装目录 ...
- 实践篇:1 虚拟机使用rmp方式安装部署GitLab-ce
01 环境准备 电脑:MAC Air 虚拟机:VMware Fusion 12.2.3 Linux环境:CentOS 7 02 rpm方式安装部署GitLab服务 步骤1:centos 7 安装wge ...
- 开心自走棋:使用 Laf 云开发支撑数百万玩家
先介绍一下开心自走棋 开心自走棋是一款剑与魔法的烧脑自走棋游戏.以著名的魔幻世界观为蓝本,采用了轻松可爱的画面风格,精致细腻的动画和特效来还原魔兽之战. 现在市面上自走棋游戏多是 PvP 玩法为主,而 ...
- Linux 多路复用(多路转接)
出现原因 如果需要从一个文件描述符中读取数据,然后将数据写入到另一个文件描述符时,可以按照如下的阻塞 IO : while ((n = read(STDIN_FILENO, buf, BUFFER_S ...
- ubuntu安装mysql8,debian安装mysql8,linux安装mysql8,x86_64架构,deb包
作者主页:https://www.cnblogs.com/milkbox 参考: 修改大小写:MySQL8.0安装后更改不区分大小写!包你必生效!_mysql8.0不区分大小写-CSDN博客 整个安装 ...
- 技术驱动,数据赋能,华为云GaussDB给世界一个更优选择
摘要:5月16日,"数智深耕 让美好发生 2023华为云城市峰会广州站"成功举行. 5月16日,"数智深耕 让美好发生 2023华为云城市峰会广州站"成功举行. ...
- Ascend CL两种数据预处理的方式:AIPP和DVPP
摘要:本文介绍了昇腾CANN提供的两种数据预处理的方式:DVPP和AIPP,介绍了两者的功能.差别及联系,并以具体代码示例介绍了如何使用DVPP和AIPP的功能. 本文分享自华为云社区<了解As ...
- 一文为你详解Unique SQL原理和应用
摘要:以一定的算法结合解析树中的各结点,计算出来一个整数值,用来唯一标识这一类SQL,这个整数值被称为Unique SQL ID,Unique SQL ID相同的SQL语句属于同一个"Uni ...
- 云小课 | 华为云KYON之VPC终端节点
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:在华为云KYON( ...
- 空间数据库基础理论 GIS空间数据处理分析涉及的基本概念
<空间数据库>课程整理汇总,106篇课程,内容太长,学习中,把一些关键点,汇总记下笔记 地理空间 GIS中的地理空间(Geo-spatial)是指经过投影变换后,在笛卡尔坐标系中的地球表层 ...