• Android Video Tutorials

Android - SIP 协议



SIP 代表 (会话发起协议)。它是一种协议,允许应用程序轻松设置传出和传入语音呼叫,而无需直接管理会话、传输级通信或音频录制或播放。

应用

SIP 的一些常见应用包括:

  • 视频会议
  • 即时消息

需求

以下是开发 SIP 应用程序的要求:

  • Android 操作系统必须为 2.3 或更高版本
  • 您必须具有数据连接或 WIFI
  • 您必须拥有 SIP 帐户才能使用此服务。

SIP 类

以下是 Android SIP API 中包含的类的摘要

序号 类和描述
1

SipAudioCall

处理通过 SIP 进行的互联网音频呼叫

2

SipErrorCode

定义在 SIP 操作期间返回的错误代码

3

SipManager

提供 SIP 任务的 API,例如发起 SIP 连接,并提供对相关 SIP 服务的访问

4

SipProfile

定义 SIP 配置文件,包括 SIP 帐户、域和服务器信息

5

SipSession

表示与 SIP 对话关联的 SIP 会话或不在对话中的独立事务

SIP 的功能

SIP 具有以下主要功能。

  • SIP 允许建立用户位置
  • SIP 提供呼叫管理机制
  • SIP 提供功能协商,以便呼叫中的所有参与方都可以就他们之间支持的功能达成一致

SIP 的组件

SIP 具有两个主要组件,如下所示。

  • 用户代理客户端 (UAC)
  • 用户代理服务器 (UAS)

UAC

UAC 或用户代理客户端是那些生成请求并将这些请求发送到服务器的最终用户。这些请求由其系统上运行的客户端应用程序生成。

UAS

UAS 或用户代理服务器是那些获取 UAC 生成的请求的系统。UAS 处理这些请求,然后根据请求生成相应的响应。

SipManager

SipManager 是一个用于 SIP 任务的 Android API,例如发起 SIP 连接,并提供对相关 SIP 服务的访问。此类是任何 SIP 操作的起点。您可以使用 newInstance() 获取其实例。

SipManager 具有许多用于管理 SIP 任务的功能。一些功能如下所示。

序号 类和描述
1

close(String localProfileUri)

关闭指定的配置文件以不进行/接收呼叫

2

getCallId(Intent incomingCallIntent)

从指定的传入呼叫广播意图中获取呼叫 ID

3

isOpened(String localProfileUri)

检查指定的配置文件是否在 SIP 服务中打开以进行拨打和/或接收呼叫

4

isSipWifiOnly(Context context)

如果 SIP 仅在 WIFI 上可用,则返回 true

5

isRegistered(String localProfileUri)

检查 SIP 服务是否已成功将配置文件注册到 SIP 提供商(在配置文件中指定)以接收呼叫

6

isVoipSupported(Context context)

如果系统支持基于 SIP 的 VOIP API,则返回 true

7

takeAudioCall(Intent incomingCallIntent, SipAudioCall.Listener listener)

创建一个 SipAudioCall 来接听来电

8

unregister(SipProfile localProfile, SipRegistrationListener listener)

手动取消注册配置文件以停止接收进一步的呼叫

广告