Sip
Asterisk WaitForSilence 永遠不會檢測到靜音
我正在嘗試使用我的撥號計劃來播放帶有 WaitForSilence 的錄音,以確保它等到該人說完或將消息留在語音郵件中。然而,它似乎並沒有等待 5 秒的沉默。即使我在說話,它仍然會檢測到沉默。
我的 AEL 撥號方案是這樣的:
100 => { Answer(); WaitForSilence(5000,2,60); AGI(agi://127.0.0.1/playmessage,${CALLID}); AGI(agi://127.0.0.1/saytext,"Goodbye."); Hangup(); }
輸出
== Using SIP RTP CoS mark 5 > Channel SIP/twilio-0000006e was answered -- Executing [100@makeCall:1] Answer("SIP/twilio-0000006e", "") in new stack -- Executing [100@makeCall:2] WaitForSilence("SIP/twilio-0000006e", "5000,2,60") in new stack -- Waiting 2 time(s) for 5000 ms silence with 60 timeout -- Exiting with 5000ms silence >= 5000ms required -- Exiting with 5000ms silence >= 5000ms required -- Executing [100@makeCall:3] AGI("SIP/twilio-0000006e", "agi://127.0.0.1/playmessage,45") in new stack -- Playing '/var/nam/data/outgoing/60' (escape_digits=#) (sample_offset 0) > 0x7f2179cf7990 -- Probation passed - setting RTP source address to 54.172.61.251:18920 -- Playing '/var/nam/data/tts/9eccb3f2ed77972157becdfbbac7232c' (escape_digits=1#) (sample_offset 0) -- <SIP/twilio-0000006e>AGI Script agi://127.0.0.1/playmessage completed, returning 4 == Spawn extension (makeCall, 100, 3) exited non-zero on 'SIP/twilio-0000006e'
即使我添加了 AMD(),它也會始終將所有內容檢測為機器,並且仍然不會真正傾聽靜默。我的配置中是否有問題,Asterisk 不知道什麼是靜默?
還是我誤解瞭如何等待靜音開始播放消息?
感謝您的所有幫助。最後,我在某處讀到記錄通話可能會有所幫助,因此我開始使用 Monitor() 應用程序。最後,我發現 Asterisk直到它先播放一段錄音後才開始靜聽。我發現 Monitor() 直到 Asterisk 第一次播放某些東西才開始錄製,而不是在對方開始說話時才開始錄製。
為了解決這個問題,我只是在等待之前沉默了片刻:
100 => { Answer(); // Monitor(wav,"playback-${CALLID}",m); Playback(silence/1); WaitForSilence(1000,1,60); AGI(agi://127.0.0.1/playmessage,${CALLID}); AGI(agi://127.0.0.1/saytext,"Goodbye."); Hangup(); }
您可以在上面看到我的簡單程式碼,其中 Monitor() 被註釋掉了。以上對答錄機也適用。