Asterisk和AGI之间的通信是通过标准输入和标准输出进行的.
Asterisk <=========================> AGI Script
初始化从Asterisk到AGI脚本的信息(在执行的时候发送)(1)
|-------------------------(1)------------------------------>|
AGI命令(ASC:标准输出, AST:标准输入) (2)
|<------------------------(2)-------------------------------|
AGI命令回应(ASC:标准输入,AST:标准输出)(3)
|------------------------(3)------------------------------->|
AGI命令(ASC:标准输出, AST:标准输入) (4)
|<-----------------------(4)--------------------------------|
AGI命令回应(ASC:标准输入,AST:标准输出) (5)
|--------------------------(5)----------------------------->|
AGI命令(ASC:标准输出, AST:标准输入) (6)
|<-----------------------(6)--------------------------------|
AGI命令回应(ASC:标准输入,AST:标准输出) (7)
|--------------------------(7)----------------------------->|
(在上图中,ASC表示我们的AGI脚本,AST表示Asterisk自身)
在整个流程非常清晰简单,就是通过携带标准输入输出数据流得到的一组简单的I/O查询和响应.
在步骤3->4和5->6通常会嵌入脚本逻辑来达到目的.
Cheers!
Joe.Yeung
www.voipevents.com
Asterisk <=========================> AGI Script
初始化从Asterisk到AGI脚本的信息(在执行的时候发送)(1)
|-------------------------(1)------------------------------>|
AGI命令(ASC:标准输出, AST:标准输入) (2)
|<------------------------(2)-------------------------------|
AGI命令回应(ASC:标准输入,AST:标准输出)(3)
|------------------------(3)------------------------------->|
AGI命令(ASC:标准输出, AST:标准输入) (4)
|<-----------------------(4)--------------------------------|
AGI命令回应(ASC:标准输入,AST:标准输出) (5)
|--------------------------(5)----------------------------->|
AGI命令(ASC:标准输出, AST:标准输入) (6)
|<-----------------------(6)--------------------------------|
AGI命令回应(ASC:标准输入,AST:标准输出) (7)
|--------------------------(7)----------------------------->|
(在上图中,ASC表示我们的AGI脚本,AST表示Asterisk自身)
在整个流程非常清晰简单,就是通过携带标准输入输出数据流得到的一组简单的I/O查询和响应.
在步骤3->4和5->6通常会嵌入脚本逻辑来达到目的.
Cheers!
Joe.Yeung
www.voipevents.com