首页 > 其他分享 >freeswitch的多租户模式

freeswitch的多租户模式

时间:2023-01-12 18:11:50浏览次数:42  
标签:test123 租户 模式 SIP freeswitch 10011 com

 

 

概述

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:[email protected]:14542;rinstance=1937ab4fc61e1076>

To: "10011"<sip:[email protected]>

From: "10011"<sip:[email protected]>;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 [[email protected]] 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/[email protected]"/>

        </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/[email protected] parsing [test123.com->test123] continue=false

Dialplan: sofia/internal5062/[email protected] Regex (PASS) [test123] destination_number(1002) =~ /^(\d+)$/ break=on-false

Dialplan: sofia/internal5062/[email protected] Action bridge(user/[email protected])

10011账户的呼出流程使用“context test123.com”的拨号计划。

总结

freeswitch可以通过不同的SIP域配置实现多租户模式,针对云端服务的用户配置有一定的参考意义。

多租户模式的呼出流程通过注册SIP域实现隔离,回呼流程则需要根据号码或端口的方式来区分目标SIP域。

 

空空如常

求真得真

标签:test123,租户,模式,SIP,freeswitch,10011,com
From: https://www.cnblogs.com/qiuzhendezhen/p/17047459.html

相关文章

  • 学习记录-状态模式
    状态模式在状态模式(StatePattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象......
  • 微信小程序图片显示模式
     ......
  • 11.(结构型模式)java设计模式之外观(门面)模式
    一、什么是外观(门面)模式 二、外观(门面)模式的实现方式模式结构分析:类关系图:统一模型:代码实现:测试用例:测试结果:方法评估:优点:缺点:三、JAVA知识点四.汇总......
  • MQTT 发布/订阅模式介绍
    MQTT发布/订阅模式发布订阅模式(Publish-SubscribePattern)是一种消息传递模式,它将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦,使得两者不需要建立直接的联系也不......
  • PO模式
    PO模式是pageobject的缩写,是一种设计模式被测页面作为页面对象1,其中包含元素定位和元素操作的方法,将页面对象和真实网站页面进行一一对应举个栗子来讲:用户注册使用PO模式后......
  • po模式
    PO模式是pageobject的缩写,是一种设计模式被测页面作为页面对象1,其中包含元素定位和元素操作的方法,将页面对象和真实网站页面进行一一对应举个栗子来讲:用户注册使用PO模式后......
  • 设计模式
    人文历史“设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年建筑界已经有人提出了设计模式。1990年软件工程界才开始研讨设计模式的......
  • 学习记录-外观模式
    外观模式外观模式(FacadePattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系......
  • 学习记录-观察者模式
    观察者模式当对象间存在一对多关系时,则使用观察者模式(ObserverPattern),也称之为发布-订阅模式。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型......
  • 学习记录-适配器模式
    适配器模式适配器模式(AdapterPattern)是作为两个不兼容的接口之间的桥梁,它不会改变原先的接口。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式......