Professional Documents
Culture Documents
BTEL CRBT
1
APPROVAL SHEET
Number of Page 42
Prepared by Reviewed by
Acknowledged by Reviewed by
Name : Suryo Cahyono Name : Untung
Division : VAS & Data Core Engineering Division : Network Operation Center
APPROVAL SHEET......................................................................................................................................2
TABLE OF CONTENT..................................................................................................................................3
INTRODUCTION..........................................................................................................................................4
PREFACE....................................................................................................................................................4
ASTERISK OVERVIEW...................................................................................................................................4
RBT REQUIREMENT.....................................................................................................................................5
CONTENT MANAGEMENT.............................................................................................................................6
REPORTING...................................................................................................................................................6
NETWORK OVERVIEW.............................................................................................................................8
TOPOLOGY DIAGRAM..............................................................................................................................8
RBT SERVICE DIAGRAM..............................................................................................................................9
PHYSICAL CABLE WIRING IN RBT SERVER RACK.....................................................................................10
DETAIL INFORMATION...........................................................................................................................11
CONSEPTUAL DATA MODEL.......................................................................................................................11
SYSTEM CAPACITY.....................................................................................................................................11
SYSTEM RELIABILITY.................................................................................................................................12
FILE SYSTEM..............................................................................................................................................12
API / EVENT INTERFACE............................................................................................................................13
DEVICE INFORMATION..........................................................................................................................14
PROJECT TIME FRAME.............................................................................................................................19
INTRODUCTION
PREFACE
The purpose of this document is to provide a seamless handover from Data Core
Engineering to the Network Operation Team. This document provides technical
information of RBT Server in Taman Rasuna along with all configuration assistance. The
purpose of this document is to provide the network operation team with sufficient
information to effectively support from the time the network carries live user traffic.
This document will be a baseline and will not be updated as the network changes by
operation team.
Asterisk Overview
Asterisk was VOIP softswitch that can be designed to produce PBX system under IP
based network. They designed to run on numerous operating and hardware
independence. CPU load will always depend on coding that have been used, more
complex codes (in example : G729, speex) will increase processor load dramatically
Asterisk Capability
Call Flow
Calls come in on channels and are then handed to the “extensions.conf” file,
which is the dialplan
Dialplan contains logical sections of matches called ‘Contexts,’ and each channel
sends a call into the dialplan with a context name and a dialed number.
The dialplan then matches (with modified regexp’s) the number being dialed, and
runs applications accordingly
Each match on the dialed number has an order of steps called ‘Priorities’, and are
indicated with an integral incrementing number.
All
RBT Requirement
a) Basic
Basic feature only allow user to subscribe 1 song/RBT
b) Copy
User will be able to copy B# RBT’s by pressing 5 (after pre-announcement during
call setup)
Registration process will be the same as other activation channel without double
confirmation ((for example: USSD, CRM, Web, IVR) on pre-announcement, will
inform tariff to avoid complaint)
RBT Copy is still under development on Asterisk Server
Content Management
a) BTEL
Reporting
Reporting tools will be use to view transactions as well as subscriptions traffic. BTEL will be able
to see data of all partners while Partner will be able to see only it’s own data. Below are
requirements for the reporting tools:
a) Subscribers Data
• Able to view subscribers data based on status (for example: active, new, suspension,
monthly, weekly, daily, churn, etc)
• Able to view subscribers data based on certain date, daily, weekly, monthly, or
periodically
• Able to export data to offline file (example: xls or pdf)
• Longevity
• Statistics based on period comparison
b) Transactions Data
• Able to query transactions based on partner (success, fail, NEF, etc)
• Able to query transactions based on certain date, daily, weekly, monthly, or
periodically
• Able to query transactions based on album, artist, or song
• Able to export data to offline file (example: xls or pdf)
• Able to view top songs on certain period
• Able to view top artists on certain period
• Able to view top partner on certain period
• Able to view transactions based on channel activation
• Statistics based on partner Monthly performance
c) Reconciliation Report
• Able to generate reconciliation report based on Period & Partner
• Able to generate reconciliation report based on detail song per partner per period
and revenue share
NETWORK OVERVIEW
TOPOLOGY DIAGRAM
2. CMS
Registration by CMS are triggered by SMS or SOA which come from website or
direct registration by customer with dial the tone. CMS admin also have ability to
sent from and stored all music and metadata file to RBT Server under directory
/var/music/
For each RBT server have four external port which consist of two Ethernet port and two
gigaethernet port. In current development just two port will be used, one for OAM and
others for signaling and traffic.
Switch
Server Name Port IP Address Gateway
Port VLAN ID
OAM
RBT01 eth0 172.19.90.50/28 172.19.90.49 GI 1/1
RBT02 eth0 172.19.90.51/28 172.19.90.49 Gi 1/2 801
Catalyst 2960 172.19.90.52/28 172.19.90.49
Signaling
RBT01 eth1 172.31.13.130/28 172.31.13.129 Gi 1/3
802
RBT02 eth1 172.31.13.130/28 172.31.13.129 Gi 1/4
DETAIL INFORMATION
Server Information
Server Specification
No. Server
OS Server Model RAM HDD
IBM System
x3650 M3
2x146 GB (RAID 1) + 3x300
1 RBT01 Intel Xeon CPU 16 GB
GB (RAID 5)
E5680
Centos 6.5 @3.33GHz
64bit IBM System
x3650 M3
2x146 GB (RAID 1) + 2x300
2 RBT02 Intel Xeon CPU 8 GB
GB (RAID 1)
E5680
@3.33GHz
Cisco
Cisco Switch
3 Switch
2960
2960
There are four main table under database, which is : customer, subscribe, song, label.
Additional provisioning table consist of username, password and IP for provisioning.
System Capacity
Based on stress test using SIPP software, both server was able to handle around 1000
concurrent call with Mean Holding Time (MHT) 20 seconds.
Music file capacity is around 500 GB for each server, which can handle around 2 millions
song (with average sample wave song file format at around 500kB)
CDR capacity are expected to handle around one week log
System Reliability
a. Load Sharing Mode Server
RBT Player (Asterisk) are working on load sharing mode with percentage mode, due to
different system capacity on the server. One server have 16 GB of RAM and the other
only have 8 GB of RAM. The percentage of traffic sharing are configured on GMSC, and
on emergency case when one server down, GMSC must be manually configure to whole
traffic to the active server, otherwise the traffic will be sent to the deactive server which
make user will not hear a tone
File System
Whole configuration for RBT was stored under MusicOnHold.conf and extension.conf.
MusicOnHold file contains file type and file directory to play on RBT player, meanwhile
extension file contains rule for service user. Both file was called by configuration script
to relate the rule to whole acknowledge user on the database.
AGI script are deliver build in scriptable to allow passing of data back and forth between
Asterisk and external programs
API / Event Interface
1. User Registration
Authentication based on : Username, Password and Client IP. This user information will
be stored under RBT Server Database
There are three main API that will be used on implementation which is : activatication,
deactivation and status query
Activate : http://172.19.90.50/rbtApi.php?
dn=<DN>&status=A&user=<API_USER>&pass=<API_PASS>&song=<SONG_ID>
Deactivate : http://172.19.90.50/rbtApi.php?
dn=<DN>&status=D&user=<API_USER>&pass=<API_PASS>
Query : http://172.19.90.50/rbtApi.php?
dn=<DN>&status=Q&user=<API_USER>&pass=<API_PASS>
2. Song Registration
http://172.19.90.50/rbtAPI_Song.php?
status=A&song_id=xxxxxxx&song_title=xxxxx&user=xxxx&pass=xxxxx
http://172.19.90.50/rbtAPI_Song.php?
status=D&song_id=xxxxxxx&user=xxxx&pass=xxxxx
DEVICE INFORMATION
Content Specification
CDR Location :
/var/log/asterisk
Test No. 1 Revision: 1.0 Author: Wisnu Widya Wirawan Date: 28-8-2014
Hostname: RBT01/RBT02
Precondition
Test Purpose: Verify hardware was installed properly with hardware installation standard
Procedure: Check rack, cabling and label whether attached properly at the site
Result :
Additional Note (In Emergency Case):
Test No. 2 Revision: 1.0 Author: Wisnu Widya Wirawan Date: 28-8-2014
Hostname: RBT01/RBT02
Test Purpose: Verify that server can be maintenance locally and remotely
Procedure: 1. Login prompt should be present when connect PC using standard Ethernet cable to
Console Port
2. Perform remote session using SSH to both of server alternally
Expected Result :
Result : Server can be remotely maintenance via SSH connection and locally through Console port
Test No. 3 Revision: 1.0 Author: Wisnu Widya Wirawan Date: 28-8-2014
Hostname:
Test Purpose: Verify OS and application are meet the service requirement
Procedure: 1. Check OS version, upgrade and update repository
2. Check Asterisk Version and state
3. Checking MySQL version and state
Test No. 1 Revision: 1.0 Author: Wisnu Widya Wirawan Date: 28-8-2014
Hostname:
Test Purpose: Network time should be configured properly for time synchronization
between hardware
Procedure: 1. Setting NTP IP server at /etc/ntp.conf
2. Check time using “date” command
Expected Result :
Result : 3. Perform one server shutdown, and confirm the service still work properly
Test No. 2 Revision: 1.0 Author: Wisnu Widya Wirawan Date: 28-8-2014
Hostname:
Expected Result : Node can be monitored on NMS and alarm notification will send by NMS when problem appears
Result : Hardware performance can be monitored can be properly monitored through NMS
Test Purpose: Perform one server shutdown, and confirm the service still work properly
Procedure: 1. Shutdown interface port which handle signalling to MGW and GMSC on one of
RBT Service
ifconfig eth1 down
2. Check service for both server, make sure no user was handle by inactive server, and
new transaction are handled by RBT active server
asterisk –rvvvv (check transaction log at both server)
3. Check user experience, make sure Ring Back Tone are responsed and played
properly
Expected Result : RBT Server was working on load sharing mode. If one of the server are down, the service will be not
interrupted
Result : When one server are down, GMSC still try to route the user to inactive server, that’s make the
user got silent ring back tone for a while
Additional Note (In Emergency Case): When one server down, changing routing on GMSC to send SIP only to active
RBT server
Test No. 1 Revision: 1.0 Author: Wisnu Widya Wirawan Date: 28-8-2014
Test Purpose: Perform shutdown on both server, and confirm the ring back tone service will
be changed to standard tone response
Procedure: 1. Shutdown interface port which handle signalling to MGW and GMSC on both of
RBT Service
ifconfig eth1 down
2. Check service for both server, make sure no user was handle by inactive server
asterisk –rvvvv (check transaction log at both server)
3. Check user experience
Expected Result : RBT song will be not played due to RBT Server down, ring back tone will be on default mode from
MGW
DEVELOPMENT COST
Development Cost
Server Specification
No. Server Server
OS RAM HDD
Model
IBM
System 2x146 GB
x3650 M3 (RAID 1) +
1 RBT01 16 GB
Intel Xeon 3x300 GB
CPU E5680 (RAID 5)
Centos 6.5 @3.33GHz
64bit IBM
System 2x146 GB
x3650 M3 (RAID 1) +
2 RBT02 8 GB
Intel Xeon 2x300 GB
CPU E5680 (RAID 1)
@3.33GHz
HP Proliant
DL380 G5
Server 2x146 GB
(RAID 1) +
3 CMS Intel(R) 12 GB 4x146GB
Xeon(R)
(RAID 5)
CPU 5110
@ 1.60GH
Cisco Cisco
4 Switch Switch
2960 2960
/etc/asterisk/
[gmsc]
type=friend
host=192.168.36.69
context=gmsc
qualify=1000|yes
[22222]
type = friend
host = dynamic
secret = 123
context = rbt
[112233]
mode=files
directory=/var/music/112233
[112234]
mode=files
directory=/var/music/112234
[112235]
mode=files
directory=/var/music/112235
[112236]
mode=files
directory=/var/music/112236
[112237]
mode=files
directory=/var/music/112237
$DB_Username = "rbtnoc";
$DB_Password = "rbtnoc";
$DB_Host = "localhost";
$DB_Schema = "rbtesia";
$DB_Connection = connectToDBMysql($DB_Username,$DB_Password,$DB_Host,
$DB_Schema);
$web_ANI = trim($argv[1]);
addLogCobaRbt("a_number : ".$web_ANI."\n");
$web_DID = trim($argv[2]);
addLogCobaRbt("b_number : ".$web_DID."\n");
$rbt_music = getLagu($web_DID);
addLogCobaRbt("rbt_music : ".$rbt_music."\n");
function getLagu($cid)
{[27;8H $sql = "select SONG_ID from SUBSCRIBE where dn='$cid'";[28;8H $qr_rbt =
DBQuery($sql);[29;8H $rbt = $qr_rbt[0][0];
// addLogCobaRbt($qr_rbt);[31;8H if($rbt){return $rbt;}else{return FALSE;}
function connectToDBMysql($DB_Username,$DB_Password,$DB_Host,$DB_Schema)
{[37;8H if (!$link = mysql_connect($DB_Host, $DB_Username, $DB_Password))
{[38;16H addLogCobaRbt("Could not connect to mysql");[39;16H exit;[40;8H }[42;8H
if (!mysql_select_db($DB_Schema, $link)) {[43;16H addLogCobaRbt("Could not select
database");[44;16H exit;[45;8H }[46;8H return $link;[1;1H