engage-engine 1.230.90700001 → 1.232.90720001
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engage.cpp +11 -0
- package/include/ConfigurationObjects.h +248 -32
- package/include/EngageInterface.h +16 -1
- package/lib/darwin.x64/libengage-shared.dylib +0 -0
- package/lib/linux.x64/libengage-shared.so +0 -0
- package/lib/win32.ia32/engage-shared.dll +0 -0
- package/lib/win32.ia32/engage-shared.lib +0 -0
- package/lib/win32.x64/engage-shared.dll +0 -0
- package/lib/win32.x64/engage-shared.lib +0 -0
- package/package.json +1 -1
package/engage.cpp
CHANGED
|
@@ -575,9 +575,11 @@ NAN_METHOD(on)
|
|
|
575
575
|
//--------------------------------------------------------
|
|
576
576
|
NAN_METHOD(initialize)
|
|
577
577
|
{
|
|
578
|
+
/*
|
|
578
579
|
#if defined(WIN32)
|
|
579
580
|
engageWin32LibraryInit();
|
|
580
581
|
#endif
|
|
582
|
+
*/
|
|
581
583
|
|
|
582
584
|
memset(&g_eventCallbacks, 0, sizeof(g_eventCallbacks));
|
|
583
585
|
|
|
@@ -707,9 +709,11 @@ NAN_METHOD(shutdown)
|
|
|
707
709
|
{
|
|
708
710
|
NANRETI(engageShutdown());
|
|
709
711
|
|
|
712
|
+
/*
|
|
710
713
|
#if defined(WIN32)
|
|
711
714
|
engageWin32LibraryDeinit();
|
|
712
715
|
#endif
|
|
716
|
+
*/
|
|
713
717
|
}
|
|
714
718
|
|
|
715
719
|
//--------------------------------------------------------
|
|
@@ -1137,6 +1141,12 @@ NAN_METHOD(isCryptoFipsValidated)
|
|
|
1137
1141
|
NANRETI(engageIsCryptoFipsValidated());
|
|
1138
1142
|
}
|
|
1139
1143
|
|
|
1144
|
+
//--------------------------------------------------------
|
|
1145
|
+
NAN_METHOD(setCertStore)
|
|
1146
|
+
{
|
|
1147
|
+
NANRETI(engageSetCertStore((uint8_t*) node::Buffer::Data(info[0]), INTVAL(1), STRVAL(2)));
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1140
1150
|
//--------------------------------------------------------
|
|
1141
1151
|
NAN_MODULE_INIT(Init)
|
|
1142
1152
|
{
|
|
@@ -1189,6 +1199,7 @@ NAN_MODULE_INIT(Init)
|
|
|
1189
1199
|
|
|
1190
1200
|
ENGAGE_BINDING(openCertStore);
|
|
1191
1201
|
ENGAGE_BINDING(closeCertStore);
|
|
1202
|
+
ENGAGE_BINDING(setCertStore);
|
|
1192
1203
|
ENGAGE_BINDING(setCertStoreCertificatePem);
|
|
1193
1204
|
ENGAGE_BINDING(setCertStoreCertificateP12);
|
|
1194
1205
|
ENGAGE_BINDING(deleteCertStoreCertificate);
|
|
@@ -2510,7 +2510,7 @@ namespace AppConfigurationObjects
|
|
|
2510
2510
|
{
|
|
2511
2511
|
char buff[2048];
|
|
2512
2512
|
|
|
2513
|
-
|
|
2513
|
+
snprintf(buff, sizeof(buff), "deviceId=%d, name=%s, manufacturer=%s, model=%s, hardwareId=%s, serialNumber=%s, type=%s, extra=%s",
|
|
2514
2514
|
deviceId,
|
|
2515
2515
|
name.c_str(),
|
|
2516
2516
|
manufacturer.c_str(),
|
|
@@ -3034,7 +3034,7 @@ namespace AppConfigurationObjects
|
|
|
3034
3034
|
{
|
|
3035
3035
|
char buff[2048];
|
|
3036
3036
|
|
|
3037
|
-
|
|
3037
|
+
snprintf(buff, sizeof(buff), "deviceId=%d, samplingRate=%d, channels=%d, direction=%d, boostPercentage=%d, isAdad=%d, name=%s, manufacturer=%s, model=%s, hardwareId=%s, serialNumber=%s, isDefault=%d, type=%s, present=%d, extra=%s",
|
|
3038
3038
|
deviceId,
|
|
3039
3039
|
samplingRate,
|
|
3040
3040
|
channels,
|
|
@@ -4031,6 +4031,70 @@ namespace AppConfigurationObjects
|
|
|
4031
4031
|
getOptional<int>("count", p.count, j, 5);
|
|
4032
4032
|
}
|
|
4033
4033
|
|
|
4034
|
+
//-----------------------------------------------------------
|
|
4035
|
+
JSON_SERIALIZED_CLASS(Source)
|
|
4036
|
+
/**
|
|
4037
|
+
* @brief Options for Source
|
|
4038
|
+
*
|
|
4039
|
+
* Helper C++ class to serialize and de-serialize Source JSON
|
|
4040
|
+
*
|
|
4041
|
+
* TODO: Complete this Class
|
|
4042
|
+
*
|
|
4043
|
+
* Example: @include[doc] examples/Source.json
|
|
4044
|
+
*
|
|
4045
|
+
* @see Group
|
|
4046
|
+
*/
|
|
4047
|
+
class Source : public ConfigurationObjectBase
|
|
4048
|
+
{
|
|
4049
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
4050
|
+
IMPLEMENT_JSON_DOCUMENTATION(Source)
|
|
4051
|
+
|
|
4052
|
+
public:
|
|
4053
|
+
/** @brief [Optional] A node ID */
|
|
4054
|
+
std::string nodeId;
|
|
4055
|
+
|
|
4056
|
+
/* NOTE: Not serialized ! */
|
|
4057
|
+
uint8_t _internal_binary_nodeId[MAX_NODE_ID_SIZE];
|
|
4058
|
+
|
|
4059
|
+
/** @brief [Optional] An alias */
|
|
4060
|
+
std::string alias;
|
|
4061
|
+
|
|
4062
|
+
/* NOTE: Not serialized ! */
|
|
4063
|
+
uint8_t _internal_binary_alias[MAX_ALIAS_SIZE];
|
|
4064
|
+
|
|
4065
|
+
Source()
|
|
4066
|
+
{
|
|
4067
|
+
clear();
|
|
4068
|
+
}
|
|
4069
|
+
|
|
4070
|
+
void clear()
|
|
4071
|
+
{
|
|
4072
|
+
nodeId.clear();
|
|
4073
|
+
memset(_internal_binary_nodeId, 0, sizeof(_internal_binary_nodeId));
|
|
4074
|
+
|
|
4075
|
+
alias.clear();
|
|
4076
|
+
memset(_internal_binary_alias, 0, sizeof(_internal_binary_alias));
|
|
4077
|
+
}
|
|
4078
|
+
|
|
4079
|
+
virtual void initForDocumenting()
|
|
4080
|
+
{
|
|
4081
|
+
}
|
|
4082
|
+
};
|
|
4083
|
+
|
|
4084
|
+
static void to_json(nlohmann::json& j, const Source& p)
|
|
4085
|
+
{
|
|
4086
|
+
j = nlohmann::json{
|
|
4087
|
+
TOJSON_IMPL(nodeId),
|
|
4088
|
+
TOJSON_IMPL(alias)
|
|
4089
|
+
};
|
|
4090
|
+
}
|
|
4091
|
+
static void from_json(const nlohmann::json& j, Source& p)
|
|
4092
|
+
{
|
|
4093
|
+
p.clear();
|
|
4094
|
+
FROMJSON_IMPL_SIMPLE(nodeId);
|
|
4095
|
+
FROMJSON_IMPL_SIMPLE(alias);
|
|
4096
|
+
}
|
|
4097
|
+
|
|
4034
4098
|
//-----------------------------------------------------------
|
|
4035
4099
|
JSON_SERIALIZED_CLASS(Group)
|
|
4036
4100
|
/**
|
|
@@ -4076,7 +4140,10 @@ namespace AppConfigurationObjects
|
|
|
4076
4140
|
bomPayloadTransformation = 1,
|
|
4077
4141
|
|
|
4078
4142
|
/** @brief Audio payloads are mixed - output is anonymous (i.e. no metadata) if if the target group(s) allow header extensions */
|
|
4079
|
-
bomAnonymousMixing = 2
|
|
4143
|
+
bomAnonymousMixing = 2,
|
|
4144
|
+
|
|
4145
|
+
/** @brief The bridge performs language translations between groups */
|
|
4146
|
+
bomLanguageTranslation = 3
|
|
4080
4147
|
} BridgingOpMode_t;
|
|
4081
4148
|
|
|
4082
4149
|
/** @brief Specifies the group type (see @ref Type_t). */
|
|
@@ -4096,6 +4163,9 @@ namespace AppConfigurationObjects
|
|
|
4096
4163
|
/** @brief The human readable name for the group. */
|
|
4097
4164
|
std::string name;
|
|
4098
4165
|
|
|
4166
|
+
/** @brief The group name as spoken - typically by a text-to-speech system */
|
|
4167
|
+
std::string spokenName;
|
|
4168
|
+
|
|
4099
4169
|
/** @brief The name of the network interface to use for multicasting for this group. If not provided, the Engine's default multicast NIC is used. */
|
|
4100
4170
|
std::string interfaceName;
|
|
4101
4171
|
|
|
@@ -4220,6 +4290,13 @@ namespace AppConfigurationObjects
|
|
|
4220
4290
|
/** @brief [Optional, Default: 0] The security classification level of the group. */
|
|
4221
4291
|
uint32_t securityLevel;
|
|
4222
4292
|
|
|
4293
|
+
/** @brief [Optional] List of sources to ignore for this group */
|
|
4294
|
+
std::vector<Source> ignoreSources;
|
|
4295
|
+
|
|
4296
|
+
/** @brief ISO 639-2 lanuguage code for the group */
|
|
4297
|
+
std::string languageCode;
|
|
4298
|
+
|
|
4299
|
+
|
|
4223
4300
|
Group()
|
|
4224
4301
|
{
|
|
4225
4302
|
clear();
|
|
@@ -4231,6 +4308,7 @@ namespace AppConfigurationObjects
|
|
|
4231
4308
|
bom = bomRaw;
|
|
4232
4309
|
id.clear();
|
|
4233
4310
|
name.clear();
|
|
4311
|
+
spokenName.clear();
|
|
4234
4312
|
interfaceName.clear();
|
|
4235
4313
|
rx.clear();
|
|
4236
4314
|
tx.clear();
|
|
@@ -4287,6 +4365,10 @@ namespace AppConfigurationObjects
|
|
|
4287
4365
|
specializerAffinities.clear();
|
|
4288
4366
|
|
|
4289
4367
|
securityLevel = 0;
|
|
4368
|
+
|
|
4369
|
+
ignoreSources.clear();
|
|
4370
|
+
|
|
4371
|
+
languageCode.clear();
|
|
4290
4372
|
}
|
|
4291
4373
|
};
|
|
4292
4374
|
|
|
@@ -4297,6 +4379,7 @@ namespace AppConfigurationObjects
|
|
|
4297
4379
|
TOJSON_IMPL(bom),
|
|
4298
4380
|
TOJSON_IMPL(id),
|
|
4299
4381
|
TOJSON_IMPL(name),
|
|
4382
|
+
TOJSON_IMPL(spokenName),
|
|
4300
4383
|
TOJSON_IMPL(interfaceName),
|
|
4301
4384
|
TOJSON_IMPL(rx),
|
|
4302
4385
|
TOJSON_IMPL(tx),
|
|
@@ -4339,7 +4422,11 @@ namespace AppConfigurationObjects
|
|
|
4339
4422
|
|
|
4340
4423
|
TOJSON_IMPL(specializerAffinities),
|
|
4341
4424
|
|
|
4342
|
-
TOJSON_IMPL(securityLevel)
|
|
4425
|
+
TOJSON_IMPL(securityLevel),
|
|
4426
|
+
|
|
4427
|
+
TOJSON_IMPL(ignoreSources),
|
|
4428
|
+
|
|
4429
|
+
TOJSON_IMPL(languageCode)
|
|
4343
4430
|
};
|
|
4344
4431
|
|
|
4345
4432
|
// TODO: need a better way to indicate whether rtpProfile is present
|
|
@@ -4373,6 +4460,7 @@ namespace AppConfigurationObjects
|
|
|
4373
4460
|
getOptional<Group::BridgingOpMode_t>("bom", p.bom, j, Group::BridgingOpMode_t::bomRaw);
|
|
4374
4461
|
j.at("id").get_to(p.id);
|
|
4375
4462
|
getOptional<std::string>("name", p.name, j);
|
|
4463
|
+
getOptional<std::string>("spokenName", p.spokenName, j);
|
|
4376
4464
|
getOptional<std::string>("interfaceName", p.interfaceName, j);
|
|
4377
4465
|
getOptional<NetworkAddress>("rx", p.rx, j);
|
|
4378
4466
|
getOptional<NetworkAddress>("tx", p.tx, j);
|
|
@@ -4410,6 +4498,8 @@ namespace AppConfigurationObjects
|
|
|
4410
4498
|
getOptional<TransportImpairment>("rxImpairment", p.rxImpairment, j);
|
|
4411
4499
|
getOptional<std::vector<uint16_t>>("specializerAffinities", p.specializerAffinities, j);
|
|
4412
4500
|
getOptional<uint32_t>("securityLevel", p.securityLevel, j, 0);
|
|
4501
|
+
getOptional<std::vector<Source>>("ignoreSources", p.ignoreSources, j);
|
|
4502
|
+
getOptional<std::string>("languageCode", p.languageCode, j);
|
|
4413
4503
|
}
|
|
4414
4504
|
|
|
4415
4505
|
|
|
@@ -4651,9 +4741,6 @@ namespace AppConfigurationObjects
|
|
|
4651
4741
|
/** @brief [Optional, false] Enables UDP streaming if the RP supports it */
|
|
4652
4742
|
bool enabled;
|
|
4653
4743
|
|
|
4654
|
-
/** @brief [Optional, false] Allows for clear-packet streaming */
|
|
4655
|
-
bool allowClear;
|
|
4656
|
-
|
|
4657
4744
|
/** @brief [Optional, EnginePolicyNetworking::defaultNic] Name of NIC to bind to - uses Engine defaultNic if empty */
|
|
4658
4745
|
std::string nic;
|
|
4659
4746
|
|
|
@@ -4677,7 +4764,6 @@ namespace AppConfigurationObjects
|
|
|
4677
4764
|
void clear()
|
|
4678
4765
|
{
|
|
4679
4766
|
enabled = false;
|
|
4680
|
-
allowClear = false;
|
|
4681
4767
|
nic.clear();
|
|
4682
4768
|
keepAliveIntervalSecs = 10;
|
|
4683
4769
|
priority = NetworkTxOptions::priVoice;
|
|
@@ -4693,7 +4779,6 @@ namespace AppConfigurationObjects
|
|
|
4693
4779
|
{
|
|
4694
4780
|
j = nlohmann::json{
|
|
4695
4781
|
TOJSON_IMPL(enabled),
|
|
4696
|
-
TOJSON_IMPL(allowClear),
|
|
4697
4782
|
TOJSON_IMPL(nic),
|
|
4698
4783
|
TOJSON_IMPL(port),
|
|
4699
4784
|
TOJSON_IMPL(keepAliveIntervalSecs),
|
|
@@ -4705,7 +4790,6 @@ namespace AppConfigurationObjects
|
|
|
4705
4790
|
{
|
|
4706
4791
|
p.clear();
|
|
4707
4792
|
getOptional<bool>("enabled", p.enabled, j, false);
|
|
4708
|
-
getOptional<bool>("allowClear", p.allowClear, j, false);
|
|
4709
4793
|
getOptional<std::string>("nic", p.nic, j, EMPTY_STRING);
|
|
4710
4794
|
getOptional<int>("port", p.port, j, 0);
|
|
4711
4795
|
getOptional<int>("keepAliveIntervalSecs", p.keepAliveIntervalSecs, j, 10);
|
|
@@ -6493,12 +6577,6 @@ namespace AppConfigurationObjects
|
|
|
6493
6577
|
/** @brief Database settings */
|
|
6494
6578
|
EnginePolicyDatabase database;
|
|
6495
6579
|
|
|
6496
|
-
/** @brief Path to the certificate store */
|
|
6497
|
-
std::string certStoreFileName;
|
|
6498
|
-
|
|
6499
|
-
/** @brief Hex password for the certificate store (if any) */
|
|
6500
|
-
std::string certStorePasswordHex;
|
|
6501
|
-
|
|
6502
6580
|
/** @brief Optional feature set */
|
|
6503
6581
|
Featureset featureset;
|
|
6504
6582
|
|
|
@@ -6528,8 +6606,6 @@ namespace AppConfigurationObjects
|
|
|
6528
6606
|
internals.clear();
|
|
6529
6607
|
timelines.clear();
|
|
6530
6608
|
database.clear();
|
|
6531
|
-
certStoreFileName.clear();
|
|
6532
|
-
certStorePasswordHex.clear();
|
|
6533
6609
|
featureset.clear();
|
|
6534
6610
|
namedAudioDevices.clear();
|
|
6535
6611
|
externalCodecs.clear();
|
|
@@ -6550,8 +6626,6 @@ namespace AppConfigurationObjects
|
|
|
6550
6626
|
TOJSON_IMPL(internals),
|
|
6551
6627
|
TOJSON_IMPL(timelines),
|
|
6552
6628
|
TOJSON_IMPL(database),
|
|
6553
|
-
TOJSON_IMPL(certStoreFileName),
|
|
6554
|
-
TOJSON_IMPL(certStorePasswordHex),
|
|
6555
6629
|
TOJSON_IMPL(featureset),
|
|
6556
6630
|
TOJSON_IMPL(namedAudioDevices),
|
|
6557
6631
|
TOJSON_IMPL(externalCodecs),
|
|
@@ -6571,8 +6645,6 @@ namespace AppConfigurationObjects
|
|
|
6571
6645
|
FROMJSON_IMPL_SIMPLE(internals);
|
|
6572
6646
|
FROMJSON_IMPL_SIMPLE(timelines);
|
|
6573
6647
|
FROMJSON_IMPL_SIMPLE(database);
|
|
6574
|
-
FROMJSON_IMPL_SIMPLE(certStoreFileName);
|
|
6575
|
-
FROMJSON_IMPL_SIMPLE(certStorePasswordHex);
|
|
6576
6648
|
FROMJSON_IMPL_SIMPLE(featureset);
|
|
6577
6649
|
FROMJSON_IMPL_SIMPLE(namedAudioDevices);
|
|
6578
6650
|
FROMJSON_IMPL_SIMPLE(externalCodecs);
|
|
@@ -7046,6 +7118,59 @@ namespace AppConfigurationObjects
|
|
|
7046
7118
|
getOptional<std::string>("runCmd", p.runCmd, j);
|
|
7047
7119
|
}
|
|
7048
7120
|
|
|
7121
|
+
|
|
7122
|
+
//-----------------------------------------------------------
|
|
7123
|
+
JSON_SERIALIZED_CLASS(RallypointServerRouteMap)
|
|
7124
|
+
class RallypointServerRouteMap : public ConfigurationObjectBase
|
|
7125
|
+
{
|
|
7126
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
7127
|
+
IMPLEMENT_JSON_DOCUMENTATION(RallypointServerRouteMap)
|
|
7128
|
+
|
|
7129
|
+
public:
|
|
7130
|
+
/** File name to use for the route map report. */
|
|
7131
|
+
std::string fileName;
|
|
7132
|
+
|
|
7133
|
+
/** [Optional, Default: 5] Minimum update time for updates. */
|
|
7134
|
+
int minRefreshSecs;
|
|
7135
|
+
|
|
7136
|
+
/** [Optional, Default: false] Indicates if reporting is enabled. */
|
|
7137
|
+
bool enabled;
|
|
7138
|
+
|
|
7139
|
+
/** [Optional, Default: null] Command to be executed every time the report is produced. */
|
|
7140
|
+
std::string runCmd;
|
|
7141
|
+
|
|
7142
|
+
RallypointServerRouteMap()
|
|
7143
|
+
{
|
|
7144
|
+
clear();
|
|
7145
|
+
}
|
|
7146
|
+
|
|
7147
|
+
void clear()
|
|
7148
|
+
{
|
|
7149
|
+
fileName.clear();
|
|
7150
|
+
minRefreshSecs = 5;
|
|
7151
|
+
enabled = false;
|
|
7152
|
+
}
|
|
7153
|
+
};
|
|
7154
|
+
|
|
7155
|
+
static void to_json(nlohmann::json& j, const RallypointServerRouteMap& p)
|
|
7156
|
+
{
|
|
7157
|
+
j = nlohmann::json{
|
|
7158
|
+
TOJSON_IMPL(fileName),
|
|
7159
|
+
TOJSON_IMPL(minRefreshSecs),
|
|
7160
|
+
TOJSON_IMPL(enabled),
|
|
7161
|
+
TOJSON_IMPL(runCmd)
|
|
7162
|
+
};
|
|
7163
|
+
}
|
|
7164
|
+
static void from_json(const nlohmann::json& j, RallypointServerRouteMap& p)
|
|
7165
|
+
{
|
|
7166
|
+
p.clear();
|
|
7167
|
+
getOptional<std::string>("fileName", p.fileName, j);
|
|
7168
|
+
getOptional<int>("minRefreshSecs", p.minRefreshSecs, j, 5);
|
|
7169
|
+
getOptional<bool>("enabled", p.enabled, j, false);
|
|
7170
|
+
getOptional<std::string>("runCmd", p.runCmd, j);
|
|
7171
|
+
}
|
|
7172
|
+
|
|
7173
|
+
|
|
7049
7174
|
//-----------------------------------------------------------
|
|
7050
7175
|
JSON_SERIALIZED_CLASS(ExternalHealthCheckResponder)
|
|
7051
7176
|
/**
|
|
@@ -7298,14 +7423,8 @@ namespace AppConfigurationObjects
|
|
|
7298
7423
|
/** @brief Unknown */
|
|
7299
7424
|
etUnknown,
|
|
7300
7425
|
|
|
7301
|
-
/** @brief No encryption */
|
|
7302
|
-
etClear,
|
|
7303
|
-
|
|
7304
7426
|
/** @brief Shared-key encryption */
|
|
7305
|
-
etSharedKey
|
|
7306
|
-
|
|
7307
|
-
/** @brief DTLS encryption*/
|
|
7308
|
-
etDtls
|
|
7427
|
+
etSharedKey
|
|
7309
7428
|
} EnvelopeType_t;
|
|
7310
7429
|
|
|
7311
7430
|
/** @brief Specifies the streaming mode type (see @ref EnvelopeType_t). */
|
|
@@ -7346,6 +7465,77 @@ namespace AppConfigurationObjects
|
|
|
7346
7465
|
j.at("external").get_to(p.external);
|
|
7347
7466
|
}
|
|
7348
7467
|
|
|
7468
|
+
//-----------------------------------------------------------
|
|
7469
|
+
JSON_SERIALIZED_CLASS(RallypointRpRtTimingBehavior)
|
|
7470
|
+
/**
|
|
7471
|
+
* @brief Defines a behavior for a Rallypoint peer roundtrip time
|
|
7472
|
+
*
|
|
7473
|
+
* Example: @include[doc] examples/RallypointRpRtTimingBehavior.json
|
|
7474
|
+
*
|
|
7475
|
+
*/
|
|
7476
|
+
class RallypointRpRtTimingBehavior : public ConfigurationObjectBase
|
|
7477
|
+
{
|
|
7478
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
7479
|
+
IMPLEMENT_JSON_DOCUMENTATION(RallypointRpRtTimingBehavior)
|
|
7480
|
+
|
|
7481
|
+
public:
|
|
7482
|
+
/** @brief Enum describing behavior types. */
|
|
7483
|
+
typedef enum
|
|
7484
|
+
{
|
|
7485
|
+
/** @brief Unknown */
|
|
7486
|
+
btNone,
|
|
7487
|
+
|
|
7488
|
+
/** @brief Report at level info */
|
|
7489
|
+
btReportInfo,
|
|
7490
|
+
|
|
7491
|
+
/** @brief Report at level warning */
|
|
7492
|
+
btReportWarn,
|
|
7493
|
+
|
|
7494
|
+
/** @brief Report at level error */
|
|
7495
|
+
btReportError,
|
|
7496
|
+
|
|
7497
|
+
/** @brief Report at level fatal and drop connection */
|
|
7498
|
+
btDrop = 99
|
|
7499
|
+
} BehaviorType_t;
|
|
7500
|
+
|
|
7501
|
+
/** @brief Specifies the streaming mode type (see @ref BehaviorType_t). */
|
|
7502
|
+
BehaviorType_t behavior;
|
|
7503
|
+
|
|
7504
|
+
/** @brief Network address for listening */
|
|
7505
|
+
uint32_t atOrAboveMs;
|
|
7506
|
+
|
|
7507
|
+
/** [Optional, Default: null] Command to be executed. */
|
|
7508
|
+
std::string runCmd;
|
|
7509
|
+
|
|
7510
|
+
RallypointRpRtTimingBehavior()
|
|
7511
|
+
{
|
|
7512
|
+
clear();
|
|
7513
|
+
}
|
|
7514
|
+
|
|
7515
|
+
void clear()
|
|
7516
|
+
{
|
|
7517
|
+
behavior = btNone;
|
|
7518
|
+
atOrAboveMs = 0;
|
|
7519
|
+
runCmd.clear();
|
|
7520
|
+
}
|
|
7521
|
+
};
|
|
7522
|
+
|
|
7523
|
+
static void to_json(nlohmann::json& j, const RallypointRpRtTimingBehavior& p)
|
|
7524
|
+
{
|
|
7525
|
+
j = nlohmann::json{
|
|
7526
|
+
TOJSON_IMPL(behavior),
|
|
7527
|
+
TOJSON_IMPL(atOrAboveMs),
|
|
7528
|
+
TOJSON_IMPL(runCmd)
|
|
7529
|
+
};
|
|
7530
|
+
}
|
|
7531
|
+
static void from_json(const nlohmann::json& j, RallypointRpRtTimingBehavior& p)
|
|
7532
|
+
{
|
|
7533
|
+
p.clear();
|
|
7534
|
+
getOptional<RallypointRpRtTimingBehavior::BehaviorType_t>("behavior", p.behavior, j, RallypointRpRtTimingBehavior::BehaviorType_t::btNone);
|
|
7535
|
+
getOptional<uint32_t>("atOrAboveMs", p.atOrAboveMs, j, 0);
|
|
7536
|
+
getOptional<std::string>("runCmd", p.runCmd, j);
|
|
7537
|
+
}
|
|
7538
|
+
|
|
7349
7539
|
//-----------------------------------------------------------
|
|
7350
7540
|
JSON_SERIALIZED_CLASS(RallypointServer)
|
|
7351
7541
|
/**
|
|
@@ -7485,6 +7675,18 @@ namespace AppConfigurationObjects
|
|
|
7485
7675
|
/** @brief [Optional, Default 0] Sets the maximum item security level that can be registered with the RP */
|
|
7486
7676
|
uint32_t maxSecurityLevel;
|
|
7487
7677
|
|
|
7678
|
+
/** @brief Details for producing a report containing the route map. @see RallypointServerRouteMap */
|
|
7679
|
+
RallypointServerRouteMap routeMap;
|
|
7680
|
+
|
|
7681
|
+
/** @brief [Optional, Default 15] Sets the delta value for the maximum number of seconds to delay when attempting outbound peer connections */
|
|
7682
|
+
uint32_t maxOutboundPeerConnectionIntervalDeltaSecs;
|
|
7683
|
+
|
|
7684
|
+
/** @brief [Optional, Default: 60000] Milliseconds between sending round-trip test requests to peers */
|
|
7685
|
+
int peerRtTestIntervalMs;
|
|
7686
|
+
|
|
7687
|
+
/** @brief [Optional] Array of behaviors for roundtrip times to peers */
|
|
7688
|
+
std::vector<RallypointRpRtTimingBehavior> peerRtBehaviors;
|
|
7689
|
+
|
|
7488
7690
|
RallypointServer()
|
|
7489
7691
|
{
|
|
7490
7692
|
clear();
|
|
@@ -7533,6 +7735,10 @@ namespace AppConfigurationObjects
|
|
|
7533
7735
|
enableLeafReflectionReverseSubscription = false;
|
|
7534
7736
|
disableLoopDetection = false;
|
|
7535
7737
|
maxSecurityLevel = 0;
|
|
7738
|
+
routeMap.clear();
|
|
7739
|
+
maxOutboundPeerConnectionIntervalDeltaSecs = 15;
|
|
7740
|
+
peerRtTestIntervalMs = 60000;
|
|
7741
|
+
peerRtBehaviors.clear();
|
|
7536
7742
|
}
|
|
7537
7743
|
};
|
|
7538
7744
|
|
|
@@ -7579,7 +7785,11 @@ namespace AppConfigurationObjects
|
|
|
7579
7785
|
TOJSON_IMPL(normalTaskQueueBias),
|
|
7580
7786
|
TOJSON_IMPL(enableLeafReflectionReverseSubscription),
|
|
7581
7787
|
TOJSON_IMPL(disableLoopDetection),
|
|
7582
|
-
TOJSON_IMPL(maxSecurityLevel)
|
|
7788
|
+
TOJSON_IMPL(maxSecurityLevel),
|
|
7789
|
+
TOJSON_IMPL(routeMap),
|
|
7790
|
+
TOJSON_IMPL(maxOutboundPeerConnectionIntervalDeltaSecs),
|
|
7791
|
+
TOJSON_IMPL(peerRtTestIntervalMs),
|
|
7792
|
+
TOJSON_IMPL(peerRtBehaviors)
|
|
7583
7793
|
};
|
|
7584
7794
|
}
|
|
7585
7795
|
static void from_json(const nlohmann::json& j, RallypointServer& p)
|
|
@@ -7626,9 +7836,12 @@ namespace AppConfigurationObjects
|
|
|
7626
7836
|
getOptional<bool>("enableLeafReflectionReverseSubscription", p.enableLeafReflectionReverseSubscription, j, false);
|
|
7627
7837
|
getOptional<bool>("disableLoopDetection", p.disableLoopDetection, j, false);
|
|
7628
7838
|
getOptional<uint32_t>("maxSecurityLevel", p.maxSecurityLevel, j, 0);
|
|
7839
|
+
getOptional<RallypointServerRouteMap>("routeMap", p.routeMap, j);
|
|
7840
|
+
getOptional<uint32_t>("maxOutboundPeerConnectionIntervalDeltaSecs", p.maxOutboundPeerConnectionIntervalDeltaSecs, j, 15);
|
|
7841
|
+
getOptional<int>("peerRtTestIntervalMs", p.peerRtTestIntervalMs, j, 60000);
|
|
7842
|
+
getOptional<std::vector<RallypointRpRtTimingBehavior>>("peerRtBehaviors", p.peerRtBehaviors, j);
|
|
7629
7843
|
}
|
|
7630
7844
|
|
|
7631
|
-
|
|
7632
7845
|
//-----------------------------------------------------------
|
|
7633
7846
|
JSON_SERIALIZED_CLASS(PlatformDiscoveredService)
|
|
7634
7847
|
/**
|
|
@@ -9147,7 +9360,10 @@ namespace AppConfigurationObjects
|
|
|
9147
9360
|
omPayloadTransformation = 1,
|
|
9148
9361
|
|
|
9149
9362
|
/** @brief Audio payloads are mixed - output is anonymous (i.e. no metadata) if if the target group(s) allow header extensions */
|
|
9150
|
-
omAnonymousMixing = 2
|
|
9363
|
+
omAnonymousMixing = 2,
|
|
9364
|
+
|
|
9365
|
+
/** @brief Audio payloads are translated between group-specific languages */
|
|
9366
|
+
omLanguageTranslation = 3
|
|
9151
9367
|
} OpMode_t;
|
|
9152
9368
|
|
|
9153
9369
|
/** @brief A unqiue identifier for the bridge server */
|
|
@@ -1564,7 +1564,7 @@ ENGAGE_API const char * _Nonnull engageGetActiveFeatureset();
|
|
|
1564
1564
|
* @brief [SYNC] Enable FIPS crypto
|
|
1565
1565
|
*
|
|
1566
1566
|
* @param jsonParams A JSON object of type @ref ConfigurationObjects::FipsCryptoSettings
|
|
1567
|
-
* @return ENGAGE_RESULT_OK on
|
|
1567
|
+
* @return ENGAGE_RESULT_OK on success, other values on failure
|
|
1568
1568
|
*/
|
|
1569
1569
|
ENGAGE_API int engageSetFipsCrypto(const char * _Nonnull jsonParams);
|
|
1570
1570
|
|
|
@@ -1577,6 +1577,21 @@ ENGAGE_API int engageSetFipsCrypto(const char * _Nonnull jsonParams);
|
|
|
1577
1577
|
*/
|
|
1578
1578
|
ENGAGE_API int engageIsCryptoFipsValidated(void);
|
|
1579
1579
|
|
|
1580
|
+
/**
|
|
1581
|
+
* @brief [SYNC] Set the certstore content via buffer
|
|
1582
|
+
*
|
|
1583
|
+
* An alternative to engageOpenCertStore whereby a buffer is passed to the Engine containing
|
|
1584
|
+
* a certificate store's binary data rather having it loaded from file.
|
|
1585
|
+
*
|
|
1586
|
+
* No events are generated by this API call.
|
|
1587
|
+
*
|
|
1588
|
+
* @param buffer Pointer to the certificate store byte array
|
|
1589
|
+
* @param size Number of bytes in the buffer
|
|
1590
|
+
* @param passwordHexByteString Hexadecimal representation of the password to be used to decrypt the buffer
|
|
1591
|
+
* @return ENGAGE_RESULT_OK on success, other values on failure
|
|
1592
|
+
* @see engageOpenCertStore()
|
|
1593
|
+
*/
|
|
1594
|
+
ENGAGE_API int engageSetCertStore(const uint8_t * _Nonnull buffer, size_t size, const char * _Nullable passwordHexByteString);
|
|
1580
1595
|
|
|
1581
1596
|
// TODO: Engage compression/decompression functions not available at this time
|
|
1582
1597
|
#if 0
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED