Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Разработка / mysql в chan_sip.c

mysql в chan_sip.c

правлю сорц
1 2>
Откуда: Молдова
Сообщений: 5

mysql в chan_sip.c

передо мной вот такая вот задача : зделать так, чтоб если по сипу неправильно авторизируются более N раз , то чтоб астериск всегда проставлял AUTH_SECRET_FAILED для этого юзверя, ну и еще пару фичей тудаже доклеить. Так или иначе нужна поддержка Мускюля.
проблема : я хочу внести в chan_sip.c как можно меньше изменений, поэтому хочу пользоваться уже существующим соединением между астериской и Мускюлем. Или на худой конец подскожите где хранятся подгуженные значения dbhost, dbname,.. из конфига res_mysql.conf ибо самому дописывать подгрузку инфы с конфига геморно ,влом и вдобавок сделает сорц некрасивым.
заранее спасибо.
Тьма движется со скоростью света, только в обратном направлении...
2009-01-08 18:05

Avatara of svoy
Откуда: Киев
Сообщений: 1096

Re: mysql в chan_sip.c

а команда даялплана MYSQL вас чем не устраивает или интереснее все же залезть в chan_sip.c
воспользуйтесь поиском по форуму, подобный вопрос уже обсуждался в прошлом месяце
2009-01-08 18:42

Откуда: Odessa
Сообщений: 20

Re: mysql в chan_sip.c

svoy:

а команда даялплана MYSQL вас чем не устраивает
а что в диалплане можно получить когда по SIP неправильно авторизуются?
я понял что интересует реакция на следующее
[Jan 8 19:41:37] NOTICE[12840]: chan_sip.c:15236 handle_request_register: Registration from '2000 <sip:2002@192.168.80.144>' failed for '192.168.80.145' - No matching peer found
2009-01-08 20:42

Сообщений: 866

Re: mysql в chan_sip.c

svoy,
а вы это просто так спросили или знаете? имхо никакие куски диалплана не вызываются когда юзер авторизуется. Тем более когда он НЕ авторизуется.

artyr_n,
я бы советовал:
1. использовать где можно odbc а не mysql. Разницы почти никакой зато привязки к конкретной базе нет. Можно и в постгрес писать и в mssql
2. подумать а не лучше ли использовать realtime архитектуру (это оно там так называется) вместо прямого доступа к базе. Придется правда почитать как настраивать реалтайм, но этого в сети полно. Потом в extconfig.conf прописать свою табличку типа:

mytable => odbc,asterisk,mytable

(база asterisk определяется в res_odbc.conf)

после чего вы сможете читать/писать строчки в эту свою реалтайм таблицу через API астериска - примеры в самом же chan_sip есть - ищите ast_update_realtime и ast_load_realtime.

И гуглите больше :)
2009-01-09 02:39

Avatara of svoy
Откуда: Киев
Сообщений: 1096

Re: mysql в chan_sip.c

сорри, действительно не вник в вопрос :( постараюсь реабилитироваться
имхо (я сторонник простых решений)
- при неудачной регистрации мы получаем сообщение об этом в CLI (Wrong password), разве не проще использовать это сообщение для блокирования абонента (AMI etc.)
- у абонента может быть выставлено очень маленький интервал между регистрациями, ничего если честного абона забанит?
- в реалтайм архитектуре (стандартной), я чето не видел в БД никаких упоминаний о попытке регистрации, я тока могу отследить до какого времени зарегистрирован абонент, и на основе этого сделать вывод в сети он или нет
2009-01-09 10:17

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: mysql в chan_sip.c

реалтайм как метод никакого отношения к этой задаче иметь не может.

есть способ выполнить какие-то действия диалплана при регистрации абонента, а вот по неверной регистрации сказать ничего не могу. да и врядли в AMI валятся сообщения о неверной регистрации...

думаю можно аналогично добавить в chan_sip.conf поддержку выполнения диалплана при неверной регистрации...
только кто это делать будет...
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2009-01-09 10:34

Avatara of IgorG
Откуда: Омск
Сообщений: 478

Re: mysql в chan_sip.c

Отдельное сообщение о неудачной авторизации SIP UAC добавили в исходники совсем недавно. В идеале взять патч добавляющий тот патч и ловить такие события по AMI и предпринимать какие-либо действия. Если это не подходит, то лучше предложения dimas'а не найти
OpenSUSE 11.2 / Asterisk 1.6.x / Vicidial / UniMRCP
2009-01-09 14:25

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: mysql в chan_sip.c

что-то не узрел в сообщении dimas`a как обнаружить неправильную попытку регистрации с помощью realtime.

а то, что odbc удобней в использовании - это однозначно, хоть и сложней немного...
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2009-01-09 14:47

Сообщений: 866

Re: mysql в chan_sip.c

switch,
в сообщении dimas не было описания как при помощи realtime обнаружить неудачную авторизацию. В его сообщении был совет НЕ использовать базу напрямую а работать с ней через realtime как некий abstraction layer.

Попрошу заметить что топикстартер НЕ спрашивает как поймать события - думаю он с этим справился сам. Все что он спрашивает - как подрубиться к mysql.
2009-01-09 19:48

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: mysql в chan_sip.c

svoy:

сорри, действительно не вник в вопрос :( постараюсь реабилитироваться
имхо (я сторонник простых решений)
- при неудачной регистрации мы получаем сообщение об этом в CLI (Wrong password), разве не проще использовать это сообщение для блокирования абонента (AMI etc.)
- у абонента может быть выставлено очень маленький интервал между регистрациями, ничего если честного абона забанит?
- в реалтайм архитектуре (стандартной), я чето не видел в БД никаких упоминаний о попытке регистрации, я тока могу отследить до какого времени зарегистрирован абонент, и на основе этого сделать вывод в сети он или нет
А я сторонник построения своей высокоуровневой бизнес-логики вокруг существующего низкоуровнего функционала. AMI - великая вещь!
Пишите своего демона, который будет отлавливать сообщения об ошибке регистрации, вести словарь таких попыток, и при превышении числа попыток в заданное время временно менять пароль, сохраняя старое значение. Через какой-то интервал вернуть все как было.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2009-01-09 21:13

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