0 purchases
ami flutter
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
copied to clipboard
Usage #
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);
copied to clipboard
login ami:
final loginResult = await manager.login('user', 'pass');
copied to clipboard
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',
},
);
copied to clipboard
listen events:
manager.registerEvent('DongleSMSStatus').listen(
(event) {
print('receive event ${event.name} ${event.baseMsg.headers}');
},
);
copied to clipboard
or read events like response:
final bootedEvent = await manager.readEvent('FullyBooted');
final events = await manager.readAllEventsUntil(
'DongleDeviceEntry',
'DongleShowDevicesComplete',
);
copied to clipboard
logoff and dispose resource:
await manager.logoff();
manager.dispose();
copied to clipboard
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.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.