Handle ICE state failed

- Handle sending call end on ICE state failed
- Minor fix for startcall function

GitLab: 189
Change-Id: Iae4353614d22b3b6856b58babee7d8feea8c8f82
diff --git a/client/src/components/ConversationListItem.tsx b/client/src/components/ConversationListItem.tsx
index e9e97b8..03685c3 100644
--- a/client/src/components/ConversationListItem.tsx
+++ b/client/src/components/ConversationListItem.tsx
@@ -141,7 +141,7 @@
         Icon: AudioCallIcon,
         onClick: () => {
           if (conversationId) {
-            startCall(conversationId, 'caller');
+            startCall(conversationId);
           }
         },
       },
@@ -150,7 +150,7 @@
         Icon: VideoCallIcon,
         onClick: () => {
           if (conversationId) {
-            startCall(conversationId, 'caller', {
+            startCall(conversationId, {
               isVideoOn: true,
             });
           }
diff --git a/client/src/components/ConversationView.tsx b/client/src/components/ConversationView.tsx
index 146f049..064efcf 100644
--- a/client/src/components/ConversationView.tsx
+++ b/client/src/components/ConversationView.tsx
@@ -83,10 +83,10 @@
         </Typography>
       </Stack>
       <Stack direction="row" spacing="20px">
-        <StartAudioCallButton onClick={() => startCall(conversationId, 'caller')} />
+        <StartAudioCallButton onClick={() => startCall(conversationId)} />
         <StartVideoCallButton
           onClick={() =>
-            startCall(conversationId, 'caller', {
+            startCall(conversationId, {
               isVideoOn: true,
             })
           }
diff --git a/client/src/contexts/CallProvider.tsx b/client/src/contexts/CallProvider.tsx
index f54b75f..8db38e0 100644
--- a/client/src/contexts/CallProvider.tsx
+++ b/client/src/contexts/CallProvider.tsx
@@ -335,8 +335,8 @@
   }, [webSocket, contactUri, conversationId, quitCall]);
 
   useEffect(() => {
-    if (iceConnectionState === 'disconnected') {
-      console.info('ICE connection disconnected');
+    if (iceConnectionState === 'disconnected' || iceConnectionState === 'failed') {
+      console.info('ICE connection disconnected or failed, ending call');
       endCall();
     }
   }, [iceConnectionState, callStatus, setVideoStatus, isVideoOn, endCall]);
diff --git a/client/src/hooks/useStartCall.ts b/client/src/hooks/useStartCall.ts
index 518c2a8..c20a2cc 100644
--- a/client/src/hooks/useStartCall.ts
+++ b/client/src/hooks/useStartCall.ts
@@ -18,18 +18,18 @@
 import { useCallback } from 'react';
 import { useNavigate } from 'react-router-dom';
 
-import { CallRole, CallStatus } from '../contexts/CallProvider';
+import { CallStatus } from '../contexts/CallProvider';
 import { CallRouteParams } from '../router';
 
 export const useStartCall = () => {
   const navigate = useNavigate();
 
   return useCallback(
-    (conversationId: string, role: CallRole = 'caller', state?: Partial<CallRouteParams['state']>) => {
+    (conversationId: string, state?: Partial<CallRouteParams['state']>) => {
       navigate(`/conversation/${conversationId}/call`, {
         state: {
           callStatus: CallStatus.Default,
-          role,
+          role: 'caller',
           ...state,
         },
       });