当前位置:网站首页 > Java教程 > 正文

java sip 协议 教程



    这篇文章展示了基于Java SE如何创建客户端侧的SIP应用。JAIN SIP API是一个强大的“SIP协议栈”。本文将通过一个简单的即时通讯程序以及一个GB28181协议的简单应用程序,详细的分析该技术。

    Java api for Integrated Networks (JAIN)是一个JCP工作组所管理的电信标准,Session Initiation Protocol(SIP)是一种标准的通信协议,将Java和SIP结合在一起,就得到了JAIN SIP API,这是一个标准的、功能强大的电信API。这个API通常用于客户端应用程序开发。其他基于容器的技术,如SIP Servlet API(参见BEA WebLogic SIP Server的例子),更适合于服务器端开发,但是在GB28181协议应用程序中我们也采用该API用作SIP服务器的开发实现IPC与联网平台的信令交互。

        <dependency>
            <groupId>javax.sip</groupId>
            <artifactId>jain-sip-ri</artifactId>
           <version>1.3.0-91</version>
        </dependency>

    下面概述了JAIN SIP API实现中的主要类和接口。

    Message接口是SIP消息的基本接口,下面是可用方法的概述。

    SipListener接口方法如下:

    在本例中,用于处理传入消息的最重要的方法显然是processRequest()和processResponse()。接下来是存储稍后需要的对象的两个字段:username和messageProcessor,这些与SIP API没有直接关系,但是在本例中需要它们。第一个是前面讨论过的MessageProcessor对象,用于回调方法将消息发回给GUI,username用于随时保留用户名,这两个字段有getter和setter方法。

    构造函数就是这样结束的。您已经使用JAIN SIP API创建了一个SipStack实例、一堆工厂、两个listeningpoint和一个SipProvider。这些对象将在接下来的方法中用于发送和接收消息。

    现在让我们编写一个使用JAIN SIP API发送SIP消息的方法,在此之前你必须非常了解SIP协议。SIP API是相当低级的抽象,在大多数情况下,不使用默认值或隐藏头、请求uri或SIP消息的内容。这种设计的优点是您可以完全控制SIP消息所包含的内容。

    下面的代码片段创建了所有这些元素:

    最后,使用SipProvider实例发送消息:

    稍后,当您希望在同一个会话中发送新消息时,您可以使用前面的Dialog对象来创建一个新请求。然后,您可以对请求进行消息处理,最后,使用Transaction发送消息。

    从本质上讲,在现有会话中发送消息时,您跳过了“创建主要元素”步骤。当您使用INVITE创建对话框时,不要忘记在对话框结束时发送一个BYE消息来清理它。此技术还用于刷新注册和订阅。

    类似地,Input/Output (IO)错误的处理方法如下:

版权声明


相关文章:

  • 流动爱心教程java2024-12-11 13:18:02
  • 经典java视频教程2024-12-11 13:18:02
  • java全套教程免费2024-12-11 13:18:02
  • java发送邮箱教程2024-12-11 13:18:02
  • java作业教程视频2024-12-11 13:18:02
  • java io详解视频教程2024-12-11 13:18:02
  • easyui java 视频教程2024-12-11 13:18:02
  • java教程书在线2024-12-11 13:18:02
  • 马云java教程2024-12-11 13:18:02
  • java自学封装教程2024-12-11 13:18:02