概述

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

在voip的网络模型中,网关是我们经常会遇到的概念。

在freeswitch中,如何配置gateway,如何使用好gateway的模型和功能。

本节简单介绍fs中gateway相关的配置方案。

环境

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

freeswitch:v1.10.7

GCC:4.8.5

gateway

freeswitch中的gateway概念有三种配置方案,默认的示例文件如下。

conf/sip_profiles/external/example.xml

conf/directory/default/default.xml

conf/directory/default/brian.xml

默认的文件内容就不在这里罗列了,可以自行搜索查看。

这三种配置方案有什么区别?

sip_profile下的网关会跟随对应profile端口的启动/停止/重启,default类型的网关会始终存在,brian类型的网关会跟随brian用户的注册状态启动/停止。

今天主要介绍第一种gateway的配置方法和测试结果。

配置&测试

配置conf/sip_profile/external/gw-138-5080.xml,设置网关参数,例子中只列举了必须的参数,非注册模式。

<include>

<gateway name="gw-138-5080">

<param name="username" value="not-used"/>

<param name="realm" value="10.55.55.138:5080"/>

<param name="password" value="not-used"/>

<param name="register" value="false"/>

<!--send an options ping every x seconds, failure will unregister and/or mark it down-->

<param name="ping" value="20"/>

<param name="ping-min" value="3"/>

<param name="ping-max" value="6"/>

<param name="ping-user-agent" value="proxy"/>

</gateway>

</include>

配置文件conf/dialplan/test.xml,设置拨号计划。

<extension name="test" continue="false">

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

<action application="bridge" data="{sip_invite_call_id=${sip_call_id}}sofia/gateway/gw-138-5080/$1"/>

</condition>

</extension>

发起呼叫10011->1002,三次的测试日志如下。

2022-12-14 15:02:03.955588 [WARNING] sofia.c:6073 Ping succeeded gw-138-5080 with code 200 - count 3/4/6, state UP

...

2022-12-14 15:01:59.595541 [INFO] mod_dialplan_xml.c:637 Processing 10011 <10011>->1002 in context public

...

EXECUTE sofia/external/10011@10.55.55.138 bridge({sip_invite_call_id=0b9b5723-f620-123b-7d99-000c29a63969}sofia/gateway/gw-138-5080/1002)

...

EXECUTE sofia/external/10011@10.55.55.138 bridge({sip_invite_call_id=0fa91c5b-f620-123b-7d99-000c29a63969}sofia/gateway/gw-138-5080/1002)

...

EXECUTE sofia/external/10011@10.55.55.138 bridge({sip_invite_call_id=13af6d0d-f620-123b-7d99-000c29a63969}sofia/gateway/gw-138-5080/1002)

...

总结

freeswitch的gateway概念有多种类型和模式。类型包括profile、default和brian三种,模式包括注册和非注册模式。

gateway的参数详情请参考fs官网文档。

空空如常

求真得真

freeswitch的gateway配置方案的更多相关文章

  1. Atitit.兼具兼容性和扩展性的配置方案attilax总结

    Atitit.兼具兼容性和扩展性的配置方案attilax总结 文件配置法1 Jdbc多数据源文件配置发1 Bat文件配置法1 改进的文件配置法(采用类似i18n技术) 推荐1 使用自动化pc_id的方 ...

  2. Spring MVC之视图解析器和URL-Pattern的配置方案

    上期讲解了第一入门案例之后接下来了解一下视图解析器与URL-Pattern的配置方案 先来说视图解析器,在上次博客文章中我们完成了入门案例,接下来我们就在上一个例子中完善一下体出视图解析器 <? ...

  3. Apache安全配置方案

    Apache安全配置方案 from:http://drops.wooyun.org/%e8%bf%90%e7%bb%b4%e5%ae%89%e5%85%a8/2727 apache的一些配置主要是通过 ...

  4. web.config中sessionState节点的配置方案

    web.config中sessionState节点的配置方案 web.config关于sessionState节点的配置方案,sessionState有五种模式:Custom,off,inProc,S ...

  5. gVim 配置方案 采用Vundle管理插件

    在Linux下配置vim非常简单,尤其是采用Vundle来管理插件,使得一切用起来得心应手. Maple大神在github上公布了自己的vim配置方案,相当方便好用.详见 https://github ...

  6. mysql cluster 安装配置方案

    mysql cluster (mysql 集群)安装配置方案   一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以 ...

  7. Windows环境下python多版本配置方案

    系统环境 Windows,安装了msys2,windows和msys2都安装了python,且版本比较多,使用shell/bash聚合工具conemu64 配置方案 配置msys2环境用户目录下的.b ...

  8. Asp.net的sessionState四种模式配置方案

    sessionState节点的配置 web.config关于sessionState节点的配置方案,sessionState有四种模式:off,inProc,StateServer,SqlServer ...

  9. 第八节: Quartz.Net五大构件之SimpleThreadPool及其四种配置方案

    一. 简介 揭秘: SimpleThreadPool是Quartz.Net中自带的线程池,默认个数为10个,代表一个Scheduler同一时刻并发的最多只能执行10个job,超过10个的job需要排队 ...

  10. LoadRunner配置方案

    1.配置方案运行时设置 选择“Tools”>“Options”.在“Options”对话框有“Run-Time Settings”(运行时设置).“Timeout”(超时).“Run-Time  ...

随机推荐

  1. bilibili弹幕爬虫

    import random import requests import jieba import numpy as np from lxml import etree class SpiderBil ...

  2. P3629 [APIO2010] 巡逻 (树的直径)

    (这道题考察了求直径的两种方法......) 在原图中,每条边要经过两次,增加1条后,形成了一个环,那么环上的边只需要经过一次了(大量画图分析得),再增加一条又会形成一个环,如果这两个环有重叠,重叠部 ...

  3. flutter系列之:builder为构造器而生

    目录 简介 Builder StatefulBuilder LayoutBuilder 总结 简介 flutter中有很多种Builder,虽然所有的builder都是构造器,但是不同的builder ...

  4. super关键字的使用

    1.super理解为:父类的 2.super可以用来调用:属性.方法.构造器 3.super的使用:调用属性和方法 3.1 我们可以在子类的方法或构造器中.通过使用"super.属性&quo ...

  5. 在Centos7上安装JDK1.8和tomcat8.5的步骤和过程(亲测可用)

    文章目录 1.在阿里云(Linux)Centos7上安装JDK1.8步骤过程 2.阿里云(Linux)centos7上安装Tomcat8.5步骤过程记录: 卸载JDK Centos7一般都会带有自己的 ...

  6. 驱动开发:内核测试模式过DSE签名

    微软在x64系统中推出了DSE保护机制,DSE全称(Driver Signature Enforcement),该保护机制的核心就是任何驱动程序或者是第三方驱动如果想要在正常模式下被加载则必须要经过微 ...

  7. oracle expdp/exp ora-600/ora-39014报错处理

    在一次数据迁移的时候,expdp导出报错,错误信息如下: 版本号:11.2.0.1 没有打PSU,查看报错的aler部分日志如下: 其中的某一些trc日志文件截图: Trace file d:\ora ...

  8. 1.httprunner3入门

    一.httprunner3 httprunner是一款面向HTTP(S)协议的通用开源测试框架 支持三种格式的用例:YAML/JSON/Pytest,httprunner3以前不支持pytest用例 ...

  9. CVE-2021-44832 log4j_2.17.0 RCE复现与吐槽

    先说一句,这傻x洞能给cve就离谱,大半夜给人喊起来浪费时间看了一个小时. 先说利用条件: 需要加载"特定"的配置文件信息,或者说实际利用中需要能够修改配置文件(你都能替换配置文件 ...

  10. 利用递归的方式在JSON 数据中找到某个节点的多有父节点

    在项目中遇到的问题-- 一个级联题,知道答案id  后将每一级的选项展示出来 例如 级联题的 json 数据是 [ { name: '北京', id: 1, children:[ { name: '朝 ...