Ims: Add support to add participants to existing call
Supports initiation of a conference call by directly adding participants to existing call Test: Manual Bug: 62151032 Change-Id: I4e60efafab4761ae65a460fdc6c4cacc3e233220
This commit is contained in:
@@ -142,6 +142,7 @@ public abstract class ConnectionService extends Service {
|
||||
private static final String SESSION_SPLIT_CONFERENCE = "CS.sFC";
|
||||
private static final String SESSION_MERGE_CONFERENCE = "CS.mC";
|
||||
private static final String SESSION_SWAP_CONFERENCE = "CS.sC";
|
||||
private static final String SESSION_ADD_PARTICIPANT = "CS.aP";
|
||||
private static final String SESSION_POST_DIAL_CONT = "CS.oPDC";
|
||||
private static final String SESSION_PULL_EXTERNAL_CALL = "CS.pEC";
|
||||
private static final String SESSION_SEND_CALL_EVENT = "CS.sCE";
|
||||
@@ -195,6 +196,7 @@ public abstract class ConnectionService extends Service {
|
||||
private static final int MSG_CREATE_CONFERENCE_COMPLETE = 36;
|
||||
private static final int MSG_CREATE_CONFERENCE_FAILED = 37;
|
||||
private static final int MSG_REJECT_WITH_REASON = 38;
|
||||
private static final int MSG_ADD_PARTICIPANT = 39;
|
||||
|
||||
private static Connection sNullConnection;
|
||||
|
||||
@@ -626,6 +628,21 @@ public abstract class ConnectionService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addConferenceParticipants(String callId, List<Uri> participants,
|
||||
Session.Info sessionInfo) {
|
||||
Log.startSession(sessionInfo, SESSION_ADD_PARTICIPANT);
|
||||
try {
|
||||
SomeArgs args = SomeArgs.obtain();
|
||||
args.arg1 = callId;
|
||||
args.arg2 = participants;
|
||||
args.arg3 = Log.createSubsession();
|
||||
mHandler.obtainMessage(MSG_ADD_PARTICIPANT, args).sendToTarget();
|
||||
} finally {
|
||||
Log.endSession();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPostDialContinue(String callId, boolean proceed, Session.Info sessionInfo) {
|
||||
Log.startSession(sessionInfo, SESSION_POST_DIAL_CONT);
|
||||
@@ -1224,6 +1241,19 @@ public abstract class ConnectionService extends Service {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MSG_ADD_PARTICIPANT: {
|
||||
SomeArgs args = (SomeArgs) msg.obj;
|
||||
try {
|
||||
Log.continueSession((Session) args.arg3,
|
||||
SESSION_HANDLER + SESSION_ADD_PARTICIPANT);
|
||||
addConferenceParticipants((String) args.arg1, (List<Uri>)args.arg2);
|
||||
} finally {
|
||||
args.recycle();
|
||||
Log.endSession();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MSG_ON_POST_DIAL_CONTINUE: {
|
||||
SomeArgs args = (SomeArgs) msg.obj;
|
||||
try {
|
||||
@@ -2152,6 +2182,17 @@ public abstract class ConnectionService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private void addConferenceParticipants(String callId, List<Uri> participants) {
|
||||
Log.d(this, "addConferenceParticipants(%s)", callId);
|
||||
if (mConnectionById.containsKey(callId)) {
|
||||
findConnectionForAction(callId, "addConferenceParticipants")
|
||||
.onAddConferenceParticipants(participants);
|
||||
} else {
|
||||
findConferenceForAction(callId, "addConferenceParticipants")
|
||||
.onAddConferenceParticipants(participants);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies a {@link Connection} of a request to pull an external call.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user