Add more disconnect causes 2/4

Bug: 15692074
Change-Id: Ib94c33fac8450b70e53dbe12d71f41777e9e140c
diff --git a/src/com/android/telecomm/ConnectionServiceWrapper.java b/src/com/android/telecomm/ConnectionServiceWrapper.java
index 946ecb0..a78f928 100644
--- a/src/com/android/telecomm/ConnectionServiceWrapper.java
+++ b/src/com/android/telecomm/ConnectionServiceWrapper.java
@@ -102,13 +102,10 @@
                         ConnectionRequest request = (ConnectionRequest) args.arg1;
                         int statusCode = args.argi1;
                         String statusMsg = (String) args.arg2;
-                        if (mPendingResponses.containsKey(request.getCallId())) {
-                            mPendingResponses.remove(request.getCallId())
-                                    .handleCreateConnectionFailed(statusCode, statusMsg);
-                            mCallIdMapper.removeCall(request.getCallId());
-                        } else {
-                            //Log.w(this, "handleCreateConnectionFailed, unknown call: %s", callId);
-                        }
+                        removeCall(
+                                mCallIdMapper.getCall(request.getCallId()),
+                                statusCode,
+                                statusMsg);
                     } finally {
                         args.recycle();
                     }
@@ -591,14 +588,14 @@
                 } catch (RemoteException e) {
                     Log.e(this, e, "Failure to createConnection -- %s", getComponentName());
                     mPendingResponses.remove(callId).handleCreateConnectionFailed(
-                            DisconnectCause.ERROR_UNSPECIFIED, e.toString());
+                            DisconnectCause.OUTGOING_FAILURE, e.toString());
                 }
             }
 
             @Override
             public void onFailure() {
                 Log.e(this, new Exception(), "Failure to call %s", getComponentName());
-                response.handleCreateConnectionFailed(DisconnectCause.ERROR_UNSPECIFIED, null);
+                response.handleCreateConnectionFailed(DisconnectCause.OUTGOING_FAILURE, null);
             }
         };
 
@@ -619,7 +616,7 @@
             }
         }
 
-        removeCall(call);
+        removeCall(call, DisconnectCause.LOCAL, null);
     }
 
     /** @see ConnectionService#hold(String) */
@@ -727,9 +724,13 @@
     }
 
     void removeCall(Call call) {
+        removeCall(call, DisconnectCause.ERROR_UNSPECIFIED, null);
+    }
+
+    void removeCall(Call call, int disconnectCause, String disconnectMessage) {
         CreateConnectionResponse response = mPendingResponses.remove(mCallIdMapper.getCallId(call));
         if (response != null) {
-            response.handleCreateConnectionFailed(DisconnectCause.ERROR_UNSPECIFIED, null);
+            response.handleCreateConnectionFailed(disconnectCause, disconnectMessage);
         }
 
         mCallIdMapper.removeCall(call);