engage-engine 1.250.90900018 → 1.251.90910020
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 +22 -0
- package/include/ConfigurationObjects.h +291 -61
- package/include/EngageConstants.h +1 -1
- package/lib/darwin.arm64/libengage-shared.dylib +0 -0
- package/lib/darwin.arm64/rts-fips.dylib +0 -0
- package/lib/darwin.x64/libengage-shared.dylib +0 -0
- package/lib/darwin.x64/rts-fips.dylib +0 -0
- package/lib/linux.arm64/libengage-shared.so +0 -0
- package/lib/linux.arm64/rts-fips.so +0 -0
- package/lib/linux.x64/libengage-shared.so +0 -0
- package/lib/linux.x64/rts-fips.so +0 -0
- package/lib/win32.ia32/engage-shared.dll +0 -0
- package/lib/win32.ia32/rts-fips.dll +0 -0
- package/lib/win32.x64/engage-shared.dll +0 -0
- package/lib/win32.x64/rts-fips.dll +0 -0
- package/package.json +1 -1
package/engage.cpp
CHANGED
|
@@ -502,6 +502,10 @@ ENGAGE_CB_ID_PARAM(groupHealthReportFailed);
|
|
|
502
502
|
ENGAGE_CB_ID_PLUS_ONE_STRING_PARAM(groupStatsReport);
|
|
503
503
|
ENGAGE_CB_ID_PARAM(groupStatsReportFailed);
|
|
504
504
|
|
|
505
|
+
ENGAGE_CB_ID_PARAM(bridgeCreated)
|
|
506
|
+
ENGAGE_CB_ID_PARAM(bridgeCreateFailed)
|
|
507
|
+
ENGAGE_CB_ID_PARAM(bridgeDeleted)
|
|
508
|
+
|
|
505
509
|
void on_groupRxVolumeChanged(const char *id, int16_t leftLevelPerc, int16_t rightLevelPerc, const char * eventExtraJson)
|
|
506
510
|
{
|
|
507
511
|
CrossThreadCallbackWorker *cbw = getCallback("groupRxVolumeChanged");
|
|
@@ -661,6 +665,10 @@ NAN_METHOD(initialize)
|
|
|
661
665
|
ENGAGE_CB_TABLE_ENTRY(PFN_ENGAGE_GROUP_RX_VOLUME_CHANGED, groupRxVolumeChanged);
|
|
662
666
|
ENGAGE_CB_TABLE_ENTRY(PFN_ENGAGE_GROUP_RX_DTMF, groupRxDtmf);
|
|
663
667
|
|
|
668
|
+
ENGAGE_CB_TABLE_ENTRY(PFN_ENGAGE_BRIDGE_CREATED, bridgeCreated);
|
|
669
|
+
ENGAGE_CB_TABLE_ENTRY(PFN_ENGAGE_BRIDGE_CREATE_FAILED, bridgeCreateFailed);
|
|
670
|
+
ENGAGE_CB_TABLE_ENTRY(PFN_ENGAGE_BRIDGE_DELETED, bridgeDeleted);
|
|
671
|
+
|
|
664
672
|
engageRegisterEventCallbacks(&g_eventCallbacks);
|
|
665
673
|
|
|
666
674
|
NANRETI(engageInitialize(STRVAL(0), STRVAL(1), STRVAL(2)));
|
|
@@ -1214,6 +1222,17 @@ NAN_METHOD(endGroupPcmPowerTracking)
|
|
|
1214
1222
|
NANRETI(engageEndGroupPcmPowerTracking(STRVAL(0)));
|
|
1215
1223
|
}
|
|
1216
1224
|
|
|
1225
|
+
//--------------------------------------------------------
|
|
1226
|
+
NAN_METHOD(createBridge)
|
|
1227
|
+
{
|
|
1228
|
+
NANRETI(engageCreateBridge(STRVAL(0)));
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
//--------------------------------------------------------
|
|
1232
|
+
NAN_METHOD(deleteBridge)
|
|
1233
|
+
{
|
|
1234
|
+
NANRETI(engageDeleteBridge(STRVAL(0)));
|
|
1235
|
+
}
|
|
1217
1236
|
|
|
1218
1237
|
//--------------------------------------------------------
|
|
1219
1238
|
NAN_MODULE_INIT(Init)
|
|
@@ -1297,6 +1316,9 @@ NAN_MODULE_INIT(Init)
|
|
|
1297
1316
|
|
|
1298
1317
|
ENGAGE_BINDING(beginGroupPcmPowerTracking);
|
|
1299
1318
|
ENGAGE_BINDING(endGroupPcmPowerTracking);
|
|
1319
|
+
|
|
1320
|
+
ENGAGE_BINDING(createBridge);
|
|
1321
|
+
ENGAGE_BINDING(deleteBridge);
|
|
1300
1322
|
}
|
|
1301
1323
|
|
|
1302
1324
|
NODE_MODULE(engage, Init)
|
|
@@ -2800,7 +2800,7 @@ namespace AppConfigurationObjects
|
|
|
2800
2800
|
std::vector<std::string> caCertificates;
|
|
2801
2801
|
|
|
2802
2802
|
/**
|
|
2803
|
-
* @brief [Optional, Default
|
|
2803
|
+
* @brief [Optional, Default 10000] Number of milliseconds that a transaction may take before the link is considered broken.
|
|
2804
2804
|
*/
|
|
2805
2805
|
int transactionTimeoutMs;
|
|
2806
2806
|
|
|
@@ -2815,6 +2815,14 @@ namespace AppConfigurationObjects
|
|
|
2815
2815
|
/** @brief [Optional] Tx options for the TCP link */
|
|
2816
2816
|
TcpNetworkTxOptions tcpTxOptions;
|
|
2817
2817
|
|
|
2818
|
+
/**
|
|
2819
|
+
* @brief [Optional] A user-defined string sent as the Server Name Indication (SNI) field in
|
|
2820
|
+
* the TLS setup. Be aware that this data is sent in the clear in the client hello message.
|
|
2821
|
+
*
|
|
2822
|
+
*/
|
|
2823
|
+
std::string sni;
|
|
2824
|
+
|
|
2825
|
+
|
|
2818
2826
|
Rallypoint()
|
|
2819
2827
|
{
|
|
2820
2828
|
clear();
|
|
@@ -2827,10 +2835,11 @@ namespace AppConfigurationObjects
|
|
|
2827
2835
|
certificateKey.clear();
|
|
2828
2836
|
caCertificates.clear();
|
|
2829
2837
|
verifyPeer = false;
|
|
2830
|
-
transactionTimeoutMs =
|
|
2838
|
+
transactionTimeoutMs = 0;
|
|
2831
2839
|
disableMessageSigning = false;
|
|
2832
|
-
connectionTimeoutSecs =
|
|
2840
|
+
connectionTimeoutSecs = 0;
|
|
2833
2841
|
tcpTxOptions.clear();
|
|
2842
|
+
sni.clear();
|
|
2834
2843
|
}
|
|
2835
2844
|
|
|
2836
2845
|
bool matches(const Rallypoint& other)
|
|
@@ -2893,6 +2902,18 @@ namespace AppConfigurationObjects
|
|
|
2893
2902
|
{
|
|
2894
2903
|
return false;
|
|
2895
2904
|
}
|
|
2905
|
+
if(connectionTimeoutSecs != other.connectionTimeoutSecs)
|
|
2906
|
+
{
|
|
2907
|
+
return false;
|
|
2908
|
+
}
|
|
2909
|
+
if(tcpTxOptions.priority != other.tcpTxOptions.priority)
|
|
2910
|
+
{
|
|
2911
|
+
return false;
|
|
2912
|
+
}
|
|
2913
|
+
if(sni.compare(other.sni) != 0)
|
|
2914
|
+
{
|
|
2915
|
+
return false;
|
|
2916
|
+
}
|
|
2896
2917
|
|
|
2897
2918
|
return true;
|
|
2898
2919
|
}
|
|
@@ -2910,7 +2931,8 @@ namespace AppConfigurationObjects
|
|
|
2910
2931
|
TOJSON_IMPL(transactionTimeoutMs),
|
|
2911
2932
|
TOJSON_IMPL(disableMessageSigning),
|
|
2912
2933
|
TOJSON_IMPL(connectionTimeoutSecs),
|
|
2913
|
-
TOJSON_IMPL(tcpTxOptions)
|
|
2934
|
+
TOJSON_IMPL(tcpTxOptions),
|
|
2935
|
+
TOJSON_IMPL(sni)
|
|
2914
2936
|
};
|
|
2915
2937
|
}
|
|
2916
2938
|
|
|
@@ -2923,10 +2945,11 @@ namespace AppConfigurationObjects
|
|
|
2923
2945
|
getOptional<bool>("verifyPeer", p.verifyPeer, j, true);
|
|
2924
2946
|
getOptional<bool>("allowSelfSignedCertificate", p.allowSelfSignedCertificate, j, false);
|
|
2925
2947
|
getOptional<std::vector<std::string>>("caCertificates", p.caCertificates, j);
|
|
2926
|
-
getOptional<int>("transactionTimeoutMs", p.transactionTimeoutMs, j,
|
|
2948
|
+
getOptional<int>("transactionTimeoutMs", p.transactionTimeoutMs, j, 0);
|
|
2927
2949
|
getOptional<bool>("disableMessageSigning", p.disableMessageSigning, j, false);
|
|
2928
|
-
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j,
|
|
2950
|
+
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j, 0);
|
|
2929
2951
|
getOptional<TcpNetworkTxOptions>("tcpTxOptions", p.tcpTxOptions, j);
|
|
2952
|
+
getOptional<std::string>("sni", p.sni, j);
|
|
2930
2953
|
}
|
|
2931
2954
|
|
|
2932
2955
|
//-----------------------------------------------------------
|
|
@@ -2970,9 +2993,12 @@ namespace AppConfigurationObjects
|
|
|
2970
2993
|
/** @brief Seconds between switching to a new target */
|
|
2971
2994
|
int rolloverSecs;
|
|
2972
2995
|
|
|
2973
|
-
/** @brief [Optional, Default:
|
|
2996
|
+
/** @brief [Optional, Default: 5] Default connection timeout in seconds to any RP in the cluster */
|
|
2974
2997
|
int connectionTimeoutSecs;
|
|
2975
2998
|
|
|
2999
|
+
/** @brief [Optional, Default: 10000] Default transaction time in milliseconds to any RP in the cluster */
|
|
3000
|
+
int transactionTimeoutMs;
|
|
3001
|
+
|
|
2976
3002
|
RallypointCluster()
|
|
2977
3003
|
{
|
|
2978
3004
|
clear();
|
|
@@ -2984,6 +3010,7 @@ namespace AppConfigurationObjects
|
|
|
2984
3010
|
rallypoints.clear();
|
|
2985
3011
|
rolloverSecs = 10;
|
|
2986
3012
|
connectionTimeoutSecs = 5;
|
|
3013
|
+
transactionTimeoutMs = 10000;
|
|
2987
3014
|
}
|
|
2988
3015
|
};
|
|
2989
3016
|
|
|
@@ -2993,7 +3020,8 @@ namespace AppConfigurationObjects
|
|
|
2993
3020
|
TOJSON_IMPL(connectionStrategy),
|
|
2994
3021
|
TOJSON_IMPL(rallypoints),
|
|
2995
3022
|
TOJSON_IMPL(rolloverSecs),
|
|
2996
|
-
TOJSON_IMPL(connectionTimeoutSecs)
|
|
3023
|
+
TOJSON_IMPL(connectionTimeoutSecs),
|
|
3024
|
+
TOJSON_IMPL(transactionTimeoutMs)
|
|
2997
3025
|
};
|
|
2998
3026
|
}
|
|
2999
3027
|
static void from_json(const nlohmann::json& j, RallypointCluster& p)
|
|
@@ -3003,6 +3031,7 @@ namespace AppConfigurationObjects
|
|
|
3003
3031
|
getOptional<std::vector<Rallypoint>>("rallypoints", p.rallypoints, j);
|
|
3004
3032
|
getOptional<int>("rolloverSecs", p.rolloverSecs, j, 10);
|
|
3005
3033
|
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j, 5);
|
|
3034
|
+
getOptional<int>("transactionTimeoutMs", p.transactionTimeoutMs, j, 10000);
|
|
3006
3035
|
}
|
|
3007
3036
|
|
|
3008
3037
|
|
|
@@ -4016,6 +4045,9 @@ namespace AppConfigurationObjects
|
|
|
4016
4045
|
/** @brief [Optional, Default: 5] The minimum interval to send at to prevent network flooding */
|
|
4017
4046
|
int minIntervalSecs;
|
|
4018
4047
|
|
|
4048
|
+
/** @brief [Optional, Default: false] Instructs the Engage Engine reduce the immediacy of presence announcements wherever possible */
|
|
4049
|
+
bool reduceImmediacy;
|
|
4050
|
+
|
|
4019
4051
|
Presence()
|
|
4020
4052
|
{
|
|
4021
4053
|
clear();
|
|
@@ -4027,6 +4059,7 @@ namespace AppConfigurationObjects
|
|
|
4027
4059
|
intervalSecs = 30;
|
|
4028
4060
|
listenOnly = false;
|
|
4029
4061
|
minIntervalSecs = 5;
|
|
4062
|
+
reduceImmediacy = false;
|
|
4030
4063
|
}
|
|
4031
4064
|
};
|
|
4032
4065
|
|
|
@@ -4036,7 +4069,8 @@ namespace AppConfigurationObjects
|
|
|
4036
4069
|
TOJSON_IMPL(format),
|
|
4037
4070
|
TOJSON_IMPL(intervalSecs),
|
|
4038
4071
|
TOJSON_IMPL(listenOnly),
|
|
4039
|
-
TOJSON_IMPL(minIntervalSecs)
|
|
4072
|
+
TOJSON_IMPL(minIntervalSecs),
|
|
4073
|
+
TOJSON_IMPL(reduceImmediacy)
|
|
4040
4074
|
};
|
|
4041
4075
|
}
|
|
4042
4076
|
static void from_json(const nlohmann::json& j, Presence& p)
|
|
@@ -4046,6 +4080,7 @@ namespace AppConfigurationObjects
|
|
|
4046
4080
|
getOptional<int>("intervalSecs", p.intervalSecs, j, 30);
|
|
4047
4081
|
getOptional<bool>("listenOnly", p.listenOnly, j, false);
|
|
4048
4082
|
getOptional<int>("minIntervalSecs", p.minIntervalSecs, j, 5);
|
|
4083
|
+
getOptional<bool>("reduceImmediacy", p.reduceImmediacy, j, false);
|
|
4049
4084
|
}
|
|
4050
4085
|
|
|
4051
4086
|
|
|
@@ -4700,6 +4735,79 @@ namespace AppConfigurationObjects
|
|
|
4700
4735
|
FROMJSON_IMPL_SIMPLE(alias);
|
|
4701
4736
|
}
|
|
4702
4737
|
|
|
4738
|
+
//-----------------------------------------------------------
|
|
4739
|
+
JSON_SERIALIZED_CLASS(GroupBridgeTargetOutputDetail)
|
|
4740
|
+
/**
|
|
4741
|
+
* @brief Options for Source
|
|
4742
|
+
*
|
|
4743
|
+
* Helper C++ class to serialize and de-serialize GroupBridgeTargetOutputDetail JSON
|
|
4744
|
+
*
|
|
4745
|
+
* TODO: Complete this Class
|
|
4746
|
+
*
|
|
4747
|
+
* Example: @include[doc] examples/GroupBridgeTargetOutputDetail.json
|
|
4748
|
+
*
|
|
4749
|
+
* @see Group
|
|
4750
|
+
*/
|
|
4751
|
+
class GroupBridgeTargetOutputDetail : public ConfigurationObjectBase
|
|
4752
|
+
{
|
|
4753
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
4754
|
+
IMPLEMENT_JSON_DOCUMENTATION(GroupBridgeTargetOutputDetail)
|
|
4755
|
+
|
|
4756
|
+
public:
|
|
4757
|
+
/** @brief Enum describing bridging operation mode types where applicable. */
|
|
4758
|
+
typedef enum
|
|
4759
|
+
{
|
|
4760
|
+
/** @brief Raw mode (default) - packet payloads are not accessed or modified and forwarded as raw packets. The
|
|
4761
|
+
* group must have a type of @ref gtRaw.
|
|
4762
|
+
*/
|
|
4763
|
+
bomRaw = 0,
|
|
4764
|
+
|
|
4765
|
+
/** @brief Audio payloads are transformed, headers are preserved, multiple parallel output streams are
|
|
4766
|
+
* possible/expected. The group must be gtAudio (type = 1).*/
|
|
4767
|
+
bomMultistream = 1,
|
|
4768
|
+
|
|
4769
|
+
/** @brief Audio payloads are mixed - output is anonymous (i.e. no metadata) if if the target group(s)
|
|
4770
|
+
* allow header extensions. The group must be gtAudio (type = 1)*/
|
|
4771
|
+
bomMixedStream = 2,
|
|
4772
|
+
} BridgingOpMode_t;
|
|
4773
|
+
|
|
4774
|
+
/** @brief [Optional] The output mode */
|
|
4775
|
+
BridgingOpMode_t mode;
|
|
4776
|
+
|
|
4777
|
+
/** @brief [Optional] Parameters to be applied when output is mixed (bomMixedStream) */
|
|
4778
|
+
AdvancedTxParams mixedStreamTxParams;
|
|
4779
|
+
|
|
4780
|
+
GroupBridgeTargetOutputDetail()
|
|
4781
|
+
{
|
|
4782
|
+
clear();
|
|
4783
|
+
}
|
|
4784
|
+
|
|
4785
|
+
void clear()
|
|
4786
|
+
{
|
|
4787
|
+
mode = BridgingOpMode_t::bomRaw;
|
|
4788
|
+
mixedStreamTxParams.clear();
|
|
4789
|
+
}
|
|
4790
|
+
|
|
4791
|
+
virtual void initForDocumenting()
|
|
4792
|
+
{
|
|
4793
|
+
clear();
|
|
4794
|
+
}
|
|
4795
|
+
};
|
|
4796
|
+
|
|
4797
|
+
static void to_json(nlohmann::json& j, const GroupBridgeTargetOutputDetail& p)
|
|
4798
|
+
{
|
|
4799
|
+
j = nlohmann::json{
|
|
4800
|
+
TOJSON_IMPL(mode),
|
|
4801
|
+
TOJSON_IMPL(mixedStreamTxParams)
|
|
4802
|
+
};
|
|
4803
|
+
}
|
|
4804
|
+
static void from_json(const nlohmann::json& j, GroupBridgeTargetOutputDetail& p)
|
|
4805
|
+
{
|
|
4806
|
+
p.clear();
|
|
4807
|
+
FROMJSON_IMPL_SIMPLE(mode);
|
|
4808
|
+
FROMJSON_IMPL_SIMPLE(mixedStreamTxParams);
|
|
4809
|
+
}
|
|
4810
|
+
|
|
4703
4811
|
//-----------------------------------------------------------
|
|
4704
4812
|
JSON_SERIALIZED_CLASS(Group)
|
|
4705
4813
|
/**
|
|
@@ -4734,23 +4842,6 @@ namespace AppConfigurationObjects
|
|
|
4734
4842
|
gtRaw = 3
|
|
4735
4843
|
} Type_t;
|
|
4736
4844
|
|
|
4737
|
-
|
|
4738
|
-
/** @brief Enum describing bridging operation mode types where applicable. */
|
|
4739
|
-
typedef enum
|
|
4740
|
-
{
|
|
4741
|
-
/** @brief Raw mode (default) - packet payloads are not accessed or modified and forwarded as raw packets */
|
|
4742
|
-
bomRaw = 0,
|
|
4743
|
-
|
|
4744
|
-
/** @brief Audio payloads are transformed, headers are preserved, multiple parallel output streams are possible/expected */
|
|
4745
|
-
bomPayloadTransformation = 1,
|
|
4746
|
-
|
|
4747
|
-
/** @brief Audio payloads are mixed - output is anonymous (i.e. no metadata) if if the target group(s) allow header extensions */
|
|
4748
|
-
bomAnonymousMixing = 2,
|
|
4749
|
-
|
|
4750
|
-
/** @brief The bridge performs language translations between groups */
|
|
4751
|
-
bomLanguageTranslation = 3
|
|
4752
|
-
} BridgingOpMode_t;
|
|
4753
|
-
|
|
4754
4845
|
/** @brief Enum describing the alias generation policy. */
|
|
4755
4846
|
typedef enum
|
|
4756
4847
|
{
|
|
@@ -4764,8 +4855,8 @@ namespace AppConfigurationObjects
|
|
|
4764
4855
|
/** @brief Specifies the group type (see @ref Type_t). */
|
|
4765
4856
|
Type_t type;
|
|
4766
4857
|
|
|
4767
|
-
/** @brief
|
|
4768
|
-
|
|
4858
|
+
/** @brief Output details for when the group is a target in a bridge (see @ref GroupBridgeTargetOutputDetail). */
|
|
4859
|
+
GroupBridgeTargetOutputDetail bridgeTargetOutputDetail;
|
|
4769
4860
|
|
|
4770
4861
|
/**
|
|
4771
4862
|
* @brief Unique identity for the group.
|
|
@@ -4931,7 +5022,7 @@ namespace AppConfigurationObjects
|
|
|
4931
5022
|
void clear()
|
|
4932
5023
|
{
|
|
4933
5024
|
type = gtUnknown;
|
|
4934
|
-
|
|
5025
|
+
bridgeTargetOutputDetail.clear();
|
|
4935
5026
|
id.clear();
|
|
4936
5027
|
name.clear();
|
|
4937
5028
|
spokenName.clear();
|
|
@@ -5008,7 +5099,7 @@ namespace AppConfigurationObjects
|
|
|
5008
5099
|
{
|
|
5009
5100
|
j = nlohmann::json{
|
|
5010
5101
|
TOJSON_IMPL(type),
|
|
5011
|
-
TOJSON_IMPL(
|
|
5102
|
+
TOJSON_IMPL(bridgeTargetOutputDetail),
|
|
5012
5103
|
TOJSON_IMPL(id),
|
|
5013
5104
|
TOJSON_IMPL(name),
|
|
5014
5105
|
TOJSON_IMPL(spokenName),
|
|
@@ -5100,7 +5191,7 @@ namespace AppConfigurationObjects
|
|
|
5100
5191
|
{
|
|
5101
5192
|
p.clear();
|
|
5102
5193
|
j.at("type").get_to(p.type);
|
|
5103
|
-
getOptional<
|
|
5194
|
+
getOptional<GroupBridgeTargetOutputDetail>("bridgeTargetOutputDetail", p.bridgeTargetOutputDetail, j);
|
|
5104
5195
|
j.at("id").get_to(p.id);
|
|
5105
5196
|
getOptional<std::string>("name", p.name, j);
|
|
5106
5197
|
getOptional<std::string>("spokenName", p.spokenName, j);
|
|
@@ -5718,7 +5809,9 @@ namespace AppConfigurationObjects
|
|
|
5718
5809
|
/** @brief List of group IDs to be included in the session */
|
|
5719
5810
|
std::vector<std::string> groups;
|
|
5720
5811
|
|
|
5721
|
-
/** @brief [Optional, Default: true] Enable the bridge
|
|
5812
|
+
/** @brief [Optional, Default: true] Enable the bridge
|
|
5813
|
+
* NOTE: this is only used bt EBS and is ignored when calling engageCreateBridge() is called
|
|
5814
|
+
*/
|
|
5722
5815
|
bool enabled;
|
|
5723
5816
|
|
|
5724
5817
|
Bridge()
|
|
@@ -6896,6 +6989,9 @@ namespace AppConfigurationObjects
|
|
|
6896
6989
|
/** @brief [Optional, Default: 5] Connection timeout in seconds to RP */
|
|
6897
6990
|
int rpConnectionTimeoutSecs;
|
|
6898
6991
|
|
|
6992
|
+
/** @brief [Optional, Default: 5] Transaction timeout with RP */
|
|
6993
|
+
int rpTransactionTimeoutMs;
|
|
6994
|
+
|
|
6899
6995
|
/** @brief [Optional, Default: 10] The number of seconds after which "sticky" transmission IDs expire. */
|
|
6900
6996
|
int stickyTidHangSecs;
|
|
6901
6997
|
|
|
@@ -6921,7 +7017,8 @@ namespace AppConfigurationObjects
|
|
|
6921
7017
|
rpClusterStrategy = RallypointCluster::ConnectionStrategy_t::csRoundRobin;
|
|
6922
7018
|
rpClusterRolloverSecs = 10;
|
|
6923
7019
|
rtpExpirationCheckIntervalMs = 250;
|
|
6924
|
-
rpConnectionTimeoutSecs =
|
|
7020
|
+
rpConnectionTimeoutSecs = 0;
|
|
7021
|
+
rpTransactionTimeoutMs = 0;
|
|
6925
7022
|
stickyTidHangSecs = 10;
|
|
6926
7023
|
uriStreamingIntervalMs = 60;
|
|
6927
7024
|
delayedMicrophoneClosureSecs = 15;
|
|
@@ -6942,6 +7039,7 @@ namespace AppConfigurationObjects
|
|
|
6942
7039
|
TOJSON_IMPL(rpClusterRolloverSecs),
|
|
6943
7040
|
TOJSON_IMPL(rtpExpirationCheckIntervalMs),
|
|
6944
7041
|
TOJSON_IMPL(rpConnectionTimeoutSecs),
|
|
7042
|
+
TOJSON_IMPL(rpTransactionTimeoutMs),
|
|
6945
7043
|
TOJSON_IMPL(stickyTidHangSecs),
|
|
6946
7044
|
TOJSON_IMPL(uriStreamingIntervalMs),
|
|
6947
7045
|
TOJSON_IMPL(delayedMicrophoneClosureSecs),
|
|
@@ -6960,7 +7058,8 @@ namespace AppConfigurationObjects
|
|
|
6960
7058
|
getOptional<RallypointCluster::ConnectionStrategy_t>("rpClusterStrategy", p.rpClusterStrategy, j, RallypointCluster::ConnectionStrategy_t::csRoundRobin);
|
|
6961
7059
|
getOptional<int>("rpClusterRolloverSecs", p.rpClusterRolloverSecs, j, 10);
|
|
6962
7060
|
getOptional<int>("rtpExpirationCheckIntervalMs", p.rtpExpirationCheckIntervalMs, j, 250);
|
|
6963
|
-
getOptional<int>("rpConnectionTimeoutSecs", p.rpConnectionTimeoutSecs, j,
|
|
7061
|
+
getOptional<int>("rpConnectionTimeoutSecs", p.rpConnectionTimeoutSecs, j, 0);
|
|
7062
|
+
getOptional<int>("rpTransactionTimeoutMs", p.rpTransactionTimeoutMs, j, 0);
|
|
6964
7063
|
getOptional<int>("stickyTidHangSecs", p.stickyTidHangSecs, j, 10);
|
|
6965
7064
|
getOptional<int>("uriStreamingIntervalMs", p.uriStreamingIntervalMs, j, 60);
|
|
6966
7065
|
getOptional<int>("delayedMicrophoneClosureSecs", p.delayedMicrophoneClosureSecs, j, 15);
|
|
@@ -7611,6 +7710,18 @@ namespace AppConfigurationObjects
|
|
|
7611
7710
|
IMPLEMENT_JSON_DOCUMENTATION(RallypointPeer)
|
|
7612
7711
|
|
|
7613
7712
|
public:
|
|
7713
|
+
typedef enum
|
|
7714
|
+
{
|
|
7715
|
+
/** @brief Use the RP's configuration */
|
|
7716
|
+
olpUseRpConfiguration = 0,
|
|
7717
|
+
|
|
7718
|
+
/** @brief Mark as a domain leaf */
|
|
7719
|
+
olpIsMeshLeaf = 1,
|
|
7720
|
+
|
|
7721
|
+
/** @brief Do not mark as a domain leaf */
|
|
7722
|
+
olpNotMeshLeaf = 2
|
|
7723
|
+
} OutboundLeafPolicy_t;
|
|
7724
|
+
|
|
7614
7725
|
/** @brief Internal ID. */
|
|
7615
7726
|
std::string id;
|
|
7616
7727
|
|
|
@@ -7629,6 +7740,8 @@ namespace AppConfigurationObjects
|
|
|
7629
7740
|
/** @brief Internal enablement setting. */
|
|
7630
7741
|
bool forceIsMeshLeaf;
|
|
7631
7742
|
|
|
7743
|
+
OutboundLeafPolicy_t outboundLeafPolicy;
|
|
7744
|
+
|
|
7632
7745
|
RallypointPeer()
|
|
7633
7746
|
{
|
|
7634
7747
|
clear();
|
|
@@ -7642,6 +7755,7 @@ namespace AppConfigurationObjects
|
|
|
7642
7755
|
certificate.clear();
|
|
7643
7756
|
connectionTimeoutSecs = 0;
|
|
7644
7757
|
forceIsMeshLeaf = false;
|
|
7758
|
+
outboundLeafPolicy = OutboundLeafPolicy_t::olpUseRpConfiguration;
|
|
7645
7759
|
}
|
|
7646
7760
|
};
|
|
7647
7761
|
|
|
@@ -7653,7 +7767,8 @@ namespace AppConfigurationObjects
|
|
|
7653
7767
|
TOJSON_IMPL(host),
|
|
7654
7768
|
TOJSON_IMPL(certificate),
|
|
7655
7769
|
TOJSON_IMPL(connectionTimeoutSecs),
|
|
7656
|
-
TOJSON_IMPL(forceIsMeshLeaf)
|
|
7770
|
+
TOJSON_IMPL(forceIsMeshLeaf),
|
|
7771
|
+
TOJSON_IMPL(outboundLeafPolicy)
|
|
7657
7772
|
};
|
|
7658
7773
|
}
|
|
7659
7774
|
static void from_json(const nlohmann::json& j, RallypointPeer& p)
|
|
@@ -7665,6 +7780,7 @@ namespace AppConfigurationObjects
|
|
|
7665
7780
|
getOptional<SecurityCertificate>("certificate", p.certificate, j);
|
|
7666
7781
|
getOptional<int>("connectionTimeoutSecs", p.connectionTimeoutSecs, j, 0);
|
|
7667
7782
|
getOptional<bool>("forceIsMeshLeaf", p.forceIsMeshLeaf, j, false);
|
|
7783
|
+
getOptional<RallypointPeer::OutboundLeafPolicy_t>("outboundLeafPolicy", p.outboundLeafPolicy, j, RallypointPeer::OutboundLeafPolicy_t::olpUseRpConfiguration);
|
|
7668
7784
|
}
|
|
7669
7785
|
|
|
7670
7786
|
//-----------------------------------------------------------
|
|
@@ -8077,10 +8193,10 @@ namespace AppConfigurationObjects
|
|
|
8077
8193
|
|
|
8078
8194
|
public:
|
|
8079
8195
|
|
|
8080
|
-
/** @brief An identifier useful for organizations that track different
|
|
8196
|
+
/** @brief An identifier useful for organizations that track different domain configurations by ID */
|
|
8081
8197
|
std::string id;
|
|
8082
8198
|
|
|
8083
|
-
/** @brief TODO: A version number for the
|
|
8199
|
+
/** @brief TODO: A version number for the domain configuration. Change this whenever you update your configuration */
|
|
8084
8200
|
int version;
|
|
8085
8201
|
|
|
8086
8202
|
/** @brief Comments */
|
|
@@ -8614,6 +8730,54 @@ namespace AppConfigurationObjects
|
|
|
8614
8730
|
}
|
|
8615
8731
|
|
|
8616
8732
|
|
|
8733
|
+
|
|
8734
|
+
|
|
8735
|
+
//-----------------------------------------------------------
|
|
8736
|
+
JSON_SERIALIZED_CLASS(NamedIdentity)
|
|
8737
|
+
/**
|
|
8738
|
+
* @brief Defines settings for a named identity
|
|
8739
|
+
*
|
|
8740
|
+
* Example: @include[doc] examples/NamedIdentity.json
|
|
8741
|
+
*
|
|
8742
|
+
*/
|
|
8743
|
+
class NamedIdentity : public ConfigurationObjectBase
|
|
8744
|
+
{
|
|
8745
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
8746
|
+
IMPLEMENT_JSON_DOCUMENTATION(NamedIdentity)
|
|
8747
|
+
|
|
8748
|
+
public:
|
|
8749
|
+
/** @brief The identity name */
|
|
8750
|
+
std::string name;
|
|
8751
|
+
|
|
8752
|
+
/** @brief The identity certificate */
|
|
8753
|
+
SecurityCertificate certificate;
|
|
8754
|
+
|
|
8755
|
+
NamedIdentity()
|
|
8756
|
+
{
|
|
8757
|
+
clear();
|
|
8758
|
+
}
|
|
8759
|
+
|
|
8760
|
+
void clear()
|
|
8761
|
+
{
|
|
8762
|
+
name.clear();
|
|
8763
|
+
certificate.clear();
|
|
8764
|
+
}
|
|
8765
|
+
};
|
|
8766
|
+
|
|
8767
|
+
static void to_json(nlohmann::json& j, const NamedIdentity& p)
|
|
8768
|
+
{
|
|
8769
|
+
j = nlohmann::json{
|
|
8770
|
+
TOJSON_IMPL(name),
|
|
8771
|
+
TOJSON_IMPL(certificate)
|
|
8772
|
+
};
|
|
8773
|
+
}
|
|
8774
|
+
static void from_json(const nlohmann::json& j, NamedIdentity& p)
|
|
8775
|
+
{
|
|
8776
|
+
p.clear();
|
|
8777
|
+
getOptional<std::string>("name", p.name, j);
|
|
8778
|
+
getOptional<SecurityCertificate>("certificate", p.certificate, j);
|
|
8779
|
+
}
|
|
8780
|
+
|
|
8617
8781
|
//-----------------------------------------------------------
|
|
8618
8782
|
JSON_SERIALIZED_CLASS(RallypointExtendedGroupRestriction)
|
|
8619
8783
|
/**
|
|
@@ -8677,6 +8841,32 @@ namespace AppConfigurationObjects
|
|
|
8677
8841
|
IMPLEMENT_JSON_DOCUMENTATION(RallypointServer)
|
|
8678
8842
|
|
|
8679
8843
|
public:
|
|
8844
|
+
typedef enum
|
|
8845
|
+
{
|
|
8846
|
+
sptDefault = 0,
|
|
8847
|
+
sptCertificate = 1,
|
|
8848
|
+
sptCertPublicKey = 2,
|
|
8849
|
+
sptCertSubject = 3,
|
|
8850
|
+
sptCertIssuer = 4,
|
|
8851
|
+
sptCertFingerprint = 5,
|
|
8852
|
+
sptCertSerial = 6,
|
|
8853
|
+
sptSubjectC = 7,
|
|
8854
|
+
sptSubjectST = 8,
|
|
8855
|
+
sptSubjectL = 9,
|
|
8856
|
+
sptSubjectO = 10,
|
|
8857
|
+
sptSubjectOU = 11,
|
|
8858
|
+
sptSubjectCN = 12,
|
|
8859
|
+
sptIssuerC = 13,
|
|
8860
|
+
sptIssuerST = 14,
|
|
8861
|
+
sptIssuerL = 15,
|
|
8862
|
+
sptIssuerO = 16,
|
|
8863
|
+
sptIssuerOU = 17,
|
|
8864
|
+
sptIssuerCN = 18
|
|
8865
|
+
} StreamIdPrivacyType_t;
|
|
8866
|
+
|
|
8867
|
+
/** @brief [Optional, default sptDefault] Modes for stream ID transformation. */
|
|
8868
|
+
StreamIdPrivacyType_t streamIdPrivacyType;
|
|
8869
|
+
|
|
8680
8870
|
/** @brief [Optional] Settings for the FIPS crypto. */
|
|
8681
8871
|
FipsCryptoSettings fipsCrypto;
|
|
8682
8872
|
|
|
@@ -8746,7 +8936,7 @@ namespace AppConfigurationObjects
|
|
|
8746
8936
|
/** @brief Internal - not serialized. */
|
|
8747
8937
|
PeeringConfiguration peeringConfiguration; // NOTE: This is NOT serialized
|
|
8748
8938
|
|
|
8749
|
-
/** @brief Indicates whether this Rallypoint is part of a core
|
|
8939
|
+
/** @brief Indicates whether this Rallypoint is part of a core domain or hangs off the periphery as a leaf node. */
|
|
8750
8940
|
bool isMeshLeaf;
|
|
8751
8941
|
|
|
8752
8942
|
/** @brief Set to true to forgo DSA signing of messages. Doing so is is a security risk but can be useful on CPU-constrained systems on already-secure environments. */
|
|
@@ -8800,7 +8990,7 @@ namespace AppConfigurationObjects
|
|
|
8800
8990
|
/** @brief [Optional, Default 0] Sets the queue's normal task bias */
|
|
8801
8991
|
uint32_t normalTaskQueueBias;
|
|
8802
8992
|
|
|
8803
|
-
/** @brief If enabled, causes a
|
|
8993
|
+
/** @brief If enabled, causes a domain leaf to reverse-subscribe to a core node upon the core subscribing and a reflector having been setup */
|
|
8804
8994
|
bool enableLeafReflectionReverseSubscription;
|
|
8805
8995
|
|
|
8806
8996
|
/** @brief If true, turns off loop detection. */
|
|
@@ -8836,15 +9026,24 @@ namespace AppConfigurationObjects
|
|
|
8836
9026
|
/** @brief Details for capture of transmitted packets */
|
|
8837
9027
|
PacketCapturer txCapture;
|
|
8838
9028
|
|
|
8839
|
-
/** @brief [Optional] This Rallypoint's
|
|
8840
|
-
std::string
|
|
9029
|
+
/** @brief [Optional] This Rallypoint's domain name */
|
|
9030
|
+
std::string domainName;
|
|
9031
|
+
|
|
9032
|
+
/** @brief [Optional] List of domains that explicitly MAY connect to this RP */
|
|
9033
|
+
std::vector<std::string> allowedDomains;
|
|
8841
9034
|
|
|
8842
|
-
/** @brief [Optional] List of
|
|
8843
|
-
std::vector<std::string>
|
|
9035
|
+
/** @brief [Optional] List of domains that explictly MAY NOT connect to this RP */
|
|
9036
|
+
std::vector<std::string> blockedDomains;
|
|
9037
|
+
|
|
9038
|
+
/** @brief [Optional] List of additional domains that can be reached via this RP */
|
|
9039
|
+
std::vector<std::string> extraDomains;
|
|
8844
9040
|
|
|
8845
9041
|
/** @brief [Optional] Low-level tuning */
|
|
8846
9042
|
TuningSettings tuning;
|
|
8847
9043
|
|
|
9044
|
+
/** @brief [Optional] List of additional named identities */
|
|
9045
|
+
std::vector<NamedIdentity> additionalIdentities;
|
|
9046
|
+
|
|
8848
9047
|
RallypointServer()
|
|
8849
9048
|
{
|
|
8850
9049
|
clear();
|
|
@@ -8902,12 +9101,16 @@ namespace AppConfigurationObjects
|
|
|
8902
9101
|
advertising.clear();
|
|
8903
9102
|
extendedGroupRestrictions.clear();
|
|
8904
9103
|
groupRestrictionAccessPolicyType = GroupRestrictionAccessPolicyType_t::graptPermissive;
|
|
8905
|
-
ipFamily = IpFamilyType_t::
|
|
9104
|
+
ipFamily = IpFamilyType_t::ifIp4;
|
|
8906
9105
|
rxCapture.clear();
|
|
8907
9106
|
txCapture.clear();
|
|
8908
|
-
|
|
8909
|
-
|
|
9107
|
+
domainName.clear();
|
|
9108
|
+
allowedDomains.clear();
|
|
9109
|
+
blockedDomains.clear();
|
|
9110
|
+
extraDomains.clear();
|
|
8910
9111
|
tuning.clear();
|
|
9112
|
+
additionalIdentities.clear();
|
|
9113
|
+
streamIdPrivacyType = StreamIdPrivacyType_t::sptDefault;
|
|
8911
9114
|
}
|
|
8912
9115
|
};
|
|
8913
9116
|
|
|
@@ -8967,9 +9170,13 @@ namespace AppConfigurationObjects
|
|
|
8967
9170
|
TOJSON_IMPL(ipFamily),
|
|
8968
9171
|
TOJSON_IMPL(rxCapture),
|
|
8969
9172
|
TOJSON_IMPL(txCapture),
|
|
8970
|
-
TOJSON_IMPL(
|
|
8971
|
-
TOJSON_IMPL(
|
|
8972
|
-
TOJSON_IMPL(
|
|
9173
|
+
TOJSON_IMPL(domainName),
|
|
9174
|
+
TOJSON_IMPL(allowedDomains),
|
|
9175
|
+
TOJSON_IMPL(blockedDomains),
|
|
9176
|
+
TOJSON_IMPL(extraDomains),
|
|
9177
|
+
TOJSON_IMPL(tuning),
|
|
9178
|
+
TOJSON_IMPL(additionalIdentities),
|
|
9179
|
+
TOJSON_IMPL(streamIdPrivacyType)
|
|
8973
9180
|
};
|
|
8974
9181
|
}
|
|
8975
9182
|
static void from_json(const nlohmann::json& j, RallypointServer& p)
|
|
@@ -9025,12 +9232,16 @@ namespace AppConfigurationObjects
|
|
|
9025
9232
|
getOptional<RallypointAdvertisingSettings>("advertising", p.advertising, j);
|
|
9026
9233
|
getOptional<std::vector<RallypointExtendedGroupRestriction>>("extendedGroupRestrictions", p.extendedGroupRestrictions, j);
|
|
9027
9234
|
getOptional<GroupRestrictionAccessPolicyType_t>("groupRestrictionAccessPolicyType", p.groupRestrictionAccessPolicyType, j, GroupRestrictionAccessPolicyType_t::graptPermissive);
|
|
9028
|
-
getOptional<IpFamilyType_t>("ipFamily", p.ipFamily, j, IpFamilyType_t::
|
|
9235
|
+
getOptional<IpFamilyType_t>("ipFamily", p.ipFamily, j, IpFamilyType_t::ifIp4);
|
|
9029
9236
|
getOptional<PacketCapturer>("rxCapture", p.rxCapture, j);
|
|
9030
9237
|
getOptional<PacketCapturer>("txCapture", p.txCapture, j);
|
|
9031
|
-
getOptional<std::string>("
|
|
9032
|
-
getOptional<std::vector<std::string>>("
|
|
9238
|
+
getOptional<std::string>("domainName", p.domainName, j);
|
|
9239
|
+
getOptional<std::vector<std::string>>("allowedDomains", p.allowedDomains, j);
|
|
9240
|
+
getOptional<std::vector<std::string>>("blockedDomains", p.blockedDomains, j);
|
|
9241
|
+
getOptional<std::vector<std::string>>("extraDomains", p.extraDomains, j);
|
|
9033
9242
|
getOptional<TuningSettings>("tuning", p.tuning, j);
|
|
9243
|
+
getOptional<std::vector<NamedIdentity>>("additionalIdentities", p.additionalIdentities, j);
|
|
9244
|
+
getOptional<RallypointServer::StreamIdPrivacyType_t>("streamIdPrivacyType", p.streamIdPrivacyType, j, RallypointServer::StreamIdPrivacyType_t::sptDefault);
|
|
9034
9245
|
}
|
|
9035
9246
|
|
|
9036
9247
|
//-----------------------------------------------------------
|
|
@@ -9568,6 +9779,9 @@ namespace AppConfigurationObjects
|
|
|
9568
9779
|
/** @brief Array of subject elements */
|
|
9569
9780
|
std::vector<CertificateSubjectElement> subjectElements;
|
|
9570
9781
|
|
|
9782
|
+
/** @brief Array of issuer elements */
|
|
9783
|
+
std::vector<CertificateSubjectElement> issuerElements;
|
|
9784
|
+
|
|
9571
9785
|
/** @brief PEM version of the certificate */
|
|
9572
9786
|
std::string certificatePem;
|
|
9573
9787
|
|
|
@@ -9590,6 +9804,7 @@ namespace AppConfigurationObjects
|
|
|
9590
9804
|
serial.clear();
|
|
9591
9805
|
fingerprint.clear();
|
|
9592
9806
|
subjectElements.clear();
|
|
9807
|
+
issuerElements.clear();
|
|
9593
9808
|
certificatePem.clear();
|
|
9594
9809
|
publicKeyPem.clear();
|
|
9595
9810
|
}
|
|
@@ -9607,6 +9822,7 @@ namespace AppConfigurationObjects
|
|
|
9607
9822
|
TOJSON_IMPL(serial),
|
|
9608
9823
|
TOJSON_IMPL(fingerprint),
|
|
9609
9824
|
TOJSON_IMPL(subjectElements),
|
|
9825
|
+
TOJSON_IMPL(issuerElements),
|
|
9610
9826
|
TOJSON_IMPL(certificatePem),
|
|
9611
9827
|
TOJSON_IMPL(publicKeyPem)
|
|
9612
9828
|
};
|
|
@@ -9625,6 +9841,7 @@ namespace AppConfigurationObjects
|
|
|
9625
9841
|
getOptional<std::string>("certificatePem", p.certificatePem, j, EMPTY_STRING);
|
|
9626
9842
|
getOptional<std::string>("publicKeyPem", p.publicKeyPem, j, EMPTY_STRING);
|
|
9627
9843
|
getOptional<std::vector<CertificateSubjectElement>>("subjectElements", p.subjectElements, j);
|
|
9844
|
+
getOptional<std::vector<CertificateSubjectElement>>("issuerElements", p.issuerElements, j);
|
|
9628
9845
|
}
|
|
9629
9846
|
|
|
9630
9847
|
|
|
@@ -9934,6 +10151,12 @@ namespace AppConfigurationObjects
|
|
|
9934
10151
|
|
|
9935
10152
|
/** @brief TX has ended with a failure */
|
|
9936
10153
|
txsTxEndedWithFailure = -10,
|
|
10154
|
+
|
|
10155
|
+
/** @brief Attempt to transmit on a bridged group that is not bomMultistream */
|
|
10156
|
+
txsBridgedButNotMultistream = -11,
|
|
10157
|
+
|
|
10158
|
+
/** @brief Transmission was automatically ended because the group became bridged on a non-multistream configuration */
|
|
10159
|
+
txsAutoEndedDueToNonMultistreamBridge = -12
|
|
9937
10160
|
} TxStatus_t;
|
|
9938
10161
|
|
|
9939
10162
|
/** @brief ID of the group */
|
|
@@ -11209,26 +11432,33 @@ namespace AppConfigurationObjects
|
|
|
11209
11432
|
IMPLEMENT_JSON_DOCUMENTATION(BridgingServerConfiguration)
|
|
11210
11433
|
|
|
11211
11434
|
public:
|
|
11212
|
-
/** @brief Enum describing the
|
|
11435
|
+
/** @brief Enum describing the default mode the bridging service runs in. Values of omRaw,
|
|
11436
|
+
* omMultistream, omAnonymousMixedStream all cause the service to force the
|
|
11437
|
+
* groups in a bridge to the appropriate type. A value of omADictatedByGroup prevents
|
|
11438
|
+
* the service from forcing the individual groups' "type" and "bom" values and
|
|
11439
|
+
* instead relies on the individual groups to be correctly defined in the configuration.
|
|
11440
|
+
*/
|
|
11213
11441
|
typedef enum
|
|
11214
11442
|
{
|
|
11215
|
-
/** @brief Raw mode (default) - packet payloads are not accessed or modified and forwarded as raw packets */
|
|
11443
|
+
/** @brief Raw mode (default) - packet payloads are not accessed or modified and forwarded as raw packets. */
|
|
11216
11444
|
omRaw = 0,
|
|
11217
11445
|
|
|
11218
|
-
/** @brief Audio payloads are transformed, headers are preserved, multiple parallel output streams are
|
|
11219
|
-
|
|
11446
|
+
/** @brief Audio payloads are transformed, headers are preserved, multiple parallel output streams are
|
|
11447
|
+
* possible/expected. In this mode all groups must be gtAudio (type = 1).*/
|
|
11448
|
+
omMultistream = 1,
|
|
11220
11449
|
|
|
11221
|
-
/** @brief Audio payloads are mixed - output is anonymous (i.e. no metadata)
|
|
11222
|
-
|
|
11450
|
+
/** @brief Audio payloads are mixed - output is anonymous (i.e. no metadata) even if the target group(s)
|
|
11451
|
+
* allow header extensions. In this mode all groups must be gtAudio (type = 1). */
|
|
11452
|
+
omMixedStream = 2,
|
|
11223
11453
|
|
|
11224
|
-
/** @brief
|
|
11225
|
-
|
|
11454
|
+
/** @brief Operation is dictated by the individual groups in the bridge */
|
|
11455
|
+
omADictatedByGroup = 3,
|
|
11226
11456
|
} OpMode_t;
|
|
11227
11457
|
|
|
11228
11458
|
/** @brief A unqiue identifier for the bridge server */
|
|
11229
11459
|
std::string id;
|
|
11230
11460
|
|
|
11231
|
-
/** @brief Specifies the operation mode (see @ref OpMode_t). */
|
|
11461
|
+
/** @brief Specifies the default operation mode (see @ref OpMode_t). */
|
|
11232
11462
|
OpMode_t mode;
|
|
11233
11463
|
|
|
11234
11464
|
/** @brief Number of seconds between checks to see if the service configuration has been updated. Default is 60.*/
|
|
@@ -27,7 +27,7 @@ static const size_t ENGAGE_MAX_CRYPTO_PASSWORD_BYTES = 256;
|
|
|
27
27
|
|
|
28
28
|
static const int ENGAGE_INVALID_IP_ADDRESS_FAMILY = -1;
|
|
29
29
|
|
|
30
|
-
static const size_t
|
|
30
|
+
static const size_t ENGAGE_MAX_OUTPUT_QUEUED_UDP_PACKETS = 1024;
|
|
31
31
|
|
|
32
32
|
static const size_t ENGAGE_MAX_IP_ADDR_SIZE = sizeof(struct sockaddr_in6);
|
|
33
33
|
static const size_t ENGAGE_MAX_ALIAS_SIZE = 16;
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED