feat(relay): ephemeral delivery, call wake-ups and TURN credentials
Protocol and relay groundwork for typing indicators and 1:1 calls. - ContentHint.EPHEMERAL: delivered only to an online recipient, never queued or pushed; the sender gets Receipt.STATUS_DROPPED otherwise. - ContentHint.CALL: a call offer is queued like a normal message, but an offline recipient is woken immediately — a PushKit VoIP push on iOS (priority 10, 45 s expiry) or a short-lived FCM data message on Android. The relay learns that a device is being called, not by whom. - RegisterPush.voip_token stores the iOS VoIP token next to the regular APNs token (migration 0004). - TurnRequest/TurnCredentials: logged-in devices receive time-limited coturn credentials (use-auth-secret REST scheme, HMAC-SHA1), so the TURN server is never an open relay. Configured with SEPOT_TURN_URLS and SEPOT_TURN_SECRET or SEPOT_TURN_SECRET_FILE; without them calls fall back to direct connections and STUN.
This commit is contained in:
+179
-2
@@ -650,10 +650,12 @@ class RegisterPush extends $pb.GeneratedMessage {
|
||||
factory RegisterPush({
|
||||
RegisterPush_Platform? platform,
|
||||
$core.List<$core.int>? endpoint,
|
||||
$core.List<$core.int>? voipToken,
|
||||
}) {
|
||||
final result = create();
|
||||
if (platform != null) result.platform = platform;
|
||||
if (endpoint != null) result.endpoint = endpoint;
|
||||
if (voipToken != null) result.voipToken = voipToken;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -674,6 +676,8 @@ class RegisterPush extends $pb.GeneratedMessage {
|
||||
enumValues: RegisterPush_Platform.values)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'endpoint', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'voipToken', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
@@ -714,6 +718,141 @@ class RegisterPush extends $pb.GeneratedMessage {
|
||||
$core.bool hasEndpoint() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearEndpoint() => $_clearField(2);
|
||||
|
||||
/// iOS: PushKit VoIP token pro příchozí hovory (vedle běžného APNs tokenu
|
||||
/// v `endpoint`). Prázdné = zařízení VoIP push nemá.
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get voipToken => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set voipToken($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasVoipToken() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearVoipToken() => $_clearField(3);
|
||||
}
|
||||
|
||||
/// Dočasné údaje k TURN serveru pro hovory (REST schéma coturnu). Vydává je
|
||||
/// relay jen přihlášenému zařízení, aby TURN nebyl otevřený pro kohokoli.
|
||||
class TurnRequest extends $pb.GeneratedMessage {
|
||||
factory TurnRequest() => create();
|
||||
|
||||
TurnRequest._();
|
||||
|
||||
factory TurnRequest.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory TurnRequest.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'TurnRequest',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'sepot.v1'),
|
||||
createEmptyInstance: create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TurnRequest clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TurnRequest copyWith(void Function(TurnRequest) updates) =>
|
||||
super.copyWith((message) => updates(message as TurnRequest))
|
||||
as TurnRequest;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static TurnRequest create() => TurnRequest._();
|
||||
@$core.override
|
||||
TurnRequest createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static TurnRequest getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<TurnRequest>(create);
|
||||
static TurnRequest? _defaultInstance;
|
||||
}
|
||||
|
||||
class TurnCredentials extends $pb.GeneratedMessage {
|
||||
factory TurnCredentials({
|
||||
$core.Iterable<$core.String>? urls,
|
||||
$core.String? username,
|
||||
$core.String? credential,
|
||||
$core.int? ttlSeconds,
|
||||
}) {
|
||||
final result = create();
|
||||
if (urls != null) result.urls.addAll(urls);
|
||||
if (username != null) result.username = username;
|
||||
if (credential != null) result.credential = credential;
|
||||
if (ttlSeconds != null) result.ttlSeconds = ttlSeconds;
|
||||
return result;
|
||||
}
|
||||
|
||||
TurnCredentials._();
|
||||
|
||||
factory TurnCredentials.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory TurnCredentials.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'TurnCredentials',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'sepot.v1'),
|
||||
createEmptyInstance: create)
|
||||
..pPS(1, _omitFieldNames ? '' : 'urls')
|
||||
..aOS(2, _omitFieldNames ? '' : 'username')
|
||||
..aOS(3, _omitFieldNames ? '' : 'credential')
|
||||
..aI(4, _omitFieldNames ? '' : 'ttlSeconds', fieldType: $pb.PbFieldType.OU3)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TurnCredentials clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TurnCredentials copyWith(void Function(TurnCredentials) updates) =>
|
||||
super.copyWith((message) => updates(message as TurnCredentials))
|
||||
as TurnCredentials;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static TurnCredentials create() => TurnCredentials._();
|
||||
@$core.override
|
||||
TurnCredentials createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static TurnCredentials getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<TurnCredentials>(create);
|
||||
static TurnCredentials? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$pb.PbList<$core.String> get urls => $_getList(0);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.String get username => $_getSZ(1);
|
||||
@$pb.TagNumber(2)
|
||||
set username($core.String value) => $_setString(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasUsername() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearUsername() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.String get credential => $_getSZ(2);
|
||||
@$pb.TagNumber(3)
|
||||
set credential($core.String value) => $_setString(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasCredential() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearCredential() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$core.int get ttlSeconds => $_getIZ(3);
|
||||
@$pb.TagNumber(4)
|
||||
set ttlSeconds($core.int value) => $_setUnsignedInt32(3, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasTtlSeconds() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearTtlSeconds() => $_clearField(4);
|
||||
}
|
||||
|
||||
class SignedPreKey extends $pb.GeneratedMessage {
|
||||
@@ -1137,6 +1276,7 @@ enum ClientFrame_Frame {
|
||||
ack,
|
||||
pong,
|
||||
registerPush,
|
||||
turnRequest,
|
||||
notSet
|
||||
}
|
||||
|
||||
@@ -1148,6 +1288,7 @@ class ClientFrame extends $pb.GeneratedMessage {
|
||||
Ack? ack,
|
||||
Pong? pong,
|
||||
RegisterPush? registerPush,
|
||||
TurnRequest? turnRequest,
|
||||
}) {
|
||||
final result = create();
|
||||
if (auth != null) result.auth = auth;
|
||||
@@ -1156,6 +1297,7 @@ class ClientFrame extends $pb.GeneratedMessage {
|
||||
if (ack != null) result.ack = ack;
|
||||
if (pong != null) result.pong = pong;
|
||||
if (registerPush != null) result.registerPush = registerPush;
|
||||
if (turnRequest != null) result.turnRequest = turnRequest;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1176,13 +1318,14 @@ class ClientFrame extends $pb.GeneratedMessage {
|
||||
4: ClientFrame_Frame.ack,
|
||||
5: ClientFrame_Frame.pong,
|
||||
6: ClientFrame_Frame.registerPush,
|
||||
7: ClientFrame_Frame.turnRequest,
|
||||
0: ClientFrame_Frame.notSet
|
||||
};
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'ClientFrame',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'sepot.v1'),
|
||||
createEmptyInstance: create)
|
||||
..oo(0, [1, 2, 3, 4, 5, 6])
|
||||
..oo(0, [1, 2, 3, 4, 5, 6, 7])
|
||||
..aOM<Auth>(1, _omitFieldNames ? '' : 'auth', subBuilder: Auth.create)
|
||||
..aOM<AuthProof>(2, _omitFieldNames ? '' : 'authProof',
|
||||
subBuilder: AuthProof.create)
|
||||
@@ -1192,6 +1335,8 @@ class ClientFrame extends $pb.GeneratedMessage {
|
||||
..aOM<Pong>(5, _omitFieldNames ? '' : 'pong', subBuilder: Pong.create)
|
||||
..aOM<RegisterPush>(6, _omitFieldNames ? '' : 'registerPush',
|
||||
subBuilder: RegisterPush.create)
|
||||
..aOM<TurnRequest>(7, _omitFieldNames ? '' : 'turnRequest',
|
||||
subBuilder: TurnRequest.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
@@ -1219,6 +1364,7 @@ class ClientFrame extends $pb.GeneratedMessage {
|
||||
@$pb.TagNumber(4)
|
||||
@$pb.TagNumber(5)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(7)
|
||||
ClientFrame_Frame whichFrame() => _ClientFrame_FrameByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
@@ -1226,6 +1372,7 @@ class ClientFrame extends $pb.GeneratedMessage {
|
||||
@$pb.TagNumber(4)
|
||||
@$pb.TagNumber(5)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(7)
|
||||
void clearFrame() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
@@ -1293,6 +1440,17 @@ class ClientFrame extends $pb.GeneratedMessage {
|
||||
void clearRegisterPush() => $_clearField(6);
|
||||
@$pb.TagNumber(6)
|
||||
RegisterPush ensureRegisterPush() => $_ensure(5);
|
||||
|
||||
@$pb.TagNumber(7)
|
||||
TurnRequest get turnRequest => $_getN(6);
|
||||
@$pb.TagNumber(7)
|
||||
set turnRequest(TurnRequest value) => $_setField(7, value);
|
||||
@$pb.TagNumber(7)
|
||||
$core.bool hasTurnRequest() => $_has(6);
|
||||
@$pb.TagNumber(7)
|
||||
void clearTurnRequest() => $_clearField(7);
|
||||
@$pb.TagNumber(7)
|
||||
TurnRequest ensureTurnRequest() => $_ensure(6);
|
||||
}
|
||||
|
||||
enum ServerFrame_Frame {
|
||||
@@ -1303,6 +1461,7 @@ enum ServerFrame_Frame {
|
||||
ping,
|
||||
error,
|
||||
authOk,
|
||||
turnCredentials,
|
||||
notSet
|
||||
}
|
||||
|
||||
@@ -1315,6 +1474,7 @@ class ServerFrame extends $pb.GeneratedMessage {
|
||||
Ping? ping,
|
||||
Error? error,
|
||||
AuthOk? authOk,
|
||||
TurnCredentials? turnCredentials,
|
||||
}) {
|
||||
final result = create();
|
||||
if (challenge != null) result.challenge = challenge;
|
||||
@@ -1324,6 +1484,7 @@ class ServerFrame extends $pb.GeneratedMessage {
|
||||
if (ping != null) result.ping = ping;
|
||||
if (error != null) result.error = error;
|
||||
if (authOk != null) result.authOk = authOk;
|
||||
if (turnCredentials != null) result.turnCredentials = turnCredentials;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1345,13 +1506,14 @@ class ServerFrame extends $pb.GeneratedMessage {
|
||||
5: ServerFrame_Frame.ping,
|
||||
6: ServerFrame_Frame.error,
|
||||
7: ServerFrame_Frame.authOk,
|
||||
8: ServerFrame_Frame.turnCredentials,
|
||||
0: ServerFrame_Frame.notSet
|
||||
};
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'ServerFrame',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'sepot.v1'),
|
||||
createEmptyInstance: create)
|
||||
..oo(0, [1, 2, 3, 4, 5, 6, 7])
|
||||
..oo(0, [1, 2, 3, 4, 5, 6, 7, 8])
|
||||
..aOM<Challenge>(1, _omitFieldNames ? '' : 'challenge',
|
||||
subBuilder: Challenge.create)
|
||||
..aOM<Receipt>(2, _omitFieldNames ? '' : 'receipt',
|
||||
@@ -1363,6 +1525,8 @@ class ServerFrame extends $pb.GeneratedMessage {
|
||||
..aOM<Ping>(5, _omitFieldNames ? '' : 'ping', subBuilder: Ping.create)
|
||||
..aOM<Error>(6, _omitFieldNames ? '' : 'error', subBuilder: Error.create)
|
||||
..aOM<AuthOk>(7, _omitFieldNames ? '' : 'authOk', subBuilder: AuthOk.create)
|
||||
..aOM<TurnCredentials>(8, _omitFieldNames ? '' : 'turnCredentials',
|
||||
subBuilder: TurnCredentials.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
@@ -1391,6 +1555,7 @@ class ServerFrame extends $pb.GeneratedMessage {
|
||||
@$pb.TagNumber(5)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(7)
|
||||
@$pb.TagNumber(8)
|
||||
ServerFrame_Frame whichFrame() => _ServerFrame_FrameByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
@@ -1399,6 +1564,7 @@ class ServerFrame extends $pb.GeneratedMessage {
|
||||
@$pb.TagNumber(5)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(7)
|
||||
@$pb.TagNumber(8)
|
||||
void clearFrame() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
@@ -1477,6 +1643,17 @@ class ServerFrame extends $pb.GeneratedMessage {
|
||||
void clearAuthOk() => $_clearField(7);
|
||||
@$pb.TagNumber(7)
|
||||
AuthOk ensureAuthOk() => $_ensure(6);
|
||||
|
||||
@$pb.TagNumber(8)
|
||||
TurnCredentials get turnCredentials => $_getN(7);
|
||||
@$pb.TagNumber(8)
|
||||
set turnCredentials(TurnCredentials value) => $_setField(8, value);
|
||||
@$pb.TagNumber(8)
|
||||
$core.bool hasTurnCredentials() => $_has(7);
|
||||
@$pb.TagNumber(8)
|
||||
void clearTurnCredentials() => $_clearField(8);
|
||||
@$pb.TagNumber(8)
|
||||
TurnCredentials ensureTurnCredentials() => $_ensure(7);
|
||||
}
|
||||
|
||||
const $core.bool _omitFieldNames =
|
||||
|
||||
@@ -22,14 +22,27 @@ class ContentHint extends $pb.ProtobufEnum {
|
||||
static const ContentHint CONTENT_HINT_SUPPLEMENTARY =
|
||||
ContentHint._(2, _omitEnumNames ? '' : 'CONTENT_HINT_SUPPLEMENTARY');
|
||||
|
||||
/// Jen živé doručení (např. „píše…“): offline příjemci se neukládá do
|
||||
/// fronty ani nebudí pushem — zastaralá by po vyzvednutí jen mátla.
|
||||
static const ContentHint CONTENT_HINT_EPHEMERAL =
|
||||
ContentHint._(3, _omitEnumNames ? '' : 'CONTENT_HINT_EPHEMERAL');
|
||||
|
||||
/// Nabídka hovoru: ukládá se jako běžná zpráva, ale offline příjemce se
|
||||
/// budí VoIP pushem (iOS) nebo FCM s krátkou platností — zvonit má hned.
|
||||
/// Relay se tím dozví, že zařízení někdo volá; kdo, dál neví.
|
||||
static const ContentHint CONTENT_HINT_CALL =
|
||||
ContentHint._(4, _omitEnumNames ? '' : 'CONTENT_HINT_CALL');
|
||||
|
||||
static const $core.List<ContentHint> values = <ContentHint>[
|
||||
CONTENT_HINT_DEFAULT,
|
||||
CONTENT_HINT_RESYNC,
|
||||
CONTENT_HINT_SUPPLEMENTARY,
|
||||
CONTENT_HINT_EPHEMERAL,
|
||||
CONTENT_HINT_CALL,
|
||||
];
|
||||
|
||||
static final $core.List<ContentHint?> _byValue =
|
||||
$pb.ProtobufEnum.$_initByValueList(values, 2);
|
||||
$pb.ProtobufEnum.$_initByValueList(values, 4);
|
||||
static ContentHint? valueOf($core.int value) =>
|
||||
value < 0 || value >= _byValue.length ? null : _byValue[value];
|
||||
|
||||
@@ -43,15 +56,18 @@ class Receipt_Status extends $pb.ProtobufEnum {
|
||||
Receipt_Status._(1, _omitEnumNames ? '' : 'STATUS_DELIVERED_ONLINE');
|
||||
static const Receipt_Status STATUS_STORED_OFFLINE =
|
||||
Receipt_Status._(2, _omitEnumNames ? '' : 'STATUS_STORED_OFFLINE');
|
||||
static const Receipt_Status STATUS_DROPPED =
|
||||
Receipt_Status._(3, _omitEnumNames ? '' : 'STATUS_DROPPED');
|
||||
|
||||
static const $core.List<Receipt_Status> values = <Receipt_Status>[
|
||||
STATUS_QUEUED,
|
||||
STATUS_DELIVERED_ONLINE,
|
||||
STATUS_STORED_OFFLINE,
|
||||
STATUS_DROPPED,
|
||||
];
|
||||
|
||||
static final $core.List<Receipt_Status?> _byValue =
|
||||
$pb.ProtobufEnum.$_initByValueList(values, 2);
|
||||
$pb.ProtobufEnum.$_initByValueList(values, 3);
|
||||
static Receipt_Status? valueOf($core.int value) =>
|
||||
value < 0 || value >= _byValue.length ? null : _byValue[value];
|
||||
|
||||
|
||||
@@ -22,13 +22,16 @@ const ContentHint$json = {
|
||||
{'1': 'CONTENT_HINT_DEFAULT', '2': 0},
|
||||
{'1': 'CONTENT_HINT_RESYNC', '2': 1},
|
||||
{'1': 'CONTENT_HINT_SUPPLEMENTARY', '2': 2},
|
||||
{'1': 'CONTENT_HINT_EPHEMERAL', '2': 3},
|
||||
{'1': 'CONTENT_HINT_CALL', '2': 4},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `ContentHint`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
||||
final $typed_data.Uint8List contentHintDescriptor = $convert.base64Decode(
|
||||
'CgtDb250ZW50SGludBIYChRDT05URU5UX0hJTlRfREVGQVVMVBAAEhcKE0NPTlRFTlRfSElOVF'
|
||||
'9SRVNZTkMQARIeChpDT05URU5UX0hJTlRfU1VQUExFTUVOVEFSWRAC');
|
||||
'9SRVNZTkMQARIeChpDT05URU5UX0hJTlRfU1VQUExFTUVOVEFSWRACEhoKFkNPTlRFTlRfSElO'
|
||||
'VF9FUEhFTUVSQUwQAxIVChFDT05URU5UX0hJTlRfQ0FMTBAE');
|
||||
|
||||
@$core.Deprecated('Use envelopeDescriptor instead')
|
||||
const Envelope$json = {
|
||||
@@ -90,15 +93,16 @@ const Receipt_Status$json = {
|
||||
{'1': 'STATUS_QUEUED', '2': 0},
|
||||
{'1': 'STATUS_DELIVERED_ONLINE', '2': 1},
|
||||
{'1': 'STATUS_STORED_OFFLINE', '2': 2},
|
||||
{'1': 'STATUS_DROPPED', '2': 3},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `Receipt`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List receiptDescriptor = $convert.base64Decode(
|
||||
'CgdSZWNlaXB0EhkKCG1zZ191dWlkGAEgASgMUgdtc2dVdWlkEjAKBnN0YXR1cxgCIAEoDjIYLn'
|
||||
'NlcG90LnYxLlJlY2VpcHQuU3RhdHVzUgZzdGF0dXMiUwoGU3RhdHVzEhEKDVNUQVRVU19RVUVV'
|
||||
'NlcG90LnYxLlJlY2VpcHQuU3RhdHVzUgZzdGF0dXMiZwoGU3RhdHVzEhEKDVNUQVRVU19RVUVV'
|
||||
'RUQQABIbChdTVEFUVVNfREVMSVZFUkVEX09OTElORRABEhkKFVNUQVRVU19TVE9SRURfT0ZGTE'
|
||||
'lORRAC');
|
||||
'lORRACEhIKDlNUQVRVU19EUk9QUEVEEAM=');
|
||||
|
||||
@$core.Deprecated('Use authDescriptor instead')
|
||||
const Auth$json = {
|
||||
@@ -201,6 +205,7 @@ const RegisterPush$json = {
|
||||
'10': 'platform'
|
||||
},
|
||||
{'1': 'endpoint', '3': 2, '4': 1, '5': 12, '10': 'endpoint'},
|
||||
{'1': 'voip_token', '3': 3, '4': 1, '5': 12, '10': 'voipToken'},
|
||||
],
|
||||
'4': [RegisterPush_Platform$json],
|
||||
};
|
||||
@@ -220,9 +225,36 @@ const RegisterPush_Platform$json = {
|
||||
/// Descriptor for `RegisterPush`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List registerPushDescriptor = $convert.base64Decode(
|
||||
'CgxSZWdpc3RlclB1c2gSOwoIcGxhdGZvcm0YASABKA4yHy5zZXBvdC52MS5SZWdpc3RlclB1c2'
|
||||
'guUGxhdGZvcm1SCHBsYXRmb3JtEhoKCGVuZHBvaW50GAIgASgMUghlbmRwb2ludCJyCghQbGF0'
|
||||
'Zm9ybRIRCg1QTEFURk9STV9OT05FEAASEAoMUExBVEZPUk1fRkNNEAESEQoNUExBVEZPUk1fQV'
|
||||
'BOUxACEhgKFFBMQVRGT1JNX1VOSUZJRURQVVNIEAMSFAoQUExBVEZPUk1fV0VCUFVTSBAE');
|
||||
'guUGxhdGZvcm1SCHBsYXRmb3JtEhoKCGVuZHBvaW50GAIgASgMUghlbmRwb2ludBIdCgp2b2lw'
|
||||
'X3Rva2VuGAMgASgMUgl2b2lwVG9rZW4icgoIUGxhdGZvcm0SEQoNUExBVEZPUk1fTk9ORRAAEh'
|
||||
'AKDFBMQVRGT1JNX0ZDTRABEhEKDVBMQVRGT1JNX0FQTlMQAhIYChRQTEFURk9STV9VTklGSUVE'
|
||||
'UFVTSBADEhQKEFBMQVRGT1JNX1dFQlBVU0gQBA==');
|
||||
|
||||
@$core.Deprecated('Use turnRequestDescriptor instead')
|
||||
const TurnRequest$json = {
|
||||
'1': 'TurnRequest',
|
||||
};
|
||||
|
||||
/// Descriptor for `TurnRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List turnRequestDescriptor =
|
||||
$convert.base64Decode('CgtUdXJuUmVxdWVzdA==');
|
||||
|
||||
@$core.Deprecated('Use turnCredentialsDescriptor instead')
|
||||
const TurnCredentials$json = {
|
||||
'1': 'TurnCredentials',
|
||||
'2': [
|
||||
{'1': 'urls', '3': 1, '4': 3, '5': 9, '10': 'urls'},
|
||||
{'1': 'username', '3': 2, '4': 1, '5': 9, '10': 'username'},
|
||||
{'1': 'credential', '3': 3, '4': 1, '5': 9, '10': 'credential'},
|
||||
{'1': 'ttl_seconds', '3': 4, '4': 1, '5': 13, '10': 'ttlSeconds'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `TurnCredentials`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List turnCredentialsDescriptor = $convert.base64Decode(
|
||||
'Cg9UdXJuQ3JlZGVudGlhbHMSEgoEdXJscxgBIAMoCVIEdXJscxIaCgh1c2VybmFtZRgCIAEoCV'
|
||||
'IIdXNlcm5hbWUSHgoKY3JlZGVudGlhbBgDIAEoCVIKY3JlZGVudGlhbBIfCgt0dGxfc2Vjb25k'
|
||||
'cxgEIAEoDVIKdHRsU2Vjb25kcw==');
|
||||
|
||||
@$core.Deprecated('Use signedPreKeyDescriptor instead')
|
||||
const SignedPreKey$json = {
|
||||
@@ -391,6 +423,15 @@ const ClientFrame$json = {
|
||||
'9': 0,
|
||||
'10': 'registerPush'
|
||||
},
|
||||
{
|
||||
'1': 'turn_request',
|
||||
'3': 7,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.sepot.v1.TurnRequest',
|
||||
'9': 0,
|
||||
'10': 'turnRequest'
|
||||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': 'frame'},
|
||||
@@ -404,7 +445,8 @@ final $typed_data.Uint8List clientFrameDescriptor = $convert.base64Decode(
|
||||
'dmVsb3BlGAMgASgLMhIuc2Vwb3QudjEuRW52ZWxvcGVIAFIIZW52ZWxvcGUSIQoDYWNrGAQgAS'
|
||||
'gLMg0uc2Vwb3QudjEuQWNrSABSA2FjaxIkCgRwb25nGAUgASgLMg4uc2Vwb3QudjEuUG9uZ0gA'
|
||||
'UgRwb25nEj0KDXJlZ2lzdGVyX3B1c2gYBiABKAsyFi5zZXBvdC52MS5SZWdpc3RlclB1c2hIAF'
|
||||
'IMcmVnaXN0ZXJQdXNoQgcKBWZyYW1l');
|
||||
'IMcmVnaXN0ZXJQdXNoEjoKDHR1cm5fcmVxdWVzdBgHIAEoCzIVLnNlcG90LnYxLlR1cm5SZXF1'
|
||||
'ZXN0SABSC3R1cm5SZXF1ZXN0QgcKBWZyYW1l');
|
||||
|
||||
@$core.Deprecated('Use serverFrameDescriptor instead')
|
||||
const ServerFrame$json = {
|
||||
@@ -473,6 +515,15 @@ const ServerFrame$json = {
|
||||
'9': 0,
|
||||
'10': 'authOk'
|
||||
},
|
||||
{
|
||||
'1': 'turn_credentials',
|
||||
'3': 8,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.sepot.v1.TurnCredentials',
|
||||
'9': 0,
|
||||
'10': 'turnCredentials'
|
||||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': 'frame'},
|
||||
@@ -487,4 +538,5 @@ final $typed_data.Uint8List serverFrameDescriptor = $convert.base64Decode(
|
||||
'Jla2V5c19sb3cYBCABKAsyFC5zZXBvdC52MS5QcmVrZXlzTG93SABSCnByZWtleXNMb3cSJAoE'
|
||||
'cGluZxgFIAEoCzIOLnNlcG90LnYxLlBpbmdIAFIEcGluZxInCgVlcnJvchgGIAEoCzIPLnNlcG'
|
||||
'90LnYxLkVycm9ySABSBWVycm9yEisKB2F1dGhfb2sYByABKAsyEC5zZXBvdC52MS5BdXRoT2tI'
|
||||
'AFIGYXV0aE9rQgcKBWZyYW1l');
|
||||
'AFIGYXV0aE9rEkYKEHR1cm5fY3JlZGVudGlhbHMYCCABKAsyGS5zZXBvdC52MS5UdXJuQ3JlZG'
|
||||
'VudGlhbHNIAFIPdHVybkNyZWRlbnRpYWxzQgcKBWZyYW1l');
|
||||
|
||||
Reference in New Issue
Block a user