FreeSwitch中的录像功能和播放录像功能
FreeSwitch 系统中的录像功能 和 播放录像功能,系统都默认提供。
按默认配置,通过IP电话拨打9193,即可录像;通过IP电话拨打9194即可播放录像。
同时,我测试了一种有趣的用法,描述如下:
(1) 1000 呼叫 9193 并且发送视频; (2) 1001 呼叫 9194 ,可以看到 1000 上传的视频,但非实时; (3) 1002 呼叫 9194, 可以看到 1000 上传的视频,但非实时。 复制代码
这样看来,一个点播系统,FreeSwitch 默认就支持!稍加改造,就可以变为一套视频直播系统。
实现上述功能的配置文件在 \conf\dialplan\default.xml 中,如下所示:
[录像] <extension name="video_record"> <condition field="destination_number" expression="^9193$"> <action application="answer"/> <action application="record_fsv" data="/tmp/testrecord.fsv"/> </condition> </extension> [播放录像] <extension name="video_playback"> <condition field="destination_number" expression="^9194$"> <action application="answer"/> <action application="play_fsv" data="/tmp/testrecord.fsv"/> </condition> </extension> 复制代码
FreeSwitch的录音功能
一般电话系统都可以将本系统内的语音通话录制下来,FreeSwitch 系统中也可以进行语音录制。
需求: 录制系统中的所有通话。
实现:
(1)建立一个文件夹 freeswitch/recordings/archive/ ,用来存储录音文件;
(2)修改拨码计划,打开 \conf\dialplan\default.xml
找到下面的语句:
<extension name="Local_Extension"> 复制代码
<condition field="destination_number" expression="^(10[01][0-8])$"> 复制代码
在其下,添加:
<action application="set" data="RECORD_TITLE=Recording ${destination_number} ${caller_id_number} ${strftime(%Y-%m-%d %H:%M)}"/> <action application="set" data="RECORD_COPYRIGHT=(c) 2011"/> <action application="set" data="RECORD_SOFTWARE=FreeSWITCH"/> <action application="set" data="RECORD_ARTIST=FreeSWITCH"/> <action application="set" data="RECORD_COMMENT=FreeSWITCH"/> <action application="set" data="RECORD_DATE=${strftime(%Y-%m-%d %H:%M)}"/> <action application="set" data="RECORD_STEREO=true"/> <action application="record_session" data="$${base_dir}/recordings/archive/${strftime(%Y-%m-%d-%H-%M-%S)}_${destination_number}_${caller_id_number}.wav"/> 复制代码
(3)在 FS_CLI.EXE 中运行 reloadxml 或 按 F6 即可生效。
查询 FreeSwitch 支持的音频文件格式,可以在 FS_CLI.exe 中运行 show file 命令。
FreeSwitch播放语音文件
上面介绍了 FreeSwitch 的录音功能,若想回放这些录音,是否可以实现?或者说,通过 FreeSwitch ,是否可以直接播放语音文件?
FreeSwitch 中有一个 playback 的 application ,可以播放语音文件。
具体用法如下:
(1)播放本地文件
<action application="set" data="playback_terminators=none"/> <action application="playback" data="sounds/soundfile.wav"/> 复制代码
(2)播放远程服务器上的文件
<action application="playback" data="${http_get(http://myserver.yo/media/hello_world.wav)}"/> 复制代码