У меня есть работающая система, которая управляет IP-АТС Cisco CUCM для установки и разрыва вызова между двумя сторонами A и B; он использует JTAPI Java для:
- сделать А позвонить Б
- сделай ответ Б (подними трубку)
- (подождите несколько секунд)
- сделать так, чтобы А или Б сбросили вызов
Теперь я хочу сделать то же самое с АТС Asterisk (версия 13.17.0). Насколько я понял, реализация JTAPI Asterisk не работает для последних версий Asterisk; последняя версия, которую я могу найти, датируется 2006 годом, и, похоже, она пытается отправлять команды AMI, на которые Asterisk отвечает что-то вроде «нет такой команды» - я предполагаю, что синтаксис AMI изменился за эти годы.
Сейчас я использую библиотеку под названием asterisk-java, а точнее, ее поддержку AMI. Я отправляю OriginateAction
, и чистый эффект таков:
- Звездочка звонит А
- Я должен поднять трубку телефона А вручную
- А звонит Б
- Я должен поднять трубку телефона Б вручную
- наконец, между A и B устанавливается вызов
Таким образом, вместо полностью автоматизированного процесса, как в случае с Cisco, мне приходится выполнять ручную работу, и я не могу найти API, чтобы просто установить вызов между A и B и отключить его через пару секунд.
Вопросы: является ли AMI подходящим API для моего варианта использования или есть лучшая альтернатива? И какие вызовы API мне нужно сделать, чтобы установить и сбросить вызов?
Спасибо, Ян