2017-10-10 64 views
1

我有一個簡單的撥號方案中的Asterisk 13星號等待AGI呼叫多長時間?

exten => 800,1,Answer() 
;AGI do something and return AUDIO_FILE tobe played 
same => n,Agi(agi://localhost:1000/doAlotOfThing.agi) 
same => n,Playback(${AUDIO_FILE} 
same => n,Hangup() 

我希望Asterisk會等待AGI,直到處理完命令,然後返回AUDIO_FILE變量(約20秒)。但實際上Asterisk只是等了幾秒鐘,甚至Agi還沒有完成,它仍然通過它並播放AUDIO_FILE(不會被初始化) 所以問題是:我如何改變Asterisk中的AGI超時設置?

回答

1

AGI接口很簡單。

如果你的AGI文件,而不是東西像

while(1){ 
sleep(1) 
} 

那麼它會一直等到主叫掛機(actualy甚至一些更掛斷後的時間,但是這不是理所當然的,所以你必須避免這種AGI)。

如果星號通過dialplan進入下一個目的地,這意味着你的agi關閉輸入流或者發出exit(0)或類似的命令。

+0

是的,對於我的情況Asterisk沒有等待AGI調用,它在等待5秒後釋放函數Agi()。但我只是意識到這是因爲負載均衡中的設置,它只保持連接5秒。 – duccom