我设法通过在呼叫他时暂停代理并在呼叫结束时取消暂停来解决这个问题,如果有人感兴趣,这里是拨号计划:
[咨询热线]
exten => s,1,noop(新的咨询热线电话)
扩展 => s,n,Answer()
exten => s,n,Set(CHANNEL(语言)=he)
exten => s,n,Agi(ivr_start.php,${FROM_DID},${UNIQUEID},${CALLERID(number)})
exten => s,n(挂断),挂断
exten => h,1,noop(挂断建议线)
exten => h,n,gotoif($["${CDR(dstchannel)}" = ""]?skip_unpause)
exten => h,n,Set(AGENT_INTERFACE=${CUT(CDR(dstchannel),,1)})
exten => h,n,noop(接听电话后取消暂停代理 - ${AGENT_INTERFACE})
exten => h,n,UnpauseQueueMember(,${AGENT_INTERFACE})
exten => h,n(skip_unpause),noop()
exten => h,n,Agi(call_finish.php,${FROM_DID},${UNIQUEID},${CALLERID(number)},${EPOCH},${DIALSTATUS},${ANSWEREDTIME})
[advice_line_agent_call]
exten => _X.,1,noop(拨号代理: ${EXTEN})
exten => _X.,n,Set(AGENT_INTERFACE=Local/${EXTEN}@advice_line_agent_call)
exten => _X.,n,PauseQueueMember(,${AGENT_INTERFACE})
exten => _X.,n,Dial(SIP/sip-trunk-out/${EXTEN},15,eg)
exten => h,1,noop(座席呼叫完成,如果呼叫未被应答,则取消暂停座席,拨号状态:${DIALSTATUS})
exten => h,n,gotoif($["${DIALSTATUS}"="CANCEL"]?unpause:finish)
exten => h,n,noop(未接听电话后取消暂停代理 - ${AGENT_INTERFACE})
exten => h,n(unpause),UnpauseQueueMember(,${AGENT_INTERFACE})
exten => h,n(完成),noop()