VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

asterisk mysql выборка

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
janetland
Сообщения: 43
Зарегистрирован: 24 авг 2016, 15:11

asterisk mysql выборка

Сообщение janetland »

Добрый день.
Дошли руки до единого dialplan на базе mysql

Код: Выделить всё

exten => _2XXX,1,Dial(SIP/${EXTEN},5,tT)
exten => _2XXX,2,MySQL(Connect connid 192.168.1.ххх USER ПАРОЛЬ BASE)
exten => _2XXX,3,MySQL(Query resultid ${connid} SELECT mobile FROM numbers WHERE asterisk=${EXTEN})
exten => _2XXX,4,MySQL(Fetch foundRow ${resultid} sip);

Код: Выделить всё

mysql> select mobile from numbers where asterisk=2260;
+----------------+
| mobile         |
+----------------+
| 2254-2255-2256 |
+----------------+
Как корректно вытащить в переменные значения ячейки номера, учитывая тот факт, что их может быть как 2 так и 8, 10? Не хочется использовать AGI(Perl c внешним скриптом), уж больно костыльное решение. Кто-нибудь делал нечто подобное?
ded
Сообщения: 15689
Зарегистрирован: 26 авг 2010, 19:00

Re: asterisk mysql выборка

Сообщение ded »

Вместо строк

Код: Выделить всё

exten => _2XXX,2,MySQL(Connect connid 192.168.1.ххх USER ПАРОЛЬ BASE)
exten => _2XXX,3,MySQL(Query resultid ${connid} SELECT mobile FROM numbers WHERE asterisk=${EXTEN})
exten => _2XXX,4,MySQL(Fetch foundRow ${resultid} sip);
напишите на РНР agi-скрипт, если не нравится Perl, положите в /var/lib/asterisk/agi-bin
Там же посмотрите примеры. Это будет более правильно.
janetland писал(а):Как корректно вытащить в переменные значения ячейки номера, учитывая тот факт, что их может быть как 2 так и 8, 10?
Используйте преобразования Regexp - регулярные выражения
janetland
Сообщения: 43
Зарегистрирован: 24 авг 2016, 15:11

Re: asterisk mysql выборка

Сообщение janetland »

забыл проверить наличие загруженного модуля func_cut.so.... запустил. все взлетело
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: asterisk mysql выборка

Сообщение virus_net »

janetland писал(а):Дошли руки до единого dialplan на базе mysql
Это конечно хорошо. Ну, а какой ответ на вопрос:
зачем ?
В чем конкретно необходимость ?
Ибо как: Вы понимаете что тем самым создаете потенциальную точку отказа системы ?
Посему без ответа на вопрос "зачем?" лучше далее не продолжать.
ded писал(а):Это будет более правильно.
+1
Дабы хотя бы человечий обработчик ошибок создать.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
janetland
Сообщения: 43
Зарегистрирован: 24 авг 2016, 15:11

Re: asterisk mysql выборка

Сообщение janetland »

Уч
virus_net писал(а):
janetland писал(а):Дошли руки до единого dialplan на базе mysql
Это конечно хорошо. Ну, а какой ответ на вопрос:
зачем ?
В чем конкретно необходимость ?
Ибо как: Вы понимаете что тем самым создаете потенциальную точку отказа системы ?
Посему без ответа на вопрос "зачем?" лучше далее не продолжать.
ded писал(а):Это будет более правильно.
+1
Дабы хотя бы человечий обработчик ошибок создать.
Зачем? 500+ абонентов, 6 площадок (2 ISP канала на каждой), 6 админов, каждый админ модерит свою зону ответственности через веб-морду, а то как недавно - поменяли ext, и пойди разберись кто. Логи со всех площадок (cdr,cel,queues) пишутся в единую mysql, резервная подымается CARPом, так что не вижу тут "узкого места".

Что подразумевается над "человечим обработчиком ошибок"?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: asterisk mysql выборка

Сообщение virus_net »

Избегайте оверквотинга, т.к. это не нужно.

Ну и пусть модерят, кто ж мешает сделать это без dialplan на базе mysql ? txt dialplan на базе mysql решает эту задачу.
Подразумевается, обработка возникающих ошибок при подключению/выборке из БД.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
ded
Сообщения: 15689
Зарегистрирован: 26 авг 2010, 19:00

Re: asterisk mysql выборка

Сообщение ded »

janetland писал(а):Зачем? 500+ абонентов, 6 площадок (2 ISP канала на каждой), 6 админов, каждый админ модерит свою зону ответственности через веб-морду, а то как недавно - поменяли ext, и пойди разберись кто.
Был (есть?) такой проект (c Астерисками на каждой площадке, но общей оболочкой, как раз по такой модели -

Изображение
Изображение
Изображение

Всё как у вас - логи со всех площадок (cdr, cel, queues) пишутся в единую mysql.
janetland писал(а):Что подразумевается над "человечим обработчиком ошибок"?
В скрипте РНР можно напихать отладочных echo, менять параметры ответа базы MySQL, без необходимости изменения диал плана, включать agi set debug on & core set verbose 0 чтобы видеть отладку только agi на человечьем языке, не <irony>hex codes</irony>
janetland
Сообщения: 43
Зарегистрирован: 24 авг 2016, 15:11

Re: asterisk mysql выборка

Сообщение janetland »

2ded
фото не открываются. Что касается дебага, пока проще в консоли, потом подумаю.

2virus_net
имеете ввиду, скриптом по крону выдергивать значения с базы и парсить локально этот файл?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: asterisk mysql выборка

Сообщение virus_net »

я имею в виду писать dialplan (extensions.conf) скриптом, основываясь на данных mysql
но в таком случае, если mysql будет недоступен или попрут какие то ошибки, а в скрипте есть нормальный обработчик ошибок, который не перезапишет dialplan при наличии ошибок, то dialplan на сервере останется без изменений, а значит сервис будет продолжать работать.

запускаете вы скрипт кроном, клиент-сервером или иным способом никакого рояля не играет.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH