PJSIP手册

来源:互联网 发布:淘客qq群发软件 编辑:程序博客网 时间:2024/05/29 11:07

PJSIP手册

PJSIP是一个开源的SIP协议栈,内存占用少,具有高性能,而且很灵活。

 

历史

自2003年出现以来,PJSIP一直在不断发展,但它的历史远远不止于此。作者自1999年以来,一直在开发的SIP协议栈,也就是RFC 2543年代。在使用了不同的方法去实现它之后(第一个堆栈实际上是用C + +!),同时因为SIP协议本身的演变,现在/第三代PJSIP版本(0.2.9版本是第二代)被认为是在设计地相当稳定,并包含了多年积累的所有设计考虑(和执行技巧!)。当然,只有时间才能告诉我们,这一说法仍是正确。

 

开始

PJSIP由多个分层的API组成。因此,新的读者可能发现有点难以找到从哪入手。通常,我推荐两种方法来使用PJSIP。

 

使用PJSUA API

PJSUA API-高层的软电话API封装了所有SIP组件和媒体的实现,适合用来创建典型的SIP UA应用。它的特点:

  • 多个客户端注册(账号)
  • 高层的SIP和媒体会话(打电话)
  • 好友列表,即时消息
  • 功能强大且易于使用的媒体操控

同时也支持自定义(自定义SIP传输,自定义SIP的媒体等)。PJSUA API -高层软件电话API的目的还在于能够在诸如PDA或移动电话的设备上运行,要注意为应用设置适当的线程策略和内存限制(呼叫数,媒体端口等)。

然而,PJSUA API -高层软电话的API可能不适用于某些应用程序,因为它是一种针对易于使用而设计的API。想要了解更高级的使用方法,您可以直接使用PJSIP + PJMEDIA实现应用,如下所述的。

 

直接使用PJSIP和PJMEDIA

为了达到最终的灵活性和强大功能,可以使用PJSIP和PJMEDIA直接开发。但是,代价就是需要更多的学习。

下面的连接可以帮助你提供一些有用的信息:

  • PJSIP Developer'sGuide PDF文档可以帮助你理解PJSIP的设计理念。
  • 也有一些样例应用程序在pjsip-apps/src/samples下。
  • PJSUA API - HighLevel Softphone API的源代码也可以帮助你了解高层的API是如何使用PJSIP/PJMEDIA来实现的。
  • 最后,你可以随时使用源码!

 

关于本文档

本文档是PJSIP的参考指南。为了了解更深入,更通用的信息,读者可以在官网上下载PJSIP Developer's Guide PDF来读。

 

如何阅读本文档

主要地,请转到Modules

文档内容

以下是在Modules中的顶层部分,如下面的图:


静态库分布

从底层开始说明各个静态库:

PJLIB,是整个平台抽象和框架库,其上的所有其他库都依赖于它,

PJLIB-UTIL,提供辅助功能,例如文本的扫描,XML和STUN

PJMEDIA是多媒体框架

PJMEDIA-CODEC是媒体编解码器占位符

Core SIP Library(PJSIP-CORE)是PJSIP库的核,也包括SIP的终端,是应用中所有SIP对象的所有者和管理者,如消息,解析,传输管理,模块管理,和无状态操作,也包括:

Transaction Layer模块在PJSIP-CORE中有状态的操作,它是高层特性的基础,如Dialog

Base User Agent Layer/Common Dialog Layer模块在PJSIP-CORE中管理对话和支持对话的使用

Event and Presence Framework (PJSIP-SIMPLE) 提供基础的SIP事件框架(使用了common/base dialog框架),并在上层实现,在调用转接函数时也会使用它

User Agent Library (PJSIP-UA)是高层的INVITE会话的抽象。这个库也提供SIP客户端注册和转接功能

最后,PJSUA API - High Level Softphone API(PJSUA-LIB) 是最高层的抽象它封装了以上所有功能,很方便能使用


2 0
原创粉丝点击