С Asterisk сталкиваюсь впервые (но надеюсь надолго), потому прошу строго не судить.
Есть 2 SIP аппарата, подключенные к Asterisk. Звонят друг на друга, все хорошо.
Есть задача, из внешнего приложения добиться полного управления телефоном (до этого эта задача была реализована с Awaya IPOffice500 и Awaya1616 через TAPI 2.0)
Рассматриваю 2 варианта решения:
- Через Manager API напрямую (asterisk-java)
- Через драйвер TAPI для Asterisk: Activa (собственно в итоге так же через Manager API)
При вызове через OriginateAction, вызов приходит сначала на SIP аппарат, с которого я делаю вызов. После снятия трубки - совершается вызов адресату. Каким образом прописать чтобы исходный SIP аппарат автоматически снимал трубку (в громкоговоритель или гарнитуру). Уточню, что SIP аппараты поддерживают AutoAnswer.
Попытки:
Код: Выделить всё
exten => XXXX,1,SIPAddHeader(answer-after=0)
exten => XXXX,n,Dial(SIP/${EXTEN})
Код: Выделить всё
exten => XXXX,1,Answer(0)
exten => XXXX,n,Dial(SIP/${EXTEN})
Вопрос второй (по TAPI драйверу Activa):
Настраивал драйвер на и default контекст и на свой (одна стройка exten => XXXX,n,Dial(SIP/${EXTEN})). TAPI события получаю, а вот управлять вызовами получается далеко не во всем (для тестирования использовал TAPI Master Line Watcher). Исходящий вызов создается, но висит в состоянии IDLE, никаким образом не затрагивает аппараты. При входящем вызове - доступно (причем работает) только одно действие "Drop". Возможно нужны какие-то разрешения или дополнительные конфиги? Может кто сталкивался? В общем, хотелось бы настроить Asterisk так, чтобы он позволил Activa стать полноценным TAPI драйвером.
Да, в правах пользователя Asterisk Manager API стоит all на read и write.