首页 > 其他分享 >freeswitch配置SBC的方案

freeswitch配置SBC的方案

时间:2022-11-30 17:46:39浏览次数:31  
标签:fs sbc 配置 SBC 文档 freeswitch

 

 

概述

freeswitch 是一款好用的开源软交换平台。

但是,fs不是专为SBC而开发的,所以需要做一些定制化的配置和开发。

本文主要介绍如何利用fs的基本功能配置一个简单的SBC方案,满足一般化需求,如果有定制化的需求需要定制开发。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.8.7

GCC:4.8.5

SBC简介

会话边界控制器(Session Border Controller,简称SBC)。

看完名称定义,我就在想,什么是会话,什么样的边界,控制什么。

SBC最早作为IMS系统的重要网元,主要解决运营商语音业务中的安全问题、NAT问题、互通问题。

安全问题,包括IP对接名单,非法拦截,内网拓扑屏蔽等。边界和控制。

NAT问题,主要针对外网和内网的隔离转换。边界。

互通问题,包括会话信令的适配互通和媒体流的互通。会话和控制。

 

随着企业级VOIP通信网络的发展,内部组网结构越来越复杂,在对外呼叫和跨域通信的场景下,SBC作为内外互通、会话控制和边界控制的重要节点,有其独特的作用和地位。

fs配置sbc的方案

在fs的官方文档中,对于sbc的介绍有以下几种方式。

一,利用mod_lcr和mod_easyroute模块建立sbc,主要针对多个运营商线路的场景。

二,python_sbc,使用python脚本监控esl接口中的event事件并对事件响应操作,主要是利用302重定向消息,和通常意义中的sbc有区别。

三,sbc_setup,利用fs和kamailio互相配合实现,文档和版本都非常老,不适用新版本fs。

四,SBC FreeSWITCH Configuration Example 2,通过dialplan拨号计划实现基本的sbc功能。官方文档见“https://freeswitch.org/confluence/display/FREESWITCH/SBC+FreeSWITCH+Configuration+Example+2”

第四种场景是我们在企业组网中经常会用到的,适用性非常好,只需要简单的配置和测试就可以直接使用。

SBC配置示例

“SBC FreeSWITCH Configuration Example 2”文档中介绍的dialplan例子。

<include>

 <extension name="customer_my_public_desk">

    <condition field="${network_addr}" expression="pu.bl.ic.ip"/>

    <condition field="destination_number" expression="^\+?1?(\d+)$">

      <action application="set" data="hangup_after_bridge=true"/>

      <action application="set" data="continue_on_fail=true"/>

      <\!-- THIS WORKS FOR CALL DISTRIBUTION --\>

      <\!--    <action application="bridge" data="sofia/external/${destination_number}@${distributor(dist_list)}"/> -->

      <\!-- THIS WORKS FOR SINGLE PROXY  --\>

      <action application="bridge" data="sofia/external/${destination_number}@127.0.0.1:5062"/>

    </condition>

  </extension>

  <extension name="customer_my_private_desk">

    <condition field="${network_addr}" expression="pr.iv.ate.ip"/>

    <condition field="destination_number" expression="^\+?1?(\d+)$">

      <action application="set" data="hangup_after_bridge=true"/>

      <action application="set" data="continue_on_fail=true"/>

      <action application="bridge" data="sofia/internal/${destination_number}@127.0.0.1:5062"/>

    </condition>

  </extension>

</include>

例子比较简单,仅仅涉及了单个IP过滤、固定号码格式匹配、distributor分发。

实际生产环境的sbc配置会涉及更多方面。

总结

本文对fs官方文档中与sbc有关的介绍进行了梳理,对四种sbc配置方案进行了简单的介绍。

对于第四种sbc场景的配置方案仅仅列举了一个简单的例子,后续会对该种sbc场景进行生产环境的配置介绍。

 

空空如常

求真得真

标签:fs,sbc,配置,SBC,文档,freeswitch
From: https://www.cnblogs.com/qiuzhendezhen/p/16939211.html

相关文章

  • Spring Cloud Config 配置 (二)
    复合环境存储库在某些情况下,您可能希望从多个环境存储库中提取配置数据。为此,可以在配置服务器的应用程序属性或YAML文件中启用配置文件。例如,如果要从一个Subversion......
  • Angular 如何修改webpack配置(配置loader)
    1.修改AngularCLIwebpack配置1.1安装@angular-builders/custom-webpacknpminstall-D@angular-builders/custom-webpack1.2新建webpack配置文件extra-webpac......
  • Sharding-JDBC 原理和spring boot 核心配置文件说明
    1、分库分表策略:如每个数据记录属于一个集团ID、属于一个店铺ID列,可以根据集团ID%数据库数量取余设置规则分片键,及设置用哪个数据库和哪个表。同现可以使用数据记录中的......
  • docker配置jenkins环境搭建
    开始安装1.启动docker,下载Jenkins镜像文件dockerpulljenkins/jenkins    2.创建Jenkins挂载目录并授权权限(我们在服务器上先创建一个jenkins工作目录/var/......
  • springboot整合quartz达到动态配置定时任务的效果
    如题:首先贴上maven的配置<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>......
  • SpringCloud之Config分布式配置文件中心
    分布式系统面临的配置问题:微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息......
  • Spring的ioc介绍,配置文件和基本使用
    1.什么是spring,它能够做什么?  Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。  Spring使用基本的JavaBean来完成以前只可......
  • 手把手教你MacOS系统下Anaconda的安装和配置
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【110】问了一个关于Python安装的问题,但是她的计算机是苹果的,这倒是有点难为小白的,后来我远程帮她安装搞定的,这里......
  • Nginx URL重写(rewrite)配置及信息详解
    URL重写有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中NginxURL重写(rewrite)介绍    和apache等web服务软件一样,rewrite的组要功能是......
  • 如何正确配置Tomcat SSLHostConfig?
    <Connectorport="443"protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="100"compression="on"sche......