在/usr/local/freeswitch/conf/dialplan/default.xml文件里,<extension name="Local_Extension">節下面添加如下內容,可在FreeSwitch內部分機之間撥打錄音。
<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) 2020"/> <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="set" data="enable_file_write_buffering=false"/> <action application="set" data="media_bug_answer_req=true"/> <action application="record_session" data="$${base_dir}/recordings/archive/${strftime(%Y-%m-%d-%H-%M-%S)}_${destination_number}_${caller_id_number}.wav"/>
其它撥號方案,需要錄音的地方也如此添加。
media_bug_answer_req:設置為true接通后錄音enable_file_write_buffering:FreeSWITCH默認的錄音參數配置是開啟緩沖的(可能是內核緩存),即RTP流大小到達65536字節寫一次文件,想更接近實時流,關閉緩沖區設置為false即可。
此外,在dialplan的default和public方案里,也可以添加進去以上代碼。這樣外呼、呼入也能夠正常錄音了。
還有個地方值得注意的是,callcenter.conf.xml里面,也可以錄音。但不能這么寫,看下面,取消注釋那一行就行,不過不能有那些參數設置。
<queue name="support@default"> <param name="strategy" value="longest-idle-agent"/> <param name="moh-sound" value="$${hold_music}"/> <!--<param name="record-template" value="$${recordings_dir}/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>--> <param name="time-base-score" value="system"/> <param name="max-wait-time" value="0"/> <param name="max-wait-time-with-no-agent" value="0"/> <param name="max-wait-time-with-no-agent-time-reached" value="5"/> <param name="tier-rules-apply" value="false"/> <param name="tier-rule-wait-second" value="300"/> <param name="tier-rule-wait-multiply-level" value="true"/> <param name="tier-rule-no-agent-no-wait" value="false"/> <param name="discard-abandoned-after" value="60"/> <param name="abandoned-resume-allowed" value="false"/> </queue>