Asterisk权威-第13章自动呼叫分配(ACD)
《Asterisk 使用资料》

Asterisk目录及配置文件/etc/asterisk/Asterisk主目录,包含其它关于Asterisk的配置文件;*zaptel.conf这个配置文件放在/etc,因为其它软件也可以使用Zaptel这个硬件及其驱动,所以不是放在/etc/asterisk里./usr/lib/asterisk/modules/这个目录包含所有可以加载Asterisk模块(应用程序\编辑器\格式和有用通道),在Asterisk启运时会加载这些模块(可以编辑modules.conf)./var/lib/asterisk/比较重要的是astdb文件与agi-bin目录;astdb包含Asterisk当地数据库信息.sounds/所有声音提示的文件在里面,包括Asterisk原代码中的sounds.txt文件mohmp3/如果配置了音乐保持,应用程序会在这个目录下查找mp3(用CBR从文件中去除身份标签).keys/使用公钥和私钥系统认证与一个由RSA数字签名形成的一对等连接.公钥和私钥的扩展名分别为.pub和.keyfirmware/这个目录含了很多Asterisk相兼容的设备固件,它只有iax/这个子目录,其中有Digium的IAXy的二进制固件镜像.images/只有在较多的支持并且利用图解式的图像设备被发布,这个目录将会与相应的目录有更大的关联./var/lib/asterisk/agi-bin agi-bin包含所有脚本,可以通过许多已经建立的AGI应用程序与Asterisk连接./var/spool/asteriskoutgoing/gcall/tmp/voicemail/================配置文件================/etc/asterisk/asterisk.conf主要配置文件,/etc/zaptel.conf硬件接口的基本层.修改这个配置文件要用modprobe装载Linux Kernel使用模块./etc/asterisk/zapata.conf为硬件配置Asterisk的接口./etc/asterisk/extensions.conf拨号方案./etc/asterisk/sip.conf SIP协议配置文件/etc/asterisk/iax.conf呼入和呼出IAX通道/etc/asterisk/extensions.conf拨号方案配置文件/etc/asterisk/moduprobe.conf加载模块配置文件Asterisk developer\'s documentation 翻译计划by serva今天,Asterisk已经成为一个VOIP业界使用最广泛的一个集成电信级别P BX的工具,IPPBX如今已经成为VOIP商家争夺的一块重要市场,在我们越来越熟悉使用Asterisk的同时,我们希望能够越来越深入的了解asterisk,特别是对于开发人员,如果有自己特定的需求,在复杂的asterisk文件夹和asteri sk的源代码文件中迷失了方向,不知所措。
呼叫中心实验报告

一、实验目的1. 了解呼叫中心的基本概念和组成结构。
2. 掌握呼叫中心系统的基本功能和工作原理。
3. 熟悉呼叫中心系统的配置和使用方法。
4. 培养实际操作能力,提高对呼叫中心系统的分析和解决实际问题的能力。
二、实验内容1. 呼叫中心系统概述呼叫中心(Call Center)是一种以电话、网络、短信等通信方式为载体,为客户提供电话咨询服务、客户关系管理、售后服务等服务的综合信息系统。
呼叫中心系统由以下几部分组成:(1)硬件设备:电话交换机、服务器、工位电脑、耳机等。
(2)软件系统:呼叫管理系统、IVR系统、CRM系统、报表系统等。
(3)人员:客服代表、技术支持、管理人员等。
2. 呼叫中心系统功能(1)自动呼叫分配(ACD):将呼入电话自动分配给空闲的客服代表。
(2)交互式语音应答(IVR):通过语音识别、语音合成等技术实现自动语音交互。
(3)客户关系管理(CRM):对客户信息进行管理,提高客户满意度。
(4)技能分组:根据客服代表的技能和经验,将呼入电话分配给合适的客服代表。
(5)录音和质检:对客服代表的通话进行录音,以便进行质检和培训。
(6)报表分析:对呼叫数据进行分析,为管理者提供决策依据。
3. 实验环境实验设备:一台电脑、耳机、电话线。
实验软件:呼叫中心系统软件(如Asterisk、FreePBX等)。
4. 实验步骤(1)安装呼叫中心系统软件,配置基本参数。
(2)创建客服代表账号,设置权限。
(3)配置IVR系统,实现自动语音交互。
(4)设置ACD分配规则,实现自动呼叫分配。
(5)测试呼叫中心系统功能,包括自动呼叫分配、IVR、录音、质检等。
三、实验结果与分析1. 自动呼叫分配测试通过测试,验证了ACD分配规则的正确性。
当有呼入电话时,系统能够自动将电话分配给空闲的客服代表,提高了工作效率。
2. 交互式语音应答测试通过测试,验证了IVR系统的功能。
当客户拨打呼叫中心电话时,系统能够自动播放语音提示,引导客户进行操作。
通信专业名词

BID与DIDBID(Board Inward Dialing)即(用户交换机)半自动中继方式。
企业拥有一个或几个接入电话号码;各分机只有一个由用户交换机分配的短号码,只能通过“接入号码+分机号码”或者“接入号码+人工转接”形式接入,即需要经过人工或自动话务台转接,分机之间可以通过短号码互相通话,不计市话费。
DID(Direct Inward Dialing)即(外线)直接拨入(用户交换机)的分机方式。
企业向电信运营商申请一个或几个号段号码;各分机拥有长短两个电话号码,即普通电话号码和普通电话号码后四位的分机号码,能通过直接拨入、“接入号码+分机号码”、“接入号码+人工转接”三种形式接入。
各分机之间可以通过拨打普通电话号码后四位的分机号码相互通话,不计市话费。
CENTREX 简介Centrex (CENTRal Exchange) 俗称虚拟小交换机,类似普通小交换机,相对于传统小交换机而言,它不需要您购置任何硬件设备,也不需要占用空间,CENTREX所需要的所有硬件都在电信公司的内部交换机内。
业务是电信局的交换机上,将某个社会团体用户(如公司、事业单位等)划为一个用户群,为其提供用户小交换机的功能,同时提供小交换机所不具备的更为丰富、灵活、便捷的电话通信服务。
“汇线通”用户群拥有一长一短两个电话号码;长号即外线直拔电话号码;短号即群内分机号码。
长短号并存分别使用,外来电可区别振铃。
什么是DECT技术?DECT 的英文全名是Digital Enhance Cordless Telephone,数位增强(泛欧式数位)无线电话系统(DECT),是根据泛欧地区共同通讯协定标准生产的移动产品。
泛欧式数位无线电话系统(DECT)规格发表于1992年,为欧洲的无线电话标准。
为了促销DECT至全世界,欧洲国家将DECT的[European]一字改成[Enhanced]以冲淡欧区域产的意味。
数位或增强无线电话通信系統(Digital Enhanced Cordless Telecommunications, DECT)以超微細(Pico cell)方式在高密(Digital Enhanced Cordless Telecommunications,DECT)以超微细(Pico cell)方式在高密度用户区提供服务,并使TDMA的技术将一个频道分割成12个语间通道,使用TDD双工模式,而每一个语音通道的编码速率为32kb/s。
Asterisk

第32章VoIP服务器——Asterisk可以自己用软件实现电话交换机?是的,这就是本章我们要讨论的话题。
如何在Linux下实现免费的电话交换机功能。
32.1用Linux实现免费电话大餐在架设自己的电话系统之前,我们先看看传统的电话网络是如何工作的。
传统的电话网络,叫做Public Switched Telephone Network,公共交换电话网络,简称PSTN,是一种全球联网的语音通信电路交换网络,通过中继和交换设备进行通讯。
不难看出,我们现在使用的IP计算机网络和PSTN颇有几分相似之处,在PSTN中呼叫一个电话号码相当于通过IP网络到达一个IP地址,在骨干PSTN网络中,也和IP协议一样使用复用机制来传递数据。
对于私有电话系统来说,也和IP计算机网络有着类似的原理。
公司的电话交换机直接对外(相当于IP网络中的公网地址),外部人员只能访问到电话交换机总机,由总机控制应该将这个连接转到哪个分机上(类似于IP中的NAT),内部的分机不是合法的电话号码(192.168.x.x?),只有通过公司的电话交换机才能与外界正常通讯。
在这里,公司的电话交换机,也就是通常所说的程控交换机,也叫PBX,Private Branch(telephone) eXchange的缩写,意思是私有/专有电话交换系统,传统的PBX使用PSTN网络连接并提供语音通话服务。
随着技术的发展,出现了基于IP网络的语音传输业务,即V oice over IP,简称V oIP,人们可以通过计算机网络(通常是指Internet或Intranet)进行语音通话,而后,又出现了基于IP网络的PBX,简称IPPBX,IPPBX不需要专用的网络,可以通过Internet和V oIP实现类似于传统电话系统的功能,而且,使用IPPBX进行通信,对内没有任何费用,只有网络建设成本,对外只需要支付接入到Internet的费用,没有任何额外的通话或漫游、长途费用,IPPBX的优势不言而喻,而通过一些硬件设备(比如调制解调器),IPPBX也可以和现有的传统PSTN网络互通。
Asterisk 功能整理

Asterisk (已测)功能列表一.PBX功能1.电话接听呼入电话,自动应答,或者转接给分机2.电话转接分机之间,分机与外线进行转接3.语音信箱预忙或者无法接听时接入到语音信箱,信箱所有者可以通过互联网或者电话拨号的方式获取语音邮件4.留言录制预忙或者无法接听时录制留言5.电话管理增加号码,删除号码,某路电话,监听外线电话等6.各种协议电话互通支持多种电话协议(SIP,iax2,H.232等)及PSTN网络7.等待音乐播放支持多组等待音乐的定制,可以为不同的呼入以及不同的组或者个人设定不同的等待音乐,实现音乐判断,以及个性化定制8.话单输出系统可以输出详细清单,对于系统发生的所有呼叫都可以储存到特定地点,以文件或者数据库的方式9.根据各种规则设定呼出呼入权限设定可以设置每个分机的呼出呼入权限,控制分机外线流量10.电话路由功能可以通过配置,对外线电话或者特定电话进行路由设置,可以适应用户原有的拨号习惯11.用户添加注册增加新的用户,删除用户信息,更新用户信息等12.DialPlan定制可以定制各种用于服务和通话的呼叫方案,满足不同行业不同需求13.外线电话录音功能对所有外线电话可以进行录音,或者局部电话进行录音14.来电过虑通过设定过虑规则,或者设置黑名单的方式,屏蔽骚扰电话,影响正常工作的电话等。
二.VoiceCallCenter 功能1.座席功能支持Agent座席功能,可以对座席分组2.呼叫自动分配(支持六种分配策略)支持六种呼叫策略,满足各种呼叫中心的需求3.通话监听班长或者管理员可以通过一个终端或者一个座席拨打一个固定的电话号码,输入密码后监听每个agent的电话4.座席优先级设置通过对座席优先级的设定,可以影响分配策略,实现能者多劳,或者对业务熟练的多接听的手段5.通话录音可以对座席的所有通话进行录音。
以便任何时间抽查,审查,或者提出改革方案等三.IVR语音菜单功能1.语音点播对语音按键相应,播放不同的音乐或者执行不同的程式2.DTMF发送、接收、处理可以对DTMF码进行接收,发送,和处理,从而实现互动3.多级语音菜单主菜单下可以挂靠子菜单,子菜单下还可以挂靠子菜单4.语音交互5.VIP接入免菜单直接接入通过对方电话号码判断是否VIP,如果VIP则直接接入指定分机或者指定队列,实现VIP管理四.Conference功能1.加入会议建立一个会议,允许用户加入到会议中2.会议发言,旁听对于加入会议的人,只允许听,不允许说3.会议主持可以通过设定会议主持,其他与会者听,会议主持主持会议4.会议管理可以设定特定的管理密码和管理人员,管理整个会议5.会议录音可以将会议内容录音,以备后续应用和学习6.主动邀请(未测)主动邀请用户加入到会议7.会议留言进入会议后留言,给每个进入的用户播放8.关闭会议关闭会议室或者清空会议室五.脚本支持功能Asterisk支持很多脚本语言,例如 perl,python,shell设置C和pascal 语言都有支持六.补充和总结Asterisk 还有一些其他的PBX和其他语音支持系统所没有的一些功能,有很强大的呼叫函数支持。
Asterisk-相关知识与应用

DialPlan (拨号方案)
dial : 它是Asterisk 很有价值的一功能,当来电者使用不同的通信方式时,它可以进行转换并进 行呼叫连接,如SIP电话到PSTN呼叫
Contexts : 拨号方案(DialPlan)进入部分我我们称为Contexts,每个Contexts 有一些extensions(扩展)构成,来实现一系列相关服务。
举一个例子如下: [default]
在extensions.conf 配制文件中, [default]上下文是拨号方案默认的进入部分
DialPlan (拨号方案)
goto 功能是发送呼叫到拨号方案中的其它context部分.
语法: goto(context,extension,priority)
[default] exten => 123,1,Answer() exten => 123,n,Background(main-menu) exten => 1,1,Playback(digits/1)
支持一条线路,只需要增32KB 的带宽,但是需要网络 质量良好。 Asterisk可支持成千的客户端(需要板卡与带宽支持)
asterisk 安装与启动
1从官方网站下载 asterisk-1.2.26.tar包,拷备到LINUX 下的用户目录. 2 用tar xzvf asterisk-1.2.26.tar 解压到当目录. 3 进入 asterisk 目录 执行如下命令
/usr/lib/asterisk/modules/ 这个目录包含所有可以加载Asterisk模块(应用程序\ 编辑器\格式和有用 通道),在Asterisk启运时会加载这些模块(可以编辑 modules.conf).
/var/lib/asterisk 比较重要的是astdb文件与agi-bin目录;astdb包含Asterisk当地数 据库信息. sounds/ 所有声音提示的文件在里面 mohmp3/ 如果配置了音乐保持,应用程序会在这个目录下查找mp3 keys/ 使用公钥和私钥系统认证与一个由RSA数字签名形成的一对等 连接.公钥和私钥的扩展名分别为.pub和.key
asterisk开源呼叫中心

asterisk 开源呼叫中心
开源呼叫中心 CalБайду номын сангаас Center
asterCRM 用户操作手册
速维科技有限公司 适用版本 asterCRM in asterCC 0.1beta2
发布日期 2008 年 12 月 第一版
asterisk 开源呼叫中心
1) 数据库.................................................................................................................15 2) Asterisk.............................................................................................................15 3) 系统.....................................................................................................................16 4) 第三方 CRM 集成.................................................................................................17 5) 其他.....................................................................................................................18 6) 使用许可.............................................................................................................18 3 帐户管理 ........................................................................................................................18 4 问卷管理 ........................................................................................................................21 5 客户管理 ........................................................................................................................23 6 导入客户 ........................................................................................................................24 7 统计 ................................................................................................................................27 8 拨号列表和拨号计划.....................................................................................................28 9 预拨号 ............................................................................................................................31 10 系统状态 ........................................................................................................................33 11 线路信息 ........................................................................................................................33 12 通话记录 ........................................................................................................................35 13 录音记录 ........................................................................................................................36 14 速拨号码 ........................................................................................................................37 座席人员操作 ................................................................................................................................38 1 座席状态 ........................................................................................................................38 2 最近呼叫记录.................................................................................................................39 3 转接号码 ........................................................................................................................39 4 快速拨号 ........................................................................................................................40 5 来电弹屏 ........................................................................................................................40 6 自动拨号 ........................................................................................................................43 7 CRM 客户管理 .................................................................................................................45
asterisk sip配置说明详述

asterisk sip配置说明1. 介绍extensions.conf中使用sip设备的语法是SIP/devicename,devicename名在下一节中说明。
如果用户在Internet上,可以使用SIP/username@domain形式,同时不要忘记打开D NS SRV功能。
如果定义了一个SIP代理,可以使用SIP/proxyhostname/user或者SIP/user@proxy hostname形式,proxyhostname的定义在下面的章节说明。
2. 在CLI中的查询命令:u sip show peers 显示所有的SIP peers(包括friends)u sip show users 显示所有的SIP users(包括friends)u sip show registry 显示注册到的主机状态u sip debug 显示所有的Sip信息u module reload chan_sip.so 重新装载sip的配置文件3. 设备命名命名一个设备之前,要先理解Asterisk是怎么处理呼入电话的:1) Asterisk取出SIP From: address中的username,使用它来匹配系统中定义的type=user的的设备名。
2) Asterisk检查INVITE请求中的IP地址和端口号,使用它来匹配系统中定义的t ype=peer的设备。
不要混淆extensions和设备名的概念。
设备需要一个唯一的名字。
设备名不能用于电话号码。
电话号码是拨号计划中的声明的一个extension。
注意:参数username并不是用户名的意思,在大多数情况下,它根本不是必须的。
在后边,我们把它重命名做defaultuser,因为他与defaultip合并使用。
4. 通用属性说明[general] ;通用属性context=default ;呼入电话默认使用的contextallowguest=no ; 允许或拒绝客户呼叫 (默认 yes)allowoverlap=no ; 允许重叠拨号(默认yes)allowtransfer=no ; 允许呼叫转接(默认yes)realm=mydomain.tld ; 认证的领域。
Asterisk配置文件说明

关于AsteriskAsterisk是一款实现用户电话交换机(PBX)功能的自由软件、开源软件。
Asterisk提供完善PBX 功能,可以连接多种不同的电话终端,包括普通电话机,IP电话机,软电话等,支持多种主流的IP电话协议和系统接口。
软件名称Asterisk-星号(*),在Unix(包括Linux)和DOS操作系统中是通配符,用来在查找中适配任何字符,寓意该软件广泛的适用性。
Asterisk软件提供很多以前只有昂贵的专业PBX系统才支持的功能,比如:语音信箱,会议电话,交互式语音提示和自动电话转接等。
由于该软件开放的性质,用户可以灵活的配置方便的扩展系统的功能,甚至编程开发自己所需功能的模块。
Asterisk通常都运行在Linux操作系统下,当然它也可以在其他系统,如BSD, Windows或OS X下编译并安装。
Asterisk服务器不需要任何特殊的硬件即可提供VoIP的服务,只需服务器有网络连接即可。
它支持主流VoIP协议,包括会话发起协议(SIP)、H.323,既可作为IP电话服务器也可以作IP 电话和PSTN之间的转接。
Asterisk系统还设计了一个新协议,IAX,用于在Asterisk服务器之间维护话路通道。
如果需要连接普通电话或PSTN中继线,运行Asterisk的服务器则需要安装相应的硬件接口板。
许多厂商都生产用于连接普通电话、T1、E1中继线、ISDN等的接口板。
由于是自由软件且具有丰富的系统功能,Asterisk提供给用户一个廉价并功能强大的PBX解决方案。
它被越来越多的用于代替传统专用的PBX,或被用于跨国VoIP电话以节省长途费用。
一些国家的VoIP电话公司已经开始支持Asterisk,提供IAX2接口或允许用户的Asterisk 服务器使用SIP协议连接。
截止2008年4月22日,Asterisk的最新版本是1.4.19.1版。
Asterisk功能说明及基本呼叫流程1.Asterisk内部核心:共分为6个部分A.PBX核心交换模块B.调度和IO管理模块C.应用调用模块D.编码转换模块E.动态模块加载器模块F.CDR生成模块(即时呼叫详细记录报告)2.Asterisk基本呼叫流程(1)通过Asterisk的一个电话呼叫在一个通道驱动接口上到达,如SIP通道。
asterisk拨号方案的配置

asteri sk拨号方案的配置配置文件“extensi ons.conf”包含了Asterisk的拨号方案(dial plan)。
它的所有操作的控制和执行流程的主要方案。
它控制呼入和呼出是如何被处理和路由。
这里是你配置连接行为的地方。
"extensi ons.conf"的内容以“节”的形式组织。
它可以静态设置和定义,作为上下文被执行。
设置节有general和global s 两种形式,由系统管理员完全定义。
一种特殊类型的“contex ts”是macros,由用户自定义,命名前缀是“m acro-”,这是可重用的模式,如同编程语言里的“过程”。
extensi ons.conf中每一节都由 []中的节名开始。
这使得ext ensio ns.conf 具有和wind ows世界里传统的i ni文件非常相似的结构。
Asteri sk v1.2中的新东西:默认情况下,有一个新的选项“autofa ll through”被设置成了“yes”. 这个设置改变了以前的规则使得遇忙,阻塞,挂起的呼叫被立即终止。
如果你正在为IV R 写一个exte n sion.你必须使用“W aitEx ten”应用程序。
[genera l] extenti ons.conf文件的顶部,配置几个设置。
[global s] 接着,在[global s]节中,你可以定义全局变量/常量,以及他们的初始值。
Contex ts 和Extensi ons在[genera l]和[global s]之后,extenti ons.conf文件的剩余部分就是dia l plan的定义了。
dialpl an是由c o ntex t s的集合组成的。
queue命令 asterisk

Queues.confQueues.conf-[general];; Global settings for call queues;全局设置; Persistent Members; Store each dynamic member in each queue in the astdb so that; when asterisk is restarted, each member will be automatically; read into their recorded queues. Default is 'yes'.;把每一个QUEUE里面的成员都存到astDB里面,这样当asterisk重启的时候,每一个成员都能够自动的恢复到Queue当中,default='yes'persistentmembers = yes;; AutoFill Behavior; The old/current behavior of the queue has a serial type behavior; in that the queue will make all waiting callers wait in the queue; even if there is more than one available member ready to take; calls until the head caller is connected with the member they; were trying to get to. The next waiting caller in line then; becomes the head caller, and they are then connected with the; next available member and all available members and waiting callers; waits while this happens. The new behavior, enabled by setting; autofill=yes makes sure that when the waiting callers are connecting; with available members in a parallel fashion until there are; no more available members or no more waiting callers. This is; probably more along the lines of how a queue should work and; in most cases, you will want to enable this behavior. If you; do not specify or comment out this option, it will default to no; to keep backward compatibility with the old behavior.;会记住每一个成员和用户当前的状态,自动去尝试连接坐席,并自动更新用户当前的状态.比如之前还有几个人在等待.下一个等待的用户将会变成第一个用户,然后他们会连接到第一个可用的分机。
asterisk介绍

当Asterisk不是一台sip 代理服务器时,可以配置Asterisk使 用其他的软件作为sip代理服务器,最常用的软件是Sip Express Router,简称SER,SER是一个开源的、可以让 Asterisk大规模部署的sip 代理服务器软件。
Asterisk不能运行在windows上
关于这一点,有一个Asterisk工作在windows上的演示CD, 结果是,Asterisk不能运行在windows平台,Asterisk要求近 乎实时的访问系统资源,也需要连接到某些特定的资源, 由于以上原因,Asterisk只能构建于一个开源的类unix操作 系统——Linux。
Asterisk 可以被配置为一个IP或混合的PBX的核心:交换呼 叫、管理路由、使能特性,以及通过 IP、模拟线路 (POTS)、以及数字(T1/E1)的联系同外部呼叫链接在 一起。
IP PBX与传统PBX相比较的优势
将电话网与计算机网统一成一个整体; 除了能为传统的电话用户提供服务外,还能方便地为Internet用户提供服务; 全新的硬件平台和高度集成的系统功能可大幅度降低成本; 实现增值服务更加方便和容易,比如建立呼叫中心、实施VoIP等; 开放的标准,互通性强; 将专用的通讯平台搬到了大众普遍较熟悉的计算机平台上,它的通用性和实用性更强; 使用、配置和维护更加简单,甚至无需专业人员; 功能更加强大且集成度高,单一系统就可以完成使用传统PBX需外配许多设备才能完成的功 能,比如自动话务台、语音信箱等等; 由于采用了计算机平台,使系统的扩容和升级更加简单和节省投资; 应用开发方便简单。
我们可以查询通话一般有多长,平均有多长,谁打的最多等等, 这种应用还有很多。通过这些信息,我们也可以找到一些不被允 许员工拨打的长途电话,Asterisk提供了这种减少这种浪费的可能, 更重要的是,这些通话记录不会被浪费掉,这些无价值的电话, 我们可以通过建立一个通话列表,当任何人拨打这些电话时,都 要求验证密码并被检查。
Asterisk 入门教程

Asterisk 入门教程subscriber:加入某个group,从而遵从某一个call restricionsubscriber group:可以使用1种call restriction。
call restriction:将numbering plan中各项取出,各自组成成不同的呼叫限制方案numbering plan:通用,是一个整体的计划,里面包括长途,本地,等各种形式的方案-------------------------------------------------------------以上,用于拨入号码的预处理,实际上是一种过滤,下面才是真正的呼叫处理。
--------------------------------------------------------------route:一种策略,根据号码匹配的模式,选择走哪个trunk。
trunk:实际上做通一个链路,供route选择。
analog的,一个POTS就是一条analog trunkanalog的数量由设备定,ip trunk没有限制数量,并且一个ip trunk连到对方IPPBX后,对方的subscriber 数量是不确定的,由那个IP PBX决定。
Asterisk,开始吧--------------------------------------------------------------什么是asterisk?开源电话平台Asterisk 通过了电话的开源平台。
基本上就是一个软件的PBX。
最初是Digium 公司的Mark Spencer 编写的,这个公司就是他创立的,专门生产并销售Asterisk使用的硬件。
Asterisk 简直就是一场电话的革命。
为什么使用Asterisk?现在电信行业的混乱,因为各种专利技术应用在各种层次的网络上,导致很大的混乱。
Asterisk 就是答案——给电信行业普遍的混乱环境带来秩序的革命。
Asterisk拨号方案常用函数

Asterisk拨号方案常用函数说明(1)Answer()应用于接听正在响铃通道,它不需要任何参数.(2)Playback()应用在通道上播放事先录制好的语音文件.指定一个文件名(不带扩展名),可以使用绝对路径与相对路径.(3)Hangup()应用在于挂断一个正在活动的通道.(4)Background()它也播放事先录制好的语音文件,但它等待按键,然后执行对应extension.防止Background()后超出按键范围,使用i来解决问题.防止Background长时间没有选择,使用t来决解问题.(5)Goto()Goto应用使得在拨号方案的不同部分有序的转移非常容易. Goto()应用有三个参量分别是context,extension,和priority.即Goto(context,extension,priority)(6)Dial()Dial()有4个参数.(a)第一个是:呼叫的被叫地.如:SIP/50000或Zap/1.可以同时拨打多个通道如: exten =>601,1,Dial(Zap/1&SIP/50000&IAX/60000)(b)第二个是:超时,单位"秒".给定超时参量Dial会一直对被叫地进行呼叫,直到超时后才放弃,如果没有给定,将直到接听或主叫挂机,如果呼叫在超时前接听,通道就被桥接,拨号完。
成补充:如果超时后被叫地没有应答,则会继续Dial()的extension下一个priority.如果被叫地通道忙,Dial()将转到priority n+101(n是Dial()被调用的priority),如果存在的话,将能够处理被叫地忙的方式接叫未接电话.(c)第三个是:可选择参量,它会可以影响到Dial()的行为,如: exten =>601,1,Dial(SIP/50000,30,Ttwr) 其中T表示允许主叫用户按"#"转接呼叫;t表示允许被叫用户按"#"转接呼叫;r表示为被叫用户产生振铃声;w用户按"*"键开始录音(d)最后一个是:URL参量.如: exten =>601,1,Dial([email=SIP/60000@]SIP/60000@[/email]) exten => 602,1,Dial(Zap/1/5732381) 任何参量都可以为空如: exten => 601,1,Dial(SIP/60000,,T) 或 exten => 601,1,Dial(SIP/60000)AddQueueMember: Dynamically adds queue membersADSIProg: Load Asterisk ADSI Scripts into phoneAGI: Executes an AGI compliant applicationAMD: Attempts to detect answering machinesAnswer: Answer a channel if ringingAppendCDRUserField: Append to the CDR user fieldAuthenticate: Authenticate a userBackGround: Play an audio file while waiting for digits of an extension to go to.BackgroundDetect: Background a file with talk detectBusy: Indicate the Busy conditionChangeMonitor: Change monitoring filename of a channelChanIsAvail: Check channel availabilityChannelRedirect: Redirects given channel to a dialplan target.ChanSpy: Listen to a channel, and optionally whisper into itCongestion: Indicate the Congestion conditionContinueWhile: Restart a While loopControlPlayback: Play a file with fast forward and rewindDAHDIBarge: Barge in (monitor) DAHDI channelDAHDIRAS: Executes DAHDI ISDN RAS applicationDAHDIScan: Scan Zap channels to monitor callsDAHDISendKeypadFacility: Send digits out of band over a PRIDateTime: Says a specified time in a custom formatDBdel: Delete a key from the databaseDBdeltree: Delete a family or keytree from the databaseDeadAGI: Executes AGI on a hungup channelDial: Place a call and connect to the current channelDictate: Virtual Dictation MachineDirectory: Provide directory of voicemail extensionsDISA: DISA (Direct Inward System Access)DumpChan: Dump Info About The Calling ChannelEAGI: Executes an EAGI compliant applicationEcho: Echo audio, video, or DTMF back to the calling partyEndWhile: End a while loopExec: Executes dialplan applicationExecIf: Executes dialplan application, conditionallyExecIfTime: Conditional application execution based on the current timeExitWhile: End a While loopExtenSpy: Listen to a channel, and optionally whisper into itExternalIVR: Interfaces with an external IVR applicationFlash: Flashes a DAHDI trunkForkCDR: Forks the Call Data RecordGetCPEID: Get ADSI CPE IDGosub: Jump to label, saving return addressGosubIf: Conditionally jump to label, saving return addressGoto: Jump to a particular priority, extension, or contextGotoIf: Conditional gotoGotoIfTime: Conditional Goto based on the current timeHangup: Hang up the calling channelHasNewVoicemail: Conditionally branches to priority + 101 with the right options set HasVoicemail: Conditionally branches to priority + 101 with the right options setIAX2Provision: Provision a calling IAXy with a given templateICES: Encode and stream using 'ices'ImportVar: Import a variable from a channel into a new variableLog: Send arbitrary text to a selected log levelLookupBlacklist: Look up Caller*ID name/number from blacklist databaseLookupCIDName: Look up CallerID Name from local databaseMacro: Macro ImplementationMacroExclusive: Exclusive Macro ImplementationMacroExit: Exit From MacroMacroIf: Conditional Macro ImplementationMailboxExists: Check to see if Voicemail mailbox existsMeetMe: MeetMe conference bridgeMeetMeAdmin: MeetMe conference AdministrationMeetMeCount: MeetMe participant countMilliwatt: Generate a Constant 1004Hz tone at 0dbm (mu-law)MixMonitor: Record a call and mix the audio during the recordingMonitor: Monitor a channelMorsecode: Plays morse codeMP3Player: Play an MP3 file or streamMusicOnHold: Play Music On Hold indefinitelyNBScat: Play an NBS local streamNoCDR: Tell Asterisk to not maintain a CDR for the current callNoOp: Do NothingPage: Pages phonesPark: Park yourselfParkAndAnnounce: Park and AnnounceParkedCall: Answer a parked callPauseMonitor: Pause monitoring of a channel PauseQueueMember: Pauses a queue memberPickup: Directed Call PickupPlayback: Play a filePlayTones: Play a tone listPrivacyManager: Require phone number to be entered, if no CallerID sent Progress: Indicate progressQueue: Queue a call for a call queueQueueLog: Writes to the queue_logRandom: Conditionally branches, based upon a probabilityRead: Read a variableReadFile: ReadFile(varname=file,length)RealTime: Realtime Data LookupRealTimeUpdate: Realtime Data RewriteRecord: Record to a fileRemoveQueueMember: Dynamically removes queue membersResetCDR: Resets the Call Data RecordRetryDial: Place a call, retrying on failure allowing optional exit extension.Return: Return from gosub routineRinging: Indicate ringing toneSayAlpha: Say AlphaSayDigits: Say DigitsSayNumber: Say NumberSayPhonetic: Say PhoneticSayUnixTime: Says a specified time in a custom formatSendDTMF: Sends arbitrary DTMF digitsSendImage: Send an image fileSendText: Send a Text MessageSendURL: Send a URLSet: Set channel variable(s) or function value(s)SetAMAFlags: Set the AMA FlagsSetCallerID: Set CallerIDSetCallerPres: Set CallerID PresentationSetCDRUserField: Set the CDR user fieldSetGlobalVar: Set a global variable to a given valueSetMusicOnHold: Set default Music On Hold classSetTransferCapability: Set ISDN Transfer CapabilitySIPAddHeader: Add a SIP header to the outbound callSIPDtmfMode: Change the dtmfmode for a SIP callSLAStation: Shared Line Appearance StationSLATrunk: Shared Line Appearance TrunkSMS: Communicates with SMS service centres and SMS capable analogue phonesSoftHangup: Soft Hangup ApplicationSpeechActivateGrammar: Activate a GrammarSpeechBackground: Play a sound file and wait for speech to be recognizedSpeechCreate: Create a Speech StructureSpeechDeactivateGrammar: Deactivate a GrammarSpeechDestroy: End speech recognitionSpeechLoadGrammar: Load a GrammarSpeechProcessingSound: Change background processing soundSpeechStart: Start recognizing voice in the audio streamSpeechUnloadGrammar: Unload a GrammarStackPop: Remove one address from gosub stackStartMusicOnHold: Play Music On HoldStopMixMonitor: Stop recording a call through MixMonitorStopMonitor: Stop monitoring a channelStopMusicOnHold: Stop Playing Music On HoldStopPlayTones: Stop playing a tone listSystem: Execute a system commandTestClient: Execute Interface Test ClientTestServer: Execute Interface Test ServerTransfer: Transfer caller to remote extensionTryExec: Executes dialplan application, always returningTrySystem: Try executing a system commandUnpauseMonitor: Unpause monitoring of a channelUnpauseQueueMember: Unpauses a queue memberUserEvent: Send an arbitrary event to the manager interfaceVerbose: Send arbitrary text to verbose outputVMAuthenticate: Authenticate with Voicemail passwordsVoiceMail: Leave a Voicemail messageVoiceMailMain: Check Voicemail messagesWait: Waits for some timeWaitExten: Waits for an extension to be enteredWaitForRing: Wait for Ring ApplicationWaitForSilence: Waits for a specified amount of silenceWaitMusicOnHold: Wait, playing Music On HoldWhile: Start a while loopZapateller: Block telemarketers with SITZapBarge: Barge in (monitor) Zap channelZapRAS: Executes Zaptel ISDN RAS applicationZapScan: Scan Zap channels to monitor calls ZapSendKeypadFacility: Send digits out of band over a PRIAddQueueMember: Dynamically adds queue membersADSIProg: Load Asterisk ADSI Scripts into phoneAGI: Executes an AGI compliant applicationAMD: Attempts to detect answering machinesAnswer: Answer a channel if ringingAppendCDRUserField: Append to the CDR user fieldAuthenticate: Authenticate a userBackGround: Play an audio file while waiting for digits of an extension to go to. BackgroundDetect: Background a file with talk detectBusy: Indicate the Busy conditionChangeMonitor: Change monitoring filename of a channelChanIsAvail: Check channel availabilityChannelRedirect: Redirects given channel to a dialplan target.ChanSpy: Listen to a channel, and optionally whisper into itCongestion: Indicate the Congestion conditionContinueWhile: Restart a While loopControlPlayback: Play a file with fast forward and rewindDAHDIBarge: Barge in (monitor) DAHDI channelDAHDIRAS: Executes DAHDI ISDN RAS applicationDAHDIScan: Scan Zap channels to monitor calls DAHDISendKeypadFacility: Send digits out of band over a PRIDateTime: Says a specified time in a custom formatDBdel: Delete a key from the databaseDBdeltree: Delete a family or keytree from the databaseDeadAGI: Executes AGI on a hungup channelDial: Place a call and connect to the current channelDictate: Virtual Dictation MachineDirectory: Provide directory of voicemail extensionsDISA: DISA (Direct Inward System Access)DumpChan: Dump Info About The Calling ChannelEAGI: Executes an EAGI compliant applicationEcho: Echo audio, video, or DTMF back to the calling partyEndWhile: End a while loopExec: Executes dialplan applicationExecIf: Executes dialplan application, conditionallyExecIfTime: Conditional application execution based on the current time ExitWhile: End a While loopExtenSpy: Listen to a channel, and optionally whisper into itExternalIVR: Interfaces with an external IVR applicationFlash: Flashes a DAHDI trunkForkCDR: Forks the Call Data RecordGetCPEID: Get ADSI CPE IDGosub: Jump to label, saving return addressGosubIf: Conditionally jump to label, saving return addressGoto: Jump to a particular priority, extension, or contextGotoIf: Conditional gotoGotoIfTime: Conditional Goto based on the current timeHangup: Hang up the calling channelHasNewVoicemail: Conditionally branches to priority + 101 with the right options set HasVoicemail: Conditionally branches to priority + 101 with the right options set IAX2Provision: Provision a calling IAXy with a given templateICES: Encode and stream using 'ices'ImportVar: Import a variable from a channel into a new variableLog: Send arbitrary text to a selected log levelLookupBlacklist: Look up Caller*ID name/number from blacklist database LookupCIDName: Look up CallerID Name from local databaseMacro: Macro ImplementationMacroExclusive: Exclusive Macro ImplementationMacroExit: Exit From MacroMacroIf: Conditional Macro ImplementationMailboxExists: Check to see if Voicemail mailbox existsMeetMe: MeetMe conference bridgeMeetMeAdmin: MeetMe conference AdministrationMeetMeCount: MeetMe participant countMilliwatt: Generate a Constant 1004Hz tone at 0dbm (mu-law)MixMonitor: Record a call and mix the audio during the recordingMonitor: Monitor a channelMorsecode: Plays morse codeMP3Player: Play an MP3 file or streamMusicOnHold: Play Music On Hold indefinitelyNBScat: Play an NBS local streamNoCDR: Tell Asterisk to not maintain a CDR for the current callNoOp: Do NothingPage: Pages phonesPark: Park yourselfParkAndAnnounce: Park and AnnounceParkedCall: Answer a parked callPauseMonitor: Pause monitoring of a channelPauseQueueMember: Pauses a queue memberPickup: Directed Call PickupPlayback: Play a filePlayTones: Play a tone listPrivacyManager: Require phone number to be entered, if no CallerID sent Progress: Indicate progressQueue: Queue a call for a call queueQueueLog: Writes to the queue_logRandom: Conditionally branches, based upon a probabilityRead: Read a variableReadFile: ReadFile(varname=file,length)RealTime: Realtime Data LookupRealTimeUpdate: Realtime Data RewriteRecord: Record to a fileRemoveQueueMember: Dynamically removes queue membersResetCDR: Resets the Call Data RecordRetryDial: Place a call, retrying on failure allowing optional exit extension. Return: Return from gosub routineRinging: Indicate ringing toneSayAlpha: Say AlphaSayDigits: Say DigitsSayNumber: Say NumberSayPhonetic: Say PhoneticSayUnixTime: Says a specified time in a custom formatSendDTMF: Sends arbitrary DTMF digitsSendImage: Send an image fileSendText: Send a Text MessageSendURL: Send a URLSet: Set channel variable(s) or function value(s)SetAMAFlags: Set the AMA FlagsSetCallerID: Set CallerIDSetCallerPres: Set CallerID PresentationSetCDRUserField: Set the CDR user fieldSetGlobalVar: Set a global variable to a given valueSetMusicOnHold: Set default Music On Hold class SetTransferCapability: Set ISDN Transfer CapabilitySIPAddHeader: Add a SIP header to the outbound callSIPDtmfMode: Change the dtmfmode for a SIP callSLAStation: Shared Line Appearance StationSLATrunk: Shared Line Appearance TrunkSMS: Communicates with SMS service centres and SMS capable analogue phones SoftHangup: Soft Hangup ApplicationSpeechActivateGrammar: Activate a GrammarSpeechBackground: Play a sound file and wait for speech to be recognized SpeechCreate: Create a Speech Structure SpeechDeactivateGrammar: Deactivate a Grammar SpeechDestroy: End speech recognitionSpeechLoadGrammar: Load a Grammar SpeechProcessingSound: Change background processing sound SpeechStart: Start recognizing voice in the audio stream SpeechUnloadGrammar: Unload a GrammarStackPop: Remove one address from gosub stack StartMusicOnHold: Play Music On HoldStopMixMonitor: Stop recording a call through MixMonitor StopMonitor: Stop monitoring a channelStopMusicOnHold: Stop Playing Music On HoldStopPlayTones: Stop playing a tone listSystem: Execute a system commandTestClient: Execute Interface Test ClientTestServer: Execute Interface Test ServerTransfer: Transfer caller to remote extensionTryExec: Executes dialplan application, always returningTrySystem: Try executing a system commandUnpauseMonitor: Unpause monitoring of a channel UnpauseQueueMember: Unpauses a queue memberUserEvent: Send an arbitrary event to the manager interface Verbose: Send arbitrary text to verbose outputVMAuthenticate: Authenticate with Voicemail passwordsVoiceMail: Leave a Voicemail messageVoiceMailMain: Check Voicemail messagesWait: Waits for some timeWaitExten: Waits for an extension to be enteredWaitForRing: Wait for Ring ApplicationWaitForSilence: Waits for a specified amount of silence WaitMusicOnHold: Wait, playing Music On HoldWhile: Start a while loopZapateller: Block telemarketers with SITZapBarge: Barge in (monitor) Zap channelZapRAS: Executes Zaptel ISDN RAS applicationZapScan: Scan Zap channels to monitor calls ZapSendKeypadFacility: Send digits out of band over a PRI你可以得到当前系统可用的App 命令集合通过在CLI里面输入"show applications "和"showapplication <name>" 在1.6版本之前,或者使用"core show applications" 和"core showapplication <name>" 在版本1.4中注意:标题特殊字符含义标题特殊字符或文字颜色代表了不同含义+ 绿色:是增加的/功能的函数~ 黄色:表示弃用的函数- 红色:移处或不在原先版本中使用的函数∙ADSI 相关命令∙DAHDI (was ZAP)相关命令∙SIP命令∙SMS短消息命令∙vISDN 命令∙主叫来电演示命令(Caller presentation (ID, Name etc) )∙呼叫控制命令∙声音处理命令∙外部应用命令∙字符串及变量处理命令∙常规命令∙录音及监听功能命令∙扩展应用集成命令∙控制流程和超时命令∙数据库处理命令∙无线电技术及中继链接(Amateur Radio/Repeater Linking )∙警告监控及总站(Alarm Monitoring/Central Station )∙计费相关的命令∙语音信箱及会议相关命令∙队列及ACD管理相关命令/index.php?q=content/asterisk-%E6%8B%A8%E5%8F%B7%E6%96%B9 %E6%A1%88dialplan%E5%91%BD%E4%BB%A4%E6%89%8B%E5%86%8C。
asterisk拨号方案的配置

asterisk拨号方案的配置配置文件“extensions.conf”包含了Asterisk的拨号方案(dial plan)。
它的所有操作的控制和执行流程的主要方案。
它控制呼入和呼出是如何被处理和路由。
这里是你配置连接行为的地方。
"extensions.conf"的内容以“节”的形式组织。
它可以静态设置和定义,作为上下文被执行。
设置节有general 和globals 两种形式,由系统管理员完全定义。
一种特殊类型的“contexts”是macros,由用户自定义,命名前缀是“macro-”,这是可重用的模式,如同编程语言里的“过程”。
extensions.conf中每一节都由[]中的节名开始。
这使得extensions.conf具有和windows世界里传统的ini文件非常相似的结构。
Asterisk v1.2中的新东西:默认情况下,有一个新的选项“autofallthrough”被设置成了“yes”. 这个设置改变了以前的规则使得遇忙,阻塞,挂起的呼叫被立即终止。
如果你正在为IVR 写一个extension.你必须使用“WaitExten”应用程序。
[general] extentions.conf文件的顶部,配置几个设置。
[globals] 接着,在[globals]节中,你可以定义全局变量/常量,以及他们的初始值。
Contexts 和Extensions在[general]和[globals]之后,extentions.conf文件的剩余部分就是dialplan的定义了。
dialplan是由contexts的集合组成的。
每个context是由extensions的集合组成。
Extension 模式当你在context中定义extension时,你不仅使用文字数字,字母,还要匹配extension 模式。
Context包括的内容一个extension context可以嵌套另一个,参考一下下面的范例:Context "default":Extension Description101 Mark Spencer102 Wil Meadows0 OperatorContext "local":Extension Description_9NXXXXXX Local callsinclude => "default"Context "longdistance":Extension Description_91NXXNXXXXXX Long distance callsinclude => "local"这里我们定义三种extension第一种content:default 允许拨打三个电话extension: Mark, Wil, and the Operator.第二种content:local 一个扩展模式:允许拨打7位数字号码(本地呼叫),同时也包括“default”context,这样也允许用户拨打Mark,Wil,或者是操作员。
Asterisk权威文档(第3版)第26章中文翻译

Asterisk权威文档(第三版)Chapter 26 ————Security(安全)我们总是竭尽全力去寻找安全,然而当我们得到安全时却又恨之入骨!————John SteinbeckAsterisk系统的安全至关重要,特别是当系统接入互联网时。
一旦系统被入侵,攻击者们可以通过利用该系统实现免费的电话以赚取大量非法钱财。
本章将就如何保障你的网络电话部署安全性提供一些建议。
扫描有效账户如果你将Asterisk系统接入公共网络,几乎可以肯定你会做的其中一件事是扫描有效账户。
示例26-1包含了来自于众多Asterisk系统作者的项目之一的日志条目。
扫描往往先查找常见账户,之后才继续扫描在编账户。
就像命名交换机扩展项一样命名SIP账户是很常见的,我们说的扫描就基于这一事实。
而这就是我们下面第一条提示所要解释的关于Asterisk系统安全的问题:提示1:使用非数字用户名作为你的VoIP账户将使它更难以被猜测,举个例子,在本书部分章节中,我们使用SIP电话本身的MAC地址作为它在Asterisk系统中的账户名。
例26-1账户扫描的日志摘录[Aug 22 15:17:15] NOTICE[25690] chan_sip.c: Registration from'"123"<sip:123@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:15] NOTICE[25690] chan_sip.c: Registration from'"1234"<sip:1234@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:15] NOTICE[25690] chan_sip.c: Registration from* The real IP address has been replaced with 127.0.0.1 in the log entries.'"12345"<sip:12345@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:15] NOTICE[25690] chan_sip.c: Registration from'"123456"<sip:123456@127.0.0.1>' failed for '203.86.167.220:5061' - No matchingpeer found[Aug 22 15:17:15] NOTICE[25690] chan_sip.c: Registration from'"test"<sip:test@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:15] NOTICE[25690] chan_sip.c: Registration from'"sip"<sip:sip@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peer found[Aug 22 15:17:15] NOTICE[25690] chan_sip.c: Registration from'"user"<sip:user@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:16] NOTICE[25690] chan_sip.c: Registration from'"admin"<sip:admin@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:16] NOTICE[25690] chan_sip.c: Registration from'"pass"<sip:pass@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:16] NOTICE[25690] chan_sip.c: Registration from'"password"<sip:password@127.0.0.1>' failed for '203.86.167.220:5061' - No matchingpeer found[Aug 22 15:17:16] NOTICE[25690] chan_sip.c: Registration from'"testing"<sip:testing@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:16] NOTICE[25690] chan_sip.c: Registration from'"guest"<sip:guest@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:16] NOTICE[25690] chan_sip.c: Registration from'"voip"<sip:voip@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peerfound[Aug 22 15:17:16] NOTICE[25690] chan_sip.c: Registration from'"account"<sip:account@127.0.0.1>' failed for '203.86.167.220:5061' - No matchingpeer found...[Aug 22 15:17:17] NOTICE[25690] chan_sip.c: Registration from'"100"<sip:100@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peer found[Aug 22 15:17:17] NOTICE[25690] chan_sip.c: Registration from'"101"<sip:101@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peer found[Aug 22 15:17:17] NOTICE[25690] chan_sip.c: Registration from'"102"<sip:102@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peer found[Aug 22 15:17:17] NOTICE[25690] chan_sip.c: Registration from'"103"<sip:103@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peer found[Aug 22 15:17:17] NOTICE[25690] chan_sip.c: Registration from'"104"<sip:104@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peer found[Aug 22 15:17:17] NOTICE[25690] chan_sip.c: Registration from'"105"<sip:105@127.0.0.1>' failed for '203.86.167.220:5061' - No matching peer found账户扫描利用尝试注册时服务器端返回的信息不同来判断某个账户存在与否。
朗视IPPBX技术文档_队列中暂停和取消暂停座席

朗视_IPPBX_队列中暂停和取消暂停座席关键词速读:朗视, Yeastar, 朗视IPPBX, 座席, 队列适用型号:朗视S系列/U系列IPPBX适用软件版本:任意版本适用硬件版本:all方案背景:当有座席需要暂时离开座位时,一般都是建议用退出座席,回来后用登入座席,但是退出队列后,座席在队列内的计时及接听电话数会被清零。
易造成,座席重新加入到队列后,电话全都跑这个座席了,达不到话务平均分配,而很多呼叫中心的座席,都是依据接电话的个数来绩效考核的。
所以不能使用退出座席的方法来临时拒接电话。
具体方案:通过查看《Asterisk权威指南第3版中文》第13章自动呼叫分配(ACD),说明,其中有暂停和取消暂停座席通过尝试,可以使用暂停座席的方式,暂停后,座席原有的计时继续,接听电话个数也保留;取消暂停座席后,由于话务平均的概念,这个座席会优先被分配。
S系列IPPBX:本例座席分机拨打67000*为暂停座席,67001*为恢复座席,而如果用户希望从API 操作暂停和恢复座席,那么需要把脚本改成不带*的,即脚本可以改成67000、67001(注意号码不要冲突),然后使用“分机拨打外线号码”的方式来操作!1.自定义extensions.conf:[queues]exten = 6700,1,UserEvent(UpdateCallee,callee: 6700)exten = 6700,2,Gotoif($[${APIDIALSTATUS}==BUSY]?h,1)exten = 6700,3,Set(YSGROUPEXTEN=6700)exten = 6700,n,Set(CDR(orgdst)=6700)exten = 6700,n,Set(CDR(onlyext)=yes)exten = 6700,n,Goto(queue_6700,6700,1)exten =6700*,1,Macro(queue-login,queue-6700,,Local/${SRCEXTENSION}@only-dialexte nsion-q6700,hint:${SRCEXTENSION}@default)exten =6700**,1,Macro(queue-logout,queue-6700,Local/${SRCEXTENSION}@only-dialext ension-q6700)exten =67000*,1,Macro(queue-pause,queue-6700,Local/${SRCEXTENSION}@only-dialext ension-q6700)exten =67001*,1,Macro(queue-unpause,queue-6700,Local/${SRCEXTENSION}@only-dial extension-q6700)exten = h,1,Hangup()[macro-queue-pause]exten = s,1,Wait(1)exten = s,n,PauseQueueMember(${ARG1},${ARG2})exten = s,n,Playback(queue_pause)exten = s,n,Playback(vm-goodbye)exten = s,n,Hangup()[macro-queue-unpause]exten = s,1,Wait(1)exten = s,n,UnpauseQueueMember(${ARG1},${ARG2})exten = s,n,Playback(queue_unpause)exten = s,n,Playback(vm-goodbye)exten = s,n,Hangup()2.语音默认调用FTP位置(中文):/ysapps/pbxcenter/var/lib/asterisk/sounds/zh/3.座席暂停后,通过CLI 命令queue show queue-6700,显示如下:U系列IPPBX:1.自定义extensions.conf:[queues]exten = 680,1,Goto(queue-680,680,1)exten = 680*,1,Macro(queue-login,queue-680,,${CONTEXT:13})exten = 680**,1,Macro(queue-logout,queue-680,${CONTEXT:13})exten = 6800*,1,PauseQueueMember(queue-680,SIP/${CONTEXT:13})exten = 6800*,n,Playback(queue_pause)exten = 6800*,n,Playback(vm-goodbye)exten = 6801*,1,UnpauseQueueMember(queue-680,SIP/${CONTEXT:13})exten = 6801*,n,Playback(queue_unpause)exten = 6801*,n,Playback(vm-goodbye)2.语音默认调用位置:/var/lib/asterisk/sounds/N系列,使用FXS模拟口,被叫是DAHDI/端口号,N系列分机从601到624,端口是01-24,即分机号600为具体端口号,如果座席使用SIP话机就要用PJSIP了(这个方法比较笨,没找到对应实际的变量,或者也可以增加下号码段的判断,FXS用的600开始,SIP是500开始),:自定义extensions.conf:[queues]exten = 661,1,Goto(queue-661,661,1)exten = 661*,1,Macro(queue-login,queue-661,,${SRCEXTENSION})exten = 661**,1,Macro(queue-logout,queue-661,${SRCEXTENSION})exten = 6610*,1,Macro(queue-pause,queue-661,${SRCEXTENSION})exten = 6611*,1,Macro(queue-unpause,queue-661,${SRCEXTENSION})[macro-queue-pause]exten = s,1,Wait(1)exten = s,n,Set(ARG00=$[${ARG2}-600])exten = s,n,PauseQueueMember(${ARG1},DAHDI/${ARG00}) exten = s,n,Playback(queue_pause)exten = s,n,Playback(vm-goodbye)exten = s,n,Hangup()[macro-queue-unpause]exten = s,1,Wait(1)exten = s,n,Set(ARG00=$[${ARG2}-600])exten = s,n,UnpauseQueueMember(${ARG1},DAHDI/${ARG00}) exten = s,n,Playback(queue_unpause)exten = s,n,Playback(vm-goodbye)exten = s,n,Hangup()。
asterisk中sip.conf配置文件详解

asterisk中sip.conf配置文件详解l 安装完asterisk 配置sip.conf文件[8001]type=friendusername=8001accountcode=8001secret=8001context=from-exten-sip;followed advance settingshost=dynamicnat=yesqualify=2000canreinvite=nocallgroup=0,pickupgroup=0,setvar=call-limit=1说明:(1)type:sip的类型。
格式:type =user|peer|friend 。
peer用于认证呼出呼叫,如果想要一个用户(extension)中有多个电话,定义可以呼叫两个SIP peer 的extension。
user用于认证呼入呼叫,用户通过上下文鉴定到达服务器。
friend 用于认证呼入呼出,相当于(peer+user)。
(2)username :格式:username =。
如果Asterisk接受来自远程SIP的SIP INVITE请求的客户端,这字段指定验证的用户名。
(3)accountcode:格式:accountcode =。
此字段,是用来填充“accountcode“领域的CDR(呼叫详细记录)。
(4)secret:用于认证的密码。
如果Asterisk是作为一个SIP代理服务器,那么这个SIP 客户端必须使用此密码登录(一个共享密码)。
如果Asterisk是一个SIP客户端作为一个远程SIP的SIP INVITE的服务器要求身份验证,那么这个字段是用来验证该Asterisk的SIP协议提请发送到远程SIP服务器。
(5)context:格式:context = 定义了指令的地点,用于控制电话的权限,以及如何处理此号码的呼入呼叫。
如果类型为用户,上下文定义呼入呼叫使用。
如果类型为节点,上下文定义呼出呼叫使用。
PSTN

采用技术
PSTNPSTN提供的是一个模拟的专有通道,通道之间经由若干个交换机连接而成。当两个主机或路由器设备需 要通过PSTN连接时,在两端的络接入侧(即用户回路侧)必须使用调制解调器(Modem)实现信号的模/数、数/ 模转换。从OSI七层模型的角度来看,PSTN可以看成是物理层的一个简单的延伸,没有向用户提供流量控制、差 错控制等服务。而且,由于PSTN是一种电路交换的方式,所以一条通路自建立直至释放,其全部带宽仅能被通路 两端的设备使用,即使他们之间并没有任何数据需要传送。因此,这种电路交换的方式不能实现对络带宽的充分 利用。通过PSTN进行络互联举例下图是一个通过PSTN连接两个局域的络互连的例子。在这两个局域中,各有一个 路由器,每个路由器均有一个串行端口与Modem相连,Modem再与PSTN相连,从而实现了这两个局域的互连。
系统应用
PSTN在从家庭中的机传送到中央局的过程中,语音要么以基本服务的模拟形式存在,要么在通过PBX访问时 以数字形式存在。但是,一旦到达中央局以后,语音在PSTN上都是以数字形式存在—每路都是64Kbps的时分多路 复用通道,传送脉冲编码调制语音采样信号。在TDM络上拨打时永远不会经历语音质量之类的困惑,而且呼叫的 语音质量也是个不容商量的参数。但是,这种语音质量传输的代价是服务供应商的巨大开销,不管交谈双方实际 使用的带宽是多少,都要在整个呼叫过程中绑定络资源。即使用基本的爱尔朗模型进行的简单流量分析也显示出 络资源和络所服务的人群数量之间的线形依赖关系。进一步讲,过去几年中,Web访问的巨大吸引力在TDM络中引 起了更大的问题—络资源。很明显,对于公司而言,这是种很不经济的情况。他们发现在当前的公用络结构中无 法增强络性能、无法提供附加的其他服务。罪魁祸首被公认为是缺少语音和数据的集成,以及在“最后一里”中 的模拟线路的低带宽。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD)
译者: Steele,2012-08-04
第十三章 自动呼叫分配(ACD)
目录
13.1 创建简单的 ACD 队列..............................................................................................3 13.2 队列的坐席成员.......................................................................................................6
在 Asterisk 中,术语 member 指队列中可以被拨叫的一个终端,例如 SIP/0000FFFF0001。术语 agent 技术上是指用于拨叫终端的 Agent channel。 不幸地是,Agent channel 是在 Asterisk 中废弃了的技术,因为它的灵活性 非常有限,而且容易产生一些意想不到的错误,这些错误非常难于诊断和
如果你曾经给某些组织打电话时听到过“所有坐席忙,”这样的信息,就意味着你已经 有了 ACD 的使用经验。对拨打电话的人来说,ACD 的优点在于他们不必反复拨打以尝试接 通;而对于使用了 ACD 的组织来说,他们将能为客户提供更好的服务,并且可以临时处理 一下同时来电数量多于坐席数的情况。
目前有两种呼叫中心:呼入型和呼出型。ACD 相关的技术用于处理呼入型 呼叫中心,而预拨号器(Predictive Dialer)相关的技术用于处理呼出型呼 叫中心。在本书中,我们主要集中讨论呼入型呼叫中心。
首先的步骤是在/etc/asterisk 配置目录中创建你的 queues.conf 文件:
$ cd /etc/asterisk/
$ touch queues.conf
然后在其中填入下述配置,这将创建两个命名为[sales]和[support]的队列。你可以将这两个
队列命名为任何你希望的名字,但在本书中我们将使用这两个名字。所以,如果你使用了其
joinempty=no
; do not join the queue when no members available
leavewhenempty=yes
; leave the queue when no members available
ringinuse=no
; don't ring members when already InUse (prevents
; multiple calls to an agent)
[sales](StandardQueue) ; create the sales queue using the parameters in the
; StandardQueue template
[support](StandardQueue) ; create the support queue using the parameters in the
本章的目标是教给你如何创建和设计一个队列,从而可以将呼叫者尽量快速而不费力的 转接给合适的目标。
在本章中,我们将交替使用术语 queue members 和 agents。除非我们讨论 的 agents 是通过 chan_agent (使用 AgentLogin())登录的,我们都是在 讨论通过 AddQueueMember() 或命令行(我们将在本章讨论这些命令) 增加的 queue members。你只需要知道,虽然在 Asterisk 中 agent 和 queue member 是有区别的,但是我们将简单的使用术语 agent 来描述 Queue() 调用的终端(endpoint)。
Asterisk On MIPS 论坛,
2
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD)
译者: Steele,2012-08-04
13.1 创建简单的ACD队列
作为开始,我们首先创建一个简单的 ACD 队列。它将接收呼叫者,并将他们分配到几 个队列中。
我们都有过由设计和管理拙劣的队列带来的糟糕体验:忍受着难听的 Hold Music,令人 厌恶的等待时间,每 20 秒重复一遍的毫无意义的信息告诉你“你的来电时如何重要”,尽管 你已经等待了 30 分钟并且重复听这个信息以至于能够背下来了。从客户服务的观点看,队 列的设计可能是你电话系统中最重要的一个方面。与使用自动话务员一样,首先要牢牢记住 的是,来电者对停留在队列里毫无兴趣。他们打来电话,是因为他们希望和你对话。你所有 的设计决定必须以这样一个重要事实为中心:人们是希望与其他人对话,而不是和你的电话 系统对话。注 2
; StandardQueue template
[general]部分定义了默认的行为和全局选项。我们仅仅在[general]部分指定了两个选项,这 是因为在这个地方内建的默认值已经可以很好的满足我们的需要。
Asterisk On MIPS 论坛,
Asterisk On MIPS 论坛,
1
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD)
译者: Steutomatic Call Distribution),或者称为呼叫排队(call queuing), 为 PBX 提供了为一群用户的来电排队处理的能力:它将多个来电呼叫转接到呼叫保留状态, 并为每个呼叫分配一个排名,这个排名用于决定来电被分配给可用坐席的顺序(典型的,采 用先进先出)。当某个坐席变为可用时,队列中排在最前面的呼叫会被转给这个坐席处理, 并且其它呼叫顺次向前移动一位。
13.2.1 通过 CLI 控制队列成员 ....................................................................................6 13.2.2 通过 dialplan 逻辑控制队列成员 ....................................................................7 13.2.3 自动登入和登出多个队列...............................................................................9 13.2.4 设备状态简介.................................................................................................12 13.3 queues.conf 配置文件...............................................................................................14 13.4 agents.conf 配置文件.................................................................................................20 13.5 高级队列.................................................................................................................21 13.5.1 优先队列(队列权重).................................................................................22 13.5.2 队列成员优先级.............................................................................................23 13.5.3 动态调整惩罚值(queuerules.conf)...........................................................24 13.5.4 通知控制.........................................................................................................26 13.5.5 溢出(Overflow)..........................................................................................29 13.5.6 使用 Local Channels........................................................................................31 13.6 队列统计:queue_log 文件...................................................................................34 13.7 总结.........................................................................................................................37
3
《Asterisk 权威指南》,第十三章 自动呼叫分配(ACD)
译者: Steele,2012-08-04
第一个选项是 autofill,它告诉队列将所有等待的呼叫立即分配给所有可用的坐席。在 早期的版本中,Asterisk 每次只转接一个呼叫,这就意味着当 Asterisk 向一个坐席转接时, 所有其他的呼叫都会进入呼叫保持状态(即使有可用坐席的情况)直到前一个呼叫转接成功