Черно-белые списки
Опционально доступен функционал черно-белых списков. Включить его можно в конфигурации. Пользователь сам может определять номера, вызовы с которых на его телефонный номер запрещены (черный список) или, наоборот, разрешены (белый список). На одном номере абонента можно включить либо черный, либо белый список. Управление оборудованием (АТС) осуществляется глобальным скриптом поведения, запускаемым по таймеру, который разрабатывается уже под конкретную АТС.
При редактировании поинта в клиенте доступна вкладка "Управление списками"
Тут можно добавлять/удалять/редактировать номера телефонов и выбрать тип списка - черный или белый.
Аналогичный интерфейс доступен абоненту в личном кабинете:
Синхронизация черно-белых списков с АТС осуществляется с помощью глобального скрипта поведения. Вот примерная структура скрипта:
import
bitel.billing.server.util.*;
import
ru.bitel.bgbilling.modules.phone.server.bean.*;
import
ru.bitel.bgbilling.modules.phone.common.bean.*;
import
java.util.*;
import
java.net.*;
import
java.io.*;
int
mid =
0
;
public
void
main( setup, con, conSlave )
{
con.setAutoCommit(
false
);
PhoneItemListManager pilm =
new
PhoneItemListManager( mid, con );
//получаем измененные режимы
List changedModes = pilm.getToUpdateModes();
for
( PhoneItemListMode mode : changedModes )
{
updateModeOnBackend( mode );
mode.setNewMode(
false
);
pilm.updateMode( mode );
}
//получаем далее удаленные из списка номера
List deletedNumbers = pilm.getToDeleteNumbers();
for
( PhoneItemListNumber number : deletedNumbers )
{
deleteNumberOnBackend( number );
pilm.deleteNumber( number );
}
//наконец, получаем добавленные номера
List addedNumbers = pilm.getToUpdateNumbers();
for
( PhoneItemListNumber number : addedNumbers )
{
addNumberOnBackend( number );
number.setNewNumber(
false
);
pilm.updateNumber( number );
}
con.commit();
}
//функция реального изменения состояния на АТС
private
void
updateModeOnBackend( PhoneItemListMode mode )
{
URL example =
new
URL(
"http://www.example.com/"
);
URLConnection yc = example.openConnection();
//TODO
}
//фунцкия реального удаления номера на АТС
private
void
deleteNumberOnBackend( PhoneItemListNumber number )
{
URL example =
new
URL(
"http://www.example.com/"
);
URLConnection yc = example.openConnection();
//TODO
}
//функция реального добавления номера на АТС
private
void
addNumberOnBackend( PhoneItemListNumber number )
{
URL example =
new
URL(
"http://www.example.com/"
);
URLConnection yc = example.openConnection();
//TODO
}