ПОШЛО НАХУЙ КТО ЭТИ ЗВОВНКИ ДЕЛАЛ

This commit is contained in:
Jganenokk
2026-07-29 19:10:03 +07:00
parent f4f9e22be8
commit 0e51038051
17 changed files with 2562 additions and 217 deletions
+45 -2
View File
@@ -135,6 +135,47 @@ class CallsModule {
);
}
Future<OutgoingCallParams> startGroupCall({bool isVideo = false}) async {
final conversationId = uuidV4();
logger.i('[call] VIDEO_CHAT_START_ACTIVE group conv=$conversationId');
final payload = await _api.sendRequestMap(Opcode.videoChatStartActive, {
'conversationId': conversationId,
'internalParams': _internalParams(),
'isVideo': isVideo,
});
logger.i('[call] VIDEO_CHAT_START_ACTIVE keys=${payload?.keys.toList()}');
if (payload == null) {
throw Exception('startGroupCall: bad response');
}
final parsed = _parseCallerEndpoint(
payload,
'internalCallerParams',
context: 'startGroupCall',
);
return OutgoingCallParams(
conversationId: (payload['conversationId'] as String?) ?? conversationId,
endpoint: parsed.endpoint,
callsUserId: parsed.callsUserId,
peerExternalId: 0,
isVideo: isVideo,
);
}
Future<String?> createJoinLink(String conversationId) async {
if (conversationId.isEmpty) return null;
final payload = await _api.sendRequestMap(Opcode.videoChatCreateJoinLink, {
'conversationId': conversationId,
});
final link = payload?['joinLink'];
return link is String && link.isNotEmpty ? link : null;
}
String _internalParams() => jsonEncode({
'platform': 'ANDROID',
'sdkVersion': '0.1.16.4',
@@ -142,8 +183,8 @@ class CallsModule {
'deviceId': _api.deviceId ?? '',
'protocolVersion': 5,
'onlyAdminCanRecord': false,
'waitForAdmin': false,
'capabilities': '3c03f',
'isWaitForAdminEnabled': false,
'hexCapability': '3c03f',
});
Future<CallLinkPreview?> resolveCallLink(String url) async {
@@ -165,11 +206,13 @@ class CallsModule {
String token, {
bool isVideo = false,
}) async {
logger.i('[call] VIDEO_CHAT_JOIN link=$token isVideo=$isVideo');
final payload = await _api.sendRequestMap(Opcode.videoChatJoinByLink, {
'joinLink': token,
'internalParams': _internalParams(),
'isVideo': isVideo,
});
logger.i('[call] VIDEO_CHAT_JOIN keys=${payload?.keys.toList()}');
if (payload == null) {
throw Exception('joinByLink: bad response');