0

再構成する必要があるアスタリスク サーバーがあります。それは外部の請負業者によって構築されたものであり、いくつかの変更を加える必要があります。今のところ、電話に出て、7 桁のコードを受け取り、電話を切るだけです。バックエンドでは、通話のタイムスタンプ、発信者 ID、および 7 桁のコードを記録します。

私たちが直面しているのは、7 桁のパスワードを入力しない人や、入力に時間がかかりすぎる人がいるということです。その後、システムが再起動し、7 桁になるまで無限ループが続きます。発信者は、最近、7 桁のコードを入力しないと、システムが壊れていると考えています。

どうすればいいのかを理解しようとしているのは、システムが最初に戻らなければならないときに、「6 桁しか入力されていません。もう一度やり直してください」のようなメッセージが表示されることです。またはその趣旨の何か。これを現在の構成に追加する方法が 100% わかりません。以下は、現在持っているものです。

[inbound]
exten => 1234567890,1,Answer
exten => 1234567890,2,Set(COUNTER=4)
exten => 1234567890,3,Set(COUNTER=$[${COUNTER} -1 ])
exten => 1234567890,4,NoOp(${COUNTER})
exten => 1234567890,5,GotoIf($[${COUNTER} > 0 ]?10:122)

exten => 1234567890,10,Wait(1)
exten => 1234567890,11,read(SCODE,EnterCode,7,)
exten => 1234567890,12,GotoIf($[${LEN(${SCODE})}=7]?13:3)
exten => 1234567890,13,Playback(YouEntered)
exten => 1234567890,n,SayDigits(${SCODE})
exten => 1234567890,n,read(SCHOICE,correctpressone,1,)
exten => 1234567890,n,Gotoif($[ ${SCHOICE} = 1 ]?20:1)

exten => 1234567890,20,NoOp(${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)} ${SCODE} ${CALLERID(num)})
exten => 1234567890,n,TrySystem(/bin/echo ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}, ${SCODE}, ${CALLERID(num)} >> /opt/codes.log)

exten => 1234567890,n,Playback(SuccessfullyActivate)
exten => 1234567890,n,Hangup()

exten => 1234567890,122,Playback(tt-somethingwrong)
exten => 1234567890,n,Hangup()

この問題についてご協力いただきありがとうございます...

4

1 に答える 1

1

このようなもの:

exten => 1234567890,12,GotoIf($[${LEN(${SCODE})}=7]?13:200)

exten => 1234567890,200,Playback(your_inpout_too_short)
exten => 1234567890,201,Goto(3)

ところで、あなたのダイヤルプランは質が悪く、それをやった人も経験がないようです。

于 2013-01-30T09:23:09.070 に答える