Line 3: Line 3:
 
You can generate static UUIDs here - https://www.uuidgenerator.net
 
You can generate static UUIDs here - https://www.uuidgenerator.net
  
'''We strongly recommend you to use it in phone conference bridge with autodial to BrandMeister Core'''
+
'''We strongly recommend you to use it on top of phone conference bridges with autodial to BrandMeister Core'''
  
 
== Asterisk Dialplan example ==  
 
== Asterisk Dialplan example ==  

Revision as of 14:35, 13 October 2021

Since version BrandMeister Core 20211013-125527 has support of Asterisk's AudioSockets

You can generate static UUIDs here - https://www.uuidgenerator.net

We strongly recommend you to use it on top of phone conference bridges with autodial to BrandMeister Core

Asterisk Dialplan example

exten = 101,1,Verbose("Call to AudioSocket via Channel interface")
same = n,Answer()
same = n,Dial(AudioSocket/server.example.com:9092/40325ec2-5efd-4bd3-805f-53576e581d13)
same = n,Hangup()

BrandMeister Core configuration example

AudioSocket :
{
  port = 9092;  // TCP port
  channels =
  [
    "Socket20"
  ];
};

Socket20 :
{
  // AudioSocket ID
  number = 20;
  // AudioSocket UUID (optional)
  identifier = "6c7a28ca-4d20-4db3-9a8a-497594de57a8";
  // Codec type:
  // AMBEServer - to use with AMBEserver or dvemu (please check https://github.com/dl5di/OpenDV/tree/master/DummyRepeater)
  // USB Dongle - to use with DVSI USB-3000/USB-3003/USB-3012, NW ThumbDV/ThumbDV-3 or DV3K Dongle
  type = "AMBEServer";
  // Location of codec:
  // <domain name>[:<port>][,<interval>] - in case of AMBEServer (interval - address refresh interval in seconds, 10 minutes by default)
  // <path to TTY device>[;speed=230400] - in case of USB Dongle
  location = "localhost:2460";
  // Address of Asterisk server
  address = "localhost";
  // VAD parameters
  start = 47;    // Level percentage to start
  release = 10;  // Level percentage to continue
  // Outgoing session parameters (optional)
  mode = "Group";
  source = 1;
  destination = 9504;
};

API commands

invokeCommand(context, command)

  • set alias <talker alias>
  • set address <asterisk address, domain names accepted>

setSpecificValue(context, parameter, value), getSpecificValue(context, parameter)

#define VALUE_SOCKET_OUTGOING_SOURCE_ID  1
#define VALUE_SOCKET_OUTGOING_TARGET_ID  2
#define VALUE_SOCKET_INCOMING_MODE       3
#define VALUE_SOCKET_INCOMING_SOURCE_ID  4
#define VALUE_SOCKET_INCOMING_TARGET_ID  5
#define VALUE_SOCKET_HOOK_MODE           6
#define VALUE_SOCKET_CONNECTION_STATE    7

#define SOCKET_MODE_PRIVATE  0 
#define SOCKET_MODE_GROUP    1

#define SOCKET_HOOK_NONE       0
#define SOCKET_HOOK_CALL_BACK  1
#define SOCKET_HOOK_TARGET_ID  2

Since version BrandMeister Core 20211013-125527 has support of Asterisk's AudioSockets

You can generate static UUIDs here - https://www.uuidgenerator.net

We strongly recommend you to use it in phone conference bridge with autodial to BrandMeister Core

Asterisk Dialplan example[edit]

exten = 101,1,Verbose("Call to AudioSocket via Channel interface")
same = n,Answer()
same = n,Dial(AudioSocket/server.example.com:9092/40325ec2-5efd-4bd3-805f-53576e581d13)
same = n,Hangup()

BrandMeister Core configuration example[edit]

AudioSocket :
{
  port = 9092;  // TCP port
  channels =
  [
    "Socket20"
  ];
};

Socket20 :
{
  // AudioSocket ID
  number = 20;
  // AudioSocket UUID (optional)
  identifier = "6c7a28ca-4d20-4db3-9a8a-497594de57a8";
  // Codec type:
  // AMBEServer - to use with AMBEserver or dvemu (please check https://github.com/dl5di/OpenDV/tree/master/DummyRepeater)
  // USB Dongle - to use with DVSI USB-3000/USB-3003/USB-3012, NW ThumbDV/ThumbDV-3 or DV3K Dongle
  type = "AMBEServer";
  // Location of codec:
  // <domain name>[:<port>][,<interval>] - in case of AMBEServer (interval - address refresh interval in seconds, 10 minutes by default)
  // <path to TTY device>[;speed=230400] - in case of USB Dongle
  location = "localhost:2460";
  // Address of Asterisk server
  address = "localhost";
  // VAD parameters
  start = 47;    // Level percentage to start
  release = 10;  // Level percentage to continue
  // Outgoing session parameters (optional)
  mode = "Group";
  source = 1;
  destination = 9504;
};

API commands[edit]

invokeCommand(context, command)[edit]

setSpecificValue(context, parameter, value), getSpecificValue(context, parameter)[edit]

#define VALUE_SOCKET_OUTGOING_SOURCE_ID  1
#define VALUE_SOCKET_OUTGOING_TARGET_ID  2
#define VALUE_SOCKET_INCOMING_MODE       3
#define VALUE_SOCKET_INCOMING_SOURCE_ID  4
#define VALUE_SOCKET_INCOMING_TARGET_ID  5
#define VALUE_SOCKET_HOOK_MODE           6
#define VALUE_SOCKET_CONNECTION_STATE    7

#define SOCKET_MODE_PRIVATE  0 
#define SOCKET_MODE_GROUP    1

#define SOCKET_HOOK_NONE       0
#define SOCKET_HOOK_CALL_BACK  1
#define SOCKET_HOOK_TARGET_ID  2