Introduction
OpenCloud are pleased to make an evaluation version of the Sentinel VoLTE product available on our developer portal - this is now available as a single image download which also includes an IMS core and a HSS, in addition to Sentinel VoLTE.
Sentinel VoLTE fulfils the role of an IR.92/IR.94 compliant VoLTE TAS and a SIP AS in an IMS network. In addition to MMTel services, it also acts as an SCC-AS providing service continuity and IMS centralised services.
OpenCloud continues to be committed to supporting independent and open development within the telecom community. Therefore the Sentinel VoLTE download image also comes with Sentinel Create - a full-fledged VoLTE SDK that you can use to develop your own services that run alongside standard MMTel services, on the same TAS. We also provide the source code for standard MMTel features to make it easier for you to get started.
In addition to the product documentation that is available from the Developer Portal, we have also recorded a set of 'Quick Start' videos that you can view on the OpenCloud channel on YouTube. We also have a dedicated Sentinel VoLTE discussion forum available from the Developer Portal that can be used to interact with other developers, and can be used to ask questions and provide valuable feedback.
Installation
The Volte demo image comes shipped as an .ova file for use in Virtualbox. We recommend Virtualbox version 4.2.12 or greater. Refer to the Architecture and Deployment page for detailed information.
Architecture and Deployment
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
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
User |
Password |
Description |
URL |
rhino |
rhino |
Ubuntu User |
N/A |
root |
vagrant |
Root User |
N/A |
hssAdmin |
hss |
OpenIMS HSS |
|
emadm |
password |
REM admin |
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-public/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 |
Command |
Description |
sudo monit summary |
Clearwater Status |
rhino-console |
Rhino Command Line Console |
sdkadm |
VoLTE SDK Development Console |
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 |
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.
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 |
Step | Action | Command |
---|---|---|
1. |
Change directory module |
cd /home/rhino/opencloud/sentinel-volte-sdk/<module-name> |
2. |
De-activate the service |
ant redeploy-all |
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
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 |
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. |
https://console.developers.google.com/projectselector/apis/credentials Project Name: Calendar Call Minder |
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 number and allow Google Calendar access for two separate Gmail Accounts |
15. |
Make test call from +886555110425 to +886555110337: |
+886555110425 will receive a Busy |
16. |
Make test call from +886555110425 to +886555110337 |
+886555110425 will connect to +886555110337 |
Third Party Software License Information
Here is the licensing information for the third party software included on the VoLTE TAS demo image:
Main software
Software | License | Source location |
---|---|---|
Zoiper |
Zoiper St.T&C |
https://www.zoiper.com/en/zoiper-standard-terms-and-conditions |
Linphone |
GPL |
|
Eclipse |
EDL |
|
Clearwater IMS |
GPL |
|
OpenIMS HSS |
GPL |
|
MySQL |
GPL |
|
PostgreSQL |
PostgreSQL License |