engage-engine 1.234.90740001 → 1.236.90760003

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 CHANGED
@@ -1171,7 +1171,7 @@ NAN_METHOD(verifyRiff)
1171
1171
  //--------------------------------------------------------
1172
1172
  NAN_METHOD(getRiffDescriptor)
1173
1173
  {
1174
- const char *rc = engageGetRiffDescriptor();
1174
+ const char *rc = engageGetRiffDescriptor(STRVAL(0));
1175
1175
 
1176
1176
  if(rc == nullptr)
1177
1177
  {
@@ -53,6 +53,8 @@ namespace ConfigurationObjects
53
53
  namespace AppConfigurationObjects
54
54
  #endif
55
55
  {
56
+ static const char *ENGAGE_CONFIGURATION_OBJECT_ATTACHED_OBJECT = "_attached";
57
+
56
58
  //-----------------------------------------------------------
57
59
  #pragma pack(push, 1)
58
60
  typedef struct _DataSeriesHeader_t
@@ -298,6 +300,12 @@ namespace AppConfigurationObjects
298
300
  #define FROMJSON_IMPL(__var, __type, __default) \
299
301
  getOptional<__type>(#__var, p.__var, j, __default)
300
302
 
303
+ #define TOJSON_BASE_IMPL() \
304
+ to_json(j, (ConfigurationObjectBase&)p)
305
+
306
+ #define FROMJSON_BASE_IMPL() \
307
+ from_json(j, (ConfigurationObjectBase&)p);
308
+
301
309
 
302
310
  //-----------------------------------------------------------
303
311
  static std::string EMPTY_STRING;
@@ -408,10 +416,40 @@ namespace AppConfigurationObjects
408
416
  return _documenting;
409
417
  }
410
418
 
419
+ nlohmann::json _attached;
420
+
411
421
  protected:
412
- bool _documenting;
422
+ bool _documenting;
413
423
  };
414
424
 
425
+ static void to_json(nlohmann::json& j, const ConfigurationObjectBase& p)
426
+ {
427
+ try
428
+ {
429
+ if(p._attached != nullptr)
430
+ {
431
+ j[ENGAGE_CONFIGURATION_OBJECT_ATTACHED_OBJECT] = p._attached;
432
+ }
433
+ }
434
+ catch(...)
435
+ {
436
+ }
437
+ }
438
+ static void from_json(const nlohmann::json& j, ConfigurationObjectBase& p)
439
+ {
440
+ try
441
+ {
442
+ if(j.contains(ENGAGE_CONFIGURATION_OBJECT_ATTACHED_OBJECT))
443
+ {
444
+ p._attached = j.at(ENGAGE_CONFIGURATION_OBJECT_ATTACHED_OBJECT);
445
+ }
446
+ }
447
+ catch(...)
448
+ {
449
+ }
450
+ }
451
+
452
+
415
453
  //-----------------------------------------------------------
416
454
  JSON_SERIALIZED_CLASS(FipsCryptoSettings)
417
455
  class FipsCryptoSettings : public ConfigurationObjectBase
@@ -2188,6 +2226,56 @@ namespace AppConfigurationObjects
2188
2226
  }
2189
2227
 
2190
2228
 
2229
+ //-----------------------------------------------------------
2230
+ JSON_SERIALIZED_CLASS(PacketCapturer)
2231
+ /**
2232
+ * @brief Description of a packet capturer
2233
+ *
2234
+ * Helper C++ class to serialize and de-serialize PacketCapturer JSON.
2235
+ *
2236
+ * Example: @include[doc] examples/PacketCapturer.json
2237
+ *
2238
+ */
2239
+ class PacketCapturer : public ConfigurationObjectBase
2240
+ {
2241
+ IMPLEMENT_JSON_SERIALIZATION()
2242
+ IMPLEMENT_JSON_DOCUMENTATION(PacketCapturer)
2243
+
2244
+ public:
2245
+ bool enabled;
2246
+ uint32_t maxMb;
2247
+ std::string filePrefix;
2248
+
2249
+ PacketCapturer()
2250
+ {
2251
+ clear();
2252
+ }
2253
+
2254
+ void clear()
2255
+ {
2256
+ enabled = false;
2257
+ maxMb = 10;
2258
+ filePrefix.clear();
2259
+ }
2260
+ };
2261
+
2262
+ static void to_json(nlohmann::json& j, const PacketCapturer& p)
2263
+ {
2264
+ j = nlohmann::json{
2265
+ TOJSON_IMPL(enabled),
2266
+ TOJSON_IMPL(maxMb),
2267
+ TOJSON_IMPL(filePrefix)
2268
+ };
2269
+ }
2270
+ static void from_json(const nlohmann::json& j, PacketCapturer& p)
2271
+ {
2272
+ p.clear();
2273
+ getOptional<bool>("enabled", p.enabled, j, false);
2274
+ getOptional<uint32_t>("maxMb", p.maxMb, j, 10);
2275
+ getOptional<std::string>("filePrefix", p.filePrefix, j, EMPTY_STRING);
2276
+ }
2277
+
2278
+
2191
2279
  //-----------------------------------------------------------
2192
2280
  JSON_SERIALIZED_CLASS(TransportImpairment)
2193
2281
  /**
@@ -2806,7 +2894,7 @@ namespace AppConfigurationObjects
2806
2894
 
2807
2895
 
2808
2896
  /* PCM */
2809
- /** @brief PCM </a> */
2897
+ /** @brief PCM */
2810
2898
  ctPcm = 5,
2811
2899
 
2812
2900
  // AMR Narrowband */
@@ -4448,9 +4536,17 @@ namespace AppConfigurationObjects
4448
4536
  /** @brief [Optional] List of sources to ignore for this group */
4449
4537
  std::vector<Source> ignoreSources;
4450
4538
 
4451
- /** @brief ISO 639-2 lanuguage code for the group */
4539
+ /** @brief ISO 639-2 language code for the group */
4452
4540
  std::string languageCode;
4453
4541
 
4542
+ /** @brief Name of the synthesis voice to use for the group */
4543
+ std::string synVoice;
4544
+
4545
+ /** @brief Details for capture of received packets */
4546
+ PacketCapturer rxCapture;
4547
+
4548
+ /** @brief Details for capture of transmitted packets */
4549
+ PacketCapturer txCapture;
4454
4550
 
4455
4551
  Group()
4456
4552
  {
@@ -4524,6 +4620,10 @@ namespace AppConfigurationObjects
4524
4620
  ignoreSources.clear();
4525
4621
 
4526
4622
  languageCode.clear();
4623
+ synVoice.clear();
4624
+
4625
+ rxCapture.clear();
4626
+ txCapture.clear();
4527
4627
  }
4528
4628
  };
4529
4629
 
@@ -4581,9 +4681,15 @@ namespace AppConfigurationObjects
4581
4681
 
4582
4682
  TOJSON_IMPL(ignoreSources),
4583
4683
 
4584
- TOJSON_IMPL(languageCode)
4684
+ TOJSON_IMPL(languageCode),
4685
+ TOJSON_IMPL(synVoice),
4686
+
4687
+ TOJSON_IMPL(rxCapture),
4688
+ TOJSON_IMPL(txCapture)
4585
4689
  };
4586
4690
 
4691
+ TOJSON_BASE_IMPL();
4692
+
4587
4693
  // TODO: need a better way to indicate whether rtpProfile is present
4588
4694
  if(p._wasDeserialized_rtpProfile || p.isDocumenting())
4589
4695
  {
@@ -4655,6 +4761,12 @@ namespace AppConfigurationObjects
4655
4761
  getOptional<uint32_t>("securityLevel", p.securityLevel, j, 0);
4656
4762
  getOptional<std::vector<Source>>("ignoreSources", p.ignoreSources, j);
4657
4763
  getOptional<std::string>("languageCode", p.languageCode, j);
4764
+ getOptional<std::string>("synVoice", p.synVoice, j);
4765
+
4766
+ getOptional<PacketCapturer>("rxCapture", p.rxCapture, j);
4767
+ getOptional<PacketCapturer>("txCapture", p.txCapture, j);
4768
+
4769
+ FROMJSON_BASE_IMPL();
4658
4770
  }
4659
4771
 
4660
4772
 
@@ -4841,7 +4953,8 @@ namespace AppConfigurationObjects
4841
4953
  static void to_json(nlohmann::json& j, const LicenseDescriptor& p)
4842
4954
  {
4843
4955
  j = nlohmann::json{
4844
- TOJSON_IMPL(entitlement),
4956
+ //TOJSON_IMPL(entitlement),
4957
+ {"entitlement", "*entitlement*"},
4845
4958
  TOJSON_IMPL(key),
4846
4959
  TOJSON_IMPL(activationCode),
4847
4960
  TOJSON_IMPL(type),
@@ -4850,7 +4963,8 @@ namespace AppConfigurationObjects
4850
4963
  TOJSON_IMPL(flags),
4851
4964
  TOJSON_IMPL(deviceId),
4852
4965
  TOJSON_IMPL(status),
4853
- TOJSON_IMPL(manufacturerId),
4966
+ //TOJSON_IMPL(manufacturerId),
4967
+ {"manufacturerId", "*manufacturerId*"},
4854
4968
  TOJSON_IMPL(cargo),
4855
4969
  TOJSON_IMPL(cargoFlags)
4856
4970
  };
@@ -7706,9 +7820,15 @@ namespace AppConfigurationObjects
7706
7820
  IMPLEMENT_JSON_DOCUMENTATION(RallypointWebsocketSettings)
7707
7821
 
7708
7822
  public:
7823
+ /** @brief [Default: false] Websocket is enabled */
7824
+ bool enabled;
7825
+
7709
7826
  /** @brief Listen port (TCP). Default is 8443 */
7710
7827
  int listenPort;
7711
7828
 
7829
+ /** @brief Certificate to be used for WebSockets */
7830
+ SecurityCertificate certificate;
7831
+
7712
7832
  RallypointWebsocketSettings()
7713
7833
  {
7714
7834
  clear();
@@ -7716,22 +7836,113 @@ namespace AppConfigurationObjects
7716
7836
 
7717
7837
  void clear()
7718
7838
  {
7839
+ enabled = false;
7719
7840
  listenPort = 8443;
7841
+ certificate.clear();
7720
7842
  }
7721
7843
  };
7722
7844
 
7723
7845
  static void to_json(nlohmann::json& j, const RallypointWebsocketSettings& p)
7724
7846
  {
7725
7847
  j = nlohmann::json{
7726
- TOJSON_IMPL(listenPort)
7848
+ TOJSON_IMPL(enabled),
7849
+ TOJSON_IMPL(listenPort),
7850
+ TOJSON_IMPL(certificate)
7727
7851
  };
7728
7852
  }
7729
7853
  static void from_json(const nlohmann::json& j, RallypointWebsocketSettings& p)
7730
7854
  {
7731
7855
  p.clear();
7856
+ getOptional<bool>("enabled", p.enabled, j, false);
7732
7857
  getOptional<int>("listenPort", p.listenPort, j, 8443);
7858
+ getOptional<SecurityCertificate>("certificate", p.certificate, j);
7859
+ }
7860
+
7861
+
7862
+
7863
+ //-----------------------------------------------------------
7864
+ JSON_SERIALIZED_CLASS(RallypointAdvertisingSettings)
7865
+ /**
7866
+ * @brief Defines settings for Rallypoint advertising
7867
+ *
7868
+ * Example: @include[doc] examples/RallypointAdvertisingSettings.json
7869
+ *
7870
+ */
7871
+ class RallypointAdvertisingSettings : public ConfigurationObjectBase
7872
+ {
7873
+ IMPLEMENT_JSON_SERIALIZATION()
7874
+ IMPLEMENT_JSON_DOCUMENTATION(RallypointAdvertisingSettings)
7875
+
7876
+ public:
7877
+ /** @brief [Default: false] Advertising is enabled */
7878
+ bool enabled;
7879
+
7880
+ /** @brief [Optional] This Rallypoint's mesh name */
7881
+ std::string meshName;
7882
+
7883
+ /** @brief [Optional] This Rallypoint's DNS-SD host name */
7884
+ std::string hostName;
7885
+
7886
+ /** @brief [Optional, Default "_rallypoint._tcp.local."] The service name */
7887
+ std::string serviceName;
7888
+
7889
+ /** @brief The multicast network interface for mDNS */
7890
+ std::string interfaceName;
7891
+
7892
+ /** @brief [Default: RP port] The multicast network interface for mDNS */
7893
+ int port;
7894
+
7895
+ /** @brief [Default: 60] TTL for service TTL */
7896
+ int ttl;
7897
+
7898
+ /** @brief [Optional] List of additional meshes that can be reached via this RP */
7899
+ std::vector<std::string> extraMeshes;
7900
+
7901
+
7902
+ RallypointAdvertisingSettings()
7903
+ {
7904
+ clear();
7905
+ }
7906
+
7907
+ void clear()
7908
+ {
7909
+ enabled = false;
7910
+ meshName.clear();
7911
+ hostName.clear();
7912
+ serviceName = "_rallypoint._tcp.local.";
7913
+ interfaceName.clear();
7914
+ port = 0;
7915
+ ttl = 60;
7916
+ extraMeshes.clear();
7917
+ }
7918
+ };
7919
+
7920
+ static void to_json(nlohmann::json& j, const RallypointAdvertisingSettings& p)
7921
+ {
7922
+ j = nlohmann::json{
7923
+ TOJSON_IMPL(enabled),
7924
+ TOJSON_IMPL(meshName),
7925
+ TOJSON_IMPL(hostName),
7926
+ TOJSON_IMPL(serviceName),
7927
+ TOJSON_IMPL(interfaceName),
7928
+ TOJSON_IMPL(port),
7929
+ TOJSON_IMPL(ttl),
7930
+ TOJSON_IMPL(extraMeshes)
7931
+ };
7733
7932
  }
7933
+ static void from_json(const nlohmann::json& j, RallypointAdvertisingSettings& p)
7934
+ {
7935
+ p.clear();
7936
+ getOptional<bool>("enabled", p.enabled, j, false);
7937
+ getOptional<std::string>("meshName", p.meshName, j);
7938
+ getOptional<std::string>("hostName", p.hostName, j);
7939
+ getOptional<std::string>("serviceName", p.serviceName, j, "_rallypoint._tcp.local.");
7940
+ getOptional<std::string>("interfaceName", p.interfaceName, j);
7734
7941
 
7942
+ getOptional<int>("port", p.port, j, 0);
7943
+ getOptional<int>("ttl", p.ttl, j, 60);
7944
+ getOptional<std::vector<std::string>>("extraMeshes", p.extraMeshes, j);
7945
+ }
7735
7946
 
7736
7947
  //-----------------------------------------------------------
7737
7948
  JSON_SERIALIZED_CLASS(RallypointServer)
@@ -7890,6 +8101,9 @@ namespace AppConfigurationObjects
7890
8101
  /** @brief [Optional] Settings for NSM. */
7891
8102
  NsmConfiguration nsm;
7892
8103
 
8104
+ /** @brief [Optional] Settings for advertising. */
8105
+ RallypointAdvertisingSettings advertising;
8106
+
7893
8107
  RallypointServer()
7894
8108
  {
7895
8109
  clear();
@@ -7944,6 +8158,7 @@ namespace AppConfigurationObjects
7944
8158
  peerRtBehaviors.clear();
7945
8159
  websocket.clear();
7946
8160
  nsm.clear();
8161
+ advertising.clear();
7947
8162
  }
7948
8163
  };
7949
8164
 
@@ -7996,7 +8211,8 @@ namespace AppConfigurationObjects
7996
8211
  TOJSON_IMPL(peerRtTestIntervalMs),
7997
8212
  TOJSON_IMPL(peerRtBehaviors),
7998
8213
  TOJSON_IMPL(websocket),
7999
- TOJSON_IMPL(nsm)
8214
+ TOJSON_IMPL(nsm),
8215
+ TOJSON_IMPL(advertising)
8000
8216
  };
8001
8217
  }
8002
8218
  static void from_json(const nlohmann::json& j, RallypointServer& p)
@@ -8049,6 +8265,7 @@ namespace AppConfigurationObjects
8049
8265
  getOptional<std::vector<RallypointRpRtTimingBehavior>>("peerRtBehaviors", p.peerRtBehaviors, j);
8050
8266
  getOptional<RallypointWebsocketSettings>("websocket", p.websocket, j);
8051
8267
  getOptional<NsmConfiguration>("nsm", p.nsm, j);
8268
+ getOptional<RallypointAdvertisingSettings>("advertising", p.advertising, j);
8052
8269
  }
8053
8270
 
8054
8271
  //-----------------------------------------------------------
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "engage-engine",
3
- "version": "1.234.90740001",
3
+ "version": "1.236.90760003",
4
4
  "description": "Use Engage to communicate with everyone, everywhere, from any device",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"