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

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

Проблемы Asterisk без вэб-оболочек и их решения

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

Ответить
guvijur
Сообщения: 85
Зарегистрирован: 22 авг 2011, 17:03

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

Сообщение guvijur »

Добрый день!

Есть определённый контекст:
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 »

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

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

Мало ли тут окажутся такие же чайники, как и я. ;)
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Знающие люди (не я) пишут, что прямые MYSQL-запросы из диал-плана - не комильфо, и лучше написать простенький скрипт такого запроса на РНР, включить туда элементы отладки, поместить его в /var/lib/asterisk/agi-bin/ и вызывать как AGI.
С названием таблицы конечно казус.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH