Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Переменная в REALTIME_FIELD() [закрыт]

0

Интересное наблюдение:

Если аргументом функции REALTIME_FIELD() передавать переменную, то "оно не работает".

Пример (выясняем тырфейс агента, принявшего вызов):

exten => s,1,NoOp(UNIQUEID: ${UNIQUEID}, VAR: ${REALTIME_FIELD(queue_log,data2,${UNIQUEID},agent)}, CONST: ${REALTIME_FIELD(queue_log,data2,1350554822.7196,agent)})

В логе:

-- Executing [s@macro-snarl:1] NoOp("SIP/1212-0000150c", "UNIQUEID: 1350555821.7236, VAR: , CONST: SIP/1212") in new stack

Для пущей уверенности уточним у мускула:

mysql> select agent from queue_log where data2 = '1350555821.7236';
+----------+
| agent    |
+----------+
| SIP/1212 |
+----------+
1 row in set (0.02 sec)

Пробовал обрамлять ${UNIQUEID} кавычками двойными и одинарными - результат то же (вернее, отсутствует)

Как быть?

удалить переоткрыть спам изменить тег редактировать

спросил 2012-10-18 14:36:43 +0400

viktorkho Gravatar viktorkho flag of Kazakhstan
434 5 4 9

Comments

а что конкретно не так? у вас вроде как и в noop sip/1212. ну или обьясните как по вашему ДОЛЖНО быть.

meral ( 2012-10-18 22:14:22 +0400 )редактировать

ДОЛЖНО быть:

Set(AgentIf=${REALTIME_FIELD(queue_log,data2,${UNIQUEID},agent)})
NoOp(${AgentIf}) ; и тут видеть тырфейс агента, принявшего вызов

т.е. получить в переменную, а не в лог..

viktorkho ( 2012-10-19 08:32:26 +0400 )редактировать

Хотя переменная тут ни при чем, в этот момент (когда отрабатывает функция диалплана), в таблице похоже еще не существует искомой записи..

viktorkho ( 2012-10-19 08:40:22 +0400 )редактировать

ну вот видите. дебаг рулит.

meral ( 2012-10-19 13:04:43 +0400 )редактировать

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2012-10-18 14:36:43 +0400

Просмотрен: 267 раз

Обновлен: Oct 18 '12

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.