Собственно как это сделать, что бы отключить аккаунт?
>Собственно как это сделать, что бы отключить аккаунт?В смысле автоматически? по истечении баланса?
>>Собственно как это сделать, что бы отключить аккаунт?
>
>В смысле автоматически? по истечении баланса?Вообщем то да. Но голосовой трафик общитывается на другом оборудовании.
А мне от OpenSer нужно чтобы была возможность отрубания аккаунта, но не его удаление. Т.е. запрещать маршрутизацию для конкретного абонента/номера...
>>>Собственно как это сделать, что бы отключить аккаунт?
>>
>>В смысле автоматически? по истечении баланса?
>
>Вообщем то да. Но голосовой трафик общитывается на другом оборудовании.
>
>А мне от OpenSer нужно чтобы была возможность отрубания аккаунта, но не
>его удаление. Т.е. запрещать маршрутизацию для конкретного абонента/номера...Можно например создать новый avp аттрибут типа block и присваивать пользователям, в конфиг перед тем как отправлять звонок в ТФоП выполнять проверку наличия аттрибута у пользователя, если есть то запрещать звонок (end media session). Или лучше даже загружать этот аттрибут до всех маршрутизаций, если у абонента есть такой аттрибут то опять же сразу end media session.
еще один вариант это использование acl но с ними пока не разбирался.
Вооот, я так же c подумал с добавлением нового поля... Вот только не могу найти функцию в OpenSer которая может отдельные значение из таблицытипа
функция(значение поля таблицы текущего ID пользователя) {
...
}
>Вооот, я так же 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 проще
>[оверквотинг удален]
>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
Ух... продолжим дискуссию :)Вот не понял только куда (в какую секцию вставлять строчки):
if (avp_check("$avp(s:block)", "eq/y/i"))
{
end_media_session();
}