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

php mysql sip asterisk agi

3687 просмотра

3 ответа

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

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

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

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

Автор: Michael Lai Источник Размещён: 12.11.2019 09:18

Ответы (3)


3 плюса

Решение

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

Автор: user1673158 Размещён: 21.09.2012 04:45

1 плюс

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

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

Автор: Michał Niklas Размещён: 21.09.2012 06:40

1 плюс

Нет, вам не нужен скрипт AGI.

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

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

Автор: arheops Размещён: 24.09.2012 02:27
Вопросы из категории :
32x32