URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 16318
[ Назад ]

Исходное сообщение
"OpenSER + SQL, отключение аккаунта"

Отправлено Ded_MopozZz , 21-Май-08 08:27 
Собственно как это сделать, что бы отключить аккаунт?

Содержание

Сообщения в этом обсуждении
"OpenSER + SQL, отключение аккаунта"
Отправлено zaikini , 22-Май-08 12:22 
>Собственно как это сделать, что бы отключить аккаунт?

В смысле автоматически? по истечении баланса?


"OpenSER + SQL, отключение аккаунта"
Отправлено Ded_MopozZz , 22-Май-08 12:57 
>>Собственно как это сделать, что бы отключить аккаунт?
>
>В смысле автоматически? по истечении баланса?

Вообщем то да. Но голосовой трафик общитывается на другом оборудовании.

А мне от OpenSer нужно чтобы была возможность отрубания аккаунта, но не его удаление. Т.е. запрещать маршрутизацию для конкретного абонента/номера...


"OpenSER + SQL, отключение аккаунта"
Отправлено zaikini , 22-Май-08 13:19 
>>>Собственно как это сделать, что бы отключить аккаунт?
>>
>>В смысле автоматически? по истечении баланса?
>
>Вообщем то да. Но голосовой трафик общитывается на другом оборудовании.
>
>А мне от OpenSer нужно чтобы была возможность отрубания аккаунта, но не
>его удаление. Т.е. запрещать маршрутизацию для конкретного абонента/номера...

Можно например создать новый avp аттрибут типа block и присваивать пользователям, в конфиг перед тем как отправлять звонок в ТФоП выполнять проверку наличия аттрибута у пользователя, если есть то запрещать звонок (end media session). Или лучше даже загружать этот аттрибут до всех маршрутизаций, если у абонента есть такой аттрибут то опять же сразу end media session.

еще один вариант это использование acl но с ними пока не разбирался.
  


"OpenSER + SQL, отключение аккаунта"
Отправлено Ded_MopozZz , 22-Май-08 13:39 
Вооот, я так же c подумал с добавлением нового поля... Вот только не могу найти функцию в OpenSer которая может отдельные значение из таблицы

типа
функция(значение поля таблицы текущего ID пользователя) {
...
}


"OpenSER + SQL, отключение аккаунта"
Отправлено zaikini , 22-Май-08 14:22 
>Вооот, я так же c подумал с добавлением нового поля... Вот только
>не могу найти функцию в OpenSer которая может отдельные значение из
>таблицы
>
>типа
>функция(значение поля таблицы текущего ID пользователя) {
>...
>}

никаких полей доделывать не надо, уже все придумано
есть таблица usr_preferences
mysql> select  * from usr_preferences;
+----+------------+------------+-----------------+------------+------+-------+---------------------+
| id | uuid       | username   | domain          | attribute  | type | value | modified            |
+----+------------+------------+-----------------+------------+------+-------+---------------------+
| 17 | 101        | 101        | domain.ru       | block      |    0 | y     | 0000-00-00 00:00:00 |

загружаем свойства абонента

avp_db_load("$fu/username",, "*");

делаем проверку

if (avp_check("$avp(s:block)", "eq/y/i"))
##тогда
{
route(x);
}

где route(x);
route[x]
{
end_media_session();
}

либо можно сразу
if (avp_check("$avp(s:block)", "eq/y/i"))
{
end_media_session();
}

но мне кажется через acl проще


"OpenSER + SQL, отключение аккаунта"
Отправлено zaikini , 22-Май-08 14:25 
>[оверквотинг удален]
>end_media_session();
>}
>
>либо можно сразу
>if (avp_check("$avp(s:block)", "eq/y/i"))
>{
>end_media_session();
>}
>
>но мне кажется через acl проще

http://www.openser.org/docs/modules/1.2.x/avpops.html
http://www.openser.org/docs/modules/1.2.x/permissions.html


"OpenSER + SQL, отключение аккаунта"
Отправлено Ded_MopozZz , 09-Июл-08 08:59 
Ух... продолжим дискуссию :)

Вот не понял только куда (в какую секцию вставлять строчки):

if (avp_check("$avp(s:block)", "eq/y/i"))
{
end_media_session();
}