0

アスタリスクの呼び出しファイルを使用して電話をかけようとしています。ファイルを再生し、サウンド ファイルが終了したかどうかに関係なく、一定時間後に電話を切ります。

このbashスクリプトをAGIスクリプトとして使用しています:

#!/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 に答える