ami_flutter 0.0.4 copy "ami_flutter: ^0.0.4" to clipboard
ami_flutter: ^0.0.4 copied to clipboard

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.

2
likes
30
pub points
0%
popularity

Publisher

unverified uploader

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

License

MIT (LICENSE)

Dependencies

web_socket_channel

More

Packages that depend on ami_flutter