Как интегрировать сервер Asterisk с внешней реляционной базой данных, например mysql?

Мои цели: Клиент (SIP-телефон, я пользуюсь телефоном 3CX) на сервере asterisk, asterisk затем соединяется с внешней реляционной базой данных (не расположенной там же с сервером звездочки), и если что-то ответит на сервер, сервер asterisk воспроизводит голосовой файл ( предопределенный файл .gsm) клиенту ответа.

Что у меня уже есть: я установил AsteriskNow в VirtualBox как сервер asterisk, клиент использует софтфон для подключения к серверу Asterisk в SIP-канале. Когда клиент набирает сервер asterisk, сервер может выполнить dialplan.

Мой вопрос: если я хочу, чтобы сервер asterisk установил соединение с внешней базой данных, например MySQL. и получить доступ к данным запроса. Должен ли я позволить dialplan вызывать скрипт AGI для этого? Если это так, использование скрипта AGI в PHP намного проще для достижения? Если нет, что делать, чтобы подключить mysql? Использование ODBC?

Можно ли манипулировать данными на сервере asterisk с помощью dialplan, не используя другой язык программирования? Но похоже, что dialplan не имеет полной поддержки синтаксиса, как и другие языки программирования?

    вы можете использовать ODBC на звездочке. даже вы можете подключить звездочку к Microsoft SQL Server . если вы хотите сохранить данные журнала на звездочке, вы можете использовать CEL или CDR или вы можете получать события AMI . но если вы хотите заставить звездочку выполнять специальную задачу (динамическую), лучше использовать AGI . Надеюсь, это будет полезно.

    Asterisk может использовать MySQL или другую базу данных для хранения платежной информации, но для вашей задачи – для воспроизведения различных файлов с недостатками вы должны использовать AGI. AGI очень гибкий, потому что вы можете использовать различные языки и библиотеки, которые вы хотите. Я использую Python для сценариев AGI, но другие используют C, Perl, Java. Вы найдете примеры на этих языках в Asterisk wiki: http://www.voip-info.org/wiki/view/Asterisk+AGI

    Конечно, из вашей программы AGI вы можете подключиться к базе данных или использовать HTTP / SOAP / REST для интеграции с другим программным обеспечением.

    Нет, вам не нужен сценарий AGI.

    Самый простой способ – использовать func_odbc (пользовательские функции sql через odbc) с помощью dialplan.

    btw, diallplan – полный язык, как любой другой язык программирования. Все может быть сделано только с помощью dialplan. Но не все вещи эффективны и требуют много опыта.