Most visited

Recently visited

Added in API level 9

SipManager

public class SipManager
extends Object

java.lang.Object
   ↳ android.net.sip.SipManager


为SIP任务提供API,例如发起SIP连接,并提供对相关SIP服务的访问。 此课程是任何SIP操作的起点。 您可以通过newInstance()获取它的一个实例。

这个类中的API允许你:

注意:并非所有基于Android的设备都支持使用SIP的VOIP呼叫。 你应该总是调用isVoipSupported() ,以验证该设备支持VOIP通话和isApiSupported() ,以验证该设备支持SIP的API。 您的应用程序还必须请求INTERNETUSE_SIP权限。

Developer Guides

有关使用SIP的更多信息,请阅读 Session Initiation Protocol开发人员指南。

Summary

Constants

String EXTRA_CALL_ID

从来电呼叫意图中检索呼叫ID的键。

String EXTRA_OFFER_SD

从呼入意图中检索提供的会话描述的键。

int INCOMING_CALL_RESULT_CODE

结果代码将与传入呼叫 PendingIntent一起发回。

Public methods

void close(String localProfileUri)

关闭指定的配置文件以不拨打/接听电话。

SipSession createSipSession(SipProfile localProfile, SipSession.Listener listener)

用指定的配置文件创建一个 SipSession

static String getCallId(Intent incomingCallIntent)

从指定的来电广播意图获取电话ID。

static String getOfferSessionDescription(Intent incomingCallIntent)

从指定的来电广播意图获取优惠会话描述。

SipSession getSessionFor(Intent incomingCallIntent)

获取处理传入呼叫的 SipSession

static boolean isApiSupported(Context context)

如果系统支持SIP API,则返回true。

static boolean isIncomingCallIntent(Intent intent)

检查意图是否是来电广播意图。

boolean isOpened(String localProfileUri)

检查是否在SIP服务中打开了指定的配置文件以拨打和/或接听电话。

boolean isRegistered(String localProfileUri)

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

static boolean isSipWifiOnly(Context context)

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

static boolean isVoipSupported(Context context)

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

SipAudioCall makeAudioCall(String localProfileUri, String peerProfileUri, SipAudioCall.Listener listener, int timeout)

创建 SipAudioCall进行音频呼叫。

SipAudioCall makeAudioCall(SipProfile localProfile, SipProfile peerProfile, SipAudioCall.Listener listener, int timeout)

创建一个 SipAudioCall来拨打电话。

static SipManager newInstance(Context context)

创建一个管理器实例。

void open(SipProfile localProfile, PendingIntent incomingCallPendingIntent, SipRegistrationListener listener)

打开用于拨打电话和/或接收通用SIP呼叫的配置文件。

void open(SipProfile localProfile)

打开用于进行通用SIP呼叫的配置文件。

void register(SipProfile localProfile, int expiryTime, SipRegistrationListener listener)

手动将配置文件注册到相应的SIP提供商以接收呼叫。

void setRegistrationListener(String localProfileUri, SipRegistrationListener listener)

将侦听器设置为侦听注册事件。

SipAudioCall takeAudioCall(Intent incomingCallIntent, SipAudioCall.Listener listener)

创建 SipAudioCall以接听来电。

void unregister(SipProfile localProfile, SipRegistrationListener listener)

手动取消注册相应SIP提供商的配置文件以停止接收其他呼叫。

Inherited methods

From class java.lang.Object

Constants

EXTRA_CALL_ID

Added in API level 9
String EXTRA_CALL_ID

从来电呼叫意图中检索呼叫ID的键。

也可以看看:

常量值:“android:sipCallID”

EXTRA_OFFER_SD

Added in API level 9
String EXTRA_OFFER_SD

从呼入意图中检索提供的会话描述的键。

也可以看看:

常量值:“android:sipOfferSD”

INCOMING_CALL_RESULT_CODE

Added in API level 9
int INCOMING_CALL_RESULT_CODE

结果代码将与传入呼叫 PendingIntent一起发回。

也可以看看:

常量值:101(0x00000065)

Public methods

close

Added in API level 9
void close (String localProfileUri)

关闭指定的配置文件以不拨打/接听电话。 分配给该配置文件的所有资源也将被释放。

Parameters
localProfileUri String: the URI of the profile to close
Throws
SipException if calling the SIP service results in an error

createSipSession

Added in API level 9
SipSession createSipSession (SipProfile localProfile, 
                SipSession.Listener listener)

用指定的配置文件创建一个SipSession 使用其他方法(如果适用),而不是直接与SipSession交互。

Parameters
localProfile SipProfile: the SIP profile the session is associated with
listener SipSession.Listener: to listen to SIP session events
Returns
SipSession
Throws
SipException

getCallId

Added in API level 9
String getCallId (Intent incomingCallIntent)

从指定的来电广播意图获取电话ID。

Parameters
incomingCallIntent Intent: the incoming call broadcast intent
Returns
String the call ID or null if the intent does not contain it

getOfferSessionDescription

Added in API level 9
String getOfferSessionDescription (Intent incomingCallIntent)

从指定的来电广播意图获取优惠会话描述。

Parameters
incomingCallIntent Intent: the incoming call broadcast intent
Returns
String the offer session description or null if the intent does not have it

getSessionFor

Added in API level 9
SipSession getSessionFor (Intent incomingCallIntent)

获取处理传入呼叫的SipSession 对于音频呼叫,请考虑使用SipAudioCall来处理来电。 takeAudioCall(Intent, SipAudioCall.Listener) 请注意,对于相同的意图,该方法只能被调用一次。 对于相同意图的后续调用,该方法返回null。

Parameters
incomingCallIntent Intent: the incoming call broadcast intent
Returns
SipSession the session object that handles the incoming call
Throws
SipException

isApiSupported

Added in API level 9
boolean isApiSupported (Context context)

如果系统支持SIP API,则返回true。

Parameters
context Context
Returns
boolean

isIncomingCallIntent

Added in API level 9
boolean isIncomingCallIntent (Intent intent)

检查意图是否是来电广播意图。

Parameters
intent Intent: the intent in question
Returns
boolean true if the intent is an incoming call broadcast intent

isOpened

Added in API level 9
boolean isOpened (String localProfileUri)

检查是否在SIP服务中打开了指定的配置文件以拨打和/或接听电话。

Parameters
localProfileUri String: the URI of the profile in question
Returns
boolean true if the profile is enabled to receive calls
Throws
SipException if calling the SIP service results in an error

isRegistered

Added in API level 9
boolean isRegistered (String localProfileUri)

检查SIP服务是否成功将配置文件注册到SIP提供商(在配置文件中指定)以接收呼叫。 从此方法返回true也意味着打开配置文件( isOpened(String) )。

Parameters
localProfileUri String: the URI of the profile in question
Returns
boolean true if the profile is registered to the SIP provider; false if the profile has not been opened in the SIP service or the SIP service has not yet successfully registered the profile to the SIP provider
Throws
SipException if calling the SIP service results in an error

isSipWifiOnly

Added in API level 9
boolean isSipWifiOnly (Context context)

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

Parameters
context Context
Returns
boolean

isVoipSupported

Added in API level 9
boolean isVoipSupported (Context context)

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

Parameters
context Context
Returns
boolean

makeAudioCall

Added in API level 9
SipAudioCall makeAudioCall (String localProfileUri, 
                String peerProfileUri, 
                SipAudioCall.Listener listener, 
                int timeout)

创建SipAudioCall以进行音频呼叫。 尝试将超时如果呼叫没有内建立timeoutonError(SipAudioCall, SipErrorCode.TIME_OUT, String)将被调用。

Parameters
localProfileUri String: URI of the SIP profile to make the call from
peerProfileUri String: URI of the SIP profile to make the call to
listener SipAudioCall.Listener: to listen to the call events from SipAudioCall; can be null
timeout int: the timeout value in seconds. Default value (defined by SIP protocol) is used if timeout is zero or negative.
Returns
SipAudioCall a SipAudioCall object
Throws
SipException if calling the SIP service results in an error or VOIP API is not supported by the device

也可以看看:

makeAudioCall

Added in API level 9
SipAudioCall makeAudioCall (SipProfile localProfile, 
                SipProfile peerProfile, 
                SipAudioCall.Listener listener, 
                int timeout)

创建一个SipAudioCall来拨打电话。 尝试将超时如果呼叫没有内建立timeoutonError(SipAudioCall, SipErrorCode.TIME_OUT, String)将被调用。

Parameters
localProfile SipProfile: the SIP profile to make the call from
peerProfile SipProfile: the SIP profile to make the call to
listener SipAudioCall.Listener: to listen to the call events from SipAudioCall; can be null
timeout int: the timeout value in seconds. Default value (defined by SIP protocol) is used if timeout is zero or negative.
Returns
SipAudioCall a SipAudioCall object
Throws
SipException if calling the SIP service results in an error or VOIP API is not supported by the device

也可以看看:

newInstance

Added in API level 9
SipManager newInstance (Context context)

创建一个管理器实例。 如果SIP API不受支持,则返回null。

Parameters
context Context: application context for creating the manager object
Returns
SipManager the manager instance or null if SIP API is not supported

open

Added in API level 9
void open (SipProfile localProfile, 
                PendingIntent incomingCallPendingIntent, 
                SipRegistrationListener listener)

打开用于拨打电话和/或接收通用SIP呼叫的配置文件。 来电者可以通过makeAudioCall(SipProfile, SipProfile, SipAudioCall.Listener, int)进行后续通话。 如果配置文件中启用了自动注册选项,SIP服务将定期注册配置文件到相应的SIP提供商,以接收来自提供商的呼叫。 当SIP服务收到一个新的呼叫时,它将发送一个带有所提供的操作字符串的意图。 该意图包含额外的呼叫ID和额外的商品会话描述字符串。 使用getCallId(Intent)getOfferSessionDescription(Intent)来检索这些额外信息。

Parameters
localProfile SipProfile: the SIP profile to receive incoming calls for
incomingCallPendingIntent PendingIntent: When an incoming call is received, the SIP service will call send(Context, int, Intent) to send back the intent to the caller with INCOMING_CALL_RESULT_CODE as the result code and the intent to fill in the call ID and session description information. It cannot be null.
listener SipRegistrationListener: to listen to registration events; can be null
Throws
NullPointerException if incomingCallPendingIntent is null
SipException if the profile contains incorrect settings or calling the SIP service results in an error

也可以看看:

open

Added in API level 9
void open (SipProfile localProfile)

打开用于进行通用SIP呼叫的配置文件。 呼叫者可以通过makeAudioCall(SipProfile, SipProfile, SipAudioCall.Listener, int)进行后续呼叫。 如果有人也希望在配置文件上接收呼叫, open(SipProfile, PendingIntent, SipRegistrationListener)改为使用open(SipProfile, PendingIntent, SipRegistrationListener)

Parameters
localProfile SipProfile: the SIP profile to make calls from
Throws
SipException if the profile contains incorrect settings or calling the SIP service results in an error

register

Added in API level 9
void register (SipProfile localProfile, 
                int expiryTime, 
                SipRegistrationListener listener)

手动将配置文件注册到相应的SIP提供商以接收呼叫。 open(SipProfile, PendingIntent, SipRegistrationListener)仍然需要至少调用一次,以便SIP服务在收到来电时通过PendingIntent通知主叫方。

Parameters
localProfile SipProfile: the SIP profile to register with
expiryTime int: registration expiration time (in seconds)
listener SipRegistrationListener: to listen to the registration events
Throws
SipException if calling the SIP service results in an error

setRegistrationListener

Added in API level 9
void setRegistrationListener (String localProfileUri, 
                SipRegistrationListener listener)

将侦听器设置为侦听注册事件。 如果配置文件尚未打开以接收呼叫,则open(SipProfile, PendingIntent, SipRegistrationListener) (请参阅open(SipProfile, PendingIntent, SipRegistrationListener) )。

Parameters
localProfileUri String: the URI of the profile
listener SipRegistrationListener: to listen to registration events; can be null
Throws
SipException if calling the SIP service results in an error

takeAudioCall

Added in API level 9
SipAudioCall takeAudioCall (Intent incomingCallIntent, 
                SipAudioCall.Listener listener)

创建一个SipAudioCall来接听来电。 在通话返回之前,听众将收到一个onRinging(SipAudioCall, SipProfile)onRinging(SipAudioCall, SipProfile)

Parameters
incomingCallIntent Intent: the incoming call broadcast intent
listener SipAudioCall.Listener: to listen to the call events from SipAudioCall; can be null
Returns
SipAudioCall a SipAudioCall object
Throws
SipException if calling the SIP service results in an error

unregister

Added in API level 9
void unregister (SipProfile localProfile, 
                SipRegistrationListener listener)

手动取消注册相应SIP提供商的配置文件以停止接收其他呼叫。 如果启用配置文件中的自动注册选项,这可能会干扰SIP服务中的自动注册过程。

Parameters
localProfile SipProfile: the SIP profile to register with
listener SipRegistrationListener: to listen to the registration events
Throws
SipException if calling the SIP service results in an error

Hooray!