FreeSWITCH的模块配置文件(modules.conf),它定义了FreeSWITCH启动时加载的模块。每个模块提供不同的功能,如日志记录、呼叫控制、编解码支持、数据库交互等。以下是主要模块的分类和作用说明:
1. 日志记录(Loggers)
-
mod_console将日志输出到控制台(stdout)。
-
mod_logfile将日志写入文件(默认
/var/log/freeswitch/freeswitch.log)。 -
mod_syslog(注释)将日志发送到系统日志服务(如syslog)。
-
mod_graylog2(注释)支持将日志发送到Graylog2日志管理工具。
2. XML接口(XML Interfaces)
-
mod_xml_rpc(注释)提供XML-RPC接口,用于远程控制FreeSWITCH。
-
mod_xml_curl(注释)从HTTP服务器动态获取XML配置(如拨号计划、用户目录)。
-
mod_xml_cdr(注释)将通话详单(CDR)以XML格式输出。
3. 事件处理(Event Handlers)
-
mod_event_socket核心模块,提供TCP Socket接口(ESL),允许外部程序(如PHP、Python)控制FreeSWITCH。
-
mod_cdr_csv将通话详单(CDR)保存为CSV文件。
-
mod_cdr_sqlite(注释)将CDR存储到SQLite数据库。
-
mod_amqp(注释)支持通过AMQP协议(如RabbitMQ)发送事件。
4. 终端协议(Endpoints)
-
mod_sofia核心模块,实现SIP协议(用于对接SIP话机、网关、运营商)。
-
mod_loopback用于内部呼叫路由(如模拟环路设备)。
-
mod_rtc支持WebRTC(浏览器实时通信)。
-
mod_freetdm(注释)对接传统PSTN硬件(如E1/T1板卡)。
-
mod_verto(注释)提供Verto协议(基于WebSocket的通信)。
5. 应用程序(Applications)
-
mod_commands提供基础API命令(如
originate发起呼叫)。 -
mod_conference支持音频/视频会议功能。
-
mod_db提供键值存储(如存储用户状态)。
-
mod_dptools核心拨号计划工具(如
playback、record)。 -
mod_fifo实现呼叫队列(FIFO队列)。
-
mod_httapi提供HTTP API(用于Web控制呼叫流程)。
-
mod_valet_parking实现通话驻留(Parking)功能。
6. 拨号计划(Dialplan Interfaces)
-
mod_dialplan_xml从XML文件加载拨号计划(默认
conf/dialplan/*.xml)。 -
mod_dialplan_asterisk支持Asterisk风格的拨号计划语法。
7. 编解码(Codec Interfaces)
-
mod_spandsp支持G.711、G.722、FAX等编解码。
-
mod_g729G.729编解码(需授权)。
-
mod_opusOpus编解码(低延迟,适合WebRTC)。
-
mod_amrAMR编解码(常用于移动网络)。
-
mod_b64支持Base64编码/解码(如SIP身份验证)。
8. 文件格式(File Format Interfaces)
-
mod_sndfile支持WAV、MP3等音频文件播放/录制。
-
mod_av支持视频文件(如H.264)。
-
mod_local_stream播放本地音频流(如背景音乐)。
-
mod_tone_stream生成自定义音调(如DTMF、回铃音)。
9. 脚本语言(Languages)
-
mod_lua支持Lua脚本(常用拨号计划、动态路由)。
-
mod_python(注释)支持Python脚本。
-
mod_v8(注释)支持JavaScript(V8引擎)。
10. TTS/ASR(语音合成/识别)
-
mod_flite(注释)文本转语音(TTS)引擎。
-
mod_pocketsphinx(注释)语音识别(ASR)引擎。
11. 其他功能
-
mod_enum支持ENUM查询(将电话号码映射到SIP URI)。
-
mod_hash提供内存哈希表存储(临时数据共享)。
-
mod_esf扩展的呼叫功能(如Early Media控制)。
-
mod_say_en英语语音提示(如"您拨打的号码是...")。