📜  Android-SIP协议

📅  最后修改于: 2021-01-05 05:32:58             🧑  作者: Mango


SIP代表(会话发起协议)。它是一种协议,使应用程序可以轻松建立呼出和呼入语音呼叫,而无需直接管理会话,传输级通信或音频记录或回放。

应用领域

SIP的一些常见应用是。

  • 视频会议
  • 即时通讯

要求

这是开发SIP应用程序的要求-

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

SIP类别

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

Sr.No Class & description
1

SipAudioCall

Handles an Internet audio call over SIP

2

SipErrorCode

Defines error codes returned during SIP actions

3

SipManager

Provides APIs for SIP tasks, such as initiating SIP connections, and provides access to related SIP services

4

SipProfile

Defines a SIP profile, including a SIP account, domain and server information

5

SipSession

Represents a SIP session that is associated with a SIP dialog or a standalone transaction not within a dialog

SIP的功能

SIP具有以下主要功能。

  • SIP允许建立用户位置
  • SIP提供了呼叫管理机制
  • SIP提供功能协商,以便通话中的所有各方都可以同意其中所支持的功能

SIP的组成

SIP具有两个主要组件,在下面列出。

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

UAC

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

无人机系统

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

SipManager

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

SipManager具有许多用于管理SIP任务的功能。下面列出了一些功能。

Sr.No Class & description
1

close(String localProfileUri)

Closes the specified profile to not make/receive calls

2

getCallId(Intent incomingCallIntent)

Gets the call ID from the specified incoming call broadcast intent

3

isOpened(String localProfileUri)

Checks if the specified profile is opened in the SIP service for making and/or receiving calls

4

isSipWifiOnly(Context context)

Returns true if SIP is only available on WIFI

5

isRegistered(String localProfileUri)

Checks if the SIP service has successfully registered the profile to the SIP provider (specified in the profile) for receiving calls

6

isVoipSupported(Context context)

Returns true if the system supports SIP-based VOIP API

7

takeAudioCall(Intent incomingCallIntent, SipAudioCall.Listener listener)

Creates a SipAudioCall to take an incoming call

8

unregister(SipProfile localProfile, SipRegistrationListener listener)

Manually unregisters the profile from the corresponding SIP provider for stop receiving further calls