Skip to content

Commit f9db352

Browse files
committed
Fixes #92: Improve the API so that internal call parameters aren't exposed to the Application
1 parent 153cdc7 commit f9db352

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

Examples/restcomm-messenger/app/src/main/java/com/telestax/restcomm_messenger/CallActivity.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ public class CallActivity extends Activity implements RCConnectionListener, View
5151
Button btnDecline;
5252
Button btnCancel;
5353

54-
// TODO: remove those when the API is structured properlu
5554
String incomingCallDid = "";
56-
String incomingCallSdp = "";
55+
// TODO: remove those when the API is structured properlu
56+
// String incomingCallSdp = "";
5757

5858
@Override
5959
protected void onCreate(Bundle savedInstanceState) {
@@ -124,9 +124,9 @@ protected void onCreate(Bundle savedInstanceState) {
124124
pendingConnection.updateListener(this);
125125
pendingConnection.setupWebrtcForIncomingCall(videoView, prefs);
126126

127-
// TODO: remove those
127+
// the number from which we got the call
128128
incomingCallDid = intent.getStringExtra(RCDevice.EXTRA_DID);
129-
incomingCallSdp = intent.getStringExtra(RCDevice.EXTRA_SDP);
129+
//incomingCallSdp = intent.getStringExtra(RCDevice.EXTRA_SDP);
130130
}
131131
}
132132

@@ -147,8 +147,8 @@ public void onClick(View view) {
147147
}
148148
} else if (view.getId() == R.id.button_answer) {
149149
if (pendingConnection != null) {
150-
//pendingConnection.accept();
151-
pendingConnection.answerCall(incomingCallDid, incomingCallSdp);
150+
pendingConnection.accept();
151+
//pendingConnection.answerCall(incomingCallDid, incomingCallSdp);
152152
connection = this.pendingConnection;
153153
ringingPlayer.pause();
154154
// Abandon audio focus when playback complete

restcomm.android.client.sdk/src/main/java/org/mobicents/restcomm/android/client/sdk/RCConnection.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ public enum ConnectionState {
146146
private static final int REMOTE_WIDTH = 100;
147147
private static final int REMOTE_HEIGHT = 100;
148148

149+
public String incomingCallSdp = "";
149150
private PeerConnectionClient peerConnectionClient = null;
150151
private SignalingParameters signalingParameters;
151152
private AppRTCAudioManager audioManager = null;
@@ -538,7 +539,7 @@ public void onLocalDescription(final SessionDescription sdp) {
538539
@Override
539540
public void run() {
540541
Log.e(TAG, "@@@@@ onLocalDescription");
541-
if (signalingParameters != null && !signalingParameters.sipUrl.isEmpty()) {
542+
if (signalingParameters != null) { // && !signalingParameters.sipUrl.isEmpty()) {
542543
logAndToast("Sending " + sdp.type + ", delay=" + delta + "ms");
543544
if (signalingParameters.initiator) {
544545
// keep it around so that we combine it with candidates before sending it over
@@ -597,6 +598,7 @@ public void run() {
597598
else {
598599
DeviceImpl.GetInstance().AcceptWebrtc(connection.signalingParameters.generateSipSdp(connection.signalingParameters.answerSdp,
599600
connection.signalingParameters.iceCandidates));
601+
connection.state = state.CONNECTED;
600602
}
601603
}
602604
};
@@ -822,8 +824,15 @@ public boolean isIncoming()
822824
public void accept()
823825
{
824826
if (haveConnectivity()) {
825-
DeviceImpl.GetInstance().Accept();
826-
this.state = state.CONNECTED;
827+
// DeviceImpl.GetInstance().Accept(
828+
LinkedList<PeerConnection.IceServer> iceServers = new LinkedList<>();
829+
iceServers.add(new PeerConnection.IceServer("stun:stun.l.google.com:19302", "", ""));
830+
this.signalingParameters = new SignalingParameters(iceServers, false, "", "", "", null, null);
831+
SignalingParameters params = SignalingParameters.extractCandidates(new SessionDescription(SessionDescription.Type.OFFER, incomingCallSdp));
832+
this.signalingParameters.offerSdp = params.offerSdp;
833+
this.signalingParameters.iceCandidates = params.iceCandidates;
834+
835+
startCall(this.signalingParameters);
827836
}
828837
}
829838

restcomm.android.client.sdk/src/main/java/org/mobicents/restcomm/android/client/sdk/RCDevice.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,11 +464,12 @@ public void onSipUAConnectionArrived(SipEvent event) {
464464
incomingConnection = new RCConnection();
465465
incomingConnection.incoming = true;
466466
incomingConnection.state = RCConnection.ConnectionState.CONNECTING;
467+
incomingConnection.incomingCallSdp = event.sdp;
467468
DeviceImpl.GetInstance().sipuaConnectionListener = incomingConnection;
468469

469470
// Important: need to fire the event in UI context cause currently we 're in JAIN SIP thread
470471
final String from = event.from;
471-
final String sdp = event.sdp;
472+
//final String sdp = event.sdp;
472473
Handler mainHandler = new Handler(RCClient.getInstance().context.getMainLooper());
473474
Runnable myRunnable = new Runnable() {
474475
@Override
@@ -478,7 +479,7 @@ public void run() {
478479
Intent dataIntent = new Intent();
479480
dataIntent.setAction(INCOMING_CALL);
480481
dataIntent.putExtra(RCDevice.EXTRA_DID, from);
481-
dataIntent.putExtra(RCDevice.EXTRA_SDP, sdp);
482+
//dataIntent.putExtra(RCDevice.EXTRA_SDP, sdp);
482483
pendingIntent.send(RCClient.getInstance().context, 0, dataIntent);
483484

484485
} catch (PendingIntent.CanceledException e) {

0 commit comments

Comments
 (0)