`

给asterisk添加自动报号功能

阅读更多

 

asterisk自动报号 

 

文章代码优化部分请点击 自动报号优化

 

 

asterisk自动报号是一个很平常的功能,像移动客服里,

在接通客服前一般要说:某某号,为您服务。

 

asterisk自身没有自动报号功能,我们需要修改源代码

 

文件位置asterisk-1.4.24\apps\app_queue.c  3165行,可搜索关键字bridge = ast_bridge_call

 

在bridge = ast_bridge_call(qe->chan,peer, &bridge_config);前添加必要代码即可

 

网络上说是加 play_file(qe->chan, peer->cid.cid_num);

但是经测试qe->chan->cid.cid_num与peer->cid.cid_num同为呼叫方的电话号码

并不是被叫号码,自动拨号拨的是呼叫方对应的语音文件,这样并不是我们所要的效果

 

所以要经过另外一种途径获得被叫号码

 

以下是我所做的修改

 

在当前作用域内,有个变量member,其member->interface的值类似Local/101@from-internal/n,

 

其中101为队列中的被叫方,所以只要获得101即可

 

我是这么做的,在try_calling函数开始声明

//在目录 var/lib/asterisk/sounds内创建sunflower目录用于存放坐席欢迎词,可自行设定

char sunExten[80]="sunflower/";//供10个字符

int suni = 0;//for循环初始值

int sunj=10;//分机号在sunExten起始位置,此处应与sunExten初始字符个数相同

int sunflag = 0;//     字符'/'开始标记

 

在行3165,

bridge = ast_bridge_call(qe->chan,peer, &bridge_config);

回车

添加如下代码

 

 

for(sun=0;suni<80;suni++){

if(member->interface[suni]=='/'){

sunflag=1;

continue;

}

if(member->interface[suni]=='@'){

sunflag=0;

break;

}

if(sunflag){

sunExten[sunj++]=member->interface[suni];

}

}

 

play_file(qe->chan, sunExten);

 

编译安装即可

 

然后在var/lib/asterisk/sounds/sunflower目录内放置各分机的欢迎语就可以了

 

另外一种更好的办法

 

录制0---9个数字的语音文件,和一个类似"号,为您服务"的语音文件,代码修改为

 

 

 

char sunExten[80]="";

int suni = 0;

int sunj=0;

int sunflag = 0;  

 

在行3165,

bridge = ast_bridge_call(qe->chan,peer, &bridge_config);

前回车

添加如下代码

 

 

for(sun=0;suni<80;suni++){

if(member->interface[suni]=='/'){

sunflag=1;

continue;

}

if(member->interface[suni]=='@'){

sunflag=0;

break;

}

if(sunflag){

sunExten[sunj++]=member->interface[suni];

}

}

 

ast_say_digit_str(qe->chan, sunExten, AST_DIGIT_ANY, qe->chan->language);

 

play_file(qe->chan, "sunService");//sunService为"号,为您服务"语音文件名称

 

----------------------------------------------------------------

 转载请注明出处 zhangxuehuaemail # gmail dot com

 本文章来自:http://sunflowers.iteye.com/blog/461329 

 ----------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论
1 楼 sunflowers 2010-01-25  
最近发现有人转载笔者文章,未标明出处,敬请后来者尊重他人著作权

相关推荐

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

    Asterisk 是一个开源的 PBX(Private Branch Exchange)系统,可以实现电话交换和语音网关的功能。在传统的 Asterisk 配置中,配置文件都是存储在文件系统中的,但是随着系统的复杂度和规模的增加,配置文件的管理和...

    Asterisk自动总机IVR 设计

    本文将深入探讨如何使用Asterisk构建自动总机IVR(Interactive Voice Response)系统,以及相关的配置步骤。 自动总机IVR设计的目标是提供一个交互式语音应答服务,使得来电者可以通过语音提示进行导航,找到所需的...

    Asterisk-自动话务员

    ### Asterisk自动话务员详解 #### 1. 自动话务员概念解析 自动话务员(Automated Attendant, AA)是一种自动化系统,它能够接听电话,并根据来电者的按键选择将其转接到不同的目的地,比如公司内部的不同部门或者...

    Asterisk 简介 Asterisk 架构 Asterisk程序框图

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

    Asterisk.NET 1.6.3 控制Asterisk

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

    Asterisk权威指南中文

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

    asterisk info 录音实现方案

    为了让特定的SIP用户能够使用录音功能,需要在这里添加特定的参数,比如__DYNAMIC_FEATURES,用来指定自定义功能。 3. extensions.conf文件配置:拨号计划(dial plan)文件,用于定义电话呼叫的路由和控制逻辑。它...

    asterisk16版本安装包

    在本场景中,我们讨论的是Asterisk的16版本安装包,这将引导我们深入理解Asterisk的核心功能、安装流程以及如何进行编译和配置。 1. **Asterisk核心功能**: - **PBX(Private Branch Exchange)**:Asterisk作为...

    通过asterisk-java操作asterisk

    这个库使得开发者可以利用Java语言来控制和编程Asterisk PBX(Private Branch eXchange),执行诸如创建、管理通话、处理AMI(Asterisk Manager Interface)事件等功能。在本篇文章中,我们将深入探讨如何使用...

    Asterisk AMI 接口代码

    Asterisk AMI(Asterisk Manager Interface)接口是Asterisk PBX...总之,Asterisk AMI接口提供了丰富的功能,结合Java库`asterisk-java`,开发者可以构建出强大的电话系统解决方案,实现自动化和定制化的业务需求。

    Asterisk 中文文档说明

    这个“Asterisk中文文档说明”涵盖了从基础概念到高级功能的全方位信息,旨在帮助开发者和系统管理员更好地理解和利用Asterisk的功能。 首先,让我们了解一下Asterisk的核心概念。Asterisk是一个PBX(Private ...

    asterisk 学习日志

    Asterisk是一个开源的IP电话系统,用于搭建VoIP服务器,提供电话呼叫、语音邮件、会议等通信功能。以下是对Asterisk学习日志中提到的一些关键知识点的详细解释: 1. **Asterisk调试与日志记录**: 在学习Asterisk...

    Centos5.8安装asterisk并配置mysql用户表

    Asterisk将自动读取Mysql数据库中的用户信息,以实现动态用户添加和管理。 本篇文章指导您在Centos5.8系统上安装Asterisk,并配置Mysql用户表以实现动态用户添加和管理。通过这种方式,可以实现语音通信系统的自动...

    Asterisk 客户端.rar

    6. **故障排查与维护**:当遇到问题或需要对系统进行升级时,Asterisk的监控和日志功能至关重要。客户端和AMI文档会包含如何诊断问题、调试代码以及实施定期维护的信息,以确保系统的稳定运行。 综上所述,...

    asterisk下自动寻呼系统设计文档

    ### asterisk下自动寻呼系统设计文档 #### 一、功能说明 自动寻呼系统是基于Asterisk IP电话平台构建的一个子系统,主要用于管理IP话机之间的呼叫逻辑。该系统能够实现以下功能: 1. **通话逻辑判别**: - 当...

    Asterisk Build Your Own PBX

    3. **丰富的功能**:Asterisk支持众多高级功能,例如自动话务员、呼叫转移、语音邮件等,这些通常只在商业PBX系统中提供。 4. **易于扩展**:随着业务的发展,Asterisk可以轻松地添加新的特性或增加更多的电话线路。...

    20120329_asterisk自动录音(AMI接口实现)1

    Asterisk自动录音(AMI接口实现)知识点总结 一、Asterisk自动录音原理 Asterisk自动录音是通过监控Asterisk的事件,检测Dial事件,然后进行录音。这种方法可以实现对所有呼入电话的录音,或者对指定号码的录音。 ...

    asterisk AGI应用说明

    可以在AGI脚本中发送各种命令给Asterisk,如`Dial`、`Goto`等。此外,还可以直接通过标准输出发送命令来获取或设置通道变量的值。 ##### 3.2 接收来自Asterisk的信息 当AGI脚本执行时,Asterisk会通过标准输入向...

    asterisk权威指南中文翻译

    **自动呼叫分配(ACD)**是一种电话系统中的功能,主要用于处理呼入电话,并将其分配给合适的坐席进行处理。该系统通常包括排队机制,能够根据一定的规则对电话进行排序,并在坐席变得可用时按顺序分配电话。 **主要...

    asterisk 视频通讯实现方法

    在本文中,我们将深入探讨如何利用Asterisk实现视频通讯功能。实现Asterisk视频通讯的关键在于配置sip.conf文件以及启用相应的视频编码支持。 首先,让我们打开/etc/asterisk/sip.conf文件,这是Asterisk配置SIP...

Global site tag (gtag.js) - Google Analytics