Audio Service¶
The intaQt Audio Service enables the use of Steps and Compound Steps for Audio Recordings, Audio Matching and Speech Channel Monitoring.
The following section contains information about the hardware needed to use the Audio Service, and provides examples and links to the device-specific configuration blocks.
Additional configuration information is available in the Audio and Speech Channel Steps and Compound Steps chapter for the following:
Audio Services |
---|
Hardware Requirements |
Map the Raspberry Pi to the Audio Service |
Resources Directory |
Configuration Examples |
Hardware Requirements ¶
Using the Audio and Speech Channel functionality requires the following hardware:
-
A Raspberry Pi is needed for every phone that is used with the audio services.
-
The Raspberry Pi runs a service called
Audio Service
. -
Every Raspberry Pi is connected through a USB soundcard to a given phone using a provided audio cable.
-
Phones (Android, Snom or Yealink).
Map the Raspberry Pi to the Audio Service ¶
Depending on the type of phone being used, the audioServiceURL
property must be defined in one of the following configurations (this maps the device(s) being used to the Raspberry Pi hosting the Audio Service):
-
Android phones - Define the
audioServiceURL
property of the Android Devices configuration. -
Snom phones - Define the
audioServiceURL
property of the Snom configuration. -
Yealink phones - Define the
audioServiceURL
property of the Yealink configuration. Additionally, theheadset
function must be enabled.
If the audioServiceURL
property is not defined or is a malformed URL, the corresponding device will not support the audio capabilities. Additionally, if the connection to the remote host is refused for any reason, the audio capabilities will be deactivated for the device.
Resources Directory ¶
The Audio Service running on Raspberry Pi provides a static resources
directory, which holds all the files that are used for playback only. These files are not removed on resetting the service. The speech channel monitoring uses this directory to store its reference signals.
Define the Resources Directory¶
A command line option is used to define the static resources directory. The list of resources must be a flat hierarchy. Therefore there are no subdirectories allowed within the defined directory.
Syntax
1 | ./audioService -res <directory Path> |
Parameter
- directory - The directory name
- Default value is set to
/tmp
- Default value is set to
Example
1 | ./audioService -res /var/audio/resources |
Configuration Examples ¶
Android Devices Configuration Example ¶
If using Android phones with the Audio Service, the phone's serial number must be specified and mapped to the URL of the service running on the Raspberry Pi. The URL of the service must be specified for the audioServiceURL
parameter.
1 2 3 4 5 | AndroidDevices = { "00c09f44967c5764": { "audioServiceURL" : "http://127.0.0.1:10001" } } |
For more information, refer to the Android Devices configuration section.
Snom Configuration Example ¶
If using Snom phones with the Audio Service, the URL of the service running on the Raspberry Pi must be specified for the audioServiceURL
parameter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Snom { isActive = false devices = [ { username = "abcd" password = "dex123" type = "snom" number = "+49123456789" adminPassword = "9999" ip = "https://192.168.1.3" networkInterface = "en0" configurationProfile = "simple" exchangeLinePrefix = "" keyPressDelayMilliseconds = 10 dialKeyPressDelayMilliseconds = 10 connectionStateChangeTimeoutMilliseconds = 9000 stateTransitionTimeoutMilliseconds = 9000 settings = {} audioServiceURL = "http://127.0.0.1:10001" } ] } |
For more information, refer to the Snom Phones configuration section.
Yealink Configuration Example ¶
If using Yealink phones with the Audio Service, the URL of the service running on the Raspberry Pi must be specified for the audioServiceURL
parameter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Yealink { isActive = true timeouts { answerCallTimeoutMilliseconds = 5000 registerTimeoutMilliseconds = 6000 endCallTimeoutMilliseconds = 6000 outgoingCallTimeoutMilliseconds = 6000 } devices = [ { number = "sip:alice@iptel.org" url = "http://192.168.1.1" networkInterface = "en0" audioServiceURL = "http://192.168.1.22:10001" } ] } |
For more information, refer to the Yealink Phones configuration section.