WebRTC or Opentok

merge-requests/605/head
Zohaib Iqbal Kambrani 3 years ago
parent 8bd5a71318
commit 8c29b5f8e6

@ -26,6 +26,7 @@ class IncomingCallData {
String isCall; String isCall;
String sound; String sound;
String server; String server;
String isWebRTC;
IncomingCallData( IncomingCallData(
{this.msgID, {this.msgID,
@ -80,6 +81,7 @@ class IncomingCallData {
isCall = json['is_call']; isCall = json['is_call'];
sound = json['sound']; sound = json['sound'];
server = json['server']; server = json['server'];
isWebRTC = json['isWebRTC'] ?? "false";
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -109,6 +111,7 @@ class IncomingCallData {
data['is_call'] = this.isCall; data['is_call'] = this.isCall;
data['sound'] = this.sound; data['sound'] = this.sound;
data['server'] = this.server; data['server'] = this.server;
data['isWebRTC'] = this.isWebRTC;
return data; return data;
} }
} }

@ -238,17 +238,20 @@ class _IncomingCallState extends State<IncomingCall> with SingleTickerProviderSt
final caller = widget.incomingCallData.callerID; final caller = widget.incomingCallData.callerID;
final receiver = widget.incomingCallData.receiverID; final receiver = widget.incomingCallData.receiverID;
final host = widget.incomingCallData.server; final host = widget.incomingCallData.server;
return StartVideoCall(caller: caller, receiver: receiver, iAmCaller: false, host: host,); if(widget.incomingCallData.isWebRTC == "true"){
return StartVideoCall(caller: caller, receiver: receiver, iAmCaller: false, host: host);
}else{
return OpenTokConnectCallPage(
apiKey: OPENTOK_API_KEY,
sessionId: widget.incomingCallData.sessionId,
token: widget.incomingCallData.token
);
}
// return VideoCallWebPage(receiverId: widget.incomingCallData.receiverID, callerId: widget.incomingCallData.callerID); // Web WebRTC VideoCall // return VideoCallWebPage(receiverId: widget.incomingCallData.receiverID, callerId: widget.incomingCallData.callerID); // Web WebRTC VideoCall
// return CallHomePage(receiverId: widget.incomingCallData.receiverID, callerId: widget.incomingCallData.callerID); // App WebRTC VideoCall // return CallHomePage(receiverId: widget.incomingCallData.receiverID, callerId: widget.incomingCallData.callerID); // App WebRTC VideoCall
return OpenTokConnectCallPage(
apiKey: OPENTOK_API_KEY,
sessionId: widget.incomingCallData.sessionId,
token: widget.incomingCallData.token
);
}, },
), ),
); );

@ -2,7 +2,7 @@ import 'dart:convert';
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
Future<Map> getTurnCredential(String host, int port) async { Future<Map> getTurnCredential(String host) async {
HttpClient client = HttpClient(context: SecurityContext()); HttpClient client = HttpClient(context: SecurityContext());
client.badCertificateCallback = client.badCertificateCallback =
(X509Certificate cert, String host, int port) { (X509Certificate cert, String host, int port) {

@ -251,7 +251,7 @@ class Signaling {
if (_turnCredential == null) { if (_turnCredential == null) {
try { try {
_turnCredential = await getTurnCredential(_host, 8086); _turnCredential = await getTurnCredential(_host);
/* /*
{ {
"username": "1584195784:mbzrxpgjys", "username": "1584195784:mbzrxpgjys",

@ -1,5 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:ffi';
import 'dart:io'; import 'dart:io';
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
@ -9,6 +10,7 @@ import 'package:diplomaticquarterapp/models/LiveCare/IncomingCallData.dart';
import 'package:diplomaticquarterapp/pages/DrawerPages/notifications/notification_details_page.dart'; import 'package:diplomaticquarterapp/pages/DrawerPages/notifications/notification_details_page.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/pages/livecare/incoming_call.dart'; import 'package:diplomaticquarterapp/pages/livecare/incoming_call.dart';
import 'package:diplomaticquarterapp/pages/videocall-webrtc-rnd/webrtc/start_video_call.dart';
import 'package:diplomaticquarterapp/pages/webRTC/OpenTok/OpenTok.dart'; import 'package:diplomaticquarterapp/pages/webRTC/OpenTok/OpenTok.dart';
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart'; import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
import 'package:diplomaticquarterapp/uitl/app-permissions.dart'; import 'package:diplomaticquarterapp/uitl/app-permissions.dart';
@ -86,8 +88,15 @@ RemoteMessage toFirebaseRemoteMessage(h_push.RemoteMessage message) {
return fire_message; return fire_message;
} }
callPage(String sessionID, String token) async { callPage(String sessionID, String token, String isWebrtc, String callerIdString) async {
await NavigationService.navigateToPage(OpenTokConnectCallPage(apiKey: OPENTOK_API_KEY, sessionId: sessionID, token: token)); if (isWebrtc == "true"){
String caller = callerIdString.split("*")[3];
String receiver = callerIdString.split("*")[4];
String host = callerIdString.split("*")[5];
return StartVideoCall(caller: caller, receiver: receiver, iAmCaller: false, host: host);
}else{
await NavigationService.navigateToPage(OpenTokConnectCallPage(apiKey: OPENTOK_API_KEY, sessionId: sessionID, token: token));
}
} }
_incomingCall(Map data) async { _incomingCall(Map data) async {
@ -192,6 +201,7 @@ class PushNotificationHandler {
String sessionID = callerId.split("*")[0]; String sessionID = callerId.split("*")[0];
String token = callerId.split("*")[1]; String token = callerId.split("*")[1];
String isWebRTC = callerId.split("*")[2];
print("🎈 SessionID: $sessionID"); print("🎈 SessionID: $sessionID");
print("🎈 Token: $token"); print("🎈 Token: $token");
@ -204,7 +214,7 @@ class PushNotificationHandler {
Future.delayed(new Duration(milliseconds: 2000)).then((value) async { Future.delayed(new Duration(milliseconds: 2000)).then((value) async {
print("🎈 Incoming Call!!!"); print("🎈 Incoming Call!!!");
callPage(sessionID, token); callPage(sessionID, token, isWebRTC, callerId);
}); });
// print("🎈 Identity: $identity"); // print("🎈 Identity: $identity");

Loading…
Cancel
Save