录音实现方案
通过 dtmf 开始录音 结束录音 features.conf 中配置(HGdtmf 不支持属于自定义扩展代码修
改适配,相当于 0-16 合法有效的)
[applicationmap]
startMonitor => H,self/caller,Macro,start_monitor
stopMonitor =>G,self/caller,Macro,stop_monitor
[myMonitor]
startMonitor =>
stopMonitor =>
用户是否有录音功能需要配置 sip.conf:
[1001]
type=friend
host=dynamic
context=dial_out
setvar=__DYNAMIC_FEATURES=myMonitor ;不配置此项不能使用录音功能
拨号方案实现录音功能 extensions.conf
[globals]
CURL_URL=http://192.168.4.222/cgi-bin/test.sh
node_number=A0001
RECORD_PATH= ;eg /tmp/
[macro-start_monitor]
exten => s,1,GoToIf($["foo${SIPDOMAIN}"!="foo"]?end)
exten => s,n,return
exten => s,n(end),set(CURL_HEADER="json")
exten =>
s,n,set(filename=${ RECORD_PATH}${STRFTIME(,,%Y-%m-%d %H:%M:%S)}-${CALLERID(num)}.wa
v);
exten =>
s,n,set(curl_res=${CURL(${CURL_URL},{domain:${SIPDOMAIN},call_from:${CHANNEL(recvip)},call
_dst:${BRIDGE_CHANNEL(recvip)},caller:${CALLERID(num)},callee:${DIALEDPEERNUMBER},Signal:
H,node_number: ${ node_number}})})
exten => s,n,MixMonitor(${filename});
[macro-stop_monitor]
exten => s,1,NoOp()
exten =>
s,n,set(curl_res=${CURL(${CURL_URL},{domain:${SIPDOMAIN},call_from:${CHANNEL(recvip)},call
_dst:${BRIDGE_CHANNEL(recvip)},caller:${CALLERID(num)},callee:${DIALEDPEERNUMBER},Signal:
G,node_number: ${ node_number}})})
exten => s,n,StopMixMonitor()
代码修改:
Sip
func_channel
Func curl
编译替换 chan_sip.so func_channel.so Func curl.so