ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Частично не работает MYSQL из плана набора

Проблемы и их решения Asterisk как такового

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

Частично не работает MYSQL из плана набора

Сообщение guvijur » 18 июн 2020, 11:58

Добрый день!

Есть определённый контекст:
exten => _XXXXXX,1,NoOp(${CALLERID(all)})
same => n,MYSQL(Connect connid localhost МЕГАПОЛЬЗОВАТЕЛЬ СУПЕРСЕКРЕТНЫЙПАРОЛЬ asterisk)
same => n,MYSQL(Query resultid ${connid} SELECT channelname FROM union WHERE codeid = '${EXTEN:0:2}' AND minnum <= '${EXTEN:2}' AND maxnum >= '${EXTEN:2}')
same => n,MYSQL(Fetch fetchid ${resultid} SATCHAN)
same => n,MYSQL(Clear ${resultid})
same => n,MYSQL(Query resultid ${connid} SELECT selfcode FROM union WHERE channelname = '${SATCHAN}')
same => n,MYSQL(Fetch fetchid ${resultid} SELFCODE)
same => n,MYSQL(Clear ${resultid})
same => n,MYSQL(Query resultid ${connid} SELECT rec FROM sip WHERE name = '${CALLERID(num)}')
same => n,MYSQL(Fetch fetchid ${resultid} RECUP)
same => n,MYSQL(Clear ${resultid})
same => n,MYSQL(Query resultid ${connid} SELECT callerid FROM sip WHERE name = '${CALLERID(num)}')
same => n,MYSQL(Fetch fetchid ${resultid} RUSNAME)
same => n,MYSQL(Clear ${resultid})
same => n,MYSQL(Disconnect ${connid})
same => n,NoOp(${SATCHAN})
same => n,NoOp(${SELFCODE})
same => n,NoOp(${RECUP})
same => n,NoOp(${RUSNAME})
same => n,Set(CALLERID(all)=${RUSNAME})
same => n,Set(CALLERID(num)=${SELFCODE}${CALLERID{num}})
same => n,GotoIf($["${RECUP}" = "1"]?startrec:recoff)
same => n(startrec),Set(CALLFILENAME=${UNIQUEID}_${EPOCH})
same => n,Set(CDR(userfield)=recfil/${CALLFILENAME}.gsm)
same => n,MixMonitor(/records/recfil/${CALLFILENAME}.gsm)
same => n(recoff),Dial(SIP/${SATCHAN}/${EXTEN:2})
same => n,StopMonitor
same => n,Hangup()

В данном блоке кода не отрабатывают два запроса к БД MySQL к таблице union. При этом запросы проверены через phpmyadmin и они нормально отрабатывают там. Да и следующие два запроса к таблице sip прекрасно отрабатывают. Таблица union 100% существует, названия полей уже 100 раз проверил, но хрен(((

Пожалуйста, ткните меня носом в ошибку!!!
guvijur
 
Сообщений: 85
Зарегистрирован: 22 авг 2011, 17:03

Re: Частично не работает MYSQL из плана набора

Сообщение guvijur » 18 июн 2020, 12:18

Я нашёл ответ на свой вопрос на другом форуме.

UNION - одно из ключевых слов MySQL. Для использования в качестве имени таблицы или поля его надо брать в обратные апострофы (`union`).

Мало ли тут окажутся такие же чайники, как и я. ;)
guvijur
 
Сообщений: 85
Зарегистрирован: 22 авг 2011, 17:03

Re: Частично не работает MYSQL из плана набора

Сообщение ded » 18 июн 2020, 13:18

Знающие люди (не я) пишут, что прямые MYSQL-запросы из диал-плана - не комильфо, и лучше написать простенький скрипт такого запроса на РНР, включить туда элементы отладки, поместить его в /var/lib/asterisk/agi-bin/ и вызывать как AGI.
С названием таблицы конечно казус.
ded
 
Сообщений: 15902
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH