1. Introduction

This document describes the contents and configuration of the OpenCloud Sentinel VoLTE Demo Virtual Machine.

The intended audience for this document are telecommunication software engineers looking to build mobile services in an AS environment.

2. Architecture

  1. Image Overview

    800
Table 1. Clearwater, HSS, and Sentinel VoLTE

Element

Address

Description

Bono

bono.opencloud.com:5060

P-SCSF

Sprout

icsf.sprout.opencloud.com:5052 scsf.sprout.opencloud.com:5054

ICSCF and SCSCF

Homestead

hs.opencloud.com:8888

HSS Cache

HSS

hss.opencloud.com:3888

OpenIMS HSS

Sentinel VoLTE

volte.opencloud.com:5070

VoLTE TAS

3. Configuration

Table 2. Users and Passwords

User

Password

Description

URL

rhino

rhino

Ubuntu User

N/A

root

vagrant

Root User

N/A

hssAdmin

hss

OpenIMS HSS

emadm

password

REM admin

Table 3. Directory Structure

Directory

Description

/home/rhino

Rhino user home

/home/rhino/opencloud/sentinel-volte-sdk

Sentinel VoLTE SDK

/home/rhino/opencloud/sentinel-volte-sdk/rhino-sdk/RhinoSDK

Rhino Home

/home/rhino/opencloud/sentinel-volte-sdk/calendar-call-minder

Calendar Call Minder Module

/home/rhino/opencloud/calendar-webapp

Web App for Calendar Call Minder

/opt/opencloud/apache-tomcat-X.X.X

REM and Call-Minder Web App

/var/log

Clearwater Logging

/home/rhino/opencloud/sentinel-volte/sdk/rhino- sdk/RhinoSDK/work/log/rhino.log

Rhino and VoLTE SDK Logging

/opt/opencloud/apache-tomcat-X.X.X

REM and Call-Minder Web App

Table 4. Commands

Command

Description

sudo monit summary

Clearwater Status

rhino-console

Rhino Command Line Console

sdkadm

VoLTE SDK Development Console

Table 5. IMS Users

IMS User

Password

Domain

Outbound Proxy

VoIP Phone

opencloud

opencloud.com

172.20.20.65:5060

Zoiper

opencloud

opencloud.com

172.20.20.65:5060

Linphone

Table 6. Desktop Shortcuts

Short-Cut

Description

Eclipse

Eclipse IDE

IDEA

IntelliJ IDE

REM

Launches REM URL in Firefox

HSS

Launches OpenIMS HSS Admin URL in Firefox

Zoiper

VoIP Client

Linphone

VoIP Client

HSS Restart

Restarts HSS and Homestead if there are VoIP Client Registration issues

Call Minder

Launches Call Minder Web App URL in Firefox

CallMinder GoogleApi

Launches Google API URLs in Firefox

4. VoLTE SDK

VoLTE SDK deployment procedures are located in the Sentinel VoLTE documentation on the OpenCloud Development portal.

Table 7. Building Procedures - First Deploy
Step Action Command

1.

De-activate the service

rhino-console deactivateservice name=volte.sentinel.sip,vendor=OpenCloud,version=current

2.

Change directory module

cd /home/rhino/opencloud/sentinel-volte-sdk/<module-name>

3.

Build the deployment module

ant clean publish-local

4.

Deploy the module with all dependencies

ant-deploy-with-deps

5.

Bind the module to the Service

ant bind-with-deps

6.

Configure the module with all dependencies

ant configure-with-deps

7.

Re-Activate the service

rhino-console activateservice name=volte.sentinel.sip,vendor=OpenCloud,version=current

Table 8. Build Procedures - Re-deploy
Step Action Command

1.

Change directory module

cd /home/rhino/opencloud/sentinel-volte-sdk/<module-name>

2.

De-activate the service

ant redeploy-all

Table 9. Creating a Custom Call Barring Feature Module
Step Action Command

1.

Change to VoLTE SDK Root

cd /home/rhino/opencloud/sentinel-volte-sdk

2.

Execute sdkadm

sdkadm

3.

Lookup module packs

list-modules +module-pack

4.

Create a new module

create-module training-call-barring opencloud#mmtel-communication-barring#volte/2.4.0;2.4.0.3

5.

Enter new module values

Rename top level module 'mmtel-communication-barring' to [training-call-barring]:

Please enter names for the following sub-module(s) in the module-pack

Rename module 'mmtel-ocb-profile' to [mmtel-ocb-profile]: training-mmtel-ocb-profile

Rename module 'mmtel-ocb' to [mmtel-ocb]: training-mmtel-ocb

Rename module 'mmtel-icb-profile' to [mmtel-icb-profile]: training-mmtel-icb-profile

Rename module 'mmtel-communication-barring-library' to [mmtel-communication-barring-library]: training-mmtel-communication-barring-library

Rename module 'mmtel-icb' to [mmtel-icb]: training-mmtel-icb

The longest common package prefix is 'com.opencloud.volte.sentinel.mmtel.feature'.

Rename package prefix 'com.opencloud.volte.sentinel.mmtel.feature' to [com.opencloud.volte.sentinel.mmtel.feature]: com.opencloud.volte.sentinel.mmtel.training.feature

Rename feature 'MMTelOCB' to [MMTelOCB]: TrainingMMTelOCB

Rename feature 'MMTelICB' to [MMTelICB]: TrainingMMTelICB

Rename profile table used for the MMTel ICB feature configuration. [MMTelICBConfigProfileTable]: TrainingMMTelICBConfigProfileTable

Rename profile table used for the MMTel OCB feature configuration. [MMTelOCBConfigProfileTable]: TrainingMMTelOCBConfigProfileTable

quit

6.

Setup IDE

ant eclipse-setup

or

ant idea-setup

7.

Launch IDE

Open project in IDE: /home/rhino/opencloud/sentinel-volte-sdk

8.

Modify Code

Use IDE editor to modify Feature

9.

Build, Deploy, Bind and Activate Feature in VoLTE SDK

See Building Procedures

10.

Update OCB Feature in REM

Update Feature in to SIP Session Plan

 REM->Sentinel->Session Plans
 Selection Key:
        Network (Training)
  	  	Session Type (sipcall)
  	  	Plan ID (mmtel-orig)
  	  	Subscription ID (none)

  Session Plan: SIP Sessions Initiated by SIP (sip)

  Execution Point: Subscriber Check
             Replace MMTelOCB with TrainingMMTelOCB

Save

11.

Update ICB Feature in REM

Update Feature in to SIP Session Plan

 REM->Sentinel->Session Plans
 Selection Key:
        Network (Training)
  	  	Session Type (sipcall)
  	  	Plan ID (mmtel-term)
  	  	Subscription ID (none)

  Session Plan: SIP Sessions Initiated by SIP (sip)

  Execution Point: Subscriber Check
             Replace MMTelICB with TrainingMMTelICB

Save

12.

Make test call from +886555110425 to +886555110337

tail –f $RHINO_HOME/work/log/rhino.log

New log statements will be displayed.

5. Calendar Call Minder

Table 10. Creating a new Feature
Step Action Command

1.

Change to VoLTE SDK Root

cd /home/rhino/opencloud/sentinel-volte-sdk

2.

Execute sdkadm

sdkadm

3.

Lookup module packs

list-modules +module-pack

4.

Create a new module

create-module training-call-minder opencloud#volte-example-sbb-feature#volte/2.4.0;2.4.0.3

5.

Enter new module values

Please enter a name for the top level module, usually this will match the name of the directory for the new module

Rename top level module 'volte-example-sbb-feature' to [training-call-minder]:

The longest common package prefix is 'com.opencloud.volte.sentinel.example.feature.sbb'.

Rename package prefix 'com.opencloud.volte.sentinel.example.feature.sbb' to [com.opencloud.volte.sentinel.example.feature.sbb]:

Rename feature 'VolteExampleSbbFeature' to [VolteExampleSbbFeature]: TrainingCallMinder

quit

6.

Setup IDE

ant eclipse-setup

or

ant idea-setup

7.

Launch IDE

Open project in IDE: /home/rhino/opencloud/sentinel-volte-sdk

8.

Modify Code

Use IDE editor to modify code

Table 11. Setup of Call Minder
Step Action Command

1.

Create TWO Google Gmail Accounts: https://accounts.google.com/signup Note: Each email address will be associated with MSISDN’s +886555110425 and +886555110337

Create new Gmail Accounts. Each Account will be assigned to a different MSISDN.

2.

Enable Development Google API Access for Email account to be linked to +886555110337: https://console.developers.google.com/iam-admin/projects

Enable access to Google Console for your Gmail Account.

3.

Create Calendar Call Minder web application credentials

4.

Under Create Credentials select: OAuth Client ID

Create Client ID Keys.

5.

If prompter for OAuth Consent Screen configuration enter Calendar Call Minder for Product name shown to users. Press Save

6.

Create client ID: Select Application Type Web application Name: Calendar Call Minder Authorized JavaScript origins: http://172.20.20.65 Authorized redirect URIs: http://cal.opencloud.com:8666/callback Press Create

7.

Save Client ID and Client Secret for later on the host. Can also be downloaded to the host from Credentials screen

Save Credentials.

8.

API Manager → Overview → Google APIs → Enable Google Calendar API

Enables the Calendar to be accessed by the Feature.

9.

In IDE (Eclipse/IntelliJ IDEA), update the following Java Class:

CalendarCallMinderFSMActionsImpl.java

Replace in the Java Class with the created Client ID and Client Secret:

private static final String clientId = "CLIENT_ID";
private static final String clientSecret = "CLIENT_SECRET";

Adding Google API credentials to the VoLTE SDK Calendar Call Minder Feature.

10.

Build, Deploy, Bind and Activate Feature in VoLTE SDK. See Building Procedures.

Build and Deploy the feature into VoLTE SDK

11.

Add Feature in to SIP Session Plan.

REM->Sentinel->Session Plans
Selection Key:
       Network (Training)
	   Session Type (sipcall)
	   Plan ID (mmtel-orig)
	   Subscription ID (none)

Session Plan: SIP Sessions Initiated by SIP (sip)

Execution Point: Subscriber Check
         Add Call Minder Feature to Feature Script
	   after MMTelOCB Feature:
         run CalendarCallMinderSbbFeature
Save

Update REM so VoLTE SDK can run the feature.

12.

In VI edit update the the following Java Classes in the Calendar Web app: (See Directories for Web app path)

src/main/java/com/opencloud/webapp/oauth/CallbackServlet.java
src/main/java/com/opencloud/webapp/oauth/SignInServlet.java

Replace in the Java Classes with the created Client ID and Client Secret:

private final String clientId = "CLIENT_ID";
private final String clientSecret = "CLIENT_SECRET";

Adding Client ID and Client Secret to the Web App

13.

Build/Deploy Web App with into Apache Tomcat from Web App base directory (calendar- webapp) (See Directories for Web app path)

./deploy_webapp.sh

Build and Deploy the updated Calendar Web App. Script will restart Apache Tomcat

14.

Browse to Call Minder Web App at URL: http://cal.opencloud.com:8666
Register the numbers and Allow Google Calendar Access:
886555110337 with User Created Email Address A
886555110425 with User Created Email Address B

Register number and allow Google Calendar access for two separate Gmail Accounts

15.

Make test call from +886555110425 to +886555110337:
Set +886555110337 Gmail account too BUSY in a meeting for the whole day.

+886555110425 will receive a Busy

16.

Make test call from +886555110425 to +886555110337
Invite +886555110425 Gmail account to the meeting.

+886555110425 will connect to +886555110337

Previous page Next page