首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当目标为多个分机时,在星号上设置呼叫录音文件名

当目标为多个分机时,在星号上设置呼叫录音文件名
EN

Stack Overflow用户
提问于 2013-06-20 18:23:39
回答 1查看 7.4K关注 0票数 2

我总是得到在Asterisk上最令人费解的配置。

公司有一台asterisk服务器直接连接到SIP干线,一切工作正常。我被要求在尝试automixmon (*3)命令后,自动将呼叫记录引入呼入和呼出呼叫。

他们的要求很简单,只有销售经理和销售经理才能访问呼叫,所有内容都是内部的,所以只需将其转储到/var/spool/asterisk/monitor文件夹中,并通过身份验证的web服务器允许他们查看该文件夹-当他们满意时,我们将清理这部分内容。

我已经让呼出做了我们想要的(我们使用AEL),所以下面的片段在从任何分机拨出时触发。

代码语言:javascript
运行
复制
  _9. => {
    Monitor(wav,${STRFTIME(${EPOCH},,%Y%m%d-%H:%M:%S)}-OUT-${CALLERID(num)}-${EXTEN:${ABSORB}},m);
    Dial(SIP/${EXTEN:${ABSORB}}@MAINTRUNK,90,X);
  };

吸收器是一个全局变量,它通常被设置为1,这样9就不会被传递给Dial()应用程序。

入站呼叫有一点棘手,因为传入呼叫要经过以下步骤:

代码语言:javascript
运行
复制
Dial(SIP/2000&SIP/2001&SIP/2002&SIP/2003&SIP/2004&SIP/2005,35,Tt);

所以现在我只需要这样设置它:

代码语言:javascript
运行
复制
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“状态和呼叫者ID的文件。

MD想要的是用实际应答呼叫的扩展名来标记文件。

有没有办法在文件名中放一个像' XXXX‘这样的占位符,然后在调用挂起后用最后连接的通道替换XXXX来使用MONITOR_EXEC访问外壳并重命名文件?

我意识到它不会考虑转接的呼叫。

我看不到确定呼叫的活动分机的方法,因为我必须在拨号命令之前启用监控。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2013-06-20 19:55:38

我的建议是在解决这个问题时设置控制变量,例如MonitorIncoming,然后在调用Monitor之前先设置它:

代码语言:javascript
运行
复制
MonitorIncoming=${STRFTIME(${EPOCH},,%Y%m%d-%H:%M:%S)}-IN-${CALLERID(num)};

然后做剩下的事

代码语言:javascript
运行
复制
Monitor(wav,${MonitorIncoming},m);
Dial(SIP/2000&SIP/2001&SIP/2002&SIP/2003&SIP/2004&SIP/2005,35,gTt);

*使用g标志让呼叫在拨号方案中继续,然后执行如下操作(在呼叫离开所有拨号方案之前):

代码语言:javascript
运行
复制
if(${LEN(${MonitorIncoming})}>0)
     System(mv /var/spool/asterisk/monitor/${MonitorIncoming} /var/spool/asterisk/monitor/${MonitorIncoming}-${${CDR(dstchannel)}:4:8});

*我还没有测试过这一点,也许你需要先将${CDR(dstchannel)}赋值给变量,然后:4:8. :)或者你可以编写一个简单的外壳脚本,用System()调用它,然后传递${CDR(dstchannel)}

希望这能帮上忙,

米尔科

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17211206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档