



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Asterisk-Java 教程(中文版) - Live API(1)2009-12-02 15:52Live APILive API是建立在Manager API之上,并提供额外的抽象。不是直接使用actions、events来操作Asterisk。Live API使用动态域对象(live objects)来代替Asterisk中的概念,如:channel、extension。动态域对象遵循了Sun JavaBeans规范。可以参考一下Live API,特别是接口AsteriskServer,AsteriskChannel,AsteriskQueue。Asterisk-Java提供了接口的实现,像AsteriskServer接口的DefaultAsteriskServer。除此之外其他接口也提供了相应的默认实现。HelloLive要运行命令使用Live API,你需要使用默认的DefaultAsteriskServer实现创始一个AsteriskServer实例。或者,如果你已经有一个连接管理器(见“The Manager API”),通过它连接到DefaultAsteriskServer。一旦连接建立,此示例程序将打印各所有channel,queue,和meetme。在实际的项目中,你可能会在系统启动或查看Asterisk当前状态的时候这么做。下面,看看如何使用Live API事下载的代码片段演示了如何使用live API连接到Asterisk:import org.asteriskjava.live.AsteriskServer;import org.asteriskjava.live.AsteriskChannel;import org.asteriskjava.live.AsteriskQueue;import org.asteriskjava.live.MeetMeRoom;import org.asteriskjava.live.DefaultAsteriskServer;import org.asteriskjava.live.ManagerCommunicationException;public class HelloLiveprivate AsteriskServer asteriskServer;public HelloLive()asteriskServer = new DefaultAsteriskServer(localhost, manager, pa55w0rd);public void run() throws ManagerCommunicationExceptionfor (AsteriskChannel asteriskChannel : asteriskServer.getChannels()System.out.println(asteriskChannel);for (AsteriskQueue asteriskQueue : asteriskServer.getQueues()System.out.println(asteriskQueue);for (MeetMeRoom meetMeRoom : asteriskServer.getMeetMeRooms()System.out.println(meetMeRoom);public static void main(String args) throws ExceptionHelloLive helloLive = new HelloLive();helloLive.run();HelloLiveEvents要用live API处理事件,你需要实现一个AsteriskServerListener接口。一旦你实现这个接口,你就可以通过它的DefaultAsteriskServer监听新的channel。下面的代码片段演示了如何监听channel和meet me users:import org.asteriskjava.live.AsteriskChannel;import org.asteriskjava.live.AsteriskServer;import org.asteriskjava.live.AsteriskServerListener;import org.asteriskjava.live.DefaultAsteriskServer;import org.asteriskjava.live.ManagerCommunicationException;import org.asteriskjava.live.MeetMeUser;public class HelloLiveEvents implements AsteriskServerListenerprivate AsteriskServer asteriskServer;public HelloLiveEvents()asteriskServer = new DefaultAsteriskServer(localhost, manager, pa55w0rd);public void run() throws ManagerCommunicationExceptionasteriskServer.addAsteriskServerListener(this);public void onNewAsteriskChannel(AsteriskChannel channel)System.out.println(channel);public void onNewMeetMeUser(MeetMeUser user)System.out.println(user);public static void main(String args) throws ExceptionHelloLiveEvents helloLiveEvents = new HelloLiveEvents();helloLiveEvents.run();Asterisk-Java 教程(中文版) - Live API(2)2009-12-02 15:53HelloLiveEverything最后,参考AsteriskChannel API文档,学习为对象添加一个属性改变监听器。下面较长用了较长的一段代码演示了为channel添加事件监听,监听新老通道和用户属性的改变:import org.asteriskjava.live.AsteriskChannel;import org.asteriskjava.live.AsteriskQueue;import org.asteriskjava.live.AsteriskServer;import org.asteriskjava.live.AsteriskServerListener;import org.asteriskjava.live.DefaultAsteriskServer;import org.asteriskjava.live.ManagerCommunicationException;import org.asteriskjava.live.MeetMeRoom;import org.asteriskjava.live.MeetMeUser;import java.beans.PropertyChangeListener;import java.beans.PropertyChangeEvent;public class HelloLiveEverything implements AsteriskServerListener, PropertyChangeListenerprivate AsteriskServer asteriskServer;public HelloLiveEverything()asteriskServer = new DefaultAsteriskServer(localhost, manager, pa55w0rd);public void run() throws ManagerCommunicationException/为Asterisk服务器添加事件监听器asteriskServer.addAsteriskServerListener(this);/为每个Channel添加属性改变监听器for (AsteriskChannel asteriskChannel : asteriskServer.getChannels()System.out.println(asteriskChannel);asteriskChannel.addPropertyChangeListener(this);/为Queue添加属性改变监听器for (AsteriskQueue asteriskQueue : asteriskServer.getQueues()System.out.println(asteriskQueue);for (AsteriskChannel asteriskChannel : asteriskQueue.getEntries()asteriskChannel.addPropertyChangeListener(this);/为MeetMeRoom添加属性改变监听器for (MeetMeRoom meetMeRoom : asteriskServer.getMeetMeRooms()System.out.println(meetMeRoom);for (MeetMeUser user : meetMeRoom.getUsers()user.addPropertyChangeListener(this);/创建了新的Channelpublic void onNewAsteriskChannel(AsteriskChannel channel)System.out.println(channel);channel.addPropertyChangeListener(this);/创建了新的Channelpublic void onNewMeetMeUser(MeetMeUser user)System.out.println(user);user.addPropertyChangeListener(this);/属性发生了改变public vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 扬州钢结构隔层施工方案
- 济南代账咨询方案公示
- 民事法律咨询方案
- 市妇联清明节活动方案策划
- 双流区商业咨询方案公示
- 家校亲子活动策划方案模板
- 环保工程造价咨询方案
- 室外连廊保温施工方案
- 绩效管理咨询方案去哪
- 寓言故事阅读活动方案策划
- 水电站工程碾压混凝土大坝施工方案
- 2026版创新设计高考总复习语文部编版-测评练案答案
- 2024年大学生入党积极分子培训班考试试题及答案
- 科研项目绩效管理办法
- 安全生产 技术规范
- 2025年 山东中烟工业有限责任公司招聘考试笔试试卷附答案
- 鱼苗配送服务方案(3篇)
- 产品可追溯管理制度
- 2025高考志愿第五轮学科评估(部分)+第四轮学科评估结果Excel表格
- 房产公司红黄线管理制度
- 信息化建设与家庭医生签约服务效率提升
评论
0/150
提交评论