使用IAD电话交换机(语音网关)将电话外线对接到FreeSWITCH SIP服务器

在我们初步了解了FreeSWITCH这样的SIP服务器之后,常见的一个需求就是把真实的电信世界(比如固话、手机)对接到SIP服务器里。
今天我们就介绍一个简单的方法,在3分钟内就把电信局和你的SIP软交换机融合通信起来。

IAD和SIP服务器环境准备工作

这里我们会用到三台设备(IAD语音网关,FreeSWITCH服务器,带耳麦的电脑装了MicroSIP软电话软件)。全部接到局域网里。
为了方便,我们预先要规划好每个设备的IP地址。其实,我通常给客户建议,凡事预则立,不预则废,无论在实验环境,还是真实生产环境里,单位里每个网络设备,尽量提前规划,分配固定的IP地址,方便管理,方便排障,避免不必要的扯皮麻烦。

简称名称需要条件
IADIAD网关插上电话外线,能打电话
IP地址:192.168.3.15
FreeSWITCHFreeSWITCH服务器
IP地址:192.168.3.13
MicroSIPMicroSIP坐席电脑有耳麦
IP地址:192.168.3.66

组网图是这样的:
IAD和FreeSWITCH组网示意图
我们首先把MicroSIP注册到FreeSWITCH上,使用1000这个分机号。具体注册方法,参考《Microsip注册到FreeSWITCH分机测试SIP服务器是否安装成功》这篇文章。
然后我们开始设置FreeSWITCH和IAD。其中FreeSWITCH是核心,所有先设置这个软件。

FreeSWITCH设置

  1. 首先新增一个gateway网关
    FreeSWITCH把这个叫做gateway网关,实际上我觉得应该跟思科一样,叫做trunk(中继)才容易理解。反正随便起个文件名,比如叫做iad1.xml ,放在freeswitch/conf/sip_profiles/external/ 这个目录下。
<include>
<!-- freeswitch/conf/sip_profiles/external/iad1.xml  --><gateway name="iad"><param name="realm" value="192.168.3.15:5080"/><param name="register" value="false"/></gateway>	
</include>
  1. 然后加一个dialplan拨号规则
    我们再创建一个文件,随便起一个名字比如叫做huhuhu.xml,放在freeswitch/conf/dialplan/default/ 目录下。
</include>
<!-- freeswitch/conf/dialplan/default/huhuhu.xml  --><extension name="zzzZZZ"><condition field="destination_number" expression="^0(.*)$"><action application="bridge" data="sofia/gateway/iad/$1"/></condition> </extension>
<include>

简单说明: 这两个文件,是靠 iad 这个名字关联起来的,在第二个文件里的 data=“sofia/gateway/iad/$1”
这句话里的iad,就是对应第一个文件里的gateway的名字 name=“iad”

创建好这两个文件之后,如果您对FreeSWITCH软件熟悉,就可以重新加载一下了(命令:sofia profile external rescan),如果不熟悉,简单粗暴一点就是把服务器重启一下就对了!!

设置IAD

IAD设置比较简单,拢共分3步:自己IP,对端IP,呼叫路由。

  1. 设置自己本端IP
    在IAD管理网页的【网络】-【WAN】页面,修改为静态IP模式,输入IP地址和默认网关。比如本例中 192.168.3.15。

IAD设置静态IP

  1. 设置对端IP

在【FXO】-【SIP中继】页面,将FreeSWITCH服务器的IP地址,填写到“注册服务器”这栏里,将“注册服务器端口”改成5080。
IAD设置注册服务器IP
3. 设置呼叫路由
在【FXO】-【呼叫路由】页面,设置呼入和呼出路由。
比如本例中,源端选择sip_trunk1,目的端选择FXO1,就是呼出路由。
而呼入路由呢,则源端选择FXO1,而目的端就是sip_trunk1。
需要注意的是,这里的“来电号码修改”,就是DID号码,一般是填写这条电话线的真实号码,填写一个虚拟的号码也可以。这里为了方便测试,我们填写 5551212 。

IAD设置呼叫路由
填写完这三页参数,保存并应用,就设置完成了。
算一下时间,应该不超过3分钟吧。

呼入和呼出测试

首先测试呼出,我们在Microsip软电话上拨打010086,呼叫移动公司客服中心,进行一个简短的通话。
使用Microsip测试电话呼出
然后我们用手机呼叫这条电话线的号码(真实号码),注册了1000分机的Microsip软电话软件会响铃,可以通话。

您关注的问题可能不止安全性

刚才我们讲述的这个方法很简单,简单到让人感到困惑:网关gateway不做密码验证就直接呼出了,安全性在哪里?
如果把FreeSWITCH放在公网上,而IAD放在本地局域网(没有公网IP),又如何填写realm / proxy 信息呢?
关注一下,且听下回分解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Superset二次开发之Superset架构理解

技术框架 框架作用 前端 React构建用户界面的 JavaScript 库ReduxJavaScript 应用的状态管理库,管理组件间的状态共享Webpack前端资源打包工具BabelJavaScript 编译器D3.js数据可视化的 JavaScript 库后端 Flask轻量级的 Python web 框架,处理 HTTP 请求、路由以及其他 Web 服…

搜维尔科技:动作捕捉与数字时尚:Wondar Studios欧莱雅项目

来自意大利的Wondar Studios工作室&#xff0c;是一家制作与动作捕捉技术相关软件和内容的公司&#xff0c;其出品的三维角色动画均由专业动捕系统真实录制制作。 我们很高兴与大家分享Wondar Studios最新的动捕项目&#xff0c;该项目带来了身临其境的虚拟现实体验。他们与巴…

AI新工具 MacOS 翻译提供翻译、润色和语法修改功能的插件;AI生成 Excel公式;Deepmind前华人员工创建视频生成工具

1: OpenAI Translator Bob Plugin macOS 平台的翻译提供翻译、润色和语法修改功能的插件 OpenAI Translator Bob Plugin是一款基于OpenAI的API&#xff0c;为用户提供翻译、润色和语法修改功能的插件。这款插件专门为macOS平台上的Bob软件设计&#xff0c;通过使用先进的Chat…

fork属性的作用

在Maven中&#xff0c;fork属性是maven-compiler-plugin插件的一个配置选项。它的作用是控制是否为编译过程启动一个新的进程。当fork设置为true时&#xff0c;Maven将启动一个新的进程来执行编译&#xff0c;这允许你在本地的Java编译器之外使用其他Java编译器&#xff0c;例如…

矩阵键盘中为什么有键位并联二极管?

矩阵键盘上使用二极管主要是为了解决“幽灵键”&#xff08;Ghosting&#xff09;和“键盘冲突”&#xff08;Key Jamming&#xff09;问题&#xff0c;这两种现象在没有采取适当措施的矩阵键盘中很常见。 幽灵键现象 当用户在矩阵键盘上同时按下多个键时&#xff0c;由于电流…

笔试刷题记录(二)

数值操作类型转换 class CompareReference{public static void main(String [] args){float f42.0f;float f1[]new float[2];float f2[]new float[2];float[] f3f1;long x42;f1[0]42.0f;} }A f1f2 B xf1[0] C f1f3 D f2f1[1]BC正确&#xff0c;选项B解释&#xff0c;java核…

如何定义resultType和resultMap,它们之间的区别是什么?解释一下<parameterType>的作用和用法。

在MyBatis中&#xff0c;resultType和resultMap都用于将数据库查询结果映射到Java对象&#xff0c;但它们在使用方式和灵活性上有一些区别。 resultType resultType是一个简单的类型别名&#xff0c;它用于指定查询结果应该映射到的Java类型。当数据库表中的列名和Java对象的属…

设计模式-建造者模式实践案例

建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一种创建对象的最佳方式。当一个对象需要多个部分或许多步骤来创建&#xff0c;并且需要将创建过程与表示分离时&#xff0c;建造者模式非常有用。建造者模式旨在找到一个解决方案&…

C#使用泛型自定义的方法设计队列CQueue<T>类

目录 一、涉及到的知识点 1.C#中的队列类 2.自定义队列的方法 &#xff08;1&#xff09;先设计一个CList<T>类 &#xff08;2&#xff09;再设计CQueue<T>类 二、自定义队列CQueue<T>类的实例 一、涉及到的知识点 1.C#中的队列类 在C#中实现队列类&a…

数据仓库实战 第一讲

第一节 数据仓库的定义 数据仓库的优势 面向主题集成相对稳定反映历史变化 数据仓库的架构 特点 简单通过暂存区简化数据准备星型结构沙盒 &#xff08;提供专用安全区域&#xff09; 云数据仓库 特点 弹性&#xff08;高扩展性能&#xff09;简单易用易于管理节约成本…

线性代数的学习路线

线性代数是数学的一个重要分支&#xff0c;它主要研究向量空间和线性映射。学习线性代数的线索可以从以下几个关键点展开&#xff1a; 向量的内积&#xff1a;了解向量的内积概念&#xff0c;它是衡量两个向量之间关系的一种方式&#xff0c;可以用来计算向量的长度和角度。矩…

Git误操作补救错失:恢复误删的本地分支、将某个提交从一个分支复制到另一个分支

一、恢复误删的本地分支 作为一枚强迫症&#xff0c;没用的分支总是喜欢及时删删删删掉删掉统统删掉&#xff0c;结果今天发现有些分支还是应该保留。 比如&#xff0c;①前段时间切了个分支用来专门做图表&#xff0c;但因为需求还没有最终确定&#xff0c;已经上线了测试服而…

数据库-第八/九章 数据库编程和优化【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下数据库系统概论中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言第八章 数据库编程8.1 嵌入式SQL8.2 嵌入式sql语…

Java实战:电商平台通用取货码设计

在电商平台中&#xff0c;取货码是一种常见的机制&#xff0c;用于验证用户身份并允许他们从仓库或商店取货。一个好的取货码设计可以提高用户体验&#xff0c;增强安全性&#xff0c;并简化物流流程。本文将深入探讨电商平台通用取货码的设计原理&#xff0c;包括安全性、唯一…

UE4 Niagara 关卡4.1官方案例解析

we now directly supporting playing audio from arbitrary locations in particle systems.users have control over volume and pitch,and the system can directly play sound waves,or sound cues which have multiple waves in them.(我们现在直接支持在粒子系统中从任意…

Python 过滤函数filter()详解

一、过滤函数定义 它用于对容器中的元素进行过滤处理。 二、 过滤函数语法 filter(function,iterable) 参数function&#xff1a;提供过滤条件的函数&#xff0c;返回布尔型 参数iterable: 容器类型数据 三、过滤函数的应用场景 1、筛选符合条件的元素 需求&#xff1a;在列表…

Paddle上手实战——NLP经典cls任务“推特文本情感13分类”

Paddle上手实战——NLP经典cls任务“推特文本情感13分类” 实战背景介绍 数据地址:https://www.heywhale.com/home/activity/detail/611cbe90ba12a0001753d1e9/content Twitter推文具备多重特性,首要之处在于其与Facebook的显著区别——其完全基于文本形式,通过Twitter接…

微软大中华区商业应用事业部高级产品经理张诗源,将出席“ISIG-低代码/零代码技术与应用发展峰会”

3月16日&#xff0c;第四届「ISIG中国产业智能大会」将在上海中庚聚龙酒店拉开序幕。本届大会由苏州市金融科技协会指导&#xff0c;企智未来科技&#xff08;LowCode低码时代、RPA中国、AIGC开放社区&#xff09;主办。大会旨在聚合每一位产业成员的力量&#xff0c;深入探索低…

shell中判断字符串包含另一个字符串

除了用外部的命令比如expr、awk、sed等等&#xff0c;内置方法可以用截取、替换等方式得到一个新的字符串&#xff0c;如果新的字符串和原来的字符串有变化&#xff0c;说明变量包含字符串。 用替换为例: 查找变量a&#xff08;值复制为hello world ) 中是否有字符串or截取、替…

代码随想录算法训练营day14 | 二叉树的递归遍历、二叉树的迭代遍历、二叉树的统一迭代

今天开始二叉树的学习。 关于二叉树的理论基础&#xff0c;可以参考&#xff1a; 链接: 二叉树理论基础 目录 二叉树的递归遍历写递归的思路二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历 二叉树的迭代遍历二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历 二叉树的统…