Tušmobil’s self-care portal
For Tušmobil, we’ve designed and implemented a self-care portal; in Slovenian, it is called Moj Tušmobil. We’ve decided to use the JBoss SOA platform to run business logic while data are stored in the Oracle Billing and Revenue Management System (Oracle BRM or OBRM).
The current version includes the following features:
- Displaying subscriber’s information
- Displaying active services
- Displaying consumption
- Displaying invoices
- Displaying call/content/SMS/MMS/GPRS history
- Subscription to e-bill
- Activation of services
- Top up
- CUG management
Tusmobil’s selfcare enhances customer experience, generates new revenue, and reduces costs of introducing new services.
Oracle has released OBRM 7.5
Oracle Corporation has released a new version of Oracle Communications Billing and Revenue Management 7.5 (Oracle BRM 7.5.)
The following modules are included in this release:
- Balance Management
- Balance Monitoring
- Billing
- Convergent Subscriber Management
- Financial Management
- Order Inventory Framework
- In-memory data management capabilities that integrate Oracle Communications Billing and Revenue Management with Oracle In-Memory Database Cache
- Invoicing
- Partner Relationship Management
- Pricing Configuration
- Real-time Rating
- Reporting
- Subscriber & Hierarchy Management
- Subscriber Groups Management
- Self-Care Manager
Some of the new features are as follows:
- Enhanced Invoice Document
- Enhancements to Oracle In-Memory DB (IMDB, formerly TimesTen)
- JCA Enhanced Transaction Management - JCA Multiple OBRM Accounts in One Transaction
- Limits to Shared Memory Size for “Big” Shared Memory Structures
- Support for Rebilling and Corrective Invoices
The following BRM components are no longer supported in OBRM 7.5:
- AAA Gateway Manager, replaced by Oracle Mediation Controller
- RADIUS Manager, replaced by Oracle Mediation Controller
- TIMOS Manager, replaced by Oracle IMDB
Tridens, an Oracle Gold Partner, offers consulting services, such as initial OBRM implementations, proof of concept, enhancements, upgrading, etc. To read more about our Oracle BRM services please click here.
My TusMobil mobile app
Tridens’ software engineers have designed and implemented an innovative and intuitive Android app.
My TusMobil mobile app. is used to retrieve and display mobile consumption (inside and outside of the TusMobil network.) The application was developed for the Android platform and supports Android 1.6 and newer versions.
From an architectural perspective, this is a client application that communicates with a web service which is deployed on the JBoss SOA Platform. This web service interacts with the billing system (Oracle Billing and Revenue Management – Oracle BRM) to retrieve the necessary user specific data. The data are then passed back to the client through the web service.
The main features of the client application are as follows:
Displaying purchased consumption – displays the current number of spent call minutes, SMS messages, MMS messages, data transmissions, and other services as a percentage (figure 2.). The user can then scroll through the list and select a specific widget to see more details about how much of a particular service has been used and how much is still available (depending on the users’ subscription type.)
Displaying additional consumption – includes other services used that are not part of the subscription plan. These services are displayed in a vertical list. Every list item contains the name of the used service and the amount charged for it. To give a user a more comprehensive view (figure 3,) a pie chart (of used services) is rendered at the bottom of the screen.
Language settings – the application supports localization for both the English and the Slovenian languages (figure 4).
Refreshing – the data are automatically refreshed every minute if the application is in focus. Users can also refresh data manually by simply tapping on the rotating arrows icon (figure 2, top right corner.)
TusMobil client was tested on the following devices: HTC Nexus One, HTC Wildfire, Google Nexus, and Samsung Galaxy S; the client application was also tested on emulator.
Oracle Advanced Queuing and Oracle BRM
In our last article, Integrating Oracle BRM with enterprise applications, we explained one way of implementing a BRM-to-CRM integration. The suggested solution was to build a connector on the BRM side and have it connect to a third-party application. However, it is also possible to take a different approach by using Oracle Advanced Queuing, which will be the subject of this article.
Recently, we’ve been involved in a project where the customer wanted a “safe” integration without the need of being real-time; a near real-time solution would suffice, they said. What we mean by safe integration is having a solution that will not affect any action performed, such as purchasing a product or bill creation, by a failing communication link (or any other error) between Oracle BRM and third-party software. When implementing a custom dm connector for data integration, any unsuccessfully completed operation will rollback the entire action. While this can be a desired behavior, in this case it wasn’t; therefore, we decided to go with Oracle Advanced Queuing. We’ve identified that our worst case scenario here would be database issues, but there would also be numerous other problems as well; to begin with, the BRM system would not function properly.
Other advantages we’ve identified were data persistency (events are stored in the database until the consumer application is ready to process queued messages) and an already proven Oracle AQ technology.
We’ve successfully deployed these changes to Oracle BRM version 7.3 and 7.3.1 with Oracle Database 10g (10.2.0.1.0 64bit) and 11g (11.2.0.1.0 64bit) with the Oracle Advanced Queuing (AQ) component.
The process of publishing Oracle BRM business events using Oracle Advanced Queuing works can be seen on the figure below:
To develop such a synchronization process, it is necessary to take some preliminary steps. These include:
1. EAI Manager Installation.
o EAI Connection Manager (CM) module (includes op-codes required by EAI),
o EAI Data Manager,
o Payload Generator External Module (EM) – also called EAI Java Server or eai_js.
2. After completing the EAI Manager installation, configure values in the CM and EAI DM configuration files (pin.conf), as well as the Payload Generator properties file (Infranet.properties).
3. Configure the event notification list you wish to publish by editing the configuration files for event notification ($BRM_HOME/sys/data/config/pin_notify* files) and merge them before running the load_pin_notify utility.
4. Define business events in the Payload Generator EM configuration file (payloadconfig.xml).
After the preliminary steps have been completed, it’s time to create and configure the Oracle Advanced Queue. Here are the steps (the third step may vary, as it depends on your setup):
1. Create queue:
pin_ifw_sync_oracle.pl create -l $USER/$PASS@$DB -q TEST_QUEUE -t TEST_QUEUE
2. Test queue (optional step):
pin_ifw_sync_oracle.pl test -l $USER/$PASS@$DB -q TEST_QUEUE
3. Log in to your database as SYSTEM user and set appropriate grant privileges for your ‘t_user’:
exec dbms_aqadm.grant_queue_privilege(‘ALL’, ‘PUSER.TEST_QUEUE’, ‘t_user’);
grant execute on puser.pin_event_ty to t_user;
grant execute on sys.dbms_aqin to t_user;
Next, we need a queue producer, an application which is going to enqueue the business events defined earlier. Developing a producer module is similar to building your custom connector application (see here.) It is necessary to implement a custom module (library) and define it in the dm_eai configuration file under the “plugin_name” entry.
There’s also a simpler way to go about this task. If you’ve already installed “Account Synchronization DM,” then you will find an implementation of a queue producer module under dm_ifw_sync data manager. However, if you choose this option, some additional entries are required in the dm_eai configuration file.
After you have a working queue producer. go ahead and invoke some of your business events to see if they get queued. Queues can be queried in the table defined on queue creation.
Finally, you will need a queue consumer, an application that will read and dequeue your queued messages. There are several programmatic interfaces available for accessing Oracle Streams AQ in the following programming languages: Java (JMS), PL/SQL, C (OCI), Visual Basic (OO4O), AQ XML Servlet (IDAP).
With your custom client implementation, you will have full control at how fast, when, and how many messages are going to be processed. For instance, during off-peak hours, you can process more data than during peak hours.
Hopefully, we’ve given you some valid pointers on how to go about the process of integration/synchronization between Oracle BRM and third-party systems and/or applications.
Real-time rating with Oracle BRM
Nowdays, more and more companies would like to employ AAA GW real-time rating, yet they are faced with many questions. In this article, some of these will be answered, conventional batch rating will be contrasted with realtime rating, and some benefits of the latter will be shown.
In conventional batch rating, all event data are read from CDR/EDR files after events are already finished. Event data are processed, rated, and charged.
In realtime rating, data are processed when events are attempted or even in progress. Events are authorized, reauthorized, and, at the end, charged.
When planning a realtime system, it needs to be designed in a way that minimizes the posibility of interrupting services or incurring any revenue losses. To minimize those, latency, high availability architecture, cm/dm separation per service for easier production maintainance, and efficient monitoring all have to be taken into consideration.
With realtime rating, prepaid and postpaid users can be accommodated in one system – such a system is called convergent billing. Realtime billing offers even more benefits, such as postpaid credit limits, and realtime feedback after customer usage.

Picture 4: Postpaid accounts can get credit limits - 32 Mbytes transferred in EU countries, 32 Mbytes transferred outside EU, 30 EUR prepaid account top-ups - and a threshold for notifications can be set.
In one of the next articles, more details will be presented regarding AAA GW, interaction workflow for calls (mbi,) and gprs/mms/sms (diameter.) Follow us on Twitter, and stay tuned.
Our Entry into the Oracle Openworld Call for Papers 2011
We’ve applied to the Oracle OpenWorld call for papers with the following:
Lessons Learned Over 4 Years of Realtime Convergence with Oracle BRM
Tusmobil, the third largest mobile operator in Slovenia, has used Oracle BRM 7.3 since 2007 for realtime convergent charging of voice, video telephony, SMS, MMS, GPRS, and other VAS services for both prepaid and postpaid users. Lessons learned during the design, development, and four years of operations will be presented, including how we’ve dealt with performance and system optimizations. To achieve flexibility, we’ve used agile software development, a type of software engineering based on an iterative and incremental process, coupled with release management. The end result gives Tusmobil a major competitive edge by enhancing customer experience, generating new revenue, improving productivity, curtailing time to market, and cutting costs.
The Development of Innovative Android Applications
On 4.3.2011 an Android workshop was held in Maribor. The subjects covered included the history of mobile operation systems and the introduction of Android. The topic of Android was divided into four sections: what Android is capable of; how Android applications can be developed; what Android’s market share is currently; and what the future holds for Android.
Primož Fideršek developing an Android application, based on Google Maps APIs.
Slides from the presentation.
Oracle BRM 7.3 database
The Oracle BRM database consists of many tables. In this article, the most important ones are presented and described. Underneath, a picture of the Oracle BRM 7.3. data model has been added.
In the database, account/customer related data such as names, addresses, profiles, current account balances, group charge sharing, and account hierarchy are stored. Deals can be purchased by the customer and associated with every account. Each customer can purchase more services. To know more, please examine the text underneath.
ACCOUNT_T
Stores information about the customer, including contact names, address, status, and customer segment information.
ACTIVE_SESSION_T
Stores data about an ongoing session.
BAL_GRP_T
Stores the balance information such as dollars, free minutes, bytes, and frequent flyer miles for various resources in an account . A balance group includes one or more sub-balances for each resource. The sub-balance contains the current amount, resource type, validity dates for the resource, rollover data, and sub-balance contributors.
BILL_T
Stores billing information, such as the amount due, amount adjusted, currency, and bill number. A /bill object is created at the beginning of a billing cycle.
BILLINFO_T
Stores all billing, payment method, accounting cycle, and hierarchy information necessary to bill an account. A /billinfo object is created for every account. If the billinfo is subordinate, the /billinfo object points to the parent account and the parent account’s /billinfo object.
CONFIG_T
Base table for configuration objects. Subclasses hold specific configuration information for various features, for example, /config/beid defines currency and non-currency resources.
DEAL_T
Stores information about a deal.When you use Pricing Center and connect to the database, all /deal objects in the database are shown in Pricing Center.
DEVICE_T
Stores information about devices. There is a separate /device object for every device managed by BRM. Generic data applicable to all devices is stored in the parent /device object. Subclasses such as /device/num store information specific to a particular device type.
EVENT_T
Abstract class to record system-initiated and user-initiated events. Event objects are related to a specific service or to an account. An event includes generic information such as start and end times as well the balance impacts that are incurred by the account due to this event. The /event object points to the account balance group that is impacted.
EVENT_BAL_IMPACTS_T
Stores event data.
INVOICE_T
Stores a customer invoice and information about the invoice, such as the bill it is associated with. Each /bill object can have a corresponding /invoice object.
ITEM_T
Created to bundle events, this table summarizes billable item activity by type. Rows in this table are added for each row in the BILL_T table.
PAYINFO_T
Stores generic payment method information for an account.
PRODUCT_T
Stores the information for a single product.
PROFILE_T
Abstract class to support custom account information. To use a /profile object, always create a subclass. You can link an account to any number of /profile objects.
PURCHASED_DISCOUNT_T
Contains an entry for each discount owned by an account at the time of conversion.
PURCHASED_PRODUCT_T
Contains an entry for each product owned by an account at the time of conversion.
RESERVATION_T
Tracks resources reserved for multi-service prepaid systems. Stores information about the account, balance group, and the service for which the resource reservation is created, the resource amount, and the expiration time for when the reserved resource expires.
SERVICE_T
Stores generic service type information for accounts. There is one row in this table for each applicable service for each entry in ACCOUNT_T. In addition to a row in this table, a row must be created in the service type table, such as IP service or email.
Android Platform
On the 31st of January, at MC Mis in Slovenska Bistrica, Android Platform was presented. At that time, after the platform was introduced, the mobile OS market share and the SWOT analysis of the platform were shown, and predictions were made for its future.

Aleš Pristovnik introduces Android in Samsung Galaxy S Tab.
Below, you can see the slides which were shown at MC Mis.
The Development of Innovative Android Applications
An Android seminar, which will take place on 4.3.2011, is being prepared. This seminar will be conducted in Slovene. “The Development of Innovative Android Applications” is the title. Please click here to register for the seminar.
If anyone is interested in an Android seminar in English, please contact us here.












