ICS manager

meeting the current and future needs of regulators relating to spectrum management and monitoring via a flexible platform

Spectrum management platform for:
• Regulators
• Broadcasters
• Telecom operators

Features include:

• Spectrum monitoring system interface
• Complaint management
• Inspection capabilities
Spectrum optimization and frequency sharing
• Spectrum re-farming and digital dividend
• Licensing, billing & tracking
• Application, licence and procedure management
• Spectrum auctions and spectrum trading
• ITU notifications
• International and regional coordination
• Frequency allocation tables
• Spectrum occupancy
• Geospatial analysis
• Co-existence of wireless technologies
• Coordination contours
• Fast frequency allocation
• Advanced reporting and data sharing
• Online access and web portals (Intranet and Internet)
• White space database
• Seamless integration with third party systems
• Workflow and process automation
• Network inventory database
• API, Web services

Extended applications for regulators

ICS manager is the backbone of a regulator’s spectrum management division.

Its’ powerful data engine manages all data relating to spectrum management with ease and in a hierarchically manner, while continuously monitoring the coherence of the data.

Its’ process control engine allows the implementation of automated processes for the purposes of:

  • License management and operational management
  • Calculation of fees following the technical and administrative parameters of the frequency assignments and licenses
  • Generation of documents (report, invoices, receipts), billing and payment follow-up
  • International notification and international coordination
  • Spectrum monitoring
  • Spectrum planning and frequency assignments
  • Zone allotments or band attributions
  • Available as web interface, web service or  web portal
  • Management of data: antennas, equipment, site, frequency plans, allocation charts (foot notes, services…).

• Spectrum monitoring system interface
• Manages complaints
• Facilitates inspections
• Features spectrum optimization and frequency sharing
• Supports spectrum re-farming and digital dividend
• Enables licensing, billing and tracking
• Processes applications, licenses and procedure management
• Supports spectrum auctions 
• Features ITU notifications
• Supports international and regional coordination
• Features frequency allocation tables
• Manages spectrum occupancy
• Allows geo-spatial analysis
• Models co-existence of all wireless technologies
• Develops coordination contours
• Processes frequency allocations at speed
• Supports advanced reporting and data sharing
• Allows online access via web portals (intranet and internet)
• Features white-space databases
• Seamless integrates with third party systems
• Workflow and process automation
• Supports network inventory database
• Features API & web services

As a spectrum management platform, ICS manager is suitable for users who manage and monitor radio spectrum, including:

• Regulators – regional and national
• Broadcasters
• Telecom operators


ICS manager is the backbone of a regulator’s spectrum management division, capable of supporting all spectrum management functions.

Featuring a powerful data engine, this leading spectrum management tool manages associated data with ease and hierarchically, while continuously monitoring its coherence. Its process-control engine enables the implementation of automated processes for key spectrum management functions, including:

• License management and operational management
• Fee calculation using the technical and administrative parameters of the frequency assignments and associated licenses
• Document generation including reports, invoices, receipts, billing and payment follow-up
• Provides international notifications and coordination
• Allows spectrum monitoring
• Features spectrum planning and frequency assignments
• Able to generate zone allotments or band attributions
• Used as a web interface, web service or web portal
• Manages data from antennas, equipment, sites, frequency plans, allocation charts (foot notes, services…).

• Validates new services to avoid interference with existing systems in accordance with ITU, regional plans and national plans
• Manages administrative procedures in accordance with the national, regional and international rules and processes
• Enables spectrum optimization and frequency sharing
• Provides secure administrative and technical data storage associated with calculating and collecting license fees
• Enables efficient information exchange and sharing with stakeholders
• Interfaces with spectrum monitoring systems
• Features white-space databases (multi-layer matrices, devices, routers, frequency and power level constraints, locations, online access via web-services


• Open Street maps
• Bing address over cursor
• Standalone or client server installation
• Customizable query editor
• Evolutionary spectrum management database (SMDB) structure
• Relational SMDB on Oracle/Access with direct management of rights and adapted user profiles
• Project manages featuring individual work spaces for individual users
• Multi-language environment
• Triple set of tables: “system”, “library” and “spectrum management” tables
• Dedicated dialogs and customizable queries for each structure
• Data exchange files (*.MDB) for each structure
• Fully integrated cartographic management (DTM, maps, geographical coordinate systems including conversions…)
• Integrated module for editing and creating reports
• ITU notification (electronic & paper) forms
• Synchronized access available via ICS telecom EV – radio planning software, monitoring and billing
• Adaptable modules for each field of action/service: VHF/UHF analogue and digital broadcast, Microwave, Earth stations including APS4/III form and AP28 coordination contour computation, FWA stations, GSM, PMR, coordination of Fixed services, coordination of Mobile services, Notification T11-T17, spectrum planning
• Import from standard SMDB: TerraSys, SRS, DACAN, TVA, TVD…
• Interfaces with all major monitoring equipment providers.

Featuring plugins, web services and web portals connecting to ICS manager which can be developed by third parties, thanks to its powerful API.


ICS manager API can be used for development of web portals, dedicated functions, workflows, reporting, data migration, web services, interface with third party systems or for customization.

Architecture solution

The solution is based on multi-service oriented architecture (see fig. below). It contains: WEB portal for input/output data; a set of service modules that are components of subject-matter logic and can be distributed; Communication Bus – intermediate layer providing connectivity of all service modules between themselves and with the client. The Communication Bus, Command core and Storage subsystem form the ICSM platform. Depending on the end user need, the different sets of subject area modules can be connected to the platform.

Fig. Architecture ICSM

Command core

Command core within ICSM can be conditionally divided into two parts: Tools – Instrumental services which are inherent in any system of this type and Shared resources which are part of the subject area of ICSM.


Blocks of instrumental services are intended for the management of the application platform. This block also facilitates: performance of basic operations such as registering running services; management of user access rights to services, stored objects and system functions; logging operations in the system etc.

In addition, tools provide access to the common functions:

  • map management
  • management of reminders and notifications
  • file storage
  • printing
  • performance monitoring and analysis of the history of operations
  • administration
  • other

Shared resources

These services manage the lifecycle of auxiliary entities that which are used for data processing in various radio services and technologies.

These services also support the creation, modification, validation and processing of entity data and account for their condition under the life-cycle management. These modules are complete. They form part of ICSM and are used to support other service modules. The connection of Platform with other modules is carried out through Communication Bus.

These services cover all types of reference data for assignments of different radio services, and includes processes associated with data for licenses, customers, applications, radiocommuniation systems, channel plans, allocation, allotments, EFIS,sites,  antennas, equipment, frequencies and devices.

Communication Bus

The main task of Communication Bus is the message exchange between different services via a single point. If necessary, this point provides transaction control, data transformation and preserves messages.

All settings for processing and sending messages are concentrated in the single point and are collated in terms of services, so it unnecessary to reconfigure all services when some information service is changed.

Key features:

  • Support for synchronous and asynchronous methods of calling services
  • Use of protected transport (supporting transactional model) with guaranteed delivery of messages
  • Static and algorithmic message routing
  • Access to data from third-party information systems using ready-made or specially developed adapters
  • Processing and converting messages
  • Various control and management mechanisms (audits, logging).

The data exchange is based on generally accepted principles and protocols of REST/SOAP for external and loosely linked services. The HTTP protocol used as a transport for internal communications and for other external channels, ensure stable TCP/IP connections. Also they can use direct communication between WCF services.

Storage subsystem

The main tasks of the subsystem is to provide transparency of connections to various types of database servers and provide low-level functions for solving data storage problems. To this end, drivers are provided to connect to the mechanisms to work with the data.

There are several mechanisms for working with data:

  • Cloud reassures is storage of poorly structured data with a temporary worth. This can be the intermediate result of a calculation, the results of measurements of signals and the temporary or intermediate files from documents. Also this can be the structure of data designed for exchange between services and other.
  • OLTP is a database designed for input, structure storage and real-time processing of information (operations, documents) to maintain the operational work of services;
  • OLAP is a database designed for data processing, which consists of the preparation of aggregated information based on large data sets structured according to a multidimensional principles.

ATDI standard radio services modules:

This block of modules contain services for the management of the life-cycle of assignments between different radio services and radio communication systems. Each service is integrated in the ICSM platform. Each service can use functions and resources from the ATDI platform (see above).

The services provide creation, modification, validation and processing of entity data within the life-cycle management of the assignment.

The structure of module data is specific according to the features of each relevant radio service.

All service modules are complete and independent of each other. They can work in parallel like services. The services use the Communication Bus for connections with other services of systems: Command Core services, specific services to provide specific functions for assignments (coordination, notification, EMC calculation, etc…) and services with customizable modules for each customer (workflow, template and other). These are necessary to support the life cycle of assignments.

This block of modules contain all basic types of radio services and include: Base Stations (PMR); Base Stations (MOB); Base Stations (Wireless); Microwave; Space services; Earth Stations; Broadcast LF/MF;  Broadcast HF; Broadcast VHF/UHF; Amateur radio; Maritime; Aeronautical; Number resources; Type Approval and White space.

ATDI support modules for radio services

This block of modules contain the services for the management of specific processes for assignments of different radio services (part of the life cycle of assignments). Each service is integrated in the ICSM platform. Each service can use functions and resources from the ATDI platform (see above).

This block of modules contains the following modules: «Coordination/Notification», «BRIFIC», «Calculation EMC», «Monitoring».

The «Coordination/Notification» unit manages processes such as coordination/notification for assignments of fixed services, broadcast services, either stations and satellite networks according to ITU recommendations, HCM and other international and regional agreements.

The «BRIFIC» unit manages the assignments and allotments database (IFIC) for Space Services and terrestrial services in ICSM.

The «Calculation EMC» unit allows electromagnetic compatibility calculations for assignments of different radio services.

The «Monitoring» unit manages the processes of monitoring, inspections, committing and complaints for assignments. These are included in the life cycle of assignments. In this module, the data received by the monitoring system is processed.

All services modules are complete and independent of each other. They can work in parallel like services. Each module allows the user to create, modify, validate and process specific data.

Customizable modules

This block contains services with a toolkit for configuring scenarios for these services for individual customers, according to their requirement. The block of modules includes „Workflow”, „Templates”, „Billing”, „Statistics” and „Fee calculator”.

To maintain the scenarios, life cycle services are communicated via the Communication Bus with other system services such as Command Core services, special services for specific functions for assignments as coordination, notification, EMC calculation, etc…)

„Workflow” unit contains a toolkit which describes the user’s interaction with the system, the logic of working with events and notifications, as well as a service for managing the life cycle of the script.

„Templates” unit contains a tool which describes the templates for creating a document, as well as a service for creating an instant document based on a template.

„Billing” unit contains a toolkit which describes the scenario for accounting for the  interaction with external users and systems when performing calculations, as well as a service for managing the life cycle of the scenario.

„Fee calculator” unit contains a toolkit which describes the templates for calculating the cost of services, as well as a service for performing calculations based on the template.

„Statistics” unit contains a toolkit which describes the accounting scenario for statistical, historical and periodic data, as well as a service for managing the mechanism of gathering and retrieval of information in the relevant sections of the analytics.

Customer modules

The ICSM platform is open and can integrate the client’s functionality in the form of a service. In this case, the client module will gain access to the data and functions of other modules.

Interface with external systems

A set of adaptors enable the integration of  external systems into the Communication Bus of ICSM platform. The result of this integration is the ability to exchange data between external systems and ICSM.

The basic set of ICSM interfaces include: interfaces with ICST, interfaces with the  monitoring system, initial import and import/export.

Adaptors for external client systems are developed individually in the ICSM customization process.


Visualization of the service modules for the client is carried out through the Web PORTAL. Customers may use:

  • Standard Web Portal provided by ATDI;
  • Customized Web Portal prepared in accordance with customer’s requirements.
  • Customer’s own Web Portal adapted to work with the Communication Bus;

Example of module dedicated to Radio-Amateur licensing:

The basic class of manipulating a set / list of elements of application entities.
public class ItemSet<TList, TItem> : IDataList<TItem>, IDataList, IAppClientContextObjectwhere TList :ItemSet<TList, TItem>, new()where TItem : ItemObjectBase<TItem>, IItem, IDataItem, new(){public ItemSet();public TItem NewItem();public int CreateItem(TItem item);public void UpdateItem(TItem item);public void DeleteItem(TItem item);...}

Description of methods:

public TItem NewItem(

This  method creates a new object state of an element of an application entity of type TItem

public int CreateItem(TItem item)

The method creates a new entry in the repository in the list the type TList containing the state of the element item.

Incoming parameter: TItem item – object of the application entity whose state is to be saved

Return parameter: Integer ID of a new record containing the state of the application entity element

public void UpdateItem(TItem item)

The method updates the state of the item in the repository in list the type TList

Incoming parameter:   TItem item – Object of the application entity whose state you want to update

Return parameter: absent

public void DeleteItem(TItem item)

The method removes the state of an item item from the repository of application entity in the list TList

Incoming parameter:   TItem item – object of the application entity whose state is to be removed

Return parameter: absent

Base class of the application entity element

public class ItemObjectBase<TItem> : IDataItem where TItem : class,IItem, new(){public IColumnMetaData GetColumnByInternalName(string internalName);public IColumnMetaData GetColumnByPropertyName(string propertyName);public object GetValue(string name);public void SetValue(string name, object value);}

Description of methods:

public IColumnMetaData GetColumnByInternalName(string internalName)

The method returns the metadata of the element field using the internal field name

Incoming parameter:   string internalNamefield name

Return parameter: object of description of metadata of field supporting interface


public IColumnMetaData GetColumnByPropertyName(string propertyName)

The method returns the metadata of an element field using the class property name to search

Incoming parameter:   string propertyName – element class property name

Return parameter: field metadata description object supports interface IColumnMetaData

public object GetValue(string name)

The method returns the value of the field of the application entity element

Incoming parameter:   string namefield name

Return parameter: field value

public void SetValue(string name, object value);

The method sets the field value of the application entity element

Incoming parameter: string namefield name,  object valuenew field value

Return parameter: absent

Class describing the list and element of the application entity of amateur licenses

[Application("AmateurLicenses", Portal = "BusinessApplications")][Display("Amateur licenses")][List("AmateurLicenses")]public class AmateurLicenses: ItemSet<AmateurLicenses, AmateurLicenses.ListItem>{public AmateurLicenses();public class ListItem: ItemBase<AmateurLicenses.ListItem>, IAmateurLicense, IESLicense, IItem{public ListItem();[Column("esALCallsign", Type = ColumnDataTypes.Lookup)][Display("Active callsign")][Lookup("Callsigns", Column = "LinkTitle")]public LookupValue? ActiveCallsign { get; set; }[Column("esALCallsignID", Type = ColumnDataTypes.LookupValue, Options = ColumnOptions.Readonly)][Display("Active callsign ID")][LookupValue("esALCallsign", Column = "ID")]public string ActiveCallsignId { get; set; }[Choice("Personal; Business; Foreign customer; Radio club; Event")][Column("esALApplicantType", Type = ColumnDataTypes.Choice, Options = ColumnOptions.Required, Default = "Personal")][Display("Applicant type")]public esALApplicantTypeEnum ApplicantType { get; set; }[Column("esApplication", Type = ColumnDataTypes.Lookup)][Display("Application")][Lookup("Applications", Column = "LinkTitle")]public LookupValue? Application { get; set; }[Choice("Running; Special; Endorsed (Foreign person); Event (Radio club); Advanced; Advanced Special")][Column("esALClass", Type = ColumnDataTypes.Choice, Options = ColumnOptions.Required, Default = "Running")]public esALClassEnum ClassAL { get; set; }[Display("Correspondence address")]public string CorrespondenceAddress { get; set; }[Column("esALEqQ", Type = ColumnDataTypes.Number)][Display("Equipment quantity")]public double? EquipmentQuantity { get; set; }[Column("esALEquipmentSharing", Type = ColumnDataTypes.Boolean, Default = "No")][Display("Equipment sharing")]public bool? EquipmentSharing { get; set; }[Column("esALForeighNo", Type = ColumnDataTypes.Text)][Display("Foreign license No.")]public string ForeighNo { get; set; }[Column("esALEqInstAddress", Type = ColumnDataTypes.Text, Options = ColumnOptions.MultipleValue)][Display("Installation address")]public string InstallationAddress { get; set; }[Column("esALIssuedTill", Type = ColumnDataTypes.DateTime, Options = ColumnOptions.Required)][Display("Issued till")]public DateTime IssuedTill { get; set; }[Column("esALIsTemporal", Type = ColumnDataTypes.Boolean, Options = ColumnOptions.Required, Default = "No")][Display("Is temporal")]public bool IsTemporal { get; set; }[Column("esALNumber", Type = ColumnDataTypes.Text, Options = ColumnOptions.Required)][Display("License No.")]public string Number { get; set; }[Column("esALPortalID", Type = ColumnDataTypes.Text)][Display("Portal ID")]public int? PortalID { get; set; }[Column("ContentTypeId", Type = ColumnDataTypes.ContentType, Options = ColumnOptions.System | ColumnOptions.Required)][Display("Content type")]public ContentTypeValue ContentType { get; set; }[Column("ID", Type = ColumnDataTypes.Counter, Options = ColumnOptions.Readonly | ColumnOptions.System)][Display("ID")]public int Id { get; set; }[Column("Title", Type = ColumnDataTypes.Text, Options = ColumnOptions.System)][Display("Title")]public string Title { get; set; }}}

Example of creating a new entry for an amateur license item

private static int CreateNewAmateurLicense(esCSTypeEnum callsignType, IItem mainItem, IItem accountItem, bool exempted, IItem callsignItem){var listLicenses = this.Context.GetList<AmateurLicenses>();var newLicenseItem = listLicenses.NewItem();newLicenseItem.Application = (LookupValue)this.MainItem.Id;newLicenseItem.cfStartDate = DateTime.Today;newLicenseItem.cfFirstStartDate = newLicenseItem.cfStartDate;if (callsignType == esCSTypeEnum.EndorsedForeignPerson || callsignType == esCSTypeEnum.EventRadioClub){newLicenseItem.cfStopDate = mainItem.CallsignStopDate;}else{newLicenseItem.cfStopDate = newLicenseItem.cfStartDate.Value.AddYears(1).AddDays(-1);}newLicenseItem.IssuedTill = newLicenseItem.cfStopDate.Value;newLicenseItem.Title = "License";newLicenseItem.cfRemarks = mainItem.cfRemarks;newLicenseItem.cfLicenseStatus = exempted ? escfLicenseStatusEnum.Issued : escfLicenseStatusEnum.PendingForPayment;newLicenseItem.cfCustomer = mainItem.cfCustomer;newLicenseItem.ClassAL = esALClassEnum.Running;newLicenseItem.cfExempted = exempted;newLicenseItem.EquipmentSharing = mainItem.EquipmentSharing;newLicenseItem.CorrespondenceAddress = (accountItem.Address1.IsNotEmpty()) ? accountItem.Address1: accountItem.Address2;newLicenseItem.ApplicantType = accountsService.IsCompanyAccount(ьainItem.cfCustomer.Id) ? esALApplicantTypeEnum.Business : esALApplicantTypeEnum.Personal;newLicenseItem.ActiveCallsign = (LookupValue)callsignItem.Id;newLicenseItem.ClassAL = mainItem.AplCallsignType.ToChoiceValue().AsChoiceValueToEnum<esALClassEnum>();if (this.MainItem.AplCallsignType == esALACallsignTypeEnum.EndorsedForeignPerson){ newLicenseItem.IsTemporal = true; }var licenseId = listLicenses.CreateItem(newLicenseItem);return licenseId}