ami_flutter 0.0.4
ami_flutter: ^0.0.4 copied to clipboard

Dart native
Flutter Android iOS Linux macOS Windows

Asterisk Manager Interface (AMI) Library for Flutter. Providers a cross-platform AMI API, a cross-platform implementation of the API communicating with Asterisk Server.

ami_flutter #

Asterisk Manager Interface (AMI) Library for Flutter


Features #

  • support Android,iOS,Desktop and Web.
  • support listen events from stream.
  • support async/await for ami events.
  • functions organized by module, developers can combine them for other purpose.
  • easy to develop new actions or connection methods.

Installation #

just add dependency into pubspec.yaml:

ami_flutter: ^0.0.2

Usage #

  1. initialize derived classes of BaseManager (e.g. DefaultManager for TCP Socket or WebSocketManager for WebSocket at web platform) and connect:
final manager = DefaultManager();
// web platform need set prefix for send actions, like this: manager.prefix = 'prefix';
manager.init();
await manager.connect('127.0.0.1', 5038);
  1. login ami:
final loginResult = await manager.login('user', 'pass');
  1. send actions and receive responses:
final statusResult = await manager.sendAction('Status');
final originateResult = await manager.sendAction(
      'Originate',
      id: 'actionId',
      args: {
        'Channel': 'sip/12345',
        'Exten': '1234',
        'Context': 'default',
        'Async': 'yes',
      },
    );
  1. listen events:
manager.registerEvent('DongleSMSStatus').listen(
      (event) {
        print('receive event ${event.name} ${event.baseMsg.headers}');
      },
    );

or read events like response:

final bootedEvent = await manager.readEvent('FullyBooted');
final events = await manager.readAllEventsUntil(
      'DongleDeviceEntry',
      'DongleShowDevicesComplete',
    );
  1. logoff and dispose resource:
await manager.logoff();
manager.dispose();

Web Platform Need Know #

AMI only support TCP socket. If you need use the library at web platform:

  • Install and configure amiws.
  • Use WebSocketManager to connect web socket proxy by amiws

BTW. You can use function selectByPlatform to auto select the proper manager according to your platform.

0
likes
60
pub points
26%
popularity

Asterisk Manager Interface (AMI) Library for Flutter. Providers a cross-platform AMI API, a cross-platform implementation of the API communicating with Asterisk Server.

Repository (GitHub)
View/report issues

Documentation

API reference

Uploader

129tyc@gmail.com

License

MIT (LICENSE)

Dependencies

web_socket_channel

More

Packages that depend on ami_flutter