Почему в asterisk частично не работает MYSQL из плана набора?
Добрый день!
Есть определённый контекст:
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 раз проверил, но хрен(((
Жестяк)) Может посмотрите в сторону подключения к базе через модуль ODBC?
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})
Andrey Barbolin, ODBC работает, пользаки через базу, cdr так же и прочее.
Но тут работа с нестандартными таблицами или полями, которые я сам добавлял для определённых нужд.