`

Asterisk 中 background 使用要注意的地方

 
阅读更多

exten => s,1,background(voice_file)

exten =>1,1,playback(choice1)

exten => 1,2,hungup()

exten => i,1,playback(wrongchoice)

exten =>1,2,goto(s,1)

exten => t,1,play(timeout)

exten =>t,2,hungup()

 

一直以来都认为,当没有按键的时候,会自动进入t,谁知道,原来不是这样的。

background之后,会自动进入s,2 步,但是由于s,2没有了,所以就自动挂掉了。

 

查了资料才知道,要执行t,必须得先在background之后设置超时时间,可以在这里改成:

exten => s,1,background(voice_file)

exten => s,2,set(TIME(response)=10)  //在这里设定为十秒

exten =>s,3,WaitExten(2)     //在这里再跳回2再次设置,如果不这样的话,就自动挂掉了。

                因为还没有到时间去执行t.

exten =>1,1,playback(choice1)

exten => 1,2,hungup()

exten => i,1,playback(wrongchoice)

exten =>1,2,goto(s,1)

exten => t,1,play(timeout)

exten =>t,2,hungup()

 

 

 

关于BackGround的在宏内的使用时,要特别注意:

 

     如下方案:

 

     [default]

     exten => s,1,Macro(exeBG)

     exten => 1,1,Noop(Press 1)

     exten => 2,1,Noop(Press 2)

 

 

     [macro-exeBG]

     exten => s,1,BackGround(file1)

     exten => s,n,WaitExten(10)

 

     exten => 1,1,Noop(macro 1)

     exten => 2,1,Noop(macro 2)

 

     如上方案,如果用户响应的按键为1时,是不会转到[macro-exeBG]中的1那里的,而是会转到[default]中的1,即打印出Press 1.

 

     如果希望转到[macro-exeGB],必须在BackGround中加入一个参数,参数值就是整个宏的名称,即:

  [macro-exeBG]

     exten => s,1,BackGround(file1,,,macro-exeGB)

     exten => s,n,WaitExten(10)

 

     exten => 1,1,Noop(macro 1)

     exten => 2,1,Noop(macro 2)

 

     这样的话,才会转到宏内对应的响应的按键那里。

 

 

  不过,就我而言,我比较喜欢用Read来响应用户的按键,可以为响应按键单独写一个宏,   如下:

 

   [macro-FuncPressDigit]      ;播放提示音,并输入一个数字键
;入口: ${ARG1},即{IR1}等待时长
;       ${ARG2},即{SR1}要播报的文件
;出口: ${IR1} ,10输入了*号,11超时没输入

exten => s,1,Read(IR1,${ARG2},1,,,${ARG1})
exten => s,n,GoToIf($[${LEN(${IR1})}=0]?10)        ;表示超时没有输入
exten => s,n,GoToIf($["${IR1}"="*"]?20)                ;输入了*号
exten => s,n,Noop(${IR1})

exten => s,10,Set(IR1=11)                    ;超时
exten => s,20,Set(IR1=10)                    ;输入了*号时,设置为10

分享到:
评论

相关推荐

    Asterisk 中文语音包

    总的来说,Asterisk中文语音包的使用大大提升了Asterisk在中国用户中的易用性,使得非英语使用者也能流畅地与系统交互。了解如何正确安装和配置语音包是提升Asterisk服务质量的关键,特别是对于面向中文用户的通信...

    Asterisk 中文文档说明

    通过使用SIP协议,Asterisk可以与多种软硬件电话终端进行交互,实现VoIP通信。 在文档中,你会找到关于Asterisk安装和配置的详细步骤。这包括如何在不同的操作系统上安装Asterisk,如Linux,以及如何配置网络设置、...

    Asterisk中文语言包

    修改sip_general_custom.conf(作为测试,在所有SIP 通道上启用提示语为中文,在实际应用中,可根据需要修改--zapata-channels.conf,sipXXX.conf,IAXXXX.conf...,也可在FreePBX的WEB界面中有language选项的地方修改--...

    Asterisk权威指南中文

    Asterisk权威指南中文(第3版) Asterisk权威指南(第3版)第15章自动话务员 Asterisk权威指南(第3版)第02章Asterisk体系结构 Asterisk权威指南(第3版)第05章用户设备配置 Asterisk权威指南(第3版)第06章Dialplan基础 ...

    Asterisk 1.4 官方使用手册

    《Asterisk 1.4 官方使用手册》中的"Asterisk.org.PDF"文件,很可能是手册的完整电子版,包含上述所有内容。这份文档对于系统管理员、开发者以及任何希望利用Asterisk构建高效、经济的通信平台的人来说,都是不可或...

    asterisk中文的语音包

    Asterisk的声音包是其功能中的一个重要组成部分,为用户提供各种语音提示和交互体验。 这个名为“asterisk中文的语音包”的资源包含了Asterisk系统中用于中文环境的音频文件。声音包通常由一系列预录制的语音片段...

    Asterisk 之数据库配置方案 asterisk数据库

    在本方案中,我们将介绍如何将 Asterisk 的配置从配置文件迁移到数据库中,并使用 Kamailio 作为 SIP 服务器来管理 Asterisk 的配置。 I. 硬件环境 为了搭建 Asterisk 的数据库配置方案,我们需要两台 x86 PC,一...

    通过asterisk-java操作asterisk

    在本篇文章中,我们将深入探讨如何使用Asterisk-java来操作Asterisk,并通过提供的链接了解更详细的实践应用。 首先,理解Asterisk-java的基础是熟悉Asterisk的Manager API。Asterisk Manager Interface(AMI)是...

    FreePBX Asterisk 中文提示 中文语音包

     点击 Browes,选择官网下载的压缩包(需要解压缩),解压缩后选择asterisk-core-sound-cn,上传所有的wav格式的语音包  上传点击确认,实现批量上传。  2.5 进行语音包设置,支持中文语音播放。

    asterisk中文提示音电脑朗读版

    要在Asterisk中使用这些中文提示音,你需要将它们正确地放置在Asterisk的声音目录中,并在配置文件(如extensions.conf)中指定使用这些声音文件。Asterisk的拨号计划(dialplan)可以控制何时以及如何播放这些声音...

    asterisk中英文教程

    asterisk中英文教材,包括原英文文档asterisk.pdf和部分翻译中文版,翻译版如下:第02章Asterisk体系结构 第05章用户设备配置 第06章Dialplan基础 第07章外线连接 第08章语音邮件 第10章深入Dialplan 第11章Parking&...

    Asterisk 简介 Asterisk 架构 Asterisk程序框图

    Asterisk是一款开源的电话交换机软件,它允许用户创建高度自定义的通信系统,包括VoIP(Voice over IP)电话、会议桥、自动呼叫分配(ACD)以及许多其他电信功能。Asterisk的核心设计理念是灵活性和可扩展性,这使得...

    asterisk中文语音

    在这个“asterisk中文语音”压缩包中,重点是与Asterisk相关的中文语音资源,包括voicemail(语音邮件)和agent(代理或坐席)功能。 1. **Asterisk Voicemail**: Asterisk的voicemail系统允许用户在无法接听电话...

    Asterisk1.6最全的中文语音包

    Asterisk 1.6是其早期的一个稳定版本,尽管现在已经有更新的版本发布,但该版本依然在一些环境中被使用,特别是对于那些有特定需求或者对旧系统有依赖的用户。 本资源“Asterisk1.6最全的中文语音包”是针对...

    Asterisk Manager API(AMI) 中文文档

    ### Asterisk Manager Interface (AMI) 中文文档概览 #### 一、引言 Asterisk Manager Interface (AMI) 是一款强大...了解并掌握AMI的工作原理和使用方法对于任何从事Asterisk开发和管理工作的人来说都是非常重要的。

    Asterisk.NET 1.6.3 控制Asterisk

    Asterisk.NET 1.6.3 是一个专门为.NET开发者设计的开源库,它提供了对Asterisk PBX系统的编程接口,使得用户可以方便地在C#、VB.NET或其他.NET支持的语言中控制和扩展Asterisk功能。这个库是基于Asterisk Manager ...

    asterisk权威指南中文翻译

    综上所述,《Asterisk权威指南》第十三章详细介绍了自动呼叫分配(ACD)的相关知识和技术,覆盖了从基本概念到高级配置的各个方面,对于想要深入了解并应用ACD功能的读者来说是非常有价值的资源。

    asterisk16版本安装包

    4. **编译注意事项**: - 在编译过程中,可能会遇到依赖问题,需要按照错误提示安装相应库。 - 配置阶段可以根据需求选择编译选项,例如启用或禁用某些模块。 - 编译前确保系统有足够空间,编译过程可能会占用...

    asterisk拨号方案中应用使用详解

    Asterisk拨号方案中应用使用详解是指在Asterisk系统中使用拨号方案来实现各种应用的技术手段。本文将对Asterisk拨号方案中的各种应用进行详细地解释和示例。 1. Authenticate:鉴别用户 Authenticate应用程序用于...

    chan_dahdi.rar_asterisk_asterisk channel_asterisk中cid_channel as

    在这个源文件中,可能会包含处理CID解析的函数,这些函数可能读取并解析来自Dahdi线路的CID数据,然后将其存储在Asterisk的结构中,以便其他部分的软件可以访问和使用。此外,它可能还包含了监听Dahdi通道状态和事件...

Global site tag (gtag.js) - Google Analytics