freeswitch-02

news2024/12/25 12:54:47

文章目录

  • 1. 拨号计划
    • 1.1 定义
    • 1.2 XML Dialplan
      • 1.2.1 配置文件的结构
      • 1.2.2 默认配置文件简介
    • 1.3 正则表达式
    • 1.4 通道变量
    • 1.5 工作机制
    • 1.6 常用的Dialplan App
    • 1.7 小结
  • 2. SIP协议
    • 2.1 SIP协议基础
    • 2.2 HTTP协议和SIP协议
    • 2.3 3PCC
  • 3. 媒体
    • 3.1 媒体处理
      • 3.1.1 音频编码
      • 3.1.2 透传、媒体绕过与媒体代理


1. 拨号计划

1.1 定义

拨号计划是freeswitch中至关重要的一部分,主要作用是对电话进行路由,决定和影响通话的流程。

1.2 XML Dialplan

由一系列的配置文件组成,这些XML可以是静态配置的,也可以使用动态配置方式从其他服务器或脚本中动态获取。

1.2.1 配置文件的结构

拨号计划相当于多个Context组成。每个Context中有多个Extension

Extension相当于路由表中的表项,每一个Extension都有一个nam属性,name可以是任意合法的字符串,本身对于呼叫流程没有任何影响。

1.2.2 默认配置文件简介

系统默认提供的配置文件包含三个Context,分别是default、features和public。

  • default是默认的Diaplan,注册用户用来通电话。
  • public用于接收外来呼叫

1.3 正则表达式

Diaplan使用与Perl兼容的正则表达式匹配算法。

1.4 通道变量

在freeswitch中,每一次呼叫都由一条或多条“腿”组成,其中一条腿又称为一个channel

1.5 工作机制

(1)步骤
new -> init -> routing —transfer—> execute -> hangup -> destroy

(2)步骤解释

    当新建(new)一个channel时,它首先会进行初始化(init),然后进入(routing)阶段,也就是我们查找解析diaplan的阶段。找到合适的路由入口后,hunting会执行(execute)一系列动作,最后无论哪一方挂机,都会进入挂机(hangup)阶段。后面的报告(reporting)阶段一般用于进行统计、计费,最后将channel销毁(destroy),释放系统资源。
    在execute状态,可能会发生转移(transfer),可以转移到同一context下其他extension,或者转移到其他context下 的extension,但无论发生哪种转移,都会重新进行路由,也就是重新进入routing阶段,重新Hunt Dialplan

1.6 常用的Dialplan App

(1)set
用于设置一个通道变量
(2)echo
echo即回声,用于调试
(3)info
info在调试的时候也比较有用,它会在日志中打印全部的通道变量
(4)answer
answer用于应答一路呼叫

1.7 小结

拨号计划三个核心要素:Dialplan、context和extension。

2. SIP协议

2.1 SIP协议基础

会话初始协议是一个控制发起、修改和终结交互式多媒体会话的信令协议。

2.2 HTTP协议和SIP协议

SIP是一个基于文本的协议,这一点与HTTP和SMTP类似。

  • SMTP:主要用于电子邮件的传输的协议。

在
在这里插入图片描述

2.3 3PCC

指的是由第三方控制者在另外两者之间建立的一个会话,由控制着负责会话双方的媒体协商

3. 媒体

3.1 媒体处理

常见的媒体:音频、视频、图像、文本等。

3.1.1 音频编码

从模拟信号变成数字信号的过程成为模数转换,AD转换要经过采样、量化、编码三个过程。

音频编码最基本的两个技术参数就是采样频率和打包周期。

3.1.2 透传、媒体绕过与媒体代理

RTP媒体流也是经过freeswitch转发。


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

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

相关文章

多路复用select epoll

目录 一、什么是多路复用: 二、select 1 基本原理 2 参数 3 使用例子 4 select的缺点 三、epoll 使用用例 一、什么是多路复用: 多路: 指的是多个socket网络连接;复用: 指的是复用一个线程、使用一个线程来检查多个文件描述符(Socke…

OpenAI官方吴达恩《ChatGPT Prompt Engineering 提示词工程师》(2)如何迭代开发提示词

迭代/Iterative 在机器学习中,您经常有一个想法,然后实现它。编写代码,获取数据,训练模型,这就给您一个实验结果。然后您可以查看该输出,进行错误分析,找出哪些地方工作或不工作,然后…

瞬态执行攻击与防御的评估

作者:Claudio Canella, Jo Van Bulck, Michael Schwarz, Moritz Lipp, Benjamin von Berg, Philipp Ortner, Frank Piessens, Dmitry Evtyushkin, Daniel Gruss: 标题:A Systematic Evaluation of Transient Execution Attacks and Defenses. 发布&#…

写代码生成流程图

我们在写文档,博客的时候,一般都会使用markdown语法,最常见的就是一些github开源项目的README。有时候会去画一些流程图,例如使用process.on或者xmind等第三方网站,然后截图插入到文档中。 今天我们介绍一种使用代码直…

如何用手机给自己拍摄的视频静音?

我们在分享视频的时候常常会遇到这种情况,视频有杂音或音乐声太大,这个时候就需要用到视频静音这个功能了,将视频静音后,可以根据自己的需求重新配乐或配音,下面附上详细操作步骤,大家看好学好!…

nginx配置密码访问

安装htpasswd 因为需要使用到htpasswd,htpasswd是Apache服务器中生成用户认证的一个工具,如果未安装,则使用如下命令安装htpasswd。 yum install -y httpd-tools设置用户名和密码 htpasswd 安装成功后,就可以设置用户名和密码&am…

搭建智能桥梁,Amazon CodeWhisperer助您轻松编程

零:前言 随着时间的推移,人工智能技术以惊人的速度向前发展,正掀起着全新的编程范式革命。不仅仅局限于代码生成,智能编程助手等创新应用也进一步提升了开发效率和代码质量,极大地推动着软件开发领域的快速繁荣。 当前…

火车头采集器python CHATGPT/AI改写插件使用教程!

大家好我是淘小白,关于火车头的AI改写插件的环境配置和使用教程,今天来给大家整理一下,请购买过的朋友,按照这个教程自行操作~ 1、规则&插件 这是我们拿到的演示规则和插件 2、配置环境 首先,要先安装Python&…

如何通过bat批处理实现快速生成文件目录,一键生成文件名和文件夹名目录

碰对了情人,相思一辈子。 具体方法步骤: 一、创建一个执行bat文件(使用记事本即可); 1、新建一个txt文本空白记事本文件 2、复制以下内容进记事本内 dir/a/s/b>LIST.TXT (其中LIST.TXT文件名是提取后将…

“益路同行”专访第0002期—张掖市汇仁爱心公益协会创始人谢建英

中国善网在本届(第十届)慈展会上特别推出了《益路同行》采访栏目,《益路同行》栏目旨在寻觅公益之路上同行者的故事,挖掘公益更深层次的内涵,探索新时代公益发展道路。希望公益企业、人物、故事被更多人看到&#xff0…

RFID服装工位管理提高生产管理效率

RFID服装工位管理是一种通过使用RFID电子标签来提高制造企业生产管理效率的方法,在传统的制造企业中,生产流程通常以单件为主,当生产环节繁复且工序众多时,容易出现各种问题。特别是在劳动密集型行业,如服装制造业&…

Mini Linux嵌入式设备服务器

Digi International推出了具有Digi Embedded Linux的Digi Connect ME 9210。Digi Embedded Linux是为在Digi嵌入式模块和微控制器上开发而优化的最新版本。高性能嵌入式开发服务器大约只有一对骰子大小,是嵌入式Linux上最小的。这使OEM可以在空间受限的设备中使用Li…

StarRocks数据导入

1、相关环境 Flink作为当前流行的流式计算框架,在对接StarRocks时,若直接使用JDBC的方式"流式"写入数据,对StarRocks是不友好的,StarRocks作为一款MVCC的数据库,其导入的核心思想还是"攒微批降频率&qu…

Unity把UGUI再World模式下显示到相机最前方

Unity把UGUI再World模式下显示到相机最前方 通过脚本修改Shader 再VR里有时候要把3D的UI显示到相机最前方,加个UI相机会坏事,可以通过修改unity_GUIZTestMode来解决。 测试用例 测试用例如下: 场景包含一个红色的盒子,一个UI…

十,从摄像机打印立方体的一个外表面

从摄像机是与主摄像机保持同样的投影矩阵,所以,不用单独设置。如果把漫游器还是在(1,0,0)这个位置,各个从摄像机看向上下左右前后六个面,那么会出现什么现象呢?应该是x正轴打印出来,…

DataOps课程:DataOps实施,花更少的时间发现和纠正错误 | 内附视频

《DataOps实施》课程内容包括《数据之旅第一数据运营》《精益数据运营的四个阶段》《DataOps的流程及结论》。本文汲取课程精华要点,如需完整版可观看视频讲解,关注公众号回复关键字【第五课】,获取课程完整版文字内容。 课程完整版&#xff…

IT项目管理十大模版(三)

一、项目组成员表 要把项目组成员的名单都罗列出来,形成一个有效的团队;成员角色和职责要写清楚,职责分明、各司其职;领导审核并签字确认。 二、项目范围说明书 此表,包含了6个部分,基本情况、项目描述…

训练聊天机器人,改善客户体验

谈及对待客户,最重要的一点便是尊重他们,并尊重他们的时间。这意味着在与客户互动过程中,回应需及时有用,而且要赢得回头客尤是如此。社会约定俗成的期望是:客户能够全天候随时提出问题,并获得近乎即时的回…

终于有人能说清火爆全网的AIGC了 | 附赠试用

AIGC全称为AI Generated Content,直译为人工智能生产的内容,认为是继PGC、UGC之后的新型内容创作方式。也是现在市场最火的”AI“概念的延伸应用。 AIGC之以这么热门,主要因为其上手非常简单大大降低了创作门槛,只需用文字描述您想…

FPGA行业应用一:LED控制器

什么是LED控制器 LED控制器已经有很多年头了,应该是上世纪90年代就开始有了。它的主要构成是: 1:视频信号源——如 电脑,机机,DVD,U盘等 2:视频处理器——通过 HDMI/DVI/网口接收来自视频源的…