全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子板供货合同范本
- 护士长工作质量评价标准
- 焦虑症状识别及护理指导
- 肺炎临床表现及护理知识介绍
- 胆囊炎症状分析与护理知识介绍
- 儿童液体疗法讲课课件
- 急性喉炎的健康宣教
- 2025-2026学年广东省广州市高三上学期八月阶段训练地理试题(B卷)
- 创新创业营养餐厅
- 泰康幸福有约产品介绍
- 2025三亚市劳动合同范本
- 大型储罐拆除施工方案(3篇)
- Unit 4 Helping in the community 阅读理解专项训练(含答案解析)
- 时尚传播学赵春华课件
- 中药雾化法课件
- 2025年秋期学期国开电大本科《人文英语3》一平台机考总题库珍藏版
- 护理不良事件的处理及上报流程
- 医院信息安全管理制度培训
- 口腔大出血急救
- 人工智能赋能心理健康教育
- 2025年移动应用开发技术考试卷及答案
评论
0/150
提交评论