Merge "Add SipDelegateConnection#closeDialog"
This commit is contained in:
@@ -11314,6 +11314,7 @@ package android.telephony.ims {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public interface SipDelegateConnection {
|
public interface SipDelegateConnection {
|
||||||
|
method public void closeDialog(@NonNull String);
|
||||||
method public void notifyMessageReceiveError(@NonNull String, int);
|
method public void notifyMessageReceiveError(@NonNull String, int);
|
||||||
method public void notifyMessageReceived(@NonNull String);
|
method public void notifyMessageReceived(@NonNull String);
|
||||||
method public void sendMessage(@NonNull android.telephony.ims.SipMessage, long);
|
method public void sendMessage(@NonNull android.telephony.ims.SipMessage, long);
|
||||||
|
|||||||
@@ -62,7 +62,8 @@ public final class DelegateRegistrationState implements Parcelable {
|
|||||||
/**
|
/**
|
||||||
* This feature tag is being deregistered because the PDN that the IMS registration is on is
|
* This feature tag is being deregistered because the PDN that the IMS registration is on is
|
||||||
*changing.
|
*changing.
|
||||||
* All open SIP dialogs need to be closed before the PDN change can proceed.
|
* All open SIP dialogs need to be closed before the PDN change can proceed using
|
||||||
|
* {@link SipDelegateConnection#closeDialog(String)}.
|
||||||
*/
|
*/
|
||||||
public static final int DEREGISTERING_REASON_PDN_CHANGE = 3;
|
public static final int DEREGISTERING_REASON_PDN_CHANGE = 3;
|
||||||
|
|
||||||
@@ -73,7 +74,8 @@ public final class DelegateRegistrationState implements Parcelable {
|
|||||||
* a user triggered hange, such as data being enabled/disabled.
|
* a user triggered hange, such as data being enabled/disabled.
|
||||||
* <p>
|
* <p>
|
||||||
* All open SIP dialogs associated with the new deprovisioned feature tag need to be closed
|
* All open SIP dialogs associated with the new deprovisioned feature tag need to be closed
|
||||||
* before the IMS registration modification can proceed.
|
* using {@link SipDelegateConnection#closeDialog(String)} before the IMS registration
|
||||||
|
* modification can proceed.
|
||||||
*/
|
*/
|
||||||
public static final int DEREGISTERING_REASON_PROVISIONING_CHANGE = 4;
|
public static final int DEREGISTERING_REASON_PROVISIONING_CHANGE = 4;
|
||||||
|
|
||||||
@@ -81,8 +83,8 @@ public final class DelegateRegistrationState implements Parcelable {
|
|||||||
* This feature tag is deregistering because the SipDelegate associated with this feature tag
|
* This feature tag is deregistering because the SipDelegate associated with this feature tag
|
||||||
* needs to change its supported feature set.
|
* needs to change its supported feature set.
|
||||||
* <p>
|
* <p>
|
||||||
* All open SIP Dialogs associated with this feature tag must be closed before this operation
|
* All open SIP Dialogs associated with this feature tag must be closed
|
||||||
* can proceed.
|
* using {@link SipDelegateConnection#closeDialog(String)} before this operation can proceed.
|
||||||
*/
|
*/
|
||||||
public static final int DEREGISTERING_REASON_FEATURE_TAGS_CHANGING = 5;
|
public static final int DEREGISTERING_REASON_FEATURE_TAGS_CHANGING = 5;
|
||||||
|
|
||||||
@@ -90,8 +92,8 @@ public final class DelegateRegistrationState implements Parcelable {
|
|||||||
* This feature tag is deregistering because the SipDelegate is in the process of being
|
* This feature tag is deregistering because the SipDelegate is in the process of being
|
||||||
* destroyed.
|
* destroyed.
|
||||||
* <p>
|
* <p>
|
||||||
* All open SIP Dialogs associated with this feature tag must be closed before this operation
|
* All open SIP Dialogs associated with this feature tag must be closed
|
||||||
* can proceed.
|
* using {@link SipDelegateConnection#closeDialog(String)} before this operation can proceed.
|
||||||
*/
|
*/
|
||||||
public static final int DEREGISTERING_REASON_DESTROY_PENDING = 6;
|
public static final int DEREGISTERING_REASON_DESTROY_PENDING = 6;
|
||||||
|
|
||||||
|
|||||||
@@ -61,6 +61,22 @@ public interface SipDelegateConnection {
|
|||||||
*/
|
*/
|
||||||
void notifyMessageReceived(@NonNull String viaTransactionId);
|
void notifyMessageReceived(@NonNull String viaTransactionId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SIP Dialog associated with the provided Call-ID is being closed and routing resources
|
||||||
|
* associated with the SIP dialog are free to be released.
|
||||||
|
* <p>
|
||||||
|
* Calling this method is also mandatory for situations where the framework IMS stack is waiting
|
||||||
|
* for pending SIP dialogs to be closed before it can perform a handover or apply a provisioning
|
||||||
|
* change. See {@link DelegateRegistrationState} for more information about
|
||||||
|
* the scenarios where this can occur.
|
||||||
|
* <p>
|
||||||
|
* This method will need to be called for each SIP dialog managed by this application when it is
|
||||||
|
* closed.
|
||||||
|
* @param callId The call-ID header value associated with the ongoing SIP Dialog that is
|
||||||
|
* closing.
|
||||||
|
*/
|
||||||
|
void closeDialog(@NonNull String callId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify the SIP delegate that the SIP message has been received from
|
* Notify the SIP delegate that the SIP message has been received from
|
||||||
* {@link DelegateMessageCallback#onMessageReceived(SipMessage)}, however there was an error
|
* {@link DelegateMessageCallback#onMessageReceived(SipMessage)}, however there was an error
|
||||||
|
|||||||
@@ -26,7 +26,5 @@ oneway interface ISipDelegate {
|
|||||||
void sendMessage(in SipMessage sipMessage, long configVersion);
|
void sendMessage(in SipMessage sipMessage, long configVersion);
|
||||||
void notifyMessageReceived(in String viaTransactionId);
|
void notifyMessageReceived(in String viaTransactionId);
|
||||||
void notifyMessageReceiveError(in String viaTransactionId, int reason);
|
void notifyMessageReceiveError(in String viaTransactionId, int reason);
|
||||||
|
|
||||||
// only used by SipDelegate.
|
|
||||||
void closeDialog(in String callId);
|
void closeDialog(in String callId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,6 +199,19 @@ public class SipDelegateConnectionAidlWrapper implements SipDelegateConnection,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void closeDialog(String callId) {
|
||||||
|
try {
|
||||||
|
ISipDelegate conn = getSipDelegateBinder();
|
||||||
|
if (conn == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
conn.closeDialog(callId);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
// Nothing to do here, app will eventually get remote death callback.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Also called upon IImsRcsController death (telephony process dies).
|
// Also called upon IImsRcsController death (telephony process dies).
|
||||||
@Override
|
@Override
|
||||||
public void binderDied() {
|
public void binderDied() {
|
||||||
|
|||||||
@@ -19,7 +19,9 @@ package android.telephony.ims.stub;
|
|||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.telephony.ims.DelegateMessageCallback;
|
import android.telephony.ims.DelegateMessageCallback;
|
||||||
|
import android.telephony.ims.DelegateRegistrationState;
|
||||||
import android.telephony.ims.ImsService;
|
import android.telephony.ims.ImsService;
|
||||||
|
import android.telephony.ims.SipDelegateConnection;
|
||||||
import android.telephony.ims.SipDelegateImsConfiguration;
|
import android.telephony.ims.SipDelegateImsConfiguration;
|
||||||
import android.telephony.ims.SipDelegateManager;
|
import android.telephony.ims.SipDelegateManager;
|
||||||
import android.telephony.ims.SipMessage;
|
import android.telephony.ims.SipMessage;
|
||||||
@@ -65,10 +67,13 @@ public interface SipDelegate {
|
|||||||
* The framework is requesting that routing resources associated with the SIP dialog using the
|
* The framework is requesting that routing resources associated with the SIP dialog using the
|
||||||
* provided Call-ID to be cleaned up.
|
* provided Call-ID to be cleaned up.
|
||||||
* <p>
|
* <p>
|
||||||
* Typically a SIP Dialog close event will be signalled by that dialog receiving a BYE or 200 OK
|
* Typically, a SIP Dialog close event will be signalled by that dialog receiving a BYE or
|
||||||
* message, however, in some cases, the framework will request that the ImsService close the
|
* 200 OK message, however, the IMS application will still call
|
||||||
|
* {@link SipDelegateConnection#closeDialog(String)} to signal to the framework that resources
|
||||||
|
* can be released. In some cases, the framework will request that the ImsService close the
|
||||||
* dialog due to the open dialog holding up an event such as applying a provisioning change or
|
* dialog due to the open dialog holding up an event such as applying a provisioning change or
|
||||||
* handing over to another transport type.
|
* handing over to another transport type. See {@link DelegateRegistrationState}.
|
||||||
|
*
|
||||||
* @param callId The call-ID header value associated with the ongoing SIP Dialog that the
|
* @param callId The call-ID header value associated with the ongoing SIP Dialog that the
|
||||||
* framework is requesting be closed.
|
* framework is requesting be closed.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user