- 浏览: 411733 次
文章分类
- 全部博客 (327)
- Android (114)
- Java (13)
- Java基础 (14)
- Glib (2)
- linux (15)
- extjs (5)
- eclipse (2)
- Asterisk (56)
- MYSQL (6)
- 数据库 (9)
- PHP (7)
- C# (18)
- 杂谈~~ (1)
- web开发前端 (3)
- 网络编程 (2)
- Opensips (2)
- voip (3)
- debian (7)
- openfire (15)
- wordpress (1)
- 版本控制 (1)
- Android 线程服务广播 (1)
- SRTP (2)
- 单片机及ARM等 (3)
- 基础知识 (5)
- asp.net (2)
- 单片机 (1)
- 设计模式及架构 (1)
- 安全 (1)
- Cubieboard 草莓树莓各类派 Android开发板 (1)
- J2EE (2)
- BootStrap (3)
- BootStrap web前端开发 (1)
- web前端开发 (4)
- object-c (1)
- openwrt (8)
- 智能家居 (4)
- Node.js (4)
最新评论
-
xiaoxiecomeon:
你这个程序一存在线程的时间片相互抢占的问题,运行时间长了很可能 ...
Runnable 和 Thread -
dotjar:
我觉得话应该这么说:引用TestThread tt = new ...
Runnable 和 Thread -
dagf113225:
调用TelephonyManager的隐藏API是先参考Fra ...
Android提高第十四篇之探秘TelephonyManager
asterisk在正常通话过程中执行拨号计划中动作是通过feature.conf中的[applicationmap ]下定义的,举例如下:
nway-start => *0,callee,Macro,nway-start
nway-zhustart => *0,caller,Macro,nway-zhustart
nway-inv => *7,caller,Macro,nway-ok
nway-noinv => *9,self,Macro,nway-notok
zhugoto-meeting => *5,caller,Macro,zhugoto-meeting
goto-meeting => *5,callee,Macro,goto-meeting
caller和callee 的区别参考:http://blog.csdn.net/radkitty/archive/2009/12/29/5102097.aspx
有些人定义了applicationmap 按键后不能引发制定动作 这是由于未设置DYNAMIC_FEATURES引起的
可以使用DYNAMIC_FEATURES来决定哪些动作可以被执行。
可以在globals_custom.conf中定义DYNAMIC_FEATURES全局变量来使用:
DYNAMIC_FEATURES=nway-start#goto-meeting
也可在拨号计划中通过
exten => s,n,Set(DYNAMIC_FEATURES=nway-zhustart#zhugoto-meeting)
来设置
电话转会议的实现方法请参考我前面的笔记:http://blog.csdn.net/seven407/archive/2010/05/14/5591078.aspx
并附下我最新的实现代码:
extensions.conf 末尾添加:
[default]
;exten => _XXXX,1,Set(DYNAMIC_FEATURES=nway-start#nway-zhustart)
exten => _XXXX,n,Dial(SIP/${EXTEN})
[dynamic-nway]
exten => _XXXXXXXX,1,Answer
exten => _XXXXXXXX,n,Set(CONFNO=${EXTEN})
exten => _XXXXXXXX,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _XXXXXXXX,n,Set(DYNAMIC_FEATURES=)
exten => _XXXXXXXX,n,MeetMe(${CONFNO},1pdMXr)
exten => _XXXXXXXX,n,Hangup()
[dynamic-nway-invite]
exten => 0,1,Read(DEST,dial,,i)
exten => 0,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
;exten => 0,n,Dial(SIP/${DEST},,g)
exten => 0,n,Dial(Local/${DEST}@from-internal,,g)
exten => 0,n,Set(DYNAMIC_FEATURES=)
exten => 0,n,Gosub(dynamic-nway,${CONFNO},1)
exten => i,1,Goto(dynamic-nway,${CONFNO},1)
[dynamic-nway-dest]
exten => _XXXX,1,Dial(SIP/${EXTEN},,g)
[my-meet-dial]
exten => _XXXXXXXX,1,Read(DEST,dial,,i)
exten => _XXXXXXXX,n,Set(CONFNO=${EXTEN})
exten => _XXXXXXXX,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
;exten => _XXXXXXXX,n,Dial(SIP/${DEST},,g)
exten => _XXXXXXXX,n,Dial(Local/${DEST}@from-internal,,g)
exten => _XXXXXXXX,n,Set(DYNAMIC_FEATURES=)
exten => _XXXXXXXX,n,Answer
exten => _XXXXXXXX,n,Set(CONFNO=${EXTEN})
exten => _XXXXXXXX,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _XXXXXXXX,n,Set(DYNAMIC_FEATURES=)
exten => _XXXXXXXX,n,MeetMe(${CONFNO},1pdMXr)
exten => _XXXXXXXX,n,Hangup()
[macro-nway-start]
;exten => s,n, SetGlobalVar(MEETMENUM=$[${MEETMENUM} + 1])
;exten => s,1,Set(CONFNO=$[10000 + ${AMPUSER}]);XX
;exten => s,1,Set(CONFNO=$[10000 + ${CALLERID(num)}]);XX
;exten => s,1,Set(CONFNO=10000)
;exten => s,1,Set(CONFNO=$[10000 + ${EXTEN}])
exten => s,1,Set(CONFNO=${STRFTIME(${EPOCH},,%d%H%M%S)})
exten => s,n,ChannelRedirect(${BRIDGEPEER},my-meet-dial,${CONFNO},1)
exten => s,n,Hangup()
exten => s,n,Gosub(dynamic-nway,${CONFNO},1)
[macro-nway-zhustart]
exten => s,1,Set(CONFNO=${STRFTIME(${EPOCH},,%d%H%M%S)})
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,n,Hangup()
exten => s,n,Read(DEST,dial,,i)
exten => s,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
;exten => s,n,Dial(SIP/${DEST},,g)
exten => s,n,Dial(Local/${DEST}@from-internal,,g)
exten => s,n,Set(DYNAMIC_FEATURES=)
exten => s,n,Gosub(dynamic-nway,${CONFNO},1)
[macro-nway-ok]
exten => s,1,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
[macro-nway-notok]
exten => s,1,SoftHangup(${BRIDGEPEER})
[macro-zhugoto-meeting]
exten => s,1,Set(CONFNO=${STRFTIME(${EPOCH},,%d%H%M%S)})
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,n,Hangup()
exten => s,n,Gosub(dynamic-nway,${CONFNO},1)
[macro-goto-meeting]
exten => s,1,Set(CONFNO=${STRFTIME(${EPOCH},,%d%H%M%S)})
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,n,Hangup()
exten => s,n,Gosub(dynamic-nway,${CONFNO},1)
并修改
[macro-dial]
exten => s,1,GotoIf($["${MOHCLASS}" = ""]?dial)
为
[macro-dial]
exten => s,1,Set(DYNAMIC_FEATURES=nway-zhustart#zhugoto-meeting)
exten => s,n,GotoIf($["${MOHCLASS}" = ""]?dial)
globals_custom.conf中添加:
DYNAMIC_FEATURES=nway-start#goto-meeting
features_applicationmap_custom.conf添加:
nway-start => *0,callee,Macro,nway-start
nway-zhustart => *0,caller,Macro,nway-zhustart
nway-inv => *7,caller,Macro,nway-ok
nway-noinv => *9,self,Macro,nway-notok
zhugoto-meeting => *5,caller,Macro,zhugoto-meeting
goto-meeting => *5,callee,Macro,goto-meeting
发表评论
-
Configuring an Asterisk server
2013-06-28 09:05 893Configuring an Asterisk server ... -
asterisk ami
2013-06-28 08:56 1402Asterisk Manager Interface主要提供 ... -
Originate Using Asterisk Local Channels
2013-01-24 17:30 1320Whenever you want to place a c ... -
Asterisk 1.8 chan_sip模块代码分析
2013-01-18 16:33 1910和以前版本相比,Asterisk在架构上有了不小的变动,本文 ... -
Asterisk Kernel analysis 2 channel
2013-01-17 17:44 838从内核的角度去分析问题时,弄清楚呼叫流程是非常关键的,只有 ... -
Asterisk Kernel analysis 1
2013-01-17 17:44 845一、内核初始化。 从 main入口。Asterisk ... -
astersik bridge 支持
2013-01-17 17:27 684为支持通话过程中双方按键的接受及处理,asterisk 通过 ... -
Asterisk 之${BRIDGEPEER} 函数说明
2013-01-17 16:38 694${BRIDGEPEER} :个人理解是 获取当前通道类型 ... -
Asterisk拨号函数Dial()详解
2012-12-27 13:33 1673Asterisk的拨号函数/命令是Dial,下面就介绍一 ... -
asterisk中常用函数说明
2012-12-15 11:56 955int ast_strlen_zero(co ... -
什么是1号信令、7号信令和PRI信令?
2012-04-11 14:26 1506按照信令的信道来分类,信令可以分为:随路信令和公共信道信 ... -
FreeSWITCH 与 Asterisk 比较
2012-03-29 15:45 3549VoIP通信,与传统的电话技术相比,不仅仅在于绝对的资费 ... -
Asterisk命令MeetMe详解
2012-03-29 14:44 994MeetMe 概要 MeetMe ... -
Asterisk local channels
2012-03-12 15:09 853Asterisk local channels ... -
35个最棒的Asterisk免费应用
2012-03-12 14:51 2211Hi, I was looking round o ... -
Asterisk Originate 内部执行流程
2012-03-11 20:34 9971. originate的执行 向客户端发起呼叫,将客 ... -
模拟板卡疑难杂症(转)
2012-03-11 20:34 2245转自:http://sun4love.javaeye.c ... -
asterisk feature applicationmap 的caller和callee 的区别
2012-03-11 20:34 1010经过测试,在applicationmap 中定 ... -
asterisk中关于实现会议室meetme的笔记
2012-03-09 11:07 1904一、资料: 1.http: ... -
Asterisk 之${BRIDGEPEER} 函数说明
2012-03-09 11:06 798${BRIDGEPEER} :个人理解是 获取当前通道类型通道 ...
相关推荐
在本文中,我们将深入探讨如何利用Asterisk实现视频通讯功能。实现Asterisk视频通讯的关键在于配置sip.conf文件以及启用相应的视频编码支持。 首先,让我们打开/etc/asterisk/sip.conf文件,这是Asterisk配置SIP...
标签“asterisk record”指的是与Asterisk录音相关的配置和功能,它表明文章将围绕如何在Asterisk中设置和实现录音功能。 在提供的部分内容中,提到了几个关键的配置文件和步骤,这些是实现Asterisk录音功能的核心...
这个库使得开发者可以利用Java语言来控制和编程Asterisk PBX(Private Branch eXchange),执行诸如创建、管理通话、处理AMI(Asterisk Manager Interface)事件等功能。在本篇文章中,我们将深入探讨如何使用...
AppKonference是Asterisk中的电话会议模块,允许多个参与者进行通话。安装和配置该模块需要理解`app_meetme.c`源码,解决可能出现的问题,如“Unable to open DAHDI pseudo device”。 9. **Asterisk基础**: ...
Asterisk是一款开源的IP电话系统,它允许用户创建自己的通信平台,支持VoIP(Voice over IP)服务,包括电话会议、语音邮件和IVR(Interactive Voice Response)等。中文语音包是为Asterisk系统设计的一个关键组件,...
总结来说,Asterisk.NET 1.6.3 提供了.NET平台下控制Asterisk PBX的强大工具,通过AMI和FastAGI接口实现了丰富的电话系统功能,如通话控制、IVR和事件监听。开发者可以利用这个库轻松地构建自己的VoIP解决方案,提高...
在通话处理方面,手册将涵盖如何编写Dialplan脚本,实现复杂的通话流程,如自动话务员、电话会议、录音和转接等功能。此外,Asterisk的语音邮件系统和实时数据库的使用也会有详尽的说明。 除此之外,手册还将讨论...
非常详细描述如何使用openwrt虚拟机搭建基于asterisk的Voip电话,实现了局域网内两个账户之间的互通,附有配置文件以及需要的软件
Asterisk是一个PBX(Private Branch eXchange),它能够管理电话线路,路由呼叫,并提供各种电话服务,如语音邮件、会议呼叫和自动话务员。通过使用SIP协议,Asterisk可以与多种软硬件电话终端进行交互,实现VoIP...
6. **会议和多路通话**:了解如何创建电话会议,以及如何管理多路通话,包括混音和静音控制。 7. **语音邮件和消息传递**:学习设置和管理语音邮件系统,包括用户接口、邮件传递和通知。 8. **实时数据库和扩展**...
Asterisk是一款开源的电话交换机软件,它允许用户创建高度自定义的通信系统,包括VoIP(Voice over IP)电话、会议桥、自动呼叫分配(ACD)以及许多其他电信功能。Asterisk的核心设计理念是灵活性和可扩展性,这使得...
这涉及到VoIP(Voice over Internet Protocol)技术,如SIP(Session Initiation Protocol)协议,以及如何在Asterisk中配置电话线路和设备,如模拟电话线、数字E1/T1接口或VoIP网络。 其次,书中会讲解Asterisk的...
在压缩包里,可能包含关于如何配置和使用这些客户端的详细指南,包括设置连接、拨号计划、通话记录等功能的实现。 2. **Asterisk Manager API (AMI)**:AMI是Asterisk的核心管理接口,它提供了一种通过网络控制...
Asterisk是一款开源的IP电话系统,用于构建VoIP(Voice over Internet Protocol)通信平台。在本场景中,我们讨论的...不过,由于Asterisk具有高度灵活性和复杂性,因此在使用过程中需要有一定的Linux和通信协议基础。
### Asterisk Manager Interface (AMI) 中文文档概览 #### 一、引言 Asterisk Manager Interface (AMI) 是一款强大...了解并掌握AMI的工作原理和使用方法对于任何从事Asterisk开发和管理工作的人来说都是非常重要的。
Asterisk 是一个开源的 PBX(Private Branch Exchange)系统,可以实现电话交换和语音网关的功能。在传统的 Asterisk 配置中,配置文件都是存储在文件系统中的,但是随着系统的复杂度和规模的增加,配置文件的管理和...
此外,由于"Asterisk"这个压缩包文件名暗示,你将可能接触到实际的安装、配置和维护过程。这可能包括安装Asterisk软件、配置网络设置、安装必要的依赖以及调试问题。 总的来说,Asterisk是一个功能丰富的开源平台,...
Asterisk权威指南中文(第3版) Asterisk权威指南(第3版)第15章自动话务员 Asterisk权威指南(第3版)第02章Asterisk体系结构 Asterisk权威指南(第3版)第05章用户设备配置 Asterisk权威指南(第3版)第06章Dialplan基础 ...
这个接口允许开发者通过编程方式与Asterisk进行交互,执行诸如控制呼叫、获取状态、监听通话等多种操作。在给定的压缩包文件中,我们看到包含了一个名为"asterisk-java"的子文件,这可能是一个Java库,专门用于与...
Asterisk是世界上最流行的开源PBX(Private Branch eXchange)系统,它支持VoIP(Voice over Internet Protocol)电话服务,能够处理语音通话、视频通话、即时消息以及会议等多种通信方式。 **Asterisk核心功能** ...