Android 简明教程

Android - SIP Protocol

SIP(会话发起协议)是一种协议,可让应用程序轻松设置拨出和接入语音呼叫,而无需直接管理会话、传输级通信或音频记录或回放。

Applications

一些 SIP 的常见应用程序如下。

  1. Video conferencing

  2. Instant messaging

Requirements

以下为开发 SIP 应用程序的要求−

  1. Android 操作系统必须为 2.3 或更高版本

  2. 您必须有数据连接或 WiFi

  3. 您必须有 SIP 帐户才能使用此服务。

SIP Classes

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

Sr.No

Class & description

1

SipAudioCall 通过 SIP 处理互联网音频呼叫

2

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

3

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

4

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

5

SipSession 表示与 SIP 对话关联的 SIP 会话或对话中未包含的独立事务

Functions of SIP

SIP 有以下主要功能。

  1. SIP 允许建立用户位置

  2. SIP 提供了一种呼叫管理机制

  3. SIP 提供功能协商,让通话中的所有参与者可以同意彼此之间支持的功能

Components of SIP

SIP 有以下两个主要组件。

  1. User Agent Client (UAC)

  2. User Agent Server (UAS)

UAC

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

UAS

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

SipManager

SipManager 是一个安卓 SIP 任务 API,如发起 SIP 呼叫,并提供访问相关的 SIP 服务。此类是任何 SIP 操作的起点。你可以使用 newInstance() 获取其实例。

SipManager 具有许多用于管理 SIP 任务的功能。下面的列表列出了其中部分功能。

Sr.No

Class & description

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) 从相应的 SIP 供应商中手动注销配置文件以停止接收更多来电