`

asterisk feature applicationmap 的caller和callee 的区别

 
阅读更多

 

     经过测试,在applicationmap 中定义应用程序的类型为caller或callee,其实为传送那个通道的变量到application:

以下是相关的测试过程,通过对比,大家应该清楚是定义为caller或者是callee:(asterisk 1.2 版本)

 

dialplan 的定义如下:

【test】

exten => _4780,1,Noop
exten => _4780,n,set(mid=${UNIQUEID})
exten => _4780,n,set(LANGID=1)
exten => _4780,n,set(DYNAMIC_FEATURES=test)
exten => _4780,n,dial(SIP/3003,60,Tt)
exten => _4780,n,hangup

 

[macro-IVRS]
exten => s,1,Noop()

exten => s,n,Noop(${UNIQUEID})
exten => s,n,Noop(${BRIDGEPEER})
exten => s,n,NOOP(set(ouid=${mid}))

 

feature.conf

test => *0,callee,Macro,IVRS

 

以下分别进行测试:

 

场景一:3002 call 3003 and at 3003 press *0  --callee

 

  -- Remote UNIX connection disconnected
    -- Executing NoOp("SIP/3002-0936cab8", "") in new stack
    -- Executing Set("SIP/3002-0936cab8", "mid=1262097623.24") in new stack
    -- Executing Set("SIP/3002-0936cab8", "DYNAMIC_FEATURES=test") in new stack
    -- Executing Dial("SIP/3002-0936cab8", "SIP/3003|60|Tt") in new stack


    -- Executing NoOp("SIP/3002-0936cab8", "1262097623.24") in new stack ${UNIQUEID}
    -- Executing NoOp("SIP/3002-0936cab8", "SIP/3003-094b2b50") in new stack ${BRIDGEPEERS}
    -- Executing NoOp("SIP/3002-0936cab8", "set(ouid=1262097623.24)") in new stack

    
    
Event: Link
Privilege: call,all
Channel1: SIP/3002-0936cab8
Channel2: SIP/3003-094b2b50
Uniqueid1: 1262097623.24
Uniqueid2: 1262097623.25
CallerID1: 3002
CallerID2: 4780

 

 

场景2:3002 call 3003 and at 3003 press *0--caller


   -- Executing NoOp("SIP/3002-0936cab8", "") in new stack
    -- Executing Set("SIP/3002-0936cab8", "mid=1262097952.26") in new stack

    -- Executing Set("SIP/3002-0936cab8", "DYNAMIC_FEATURES=test") in new stack
    -- Executing Dial("SIP/3002-0936cab8", "SIP/3003|60|Tt") in new stack
    -- Called 3003

    -- Executing NoOp("SIP/3003-094b2b50", "1262097952.27") in new stack
    -- Executing NoOp("SIP/3003-094b2b50", "SIP/3002-0936cab8") in new stack
    -- Executing NoOp("SIP/3003-094b2b50", "set(ouid=)") in new stack--变量没有传过来

Event: Link
Privilege: call,all
Channel1: SIP/3002-0936cab8
Channel2: SIP/3003-094b2b50
Uniqueid1: 1262097952.26
Uniqueid2: 1262097952.27
CallerID1: 3002
CallerID2: 4780

 

场景3:3002 call 3003 and at 3003 press *0--caller
   -- Executing NoOp("SIP/3002-b7800470", "") in new stack
    -- Executing Set("SIP/3002-b7800470", "mid=1262098282.28") in new stack

    -- Executing Set("SIP/3002-b7800470", "DYNAMIC_FEATURES=test") in new stack
    -- Executing Dial("SIP/3002-b7800470", "SIP/3003|60|Tt") in new stack
    -- Called 3003 

    -- Executing NoOp("SIP/3003-0936cab8", "1262098282.29") in new stack
    -- Executing NoOp("SIP/3003-0936cab8", "SIP/3002-b7800470") in new stack
    -- Executing NoOp("SIP/3003-0936cab8", "set(ouid=)") in new stack--在此变量没有传送过来

    
 Event: Link
Privilege: call,all
Channel1: SIP/3002-b7800470
Channel2: SIP/3003-0936cab8
Uniqueid1: 1262098282.28
Uniqueid2: 1262098282.29
CallerID1: 3002
CallerID2: 4780

 

场景4:3002 call 3003 and at 3002 press *0--caller

    -- Executing NoOp("SIP/3002-b7800470", "") in new stack
    -- Executing Set("SIP/3002-b7800470", "mid=1262098482.30") in new stack

    -- Executing Set("SIP/3002-b7800470", "DYNAMIC_FEATURES=test") in new stack
    -- Executing Dial("SIP/3002-b7800470", "SIP/3003|60|Tt") in new stack
    -- Called 3003  
    
     --  Feature Found: test exten: test

    -- Executing NoOp("SIP/3002-b7800470", "1262098482.30") in new stack
    -- Executing NoOp("SIP/3002-b7800470", "SIP/3003-0936cab8") in new stack ${BRIDGEPEER}
    -- Executing NoOp("SIP/3002-b7800470", "set(ouid=1262098482.30)") in new stack
 
Event: Link
Privilege: call,all
Channel1: SIP/3002-b7800470
Channel2: SIP/3003-0936cab8
Uniqueid1: 1262098482.30
Uniqueid2: 1262098482.31
CallerID1: 3002
CallerID2: 4780

 

 

概况:

      feature 定义为caller 时,即把输入feature 键方的通道变量传递到feature application 中,即把自己通道的变量传递到application 中,并且按feature 方将会被转入到feature 定义的应用中。

定义为callee是则把feature 键的对方通道的变量传递到feature 的application中,即传送对方通道的变量到application,并把对方引入到feature 定义的应用中。

 

例子:

假如定义了feature键** ,按了** 后将会听到beep 提示声音,分机8001 呼叫8002,并且在8002 分机上输入了**,那么

1.feature定义为caller 时,在8002上会听到beep 声音

2.feature定义为callee时,在8001上会听到beep声音

 

如果是在8001分机上按** 时,则效果为:

 

 

1.feature定义为caller 时,在8001上会听到beep 声音

2.feature定义为callee时,在8002上会听到beep声音

 

分享到:
评论

相关推荐

    asterisk info 录音实现方案

    描述中说明了方案涉及到的关键信息,包括主叫(caller)和被叫(callee)信息的传输。在Asterisk系统中,可以通过DTMF信号或者拨号计划(dial plan)来控制录音的开始和结束。此外,还需通过Asterisk的http资源发送...

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

    在传统的 Asterisk 配置中,配置文件都是存储在文件系统中的,但是随着系统的复杂度和规模的增加,配置文件的管理和维护变得非常困难。因此,将配置从配置文件迁移到数据库中成为一种必要的选择。 在本方案中,我们...

    asterisk的G729和G723编码配置

    Asterisk的G729和G723编码配置 Asterisk是一款开源的PBX(Private Branch Exchange)软件,提供了丰富的语音编码格式,包括G729和G723。但是,Asterisk的默认安装并不包含G729和G723编码模块,因此需要手动下载和...

    Asterisk 简介 Asterisk 架构 Asterisk程序框图

    Asterisk的核心设计理念是灵活性和可扩展性,这使得它在企业通信、小型办公室、家庭办公环境以及开发实验中都有广泛的应用。 ### Asterisk简介 Asterisk由Digium公司开发,最初由Mark Spencer在1999年创建,旨在为...

    通过asterisk-java操作asterisk

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

    Asterisk.NET 1.6.3 控制Asterisk

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

    Asterisk服务器的搭建与配置.docx

    Asterisk服务器的搭建与配置 Asterisk服务器是一种开源的基于voip的通信服务器软件,可以实现语音通话、视频会议、短信服务等功能。下面是Asterisk服务器的搭建与配置过程。 一、安装Asterisk服务器 首先,需要在...

    Asterisk AMI 接口代码

    Asterisk AMI(Asterisk Manager Interface)接口是Asterisk PBX系统提供的一种用于远程管理和监控的强大工具。这个接口允许开发者通过编程方式与Asterisk进行交互,执行诸如控制呼叫、获取状态、监听通话等多种操作...

    Asterisk权威指南中文

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

    asterisk16版本安装包

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

    Asterisk服务器搭建和配置文档.docx

    本文档旨在详细介绍如何在Ubuntu操作系统上搭建和配置Asterisk服务器,包括安装Asterisk软件、配置用户信息以及进行简单的电话呼叫测试。 #### 二、环境准备 1. **操作系统**:Ubuntu Server版(推荐使用最新稳定...

    Asterisk系统的安装与配置

    Asterisk系统的安装与配置 Asterisk是开源的通讯服务器软件,...Asterisk系统的安装与配置需要按照以上步骤进行,包括安装DAHDI、安装Asterisk、配置SIP通道、配置基本SIP账户、配置电话会议室和配置广播寻呼功能。

    Asterisk 1.6 - Build feature-rich telephony systems with Asterisk Sep 2009

    本书《Asterisk 1.6 – 构建功能丰富的电话系统》主要介绍如何利用Asterisk 1.6版本来搭建和管理企业级电话系统。 #### 二、核心概念与技术要点 **1. PBX与IVR** - **PBX (Private Branch Exchange)**:私人分组...

    asterisk 视频通讯实现方法

    首先,让我们打开/etc/asterisk/sip.conf文件,这是Asterisk配置SIP用户和设置的主要文件。在这个文件中,我们需要添加或修改一些关键参数来启用视频支持。在你的描述中提到,你需要在该文件中加入以下行: ```ini ...

    asterisk 教程

    - `/etc/asterisk/feature.conf`:电话按键功能配置。 Zapata配置文件中,`[trunkgroups]`和`[channels]`部分定义了线路组和通道的属性,如语言、上下文、信号类型等。 通过这些步骤,你可以成功安装和配置...

    Asterisk一些常用的命令

    Asterisk是一款开源的电话交换机软件,提供了丰富的命令来管理和控制电话系统。下面是Asterisk的一些常用的命令: 1. amportal 命令 amportal 命令是FreePBX搞的,负责管控Asterisk。amportal start 启动Asterisk...

    Asterisk 中文文档说明

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

    asterisk拨号方案的配置

    Asterisk拨号方案的配置是Voice over Internet Protocol(VoIP)技术中的一个关键组件,它控制着呼入和呼出电话的处理和路由。配置文件“extensions.conf”是Asterisk拨号方案的核心,它定义了呼入和呼出的处理流程...

    Asterisk 客户端.rar

    综上所述,"Asterisk客户端.rar"这个压缩包包含了丰富的Asterisk客户端和Asterisk Manager API的学习资料,对于想要深入理解Asterisk生态系统、开发相关应用或优化现有系统的开发者来说,是非常宝贵的资源。...

    Asterisk 中文语音包

    Asterisk是一款开源的IP电话系统,它允许用户创建自己的通信平台,支持VoIP(Voice over IP)服务,包括电话会议、语音邮件和IVR(Interactive Voice Response)等。中文语音包是为Asterisk系统设计的一个关键组件,...

Global site tag (gtag.js) - Google Analytics