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

Не получается считать из AstDB

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

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

Ответить
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Не получается считать из AstDB

Сообщение tol_iwan »

Помогите - убился уже, не могу понять, где с типом напутано.
Нужно проверить зарегистрирован ли номер. Проверяю по наличию в базе записи SIP/Registry
Хочу считать из базы адрес и проверить, если пусто, то соответственно не зарегистрирован.

exten => s,n,NoOp(DB(SIP/Registry/2501) = $[DB(SIP/Registry/2501)])
exten => s,n,GotoIf($[${ISNULL(DB(SIP/Registry/2501))}]?error:ok)

В консоли получаю:
[Apr 25 09:59:40] WARNING[9372][C-00000002]: ast_expr2.y:1497 op_div: non-numeric argument
[Apr 25 09:59:40] NOTICE[9372][C-00000002]: ast_expr2.y:763 compose_func_args: argbuf allocated 26 bytes;
[Apr 25 09:59:40] NOTICE[9372][C-00000002]: ast_expr2.y:782 compose_func_args: argbuf uses 1 bytes;
[Apr 25 09:59:40] WARNING[9372][C-00000002]: func_db.c:146 function_db_read: DB requires an argument, DB(<family>/<key>)
-- Executing [s@jabber-messages:19] NoOp("Message/ast_msg_queue", "DB(SIP/Registry/2501) = 0") in new stack
-- Executing [s@jabber-messages:20] GotoIf("Message/ast_msg_queue", "0?error:ok") in new stack

В базе есть запись:
/SIP/Registry/2501 : 172.16.2.11:65285:120:2501:sip:2501@172.16.2.11:65285;rinstance=411e5038976e2296

Кавычил и "2501" и полностью "SIP/Registry/2501", во втором варианте получаю в консоль немного другое:
[Apr 25 10:05:34] NOTICE[9372][C-00000002]: ast_expr2.y:763 compose_func_args: argbuf allocated 20 bytes;
[Apr 25 10:05:34] NOTICE[9372][C-00000002]: ast_expr2.y:782 compose_func_args: argbuf uses 19 bytes;
[Apr 25 10:05:34] WARNING[9372][C-00000002]: func_db.c:146 function_db_read: DB requires an argument, DB(<family>/<key>)
-- Executing [s@jabber-messages:19] NoOp("Message/ast_msg_queue", "DB("SIP/Registry/2501") = 0") in new stack
-- Executing [s@jabber-messages:20] GotoIf("Message/ast_msg_queue", "0?error:ok") in new stack

Пробовал использовать DB_EXISTS(family/key) для проверки наличия ключа - оно правильней все-таки, но тоже самое происходит.

Но хрен редьки не слаще. В чем может быть проблема?
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Re: Не получается считать из AstDB

Сообщение tol_iwan »

Сам дурак ))
$[DB(SIP/Registry/2501)] - скобки нужно {} вместо [].
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH