1.0.0 • Published 4 years ago

amarisoft-api v1.0.0

Weekly downloads
1
License
LGPL-3.0-only
Repository
-
Last release
4 years ago

Amarisoft Websocket API

This package is intended to easily build applications consuming the websocket API of the Amarisoft Callboxes.

Installation

npm install amarisoft-api

Usage

Connection Setup

To connect to a server, e.g. the MME endpoint, create a new AmarisoftServer object.

let server = new AmarisoftServer('ws://localhost:9000/');
await server.connect();

To connect with a password, use:

let server = new AmarisoftServer('ws://localhost:9000/', 'mysecurepassword');
await server.connect();

Send a Message

The following example shows how to send a message and get it's reply (already parsed from JSON).

let result = await server.sendMessage({message: "myMessage"});

Read Logs

To register for log events, the RxJS library is used. You can pass your own RxJS observables as a parameter to registerForLogs, or just use function callbacks.

await server.registerForLogs(console.log);

The log events are already parsed and are passed individually to your observer. The object contains:

  • data - Array of Strings, one element corresponds to one log line
  • src - String, Which server generated this log event
  • idx - Number, A unique index identifying the log event
  • level - Number, Which log level this corresponds to
  • timestamp Number, When this log event was generated (depends on your log configuration)
  • layer String, Which layer generated this event
  • dir - Optional String, which direction this message corresponds to

Depending on the component, more attributes are included. Refer to the Amarisoft manual for details.

React on Events

To register on events, use the following as an example:

await server.registerForEvent("eps_bearer_notification", console.log);

This would now listen to events for eps_bearer_notification and print the events to the console. Again, you can pass any RxJS observable as a 2nd parameter.

To stop receiving events (on all observers, they are closed), use:

await server.unRegisterForEvent("eps_bearer_notification");