Asterisk Manager Interface(AMI)
AGI AMI ARI
В Астериск есть несколько програмных интерфейсов для связи с внешними программами:
- AGI (Asterisk Gateway Interface) позволяет Asterisk запустить внешнюю программу, написанную на любом языке, для контроля над каналами связи, воспроизведением аудио, чтения DTMF сигналов и др., связываясь с Asterisk через стандартный потоковый ввод/вывод.
- AMI (Asterisk Manager Interface) - это асинхронный интерфейс, позволяющий контролировать внутреннее состояние объектов в Asterisk, и получать информацию о происходящих событиях.
- ARI (Asterisk REST Interface) предоставляет RESTful-интерфейс для получения информации от Астериск и управления его объектами.
Какие из этих технологий подойдут для получения информации и управления Астериском?
AGI предназначен в основном для расширения возможностей диалплана.
ARI - перспективно выглядит: удобна для вызова из веб-ориентированых программ, но к сожалению видимо пока еще недостаточно развита. Слишком мало действий, которые можно через ARI совершить. При всем многообразии объектов Астериск, слишком мало что можно с ними сделать через REST-интерфейс. ARI среди всех рассматриваемых интерфейсов самый молодой и надеюсь еще разовьется.
AMI - имеет немного странный способ обмена информацией между внешней программой и Астериск (думаю по этому и родилась идея создать REST-интерфейс), но по возможностям пока что эта технология наиболее развита.
Исходя из вышесказанного я рассмотрю в своих примерах программ только AMI (до момента, когда, я надеюсь, ARI будет уметь больше)
Использованные источники: