我总是得到在 Asterisk 上最令人头疼的配置。
公司有一个星号服务器直接连接到 SIP 中继,一切正常。被要求在试用 automixmon (*3) 命令后自动将通话录音引入入站和出站呼叫。
他们的要求很简单,只有 MD 和销售经理才能接听电话,一切都是内部的,所以只需将其转储到 /var/spool/asterisk/monitor 文件夹中,并且具有身份验证的 Web 服务器允许他们查看该文件夹 - 当他们'很高兴我们会清理这部分。
我已经让出站呼叫按照我们想要的方式进行(我们使用 AEL),因此在从任何分机拨出时会触发以下代码段。
_9. => {
Monitor(wav,${STRFTIME(${EPOCH},,%Y%m%d-%H:%M:%S)}-OUT-${CALLERID(num)}-${EXTEN:${ABSORB}},m);
Dial(SIP/${EXTEN:${ABSORB}}@MAINTRUNK,90,X);
};
ABSORB 是一个全局变量,它通常只设置为 1,这样 9 就不会传递给 Dial() 应用程序。
呼入电话有点棘手,因为呼入电话通过以下方式:
Dial(SIP/2000&SIP/2001&SIP/2002&SIP/2003&SIP/2004&SIP/2005,35,Tt);
所以现在我只是这样设置它:
Monitor(wav,${STRFTIME(${EPOCH},,%Y%m%d-%H:%M:%S)}-IN-${CALLERID(num)},m);
Dial(SIP/2000&SIP/2001&SIP/2002&SIP/2003&SIP/2004&SIP/2005,35,Tt);
至少获得一个带有“IN”状态和来电显示日期/时间的文件。
MD 想要的是文件被标记为实际接听电话的扩展名。
有没有办法说在文件名中放置一个占位符,例如“XXXX”,然后使用 MONITOR_EXEC 进入 shell 并在呼叫挂断后通过将 XXXX 替换为最后连接的通道来重命名文件?
我意识到它不会考虑转接的电话。
我看不到确定呼叫活动分机的方法,因为我必须在拨号命令之前启用监控。
有什么建议么?