fs03 FreeSWITCH中常用概念

阅读说明

  文中概念来自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的可扩展性。

 

posted @   cpp-muggle  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示