Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / MeetMe + Realtime

MeetMe + Realtime

ошибка на voip-info.org
1 2>
Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

MeetMe + Realtime

Итак, собственно в ходе сегодняшнего действа эмпирически доказал, по-крайней мере себе, что на voip-info.org допущена ошибка в структуре таблицы, используемой для хранения конфигурации MeetMe.
1. Поля username и domain допустимы в таблице, но должны располагаться после pin-кодов (Если делать, как на voip-info.org, pin-код не учитывался).
2. Дополнительные поля в таблице сваливали мой * в корку.

Т.О. структура таблицы (работает у меня):
CREATE TABLE `meetme` (
`confno` varchar(80) DEFAULT '0' NOT NULL,
`pin` varchar(20) NULL,
`adminpin` varchar(20) NULL,
`members` integer DEFAULT 0 NOT NULL,
PRIMARY KEY (confno)
);


Дополнительные поля вынес в отдельную таблицу.
Asterisk 1.4.26-rc4
Asterisk-addons 1.4.8
mysql Ver 14.12 Distrib 5.0.26, for pc-linux-gnu (i686) using readline 5.2

UPD: Нифига, это ошибка в коде где-то сидит!
ast_load_realtime("meetme", "confno", confno, NULL);

в качестве имен полей после 2го поля возвращает имя таблицы.
Создам аварийную ситуацию. Дорого. На долго =)
2009-06-30 17:45

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: MeetMe + Realtime

Господа-товарищи! Кто может посмотреть, как тянет эта процедура данные?
Создам аварийную ситуацию. Дорого. На долго =)
2009-07-02 00:32

Сообщений: 866

Re: MeetMe + Realtime

фигня это.
все реатлайм таблицы обрабатываются также как будто это из конфиг-файла параметры сolumnname=value прочитаны. И порядок полей там не важен.

Что же касается app_meetme, то он вообще берет только поля pin и adminpin:



var = ast_load_realtime("meetme", "confno", confno, NULL);
if (!var)
return NULL;
save = var;
while (var) {
if (!strcasecmp(var->name, "pin")) {
pin = ast_strdupa(var->value);
} else if (!strcasecmp(var->name, "adminpin")) {
pinadmin = ast_strdupa(var->value);
}
var = var->next;
}
ast_variables_destroy(save);


о каком domain и username вообще может быть речь? Что это, кстати, за поля вообще? app_meetme их не использует и кому они нужны - непонятно. У меня таблица без них.

PS: это 1.4.26
2009-07-02 05:36

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: MeetMe + Realtime

У меня после 2х вызовов var->next в var->name возвращается имя таблицы! При этом var->value приходит нормально!
UPD: А этот кусок кода я уже успел изучить =) Именно поэтому и говорю о бажности!
Создам аварийную ситуацию. Дорого. На долго =)
2009-07-02 07:39

Сообщений: 866

Re: MeetMe + Realtime

тем не менее, вопрос номер один - что вообзе на username+domain? зачем они в таблице и нафига нужны?
2009-07-02 12:44

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: MeetMe + Realtime

dimas, это не существенный вопрос. Но тем не менее отвечу.
В ссылке на voip-info.org из первого поста до моих коррективов значился формат таблицы именно такой, как я привел выше.

Жду вопроса №2. А лучше ответа.
Создам аварийную ситуацию. Дорого. На долго =)
2009-07-02 12:48

Сообщений: 866

Re: MeetMe + Realtime

ну могу только повторить что у меня таблица для meetme содержит дополнительные поля которые нужны лично мне и все работает нормально. То же самое относится и к остальным реалтайм таблицам - у меня дофига своих полей.

У меня, кстати, res_config_odbc, не mysql... (но база под ним - mysql).

Поскольку в чудеса я не оособо верю, предлагаю вам посмотреть на все что приходит из ast_load_realtime добавив
ast_log(LOG_NOTICE,"<< %s=%s\n", var->name, var->value);
сразу после while(var). Я так понимаю, вы примерно это уже и сделали. Интересно посмотреть.... Ну и еще что возвращает сам mysql если ему сказать
SELECT * FROM meetme WHERE confno=XXXXXX
- где XXXXX это _та самая_ конференция с которой проблемы.
2009-07-02 13:00

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: MeetMe + Realtime

Начну с конца.
1. Мускуль возвращает обычные значения:
mysql> select * from meetme where confno="9409";
+--------+-------+----------+---------+
| confno | pin | adminpin | members |
+--------+-------+----------+---------+
| 9409 | 97629 | 34320 | 0 |
+--------+-------+----------+---------+
1 row in set (0.00 sec)

2. Да, именно так я и сделал (только уровень выбирал WARNING):
-- Executing [4@default:4] MeetMe("SIP/out_call-08893470", "9409|sM") in new stack
[Jul 2 13:20:14] WARNING[2351]: app_meetme.c:2567 find_conf: No meetme.conf file :(
[Jul 2 13:20:14] WARNING[2351]: app_meetme.c:2493 find_conf_realtime: Got VALUE: confno - 9409!
[Jul 2 13:20:14] WARNING[2351]: app_meetme.c:2493 find_conf_realtime: Got VALUE: pin - 97629!
[Jul 2 13:20:14] WARNING[2351]: app_meetme.c:2493 find_conf_realtime: Got VALUE: meetme - 34320!
[Jul 2 13:20:14] WARNING[2351]: app_meetme.c:2493 find_conf_realtime: Got VALUE: meetme - 0!
[Jul 2 13:20:14] WARNING[2351]: channel.c:3388 ast_request: No channel type registered for 'DAHDI'
-- Created MeetMe conference 1023 for conference '9409'
-- <SIP/out_call-08893470> Playing 'conf-getpin' (language 'ru')
[Jul 2 13:20:20] WARNING[2351]: app_meetme.c:2854 conf_exec: Got PIN: 34320! When ADMIN PIN: and PIN: 97629!
-- <SIP/out_call-08893470> Playing 'conf-invalidpin' (language 'ru')


в выделенной строке после ADMIN PIN: должно быть значение, но, как видно выше, вместо пары "adminpin - 34320" я получаю "meetme - 34320" (meetme - имя таблицы), из-за чего значение не проходит условие, по которому парсится конфиг.
Создам аварийную ситуацию. Дорого. На долго =)
2009-07-02 13:20

Сообщений: 866

Re: MeetMe + Realtime

ну да, что-то как-то не очень выглядит :)
но тут никаких вариантов кроме как ползти глубже и добавлять отладочный вывод в код который в базу лезет и смотрет ьчто там...
Если используется res_config_odbc, то это res/res_config_odbc.c функция realtime_odbc (а районе ее конца цикл который колонки загружает).
Еслт же это res_config_mmysql - то где-то в аналогичном месте но видимо в аддонсах. Я его не использую так что у меня и сорсов нет :)
2009-07-02 18:23

Avatara of Alekz
Откуда: Санкт-Петербург
Сообщений: 931

Re: MeetMe + Realtime

ок, ладно, буду копать... Если у кого-то будет, что добавить или убавить - буду рад услышать! Спасибо dimas за диалог - решение не нашли, но в голове все разложилось :)
Создам аварийную ситуацию. Дорого. На долго =)
2009-07-02 23:36

1 2>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru