AMI Launcher for Asterisk / Elastix / FreePBX

amilaunchernewДавно хотел написать универсальное приложение для Asterisk, которое могло бы запускать внешнее приложение после поднятия трубки оператором.

«Для чего это нужно?» —  спросите вы, и это будет хороший вопрос. Это бывает необходимо в тех случаях, когда нет возможности/желания/средств на интеграцию вашей системы IP-телефонии на основе Asterisk в вашу CRM, backoffice или «систему помощи клиентов». Предположим, у нас есть некий backoffice с возможностью поиска клиентов по номеру телефону. И мы хотим автоматизировать процесс поиска так, чтобы при поступлении входящего вызова, оператор call-центра уже видел карточку клиента(его заказы или другую информацию). С помощью AMI-Launcher это реализуется проще-простого.

Возможности AMILauncher:

  • Возможность выполнения внешней программы, после поднятия трубки оператором.
  • Возможность выполнения внешней программы, перед поднятием трубки оператором.
  • В качестве аргумента к внешним программам имеется возможность отправить входящий CallerID через параметр {num};
  • Программа работает с сервером Asterisk через AMI;
  • В качестве внешнего приложения можно указать как прямой путь до программы Windows, так и http/https-адрес.

Пример использования:



Настройки программы:

  • Server — cервер Asterisk;
  • Port — порт AMI (по-умолчанию 5038);
  • Login — логин пользователя AMI;
  • Password — пароль пользователя AMI;
  • Phone num — внутренний номер оператора;
  • Length — длина телефонного номера звонящего, больше которого происходит срабатывание;
  • Exec after answer — внешнее приложение, которое выполнится при поднятии трубки оператором;
  • Exec before answer — внешнее приложение, которое выполнится в момент поступления входящего вызова оператору;
  • Agruments — Аргумент, который будет отправлен внешнему приложению;
  • Autostart at Logon — Настройки автозапуска;
  • Autologin — подключаться к серверу Asterisk сразу после запуска программы

Настройка Asterisk на работу с AMI-Launcher:

открываем файл конфигурации /etc/asterisk/manager.conf и создаем нового пользователя с правами на чтение call. Пример:

Сохраняем файл конфигурации и даем команду на чтение настроек Asterisk:

Настройка AMI-Launcher на работу с Asterisk:

настройка программы очень проста. Заполните все необходимые поля и соединитесь с сервером. Пример можно посмотреть на первой картинке. В параметр {num} будет подставляться CallerID.

Где скачать программу:

Скачать или перейти в раздел Загрузки

У меня Chrome по какой то причине «не рекомендует загружать файл».

Стоимость программы:

Бесплатно, но если вам понравилась, вы можете перечислить небольшое вознаграждение

  • Yandex-деньги: 41001448832030

Лицензия на использование и распространение программы:

Все права на программу AMILauncher for Asterisk принадлежат её автору. Автор программы: Рукавков Никита Олегович, г.Санкт-Петербург, Россия.

Программа AMILauncher for Asterisk распространяется «так как есть». При этом не предусматривается никаких гарантий, явных или подразумеваемых. Вы используете программу на свой собственный риск. Автор не гарантирует, что она не содержит ошибок, а также не несет никакой ответственности за прямые или косвенные убытки применения или не применения программы, в том числе возникшие из-за возможных ошибок или опечаток в её комплекте.

Программа распространяется бесплатно.

Если, вы используете программу, вы соглашаетесь со всеми пунктами лицензионного соглашения на программу. Если вы не согласны с условиями данной лицензии, то вы должны удалить все файлы программы со своих устройств хранения информации и отказаться от дальнейшего использования этого программного продукта.

Вопросы, предложения, сообщения об ошибках, свои тесты присылайте по e-mail: support[@]voip-lab.ru

30 комментариев к “AMI Launcher for Asterisk / Elastix / FreePBX

  1. Хочу такую штуку! Когда уже будет?
    Вот еще нюанс: «После поднятия трубки, должно происходить выполнение внешней программы, в качестве аргумента которой отправляется входящий CallerID;»
    Нужно чтобы не «после поднятия трубки» это происходило, а еще до поднятия.

    1. Сейчас релизуется возможность затрансферить звонок из программы другому sip-клиенту. Как только будет готова программа я отпишусь.

  2. Нужная штука! Особенно, когда работают 3-4 оператора в режиме: не бей лежачего…
    По поводу замечания Андрея про срабатывание до поднятия трубки: — в случае, если оператор отошёл и не поменял статус в системе, то после N гудков АТС перебросит звонок на другого оператора, получается, что одна и та же карточка откроется у 2-х операторов, второй примет звонок и внесёт изменения, а первый вернётся и нажмёт «ОК», тем самым потрёт изменения второго. На мой взгляд подход автора более корректен.

    Очень жду начала тестирования!

  3. да, и в зависимости от параметра lenght почему то зависит {num} . т.е. поставив 2 — получишь из номера только две цифры.

    1. Правильно, length- это минимальная длинна внешнего номера. По этому же параметру будет обрезание CallerID и в {num}

  4. жаль, что так. получается. если поставить длину 10 — то внутренние номера трех-четырех -значные показываться не будут.

    1. Да именно так, это нужно для правильной идентификации внешнего вызова, но если вам нужна версия именно и на внутренние номера, то напишите мне на почту.

  5. Никита подскажите а кроме номера входящего звонка нам нужно в программу загонять внутренний номер оператора на которого астериск перевел звонок. Что-то типа 192.168.1.2:6666/?incoming_call=1234567,id=2 где id-внутренни номер оператора

    1. Вы можете использовать строку запуска программы «http://192.168.1.2:6666/?incoming_call=» , с аргументом «{num}&id=2»

  6. не подскажешь как сделана пере адресация вызова на другой номер командами AMI (пытаюсь подружить свою программу с астериском)

  7. Я так понимаю проект заглох, судя по дате последних комментов?!
    Искренне жаль. Начинание было отличное.
    В поиске решения подобной задачи перелопатил горы текста. Ничего более подходящего не нашел.
    В итоге сел писать свой SoftPhone.
    Попав сюда был приятно удивлен.
    Автору РЕСПЕКТ !!!
    Если проект жив, буду готов поучавствовать, продукт может получится полезный многим.

    1. Ну это был просто проект что называется «для себя». Если нужно и вы хотите заняться его доработкой, то постараюсь найти исходники и выложить на github. Но я не уверен, что они у меня сохранились.

      1. Никита, добрый день.
        При запуске setup.exe у меня выскакивает окошко «не является приложением Win32».
        Использую Windows XP SP3.
        Архив zip — целый.

      2. Никита, добрый день!
        Респект за приложуху, даже в текущем варианте помогла! Я использую ее в связке с Битрикс24, стандартная интеграция с Астериском мне не подходит, а теперь задача неплохо решилась. Конечно, было бы здорово развить немного функционала… удалось ли найти исходники?

  8. Эх… ребят, возобновите поддержку и развитие софтинки. Под Win7 и Win8 бы…

  9. Добрый день, Никита.
    Мне прилетают 10-значные CallerID, но когда я в поле Length ставлю 10, программа не срабатывает, когда 9, то срабатывает, но в запрос вставляется 9 цифр (без отрезанной первой).
    Нельзя сделать так, чтобы первая цифра не отрезалась?

Оставить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *