AlienZzzz
@AlienZzzz
SmartFetch.io

Вызов скрипта, при поднятии трубки(asterisk)?

Всем добрый вечер!

Ситуация такая:

Есть Asterisk Now(Version 6.12.65-26) - os: Linux

Задача: после того, как оператор взял трубку, был вызов внешнего скрипта

пробывал что-то делать в файле extensions_custom.conf

ставил по разному

смог настроить только, что скрипт срабатывает при входящем вызове, но чтоб при поднятии трубки оператором нет (

Пробывал и через AGI и System и Macros(

Можете на примере показать, что нужно сделать?

в гугле обыскал все что мог(forums.asterisk.org/viewtopic.php?p=136759)

но толку никакого

хоть укажите где копать ((((

многие подсказывают, что можно настроить через AMI

просто дайте хоть 1 рабочий пример, я уже сам раскопаю
  • Вопрос задан
  • 3349 просмотров
Решения вопроса 1
AlienZzzz
@AlienZzzz Автор вопроса
SmartFetch.io
Спасибо заработало вот так:

[from-internal-custom]
exten => _XXXX,1,Dial(SIP/${EXTEN},60,U(answer-script,${PARAM}))
same => n,Hangup
[answer-script]
exten => s,1,AGI(answer.py,${ARG1})
same => n,Return

answer.py:

#!/usr/bin/python
import os,sys
import datetime
ROOT_PATH = os.path.abspath(u'{0}'.format(os.path.dirname(os.path.abspath(__file__))))
file_name = os.path.join(ROOT_PATH, 'answer.txt')
with open(file_name, 'a') as file_to_save:
save_string= u"{0:%Y-%m-%d %H:%M:%S}: {1}\n".format(datetime.datetime.now(), sys.argv)
file_to_save.write(save_string)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@bely87
Как вариант Asterisk Managment Interface (AMI)
AMI — мощный и удобный программный интерфейс (API) Asterisk для управления системой из внешних программ. В дополнение к AMI, часто используется AGI — это интерфейс для запуска внешних приложений, управляющих каналом Астериска в рамках конкретного вызова.
Благодаря AMI внешние программы могут осуществлять соединения с Астериском посредством TCP протокола, инициировать выполнение команд, считывать результат их выполнения, а так же получать уведомления о происходящих событиях в реальном времени. Этими механизмами можно пользоваться, например в следующих случаях:
Необходимо узнать состояние системы
Количество активных абонентов
Выполнять команды CLI удаленно
Улучшить хранение CDR
... и пр. и др. и т.п.
Ответ написан
@awsswa59
exten => 301,1,Dial(SIP/301,,M(booms))

[macro-booms]
exten => s,1,Noop(==Подняли трубку==)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы