阅读说明
文中概念来自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