#16889: Add SipCall as an argument to launchCallActivity
diff --git a/src/com/savoirfairelinux/sflphone/client/CallActivity.java b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
index 925d859..6613a61 100644
--- a/src/com/savoirfairelinux/sflphone/client/CallActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
@@ -32,16 +32,71 @@
 package com.savoirfairelinux.sflphone.client;
 
 import android.app.Activity;
+import android.content.Context;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.ServiceConnection;
 import android.os.Bundle;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
 
 import com.savoirfairelinux.sflphone.R;
+import com.savoirfairelinux.sflphone.client.SipCall;
+import com.savoirfairelinux.sflphone.service.ISipService;
+import com.savoirfairelinux.sflphone.service.SipService;
 
-public class CallActivity extends Activity
+public class CallActivity extends Activity implements OnClickListener 
 {
+    static final String TAG = "CallActivity";
+    private ISipService service;
+    private SipCall mCall;
+
+    public void CallActivity(SipCall call) {
+        mCall = call; 
+    }
+
     @Override
     protected void onCreate(Bundle savedInstanceState)
     {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.call_activity_layout);
+
+        Intent intent = new Intent(this, SipService.class);
+        bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
+
+
+    }
+
+    @Override
+    protected void onDestroy() {
+        stopService(new Intent(this, SipService.class));
+        super.onDestroy();
+    }
+
+    /** Defines callbacks for service binding, passed to bindService() */
+    private ServiceConnection mConnection = new ServiceConnection() {
+        @Override
+        public void onServiceConnected(ComponentName className, IBinder binder) {
+            service = ISipService.Stub.asInterface(binder);
+        }
+
+        @Override
+        public void onServiceDisconnected(ComponentName arg0) {
+        }
+    };
+
+    @Override
+    public void onClick(View view)
+    {
+        if(view.getId() == R.id.buttonhangup) {
+            try {
+                service.hangUp(mCall.mCallInfo.mCallID);
+            } catch (RemoteException e) {
+                Log.e(TAG, "Cannot call service method", e);
+            }
+        }
     }
 }
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHome.java b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHome.java
index 06e1eae..5f43016 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHome.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHome.java
@@ -484,7 +484,8 @@
             Log.e(TAG, "Cannot call service method", e);
         }
         */
-        launchCallActivity();
+        SipCall call = new SipCall();
+        launchCallActivity(call);
     }
 
     public void processingHangUpAction() {
@@ -512,9 +513,11 @@
         buttonCall.setImageResource(R.drawable.ic_call);
     }
 
-    private void launchCallActivity()
+    private void launchCallActivity(SipCall call)
     {
         Log.i(TAG, "Launch Call Activity");
+        Bundle bundle = new Bundle();
+        bundle.putString("CallID", call.mCallInfo.mCallID);
         Intent intent = new Intent().setClass(this, CallActivity.class);
         startActivity(intent);
     }