Supported devices 36
The format for the text file is specified below. This format is compatible with the standard CSV or TSV (comma / tab separated values) formatting,
so it can be processed by spreadsheet software, text editors or command-line utilities.
- Lines starting with # will not be interpreted.
- Each valid line corresponds to one resource.
- Lines must have at least 2 quoted fields. A quoted field consists of a starting double quote character (") followed by escaped string data as defined
above, followed by an end double quote character.
- If a line contains only 2 quoted strings, they will be interpreted as name and match/command string, and the resource type will default to BOTH.
- If the line contains at least 3 quoted strings, the third will be interpteted as the type. Accepted values are uppercase I for input, uppercase O for
output, and uppercase B for both. Defaults to both.
- Extra quoted fields, as well as any non-quoted data will be ignored.
- Lines with no quoted fields will be ignored.
Events and commands
Resources marked for input (or both input + output) will be searched for in all incoming data. As soon as a match is found, the corresponding
event will be generated and search will continue after the match. If the incoming channel becomes idle, then all partial matches will be discarded.
Also, whenever the channel is connected (or reconnected), a special CONNECT event will be generated in case some session-setup is needed.
Commands are all resources marked as output (or both input + output) that can be transmitted to the channel.
TCP connection maintenance
(read this section if you experience periodic TCP reconnections)
In order to rapidly detect broken TCP connections, MLGW uses the standard TCP Keepalive probes mechanism: when a TCP connection is idle,
probe packets are sent periodically over the connection and an acknowledge is expected. The probe is an empty TCP packet with the request for
acknowledge flag set.
There are products with non-compliant TCP implementations which do not respond to these acknowledge requests. In such cases, MLGW will
detect a broken TCP connection and reconnect. This may happen as frequent as every 20 seconds if there is no other data on the connection.
If you experience this problem, then you must somehow force some data to be sent back to MLGW periodically, so as to keep the channel active.
For example, you can set up a scheduler loop to send a status request to the 3rd party product, or a ping/pong message. On command-line based
protocols that echo all characters typed, probably sending a carriage return character is enough for getting data back to MLGW.
What to do strongly depends on the protocol of the 3rd party system.