(Registry)
(Limitations)
 
(7 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
* On initial releases only voice calls are supported (group and private)
 
* On initial releases only voice calls are supported (group and private)
 
* Only AMBE encoding (payload type DMRA-AIS) is supported, g.711 is not supported (and will never be supported)
 
* Only AMBE encoding (payload type DMRA-AIS) is supported, g.711 is not supported (and will never be supported)
* AIS Connect configured as a network-type connection, any call will change user's location while routing
+
* BrandMeister Core doesn't buffer outgoing calls, AIS node may miss some early frames before call setup procedure ends
 +
* AIS Connect configured as a network-type connection, any call may change user's location while routing
 
* BrandMeister Core supports multiple calls with each peers (maximum amount of concurrent calls per peer depends on amount of configured RTP ports)
 
* BrandMeister Core supports multiple calls with each peers (maximum amount of concurrent calls per peer depends on amount of configured RTP ports)
* Slot property (AIS' optional) has only informational meaning, Core doesn't check slot's state like it does with repeater-type connections
+
* Slot property (AIS' optional) has only informational meaning, Core doesn't check slot's state or timeout timer like it does with repeater-type connections
 
* Due to security reasons each connection limited to static IP (domain name is resolved during the start or forced connection)
 
* Due to security reasons each connection limited to static IP (domain name is resolved during the start or forced connection)
* Supported one address of Control Gateway and only one of Media Gateway (may differ from Control Gateway)
+
* Supported one address of Signalling Gateway and only one of Media Gateway (may differ from Signalling Gateway)
 
* No keep-alives and no dead-peer detection due to protocol design
 
* No keep-alives and no dead-peer detection due to protocol design
 
* Digest / MD5 authentication is supported (username equals to connection profile ID), but in case of Hytera's equipment doesn't work (Hytera's bug). Single password per connection profile.
 
* Digest / MD5 authentication is supported (username equals to connection profile ID), but in case of Hytera's equipment doesn't work (Hytera's bug). Single password per connection profile.
Line 27: Line 28:
 
{
 
{
 
   port1 = 5060;  // SIP Port
 
   port1 = 5060;  // SIP Port
   port2 = 45000;  // Start RTP Port (will use many)
+
   port2 = 45000;  // Start RTP Port (this port will be used for outgoing traffic)
   count = 20;    // Count of ports to receive RTP (equals to amount of allowed concurrent calls per connection)
+
   count = 20;    // Count of ports to receive RTP (equals to amount of allowed concurrent calls per connection, next to "port2")
 
   latency = 200;  // Latency of jitter buffer (100-800 ms)
 
   latency = 200;  // Latency of jitter buffer (100-800 ms)
 
   // Connection profiles
 
   // Connection profiles
Line 39: Line 40:
 
AISProfile1 :
 
AISProfile1 :
 
{
 
{
   // Network ID of remote system
+
   // ID of remote system
 
   number = 25010;
 
   number = 25010;
 
   // Connection mode:
 
   // Connection mode:
   // Bit 0 - Allow to update terminal location in all registries
+
   // Bit 0 - Allow to update terminal location in Registry (when AIS peer registers a user subscription)
   // Bit 1 - Allow to subscribe a group in embedded registry
+
   // Bit 1 - Allow to subscribe a group in embedded registry (when AIS peer registers a group subscription)
 +
  // Bit 16 - Allow to send terminal location updates to AIS (BM registers a user on AIS peer)
 
   mode = 3;
 
   mode = 3;
 
   // Address and port of endpoint
 
   // Address and port of endpoint

Latest revision as of 20:36, 23 December 2021

Since version BrandMeister Core 20211222-205035 has support of DMRA AIS.

DMR Application Interface by DMR Association is a general-use IP-based interface for DMR applications and interworking. It is quite abstract and allows vendor's specific deviations. Also it is a bit slow due to complicated procedures (for example, call setup).

During the implementation we tried to provide flexibility of connector. To follow that approach most of specific procedures, such as registration business-logic are moved to Lua code of Registry. On this way, for example, you are able to register all subscribers of BrandMeister Network in an interconnected DMR Tier 3 network.

Limitations

  • On initial releases only voice calls are supported (group and private)
  • Only AMBE encoding (payload type DMRA-AIS) is supported, g.711 is not supported (and will never be supported)
  • BrandMeister Core doesn't buffer outgoing calls, AIS node may miss some early frames before call setup procedure ends
  • AIS Connect configured as a network-type connection, any call may change user's location while routing
  • BrandMeister Core supports multiple calls with each peers (maximum amount of concurrent calls per peer depends on amount of configured RTP ports)
  • Slot property (AIS' optional) has only informational meaning, Core doesn't check slot's state or timeout timer like it does with repeater-type connections
  • Due to security reasons each connection limited to static IP (domain name is resolved during the start or forced connection)
  • Supported one address of Signalling Gateway and only one of Media Gateway (may differ from Signalling Gateway)
  • No keep-alives and no dead-peer detection due to protocol design
  • Digest / MD5 authentication is supported (username equals to connection profile ID), but in case of Hytera's equipment doesn't work (Hytera's bug). Single password per connection profile.
  • Connection profile ID is used as contact name
  • To pass traffic between AIS node/network and BrandMeister Network please use standard way of bridge configuration and register a talkgroup in space AISSubscriptions (see bellow)

Configuration

Main configuration

AISConnect :
{
  port1 = 5060;   // SIP Port
  port2 = 45000;  // Start RTP Port (this port will be used for outgoing traffic)
  count = 20;     // Count of ports to receive RTP (equals to amount of allowed concurrent calls per connection, next to "port2")
  latency = 200;  // Latency of jitter buffer (100-800 ms)
  // Connection profiles
  connections =
  [
    "AISProfile1"
  ];
};

AISProfile1 :
{
  // ID of remote system
  number = 25010;
  // Connection mode:
  // Bit 0  - Allow to update terminal location in Registry (when AIS peer registers a user subscription)
  // Bit 1  - Allow to subscribe a group in embedded registry (when AIS peer registers a group subscription)
  // Bit 16 - Allow to send terminal location updates to AIS (BM registers a user on AIS peer)
  mode = 3;
  // Address and port of endpoint
  address = "ais.domain.net";
  port = 5060;
  // Incoming REGISTER request
  interval = 300;  // Registration timeout
};

Registry

  Space AISSubscriptions - used to send registration requests to AIS node:
    1 - AIS Profile ID
    2 - Group ID
    3 - Slot  (0 = undefined)
    4 - Expiration Time (should be 0 on insertion)

To configure access password please use standard way with call setPassword(LINK_TYPE_NETWORK, <profile ID>, '<password>')

Since version BrandMeister Core 20211222-205035 has support of DMRA AIS.

DMR Application Interface by DMR Association is a general-use IP-based interface for DMR applications and interworking. It is quite abstract and allows vendor's specific deviations. Also it is a bit slow due to complicated procedures (for example, call setup).

During the implementation we tried to provide flexibility of connector. To follow that approach most of specific procedures, such as registration business-logic are moved to Lua code of Registry. On this way, for example, you are able to register all subscribers of BrandMeister Network in an interconnected DMR Tier 3 network.

Limitations[edit]

Configuration[edit]

Main configuration[edit]

AISConnect :
{
  port1 = 5060;   // SIP Port
  port2 = 45000;  // Start RTP Port (will use many)
  count = 20;     // Count of ports to receive RTP (equals to amount of allowed concurrent calls per connection)
  latency = 200;  // Latency of jitter buffer (100-800 ms)
  // Connection profiles
  connections =
  [
    "AISProfile1"
  ];
};

AISProfile1 :
{
  // Network ID of remote system
  number = 25010;
  // Connection mode:
  // Bit 0 - Allow to update terminal location in all registries
  // Bit 1 - Allow to subscribe a group in embedded registry
  mode = 3;
  // Address and port of endpoint
  address = "ais.domain.net";
  port = 5060;
  // Incoming REGISTER request
  interval = 300;  // Registration timeout
};

Registry[edit]

  Space AISSubscriptions - used to send registration requests to AIS node:
    1 - AIS Profile ID
    2 - Group ID
    3 - Slot  (0 = undefined)
    4 - Expiration Time (should be 0 on insertion)

To configure access password please use standard way with call setPassword(LINK_TYPE_NETWORK, <profile ID>, '<password>')