首页 > 其他分享 >fs03 FreeSWITCH中常用概念

fs03 FreeSWITCH中常用概念

时间:2022-10-27 18:44:51浏览次数:56  
标签:常用 调用 音频 接口 API fs03 FreeSWITCH RTP

阅读说明

  文中概念来自FreeSWITCH权威指南,FreeSWITCH官方文档等,仅作为阅读笔记记录,专业知识结构请阅读书籍和FreeSWITCH官网

 

1. 媒体

  媒体简单来说就是RTP流,在SIP通信中,除文字外,媒体都是在RTP协议中传输的,由于媒体一般都是持续传输的,因此又称RTP流。

 

2.接口

  FreeSWITCH在和心中除实现了大量的public API供外围模块调用,还提供了很多抽象的接口,这些接口对同类型的逻辑或功能实体进行了抽象,但是没有具体实现。具体的实现一般由外围负责,核心层通过回调方式调用具体的实现代码或函数。                    --FreeSWITCH权威指南

  个人理解: fs02节分析的APP和API中的API一般指的是switch_api_interface_t类型的,通过SWITCH_ADD_API宏来添加到freeswitch内核中,而这里的接口指的并不是API。看书中下面一段话:

    外围模块可以选择实现其中一个或多个接口,并项核心层"注册"这些接口,核心层在需要这些接口时,会调用这些接口中约定的回调函数。

    举例来说,在SIP通话中,如果核心需要取音频数据,它会调用mod_sofia中的相关回调函数,最后mod_sofia将调用核心中与RTP相关的函数,以便从RTP流媒体中取得数据;

    而在mod_portaudio中,音频数据是从本地声卡中获得的。

    也就是说,上层应用中,我们可能只需读取一段音频数据,而不必关心该音频时怎么产生的或从哪里来的。

  总结来说,这里的接口更偏向面向对象中的多态,但是FreeSWITCH是使用C编写的,这里本质上还是提高FreeSWITCH的可扩展性。

 

标签:常用,调用,音频,接口,API,fs03,FreeSWITCH,RTP
From: https://www.cnblogs.com/cpp-muggle/p/16833291.html

相关文章

  • Redis常用概念及操作
    目录概述是什么?常见的作用缓存分布式锁五种数据结构String常用命令应用场景Hash常用命令应用场景优缺点优点缺点Set常用命令应用场景List常用命令Zset常用命令应用场景其它......
  • kubectl 常用命令
    kubectl 常用命令 查看命令#获取节点和服务版本信息kubectlgetnodes#获取节点和服务版本信息,并查看附加信息kubectlgetnodes-owide#获取pod信息,默......
  • 工程安全监测数据采集常用的VS10X无线混合信号采集仪说明
    VS10X振弦采发仪是VS101单通道采集仪的升级替代,在保持原有尺寸和功能的基础上,从对振弦信号的单通道采发升级到可以实现最多4通道的振弦信号采集发送。数据从单独的振弦信号,......
  • Yarn常用命令
    yarn安装npminstall-gyarn查看版本yarn-v开始一个新工程yarninit与npminit一样通过交互式会话创建一个package.jsonyarninit#yarnnpminit#npm......
  • redis 常用命令总结
                     在Java中操作Redismaven坐标:<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-da......
  • 教你2种常用的电商高并发处理解决方案
    网站架构师面临的最大挑战之一就是并发。自Web服务开始以来,并发水平一直在不断增长,一个主流网站同时服务十万甚至数百万用户,这并不罕见。就目前应用广泛的电商系统来说,各种......
  • Vue常用指令(精简)
    #Vue系列##el:挂载点demo01.html-vue实例作用范围:vue会管理el选项命中的元素及其内部的后代元素,可以使用其他选择器(class、el标签),建议使用id选择器,因为id是唯一的。......
  • fs01 FreeSWITCH中APP和API
    PART1APP和API的区别 简单来说,一个APP是一个程序,它作为一个Channel一端与另一端的UA进行通信,相当于它工作在Channel内部;而一个API则是独立于一个Channel之外的,它只能通......
  • mongodb 终端自己常用命令
    查询db.queues.find().pretty();更改更改多列db.queues.update({},{$set:{pj:100}},{multi:true});//一定要加上multi:true才会生效https://www.cnblogs.com/......
  • STM32HAL库常用函数速查手册
    STM32HAL库常用函数速查手册(V1.0.0.20221019_BETA)前言写程序时想不起来函数很麻烦,于是做了这么一个手册,常用的一些部分都加了注释标注了中文,搜集资料主要来源于CSDN和官......