2017-10-10 163 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