freeswitch-02

文章目录

  • 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:主要用于电子邮件的传输的协议。

freeswitch-02_第1张图片
freeswitch-02_第2张图片

2.3 3PCC

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

3. 媒体

3.1 媒体处理

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

3.1.1 音频编码

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

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

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

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


你可能感兴趣的:(freeswitch,freeswitch,语音呼叫)