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的可扩展性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix