0

我正在尝试使用星号上的呼叫文件拨打电话,无论声音文件是否完成,它都会在给定时间后播放文件并挂断。

我将它作为 AGI 脚本使用这个 bash 脚本:

#!/bin/bash

Duration="30"
file="sound.mp3"

while read VAR && [ -n ${VAR} ] ; do : ; done
echo "ANSWER"
read RESPONSE

echo 'SET AUTOHANGUP $Duration'

echo 'EXEC PLAYBACK "'$file'" ""'
read RESPONSE

exit 0

问题是星号 cdr 日志显示通话持续 30 秒,无论对方是否挂断了电话......

任何人都可以帮忙吗?

4

2 回答 2

0

您可以使用信号设备。例如:

#!/bin/bash
times_up(){ echo "time is up, pens down."; exit 0; }
trap 'times_up' ALRM
(sleep 10;kill -0 $$ && kill -ALRM $$)&

s=0
while (true) do
    sleep 1
    echo "$s: do my stuff"
    let s=$s+1
done
于 2012-06-20T19:07:50.910 回答
0

好吧,这很尴尬……

我清理了我的代码,以便可以将其粘贴到此处,当我再次尝试时,它似乎可以按我的意愿工作。仍然不知道当时的问题是什么,但这段代码似乎有效

#!/bin/bash

 Duration="20"
 file="soundfile"

while read VAR && [ -n ${VAR} ] ; do : ; done
echo "ANSWER"
read RESPONSE

echo 'SET AUTOHANGUP '$Duration''

echo 'EXEC PLAYBACK "'$file'" ""'
read RESPONSE

exit 0
于 2012-06-20T16:49:50.330 回答