Asterisk-Java 教程(中文版) -- Live API(1).doc_第1页
Asterisk-Java 教程(中文版) -- Live API(1).doc_第2页
Asterisk-Java 教程(中文版) -- Live API(1).doc_第3页
Asterisk-Java 教程(中文版) -- Live API(1).doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论