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

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

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

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

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

ты можешь использовать`ODBC` на звездочке. даже вы можете подключить звездочку к`Microsoft SQL Server`.
if you want to save log data on asterisk you can use `CEL` или же`CDR` или вы можете получать события по`AMI`, но если вы хотите, чтобы звездочка выполняла специальную задачу (динамическую), лучше использовать`AGI`, Я надеюсь, что это будет полезно.



Самый простой способ - использовать func\_odbc (пользовательские функции sql через odbc) с диалпланом.

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



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

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