`

agi脚本说明中文

 
阅读更多

1.      执行AGI脚本文件时,Application应用就是“agi”,参数就是脚本文件的文件名。

2.      脚本文件需要满足的条件:(1)必须可执行,chmod 775 (2)必须放置在指定的目录,如标准目录:/var/lib/agi-bin (3)必须指定完整的extension信息。

Exten=>1,2,AGI(test.php,${CALLERID(name)})

3.      脚本执行时可以从控制台上得到不同基本的详细信息;通过agi VERBOSE命令,可以将信息发送到asterisk控制台上,并且可以通过verbosity设置可以关闭开启这个功能。

4.      AGI技术实现的基本原理

(1)      传递参数到AGI脚本

l  在脚本名称后紧跟以英文半角状态下的逗号,分隔的字符串,把需要的参数传入脚本:AGI(dial_agi.php,${CALLERID(name)});

l  AGI脚本主要传输两种参数,1是脚本的完整路径,2是拨号方案中的‘EXTEN’的传递参数

l  第一种参数,如果AGI程序放在asterisk的默认路径,可以省略,只写文件名。第二种参数,是AGI程序需要拨号方案传递进来的参数。

(2)      通过标准的输出发送命令到asterisk

l  可以在AGI脚本程序中向asterisk发送各种命令从而调用asterisk的某些应用程序,如Dial,Goto.也可以直接发送命令获得或设置某些通道变量的值   

l  通过标准的输入,从asterisk接收信息。当AGI脚本执行时,asterisk会向脚本发送各种信息,可以在做其他事情之前通过标准输入获取这种信息。

根据项目需要,人用过需要这些数据,就先保存起来,否则不用处理

5.AGI与Asterisk通信通过STDIN,STDOUT,STDERR.AGI脚本可以通过STDIN从asterisk获得信息,AGI脚本通过STDOUT向asterisk发送信息。AGI脚本可以写数据向STDERR,发送调试信息向asterisk控制台

6. AGI命令

(1)ANSWER

目的:如果通道不再应答状态,则应答该通道      Returns         -1 on channel failure, or 0 ifsuccessful.

(2)AUTOHANGUP <time>

在指定时间自动通道挂机,如果时间为0,则该命令在此通道上无效   Returns   0

如果挂机发生在设定事件之前,此设置无效

(3)CHANNEL STATUS [<channelname>]

返回指定通道的状态,如果通道没有指定,返回当前通道状态

Returns

-1 There is no channel that matches thegiven <channelname>   没有匹配的通道

0 Channel is down and available     通道没有上线(激活)但有效

1 Channel is down, but reserved     通道没有上线(激活)但有预留

2 Channel is off hook          通道在挂机状态

3 Digits (or equivalent) have beendialed  通道准备拨号

4 Line is ringing    通道正在振铃

5 Remote end is ringing         通道远端正在振铃

6 Line is up                               线路激活可用

7 Line is busy                           线路忙

Examples

CHANNEL STATUS             Return the status of the currentchannel.

CHANNEL STATUS Zap/9-1       Return the status of channel Zap/9-1

Note The <channelname> to use is the same as the channel names reportedby the Asterisk console 'show channels' command. 通道名称与asterisk控制台上 showchannels命令显示的通道名字一致

(4)EXEC <application> <options>  带参数执行指定的Asterisk 应用

 

 

(5)GET DATA <filename> [<timeout> [<maxdigits>]]

播放指定的语音文件,同时获取DTMF按键信号,与STREAMFILE类似,但此命令能够接收到多个DTMF按键,而STREAMFILE在接收到第一个DTMF按键时立刻返回。

 $playbackvoice存放着语音文件

注意:

l  音频文件名称命名不要与分机相同 ;

l  如果用户没有按键,声音播放完毕后,静默<超时时间>,然后命令结束

l  在播放音频和静默时间内,用户可以按键打断,按键将停止播放音频,超时时间计时从用户第一个按键开始计时,每次按键重新计时,当用户按键复合最大按键数量或超时时间结束,命令结束

l  如果没有定义超时时间,缺省的时间为按键后20秒,如果没有按键,静默6秒后命令结束

l  如果想定义最大按键,最好定义超时时间

l  如果没有定义最大按键,用户可以按任意多的按键

l  按#号箭的效果相当于超时时间结束,命令终止并返回#号建前面的按键,不能获取到#号建本身

(6)GET VARIABLE <variablename>  取得变量值

(7)HANGUP [<channelname>] 断开指定的通道,若没有指定的通道,则断开当前的通道

HANGUP    Hangup the current channel.

HANGUP   Zap/9-1Hangup channel Zap/9-1

(8)RECEIVE CHAR <timeout>从链接的通道上获取文本的字符,在超时时间内获取到达的字符,如果超时时间为0,则持续接收。

如果一个字符串到达,以10进制数字的方式返回字符的ASCII码,例如A的返回值为:65

如果通道不支持文本接收,或者在超时时间内没有字符被接收,结果如下

   result=0 (timeout)On error or failure the result is

   result=-1

大多数通道不支持接收文本

(9) RECORD FILE <filename> <format><escape digits> <timeout> [BEEP]

录制通道内的声音,生成文件,直到接收到DTMF确认结束按键,或者超时时间结束。在录制声音时,可以选择在录制前提示'BEEP滴'。

(10)SAY DIGITS <digit string> <escape digits>

播音给定的数字字符,当取消按键确认收到则命令结束,如果不需要取消按键,采用""带入函数

(11)SAY NUMBER <number> <escape digits>播音指定的数值。

(12)SEND IMAGE <image>

the image in /var/lib/asterisk/images

(13)SEND TEXT "<text to send>"

(14)SET CALLERID <caller ID specification>设置当前通道的主叫号码

(15)SET CONTEXT <new context>设置应用结束后的context从而继续流程

(16)SET EXTENSION <new extension>置应用结束后的extension从而继续流程

(18)SET VARIABLE <variablename> <value>

设置变量的初始值,变量将被创建,并在后面的拨号方案中以${变量名字}形式使用

(19)STREAM FILE <filename> <escape digits>

播放指定的语音文件,允许按键终止播放,这命令与GET DATA类似,但只返回用户的第一个按键,GET DATA可以积累返回用户的很多按键

(20)TDD MODE <setting>在当前通道上启用关闭 TDD(分时双功模式)收发模式

(21)VERBOSE <message> [<level>]通过Verbose向Asterisk控制台发送信息

(22)WAIT FOR DIGIT <timeout> 等待号码输入时间

Waits up to 'timeout' milliseconds forchannel to receive a DTMF digit

-1 on channel failure, 0 if no digit isreceived in timeout or the numerical value of the ascii of the digit received. 

分享到:
评论

相关推荐

    asterisk AGI应用说明

    执行AGI脚本时,`Application`字段应设置为`agi`,其后跟的是要执行的脚本文件名。脚本文件需要满足以下条件: 1. **可执行权限**:确保脚本文件具有执行权限,如通过`chmod 775`命令设置。 2. **存放位置**:脚本...

    AGI官方网站STK10示例

    7. **脚本编程**:除了图形用户界面,STK10还支持使用Python和C++进行脚本编程,允许用户自定义工作流程,自动化重复任务,或构建定制化的应用程序。 8. **数据接口**:STK10能与多种数据源集成,如GPS数据、遥感...

    Asterisk 中文文档说明

    文档会介绍如何创建和调用AGI脚本,以及如何处理呼叫流程控制。 此外,文档还可能涵盖Asterisk的模块化架构,包括各种内置模块的作用和如何启用/禁用它们。例如,MeetMe模块用于创建多用户电话会议,而Chan_SIP模块...

    asterisk app函数中文说明

    12. Wait: 暂停脚本执行一段时间,等待特定的时间间隔。 13. WaitExten: 等待特定的扩展名被激活,常用于等待特定事件的发生。 14. WaitForRing: 等待呼叫振铃,通常在接听前使用。 15. WaitMusicOnHold: 在等待...

    Asterisk Dialplan命令中文翻译

    - DeadAGI:在中断的通道上运行AGI脚本。 - EAGI:在音频通道上执行EAGI应用。 - EnumLookup:在ENUM系统中查找电话号码。 - ExternalIVR:运行外部IVR引擎。 - Jack:与JACK音频接口,用于高级音频处理。 以上命令...

    STK中文教程(推荐).zip

    STK,全称System Tool Kit,是一款强大的航天任务模拟和分析软件,由AGI(Analytical Graphics, Inc.)公司开发。这个“STK中文教程(推荐).zip”压缩包提供了丰富的学习资料,旨在帮助初学者快速掌握STK的基本操作...

    MATLAB_STK联合仿真方法研究及GUI设计.pdf

    在STK中,GUI设计通常利用其内建的脚本语言AGI STK COM接口进行。GUI的主要目的是使得用户能够以直观和友好的方式与软件进行交互,简化操作流程,提高工作效率。 5. 案例分析:Walker星座设计与优化算法 在文中案例...

    ch5-big-data

    来自美国国税局的所有美国邮政编码(12zpallagi.csv)的2012年美国邮政编码AGI统计数据。 收入统计(SOI)部门的邮政编码数据基于来自国税局(IRS)个人主文件(IMF)系统的个人所得税申报表(表格1040)的管理记录...

    Asterisk 1.4 官方使用手册

    接着,手册将深入讲解Asterisk的组件和模块,如AGI(Asterisk Gateway Interface),用于与外部应用程序交互;Dialplan,是Asterisk的通话路由规则;以及IVR(Interactive Voice Response),允许用户通过电话菜单...

    基于Cesium的“天地图·甘肃”三维地图建设技术研究.pdf

    以下是对该研究中相关知识点的详细说明: 1. Cesium开源三维地图引擎: Cesium是一个开源的三维地球可视化平台,它能够提供丰富的三维地图展示功能。通过Cesium,可以实现对地形、影像等地图数据的高效展示,同时...

    popPyCall-开源

    对于开发者来说,了解如何对接Asterisk的AGI(Asterisk Gateway Interface)或AMI(Asterisk Manager Interface)接口是关键,因为这些接口使得popPyCall能够与Asterisk进行通信。 总的来说,popPyCall是开源社区对...

Global site tag (gtag.js) - Google Analytics