Есть ли параллели с Asterisk AMI и AGI во FreeSWITCH? - PullRequest
4 голосов
/ 29 декабря 2011

Asterisk имеет Интерфейс Asterisk Manager (AMI) и Интерфейс Asterisk Gateway (AGI) , с помощью которого можно запускать сценарии PHP при определенных событиях из Asterisk. Использование тех же PHP-скриптов также может дать Asterisk инструкции, что делать рядом с вызовом / конференцией. Есть ли параллели с AMI и AGI во FreeSWITCH?

Ответы [ 4 ]

6 голосов
/ 02 января 2012

Это хорошие вопросы.Я просто хотел добавить кое-что к тому, что сказал @dkwiebe (это правильно, BTW).

Эквивалентом AMI в FreeSWITCH является сокет событий.(Технически это не «Библиотека сокетов событий» или ESL, которая является уровнем абстракции для написания программ, использующих сокет событий. Я просто хотел провести это различие.) На самом деле, FreeSWITCH-эквивалент «asterisk -r» на самом делеоснованная на ESL программа под названием "fs_cli" - сокращение от интерфейса командной строки FreeSWITCH.Программа fs_cli - отличный пример того, чего вы можете достичь с помощью ESL.

Кроме того, нет причин, по которым вы не можете использовать программу ESL для выполнения многих задач, которые можно выполнить с помощью сценариев AGI.ESL «объект соединения» может «привязываться» к одному участку вызова и управлять им.В вики есть примеры, и у будущей Поваренной книги FreeSWITCH будет несколько рецептов на эту тему.(Полное раскрытие: я являюсь соавтором FreeSWITCH Cookbook.)

Еще один связанный с ESL метод управления вызовами, такой как AGI, связан с демоном fs_ivrd.Он используется реже, чем ESL, но является хорошим вариантом для AGI-подобных сценариев.См. эту вики-страницу для получения более подробной информации.

Наконец, я хотел бы отметить, что Lua - отличный выбор для выполнения сценариев / логики / и т.д.в управлении вызовами.Это просто, легко и легко учиться.В лаборатории мы видели несколько тысяч одновременных вызовов, управляемых Lua, на 8-ядерном компьютере.Lua работает даже в очень сложных условиях.

Не стесняйтесь присоединиться к #freeswitch на irc.freenode.net, чтобы обсудить ваши вопросы с сообществом FreeSWITCH.

2 голосов
/ 20 июня 2013

В вики FreeSWITCH есть страница, на которой можно найти ответы на большинство вопросов «Asterisk to FreeSWITCH»: Rosetta Stone .

2 голосов
/ 30 декабря 2011

AGI - для сценариев, используемых во время вызова (т. Е. Вызывается из плана набора номера во время набора номера). Скрипты, которые слушают AMI и ждут событий, являются автономными. Хотя этот последний, технически, может выполнять работу первого также, вам гораздо лучше держать их отдельно.

1 голос
/ 02 января 2012

@ dkwiebe дал ответ на serverfault- https://serverfault.com/a/345513/105376

Для AMI вы ищете Библиотека сокетов событий .На странице mod_event_socket доступно несколько примеров.

AGI немного отличается.Вы можете делать подобные вещи в FreeSWITCH, но они рекомендуют использовать lua .Я лично использовал FreeSWITCH mod_perl с хорошими результатами.

...