我想做的事:
接听来电,再拨另一个号码。当调用完成时,我需要有正确的通话时间(应该存储在${CDR(Billsec)}中)。
我得到了什么::
由于信道已被应答,拨号应用程序中的C选项只将CDR的应答变量重置为当前时间,因此由此产生的billsec等于CDR的持续时间变量,并且等于信道捕获时间而不是呼叫会话时间。
我的拨号计划:
exten => 333333,1,NoOp(Here I answer the channel and make another call)
same => n,Answer
same => n,Dial(DAHDI/g0/1234
在Asterisk 15.2.2中,当有人挂断电话时,我正在尝试播放声音,但是在挂断电话后,听到两声嘟嘟声,连接中断,但没有播放音频文件。这是我当前的拨号方案:
[macro-callwithhelloworld]
exten => s,1,Wait(1)
same => n,Playback(hello-world)
same => n,Dial(${ARG1},20)
same => n,Hangup()
same => n,Answer()
same => n,Playback(hello-world)
[from-internal]
exten=
如果有一个批处理文件(调用者)执行另一个批处理文件( callee ),则需要使用call命令,以便在被调用方完成执行后返回给调用方。下面是一个示例:
caller.bat**:**
echo Calling another script...
call callee.bat
echo Returned from callee...
callee.bat (在同一位置)
echo Being called from caller...
输出如下(省略命令回显),显示按预期返回的执行:
给另一个剧本打电话。打电话来的人..。从被叫回来..。
如果调用方拒绝使用call命令,则输出如下
遵循这个教程,我开发了一个将两个人连接到电话中的网络:和一切都运行得很好。
现在,我需要收集被调用者的1位数才能执行命令。
阅读Twilio文档,似乎在Dial动词结束之前,我不能使用Gather,但这样调用就结束了,被调用者不能对任何东西进行数字处理。
我试过了,但没有成功,拨盘工作正常,但从未执行过digits回调:
twimlResponse.say(
'Please wait for the other person to join the call'
);
twimlResponse.dial({
timeLimit: 30
})
t