|
|
Tutorial: install, configure, deploy
For beginning users, this tutorial walks step by step through:
Completing the walkthrough will leave you ready to continue with the next tutorial: Creating a feature. |
Installation Method
The instructions below provide a manual SDK installation. This is suitable for users who want to have a better understanding of the SDK capabilities and how so called "deployment modules" are created and function. Another option is to use the Sentinel VoLTE Installer, which leads to the same result, but automatically performs these steps, in effect simplifying the installation process. If you use the installer you can skip to Creating a Feature, otherwise continue reading this page.
Prerequisites
Before installing the Sentinel VoLTE Public SDK, download:
Prerequisite |
Download URL |
||
Java 7 Standard Edition SDK |
|||
RhinoSDK 2.5.0 |
|
||
Sentinel VoLTE Public SDK zip |
Please download the most recent SDK version from the link above. The Sentinel VoLTE Public SDK bundles:
|
||
Git (recommended,optional) |
The Sentinel VoLTE Public SDK has Ant targets in the rhino-sdk/ module to install, start, and stop the Rhino SDK. This is recommended for developers new to Rhino and the Sentinel VoLTE Public SDK.
Setting environment variables
On your Operating System, ensure that the JAVA_HOME environment variable is set and points to Oracle Hotspot Java 7. On Linux or Unix systems, you can test this as follows:
user@machine:~$ $JAVA_HOME/bin/java -version java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
Ensure that the ANT_HOME environment variable is set and points to Apache Ant 1.9.4 or later. On Linux or Unix systems, you can test this as follows:
user@machine:~$ $ANT_HOME/bin/ant -version Apache Ant(TM) version 1.9.4 compiled on April 29 2014
It is recommended to set your PATH environment variable to include $ANT_HOME/bin and $JAVA_HOME/bin. The remainder of the documentation assumes that the correct version of Java and Ant are in the users PATH. On Linux or Unix systems, this can be tested as follows:
user@machine:~$ java -version java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode) user@machine:~$ ant -version Apache Ant(TM) version 1.9.4 compiled on April 29 2014
Installing the Sentinel VoLTE Public SDK
To install the Sentinel VoLTE Public SDK:
1 |
Unzip the $ unzip sentinel-volte-sdk.zip Archive: sentinel-volte-sdk.zip creating: sentinel-volte-sdk/ creating: sentinel-volte-sdk/build/ creating: sentinel-volte-sdk/build/ant/ creating: sentinel-volte-sdk/build/bin/ creating: sentinel-volte-sdk/build/ivy/ creating: sentinel-volte-sdk/rhino-sdk/ inflating: sentinel-volte-sdk/.build inflating: sentinel-volte-sdk/.gitignore inflating: sentinel-volte-sdk/.sdk.root inflating: sentinel-volte-sdk/README.txt inflating: sentinel-volte-sdk/build.xml inflating: sentinel-volte-sdk/build/.gitignore inflating: sentinel-volte-sdk/build/.sdk.root inflating: sentinel-volte-sdk/build/README.txt inflating: sentinel-volte-sdk/build/ant/ant-build-support.jar inflating: sentinel-volte-sdk/build/ant/ant-launcher.jar inflating: sentinel-volte-sdk/build/ant/ant.jar inflating: sentinel-volte-sdk/build/ant/ivy.jar inflating: sentinel-volte-sdk/build/branch-targets.xml inflating: sentinel-volte-sdk/build/build-ivy.xml inflating: sentinel-volte-sdk/build/common.properties inflating: sentinel-volte-sdk/build/common.xml inflating: sentinel-volte-sdk/build/default-branch-targets.xml inflating: sentinel-volte-sdk/build/default-targets.xml inflating: sentinel-volte-sdk/build/deps.properties inflating: sentinel-volte-sdk/build/dynamic-targets.xml inflating: sentinel-volte-sdk/build/init.xml inflating: sentinel-volte-sdk/build/ivy-common.xml inflating: sentinel-volte-sdk/build/ivy/ivy-defaults.properties inflating: sentinel-volte-sdk/build/ivy/ivysettings.xml inflating: sentinel-volte-sdk/build/ivy/local-resolvers.xml inflating: sentinel-volte-sdk/build/ivy/offline-resolvers.xml inflating: sentinel-volte-sdk/build/ivy/online-resolvers.xml inflating: sentinel-volte-sdk/build/ivy/resolvers-remote.xml inflating: sentinel-volte-sdk/build/module-targets.xml inflating: sentinel-volte-sdk/build/public-macrodefs.xml inflating: sentinel-volte-sdk/build/sdk.version inflating: sentinel-volte-sdk/build/sdkroot-targets.xml inflating: sentinel-volte-sdk/build/targets.xml inflating: sentinel-volte-sdk/build/toolchain-macrodefs.xml inflating: sentinel-volte-sdk/deps.properties inflating: sentinel-volte-sdk/rhino-sdk/.sdk.root inflating: sentinel-volte-sdk/rhino-sdk/build.xml inflating: sentinel-volte-sdk/rhino-sdk/rhino.properties inflating: sentinel-volte-sdk/sdk.properties inflating: sentinel-volte-sdk/build/bin/.sdk.root inflating: sentinel-volte-sdk/build/bin/ant inflating: sentinel-volte-sdk/build/bin/go-offline inflating: sentinel-volte-sdk/build/bin/go-online inflating: sentinel-volte-sdk/build/bin/sdkadm inflating: sentinel-volte-sdk/build/bin/sentinel-rest-example inflating: sentinel-volte-sdk/build/bin/installer inflating: sentinel-volte-sdk/build/bin/installer-common inflating: sentinel-volte-sdk/build/installer.xml |
|---|---|
2 |
From the ./build/bin/ant init-sdk This command initialises the Sentinel VoLTE Public SDK directory. |
3 |
As part of the initialisation you may be asked to enter your Artifactory username and password. These credentials are supplied by OpenCloud in order to access the OpenCloud artifact repository.
Once entered, the $ ant init-sdk
Buildfile: /home/testuser/sentinel-volte-sdk/build.xml
init-build-extensions:
pre-init-ivy-common:
init-ivy-common:
Determining Ivy settings.
Checking ivy-defaults.properties for ivy settings.
artifactory.host=repo.opencloud.com (from ivy-defaults.properties)
artifactory.url=https://${artifactory.host}/artifactory (from ivy-defaults.properties)
ivy.cache.root=${sdk.root}/build/target/ivy-caches/online-resolvers.cache(from ivy-defaults.properties)
ivy.checksums=sha1 (from ivy-defaults.properties)
ivy.dir=${basedir} (from ivy-defaults.properties)
ivy.libs=${target}/libs (from ivy-defaults.properties)
ivy.local.root=${ivy.default.ivy.user.dir}/opencloud-local (from ivy-defaults.properties)
ivy.offline.root=${sdk.root}/repositories/opencloud-offline-mirror(from ivy-defaults.properties)
ivy.publication.root=${ivy.local.root} (from ivy-defaults.properties)
ivy.resolve.refresh=false (from ivy-defaults.properties)
ivy.sdk-resolvers.file=resolvers-remote.xml (from ivy-defaults.properties)
ivy.sdk-resolvers.file.internal=resolvers-remote.xml(from ivy-defaults.properties)
ivy.sdk-resolvers.path=${ivy.settings.dir}/${ivy.sdk-resolvers.file}(from ivy-defaults.properties)
ivy.symlinks=false (from ivy-defaults.properties)
artifactory.host=repo.opencloud.com (from ant environment)
artifactory.password=******************************** (from ant environment)
artifactory.url=https://repo.opencloud.com/artifactory (from ant environment)
artifactory.username=testuser (from ant environment)
ivy.symlinks=true (from ant environment)
Writing Ivy configuration to: /home/testuser/sentinel-volte-sdk/ivy.properties
[echo] Ivy Resolvers: /home/testuser/sentinel-volte-sdk/build/ivy/resolvers-remote.xml
[echo] Configuring Ivy with settings: /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[ivy:var] :: Apache Ivy 2.3.0 - 20130110142753 :: http://ant.apache.org/ivy/ ::
[ivy:var] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
ivy-authentication-check:
[ivy:resolve] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[echo] Build infrastructure lib/ directory is missing or out of date.
[echo] Populating lib/ from ivy...
[mkdir] Created dir: /home/testuser/sentinel-volte-sdk/build/target/lib
[touch] Creating /home/testuser/sentinel-volte-sdk/build/target/lib/.lib.uptodate
update-index-properties:
[oc:index-properties] Resolving: opencloud#sentinel-express-index#sentinel-pack/2.7.0;latest.integration
[oc:index-properties] Copying /home/testuser/sentinel-volte-sdk/build/target/ivy-caches/online-resolvers.cache/opencloud/sentinel-express-index/sentinel-pack/2.7.0/jsons/sentinel-express-index-2.7.0.0.json to /home/testuser/sentinel-volte-sdk/build/target/lib/index/sentinel-express-index-2.7.0.0.json
[oc:index-properties] Reading Module metadata from index: /home/testuser/sentinel-volte-sdk/build/target/lib/index/sentinel-express-index-2.7.0.0.json
[oc:index-properties] Writing dependency properties to: /home/testuser/sentinel-volte-sdk/release.properties
init:
init-branch:
init-sdk:
BUILD SUCCESSFUL
Total time: 13 seconds
If the credentials are entered correctly you should observe a delay whilst downloading artifacts from Artifactory, and then see the following output: $ ant init-sdk
Buildfile: /home/testuser/sentinel-volte-sdk/build.xml
init-build-extensions:
pre-init-ivy-common:
init-ivy-common:
[echo] Ivy Resolvers: /home/testuser/sentinel-volte-sdk/build/ivy/resolvers-remote.xml
[echo] Configuring Ivy with settings: /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[ivy:var] :: Apache Ivy 2.3.0 - 20130110142753 :: http://ant.apache.org/ivy/ ::
[ivy:var] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
ivy-authentication-check:
[ivy:resolve] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[echo] Build infrastructure lib/ directory is up to date.
update-index-properties:
[oc:index-properties] Properties file "/home/testuser/sentinel-volte-sdk/release.properties" already exists.
[oc:index-properties] Index configuration has not changed since previous build.
[oc:index-properties] Index configuration uses dynamic revisions. Current version of indexes will be queried.
[oc:index-properties] Querying current version of: opencloud#sentinel-express-index#sentinel-pack/2.7.0;latest.integration
[oc:index-properties] Current version is: opencloud#sentinel-express-index#sentinel-pack/2.7.0;2.7.0.0
[oc:index-properties] Currently available index versions are the same as previous build. Properties file "/home/testuser/sentinel-volte-sdk/release.properties" will not be regenerated.
init:
init-branch:
init-sdk:
BUILD SUCCESSFUL
Total time: 3 seconds
|
The Sentinel VoLTE Public SDK is now installed.
Directory structure
Here’s a directory listing of a newly installed SDK:
$ ls README.txt build build.xml deps.properties rhino-sdk sdk.properties
Here’s what those files and directories are for:
| File or directory | Contents | ||
|---|---|---|---|
|
Build scripts, tools, and libraries. |
||
|
'branch'-level commands for building of all modules within the SDK, |
||
|
Common Ivy dependencies across modules in the SDK.
|
||
|
Configuration for Ivy, such as repository location, credentials, and so on.
|
||
|
Generated file containing version and branch properties for all standard {productname} dependencies associated with a release.
|
||
|
A README file. It points the user to this documentation. |
||
|
Support module for installing, starting, stopping, and resetting a Rhino SDK directly from within the Sentinel VoLTE Public SDK |
||
|
SDK configuration variables used by all build scripts.
|
Setting the SDK properties
sdk.properties contains the following variables which need to be set:
| Property | Description | Default value | Example value | Valid values |
|---|---|---|---|---|
|
Organisation name used for Ivy publishing from the SDK |
UNSET |
rocket |
Single lowercase string. |
|
Vendor name of the components created using the SDK |
UNSET |
Rocket Inc. |
SLEE component identifier. |
|
Platform operator name for configuration of the service |
UNSET |
Rocket |
Any valid Java identifier. |
Use a text editor to edit sdk.properties and replace the default value of UNSET in each case with a value suitable
for your organisation.
If you are setting up the SDK behind the proxy, the section Proxy setting in sdk.prperties needs to be updated.
For example:
# Proxy settings # sdk.http.proxyHost=your.proxy.com sdk.http.proxyPort=3128 sdk.https.proxyHost=your.proxy.com sdk.https.proxyPort=3128 #These properties are used for both http and https. sdk.http.nonProxyHosts=localhost|127.0.0.1 sdk.http.proxyUser=username sdk.http.proxyPassword=password
Setting up Source Control
Setting up source control on the SDK is recommended at this point but is optional. If you choose not to set up source control continue from the next section.
If you are setting up the SDK for personal use, git is a useful system for tracking your local changes.
The SDK has a .gitignore which is suitable for an initial installation. For information on setting up .gitignore
files so that other working files and directories that you add are not tracked, see
Source control with the Sentinel VoLTE Public SDK.
To set up the SDK directory as a git repository run the following command from the SDK root:
$ git init Initialized empty git repository in /home/testuser/sentinel-volte-sdk/.git/
Now add the initial files and directories. The SDK already has a suitable .gitignore on installation.
$ git add .
Commit the initial state:
git commit -m "Add initial version of the Sentinel VoLTE Public SDK"
Setting up Ant
The SDK provides a copy of the Apache Ant build tool. Alternatively you may use an existing Ant installation.
Using Ant from the SDK
The SDK includes a copy of Ant that is preconfigured with the necessary libraries for retrieving SDK dependencies.
To use the SDK’s Ant, run sentinel-volte-sdk/build/bin/ant.
Using an existing Ant installation
You can use your own Ant installation (version 1.9.4 or later) by copying the bundled libraries to your ~/.ant/lib directory:
$ cd sentinel-volte-sdk/build/ant $ cp ivy.jar ant-build-support.jar ~/.ant/lib
The Sentinel VoLTE Public SDK build scripts will not work without the above libraries.
First steps post-installation
After installing Sentinel VoLTE Public SDK:
1 |
Ensure that Ant version 1.9.4 or later is in your ant -version |
|---|---|
2 |
Within the SDK, run |
3 |
Type |
4 |
Use the |
5 |
Next create a deployment module, which will let you install Sentinel VoLTE Public components into Rhino. To view the available service deployment modules, use the > list-modules +service-deploy Listing modules based on module tags. Modules matching all of the following tags will be listed: service-deploy opencloud#volte-sentinel-public-full-deploy#volte/2.7.0;2.7.0.0 opencloud#volte-sentinel-hlr-full-deploy#volte/2.7.0;2.7.0.0 opencloud#volte-sentinel-imssf-full-deploy#volte/2.7.0;2.7.0.0 opencloud#volte-sentinel-imssf-hlr-full-deploy#volte/2.7.0;2.7.0.0 4 modules matched search criteria out of a total possible 715. Pagination was set to display unlimited results per page. Specify a pagination entry count as an argument (e.g. '10') to pause output during display. Specify '-tag' arguments to narrow results by excluding modules matching one or more -tags. Specify '-v' or '--verbose' to enable display all module details including descriptions. Specify '--show-all-versions' to list modules for all versions instead of only the latest version. As can be seen, there is one Sentinel VoLTE service-deployment module suitable for installation. |
6 |
Now create a deployment module for the service, using the > create-deployment-module deploy-volte deploy-volte opencloud#volte-sentinel-public-full-deploy#volte/2.7.0;2.7.0.0 The following dependencies will be included in the new module: opencloud#volte-sentinel-public-full-deploy#volte/2.7.0;2.7.0.0 Creating deployment module 'deploy-volte' in directory 'deploy-volte'. downloading https://repo.opencloud.com/artifactory/opencloud-internal-snapshots/opencloud/sentinel-core/2.7.0/deployment-template/2.7.0.0/deployment-template-module-pack-2.7.0.0.zip ... .. (2kB) .. (0kB) [SUCCESSFUL ] opencloud#deployment-template#sentinel-core/2.7.0;2.7.0.0!deployment-template-module-pack.zip(module-pack) (87ms) Populating '/home/testuser/sentinel-volte-sdk/deploy-volte/config' with configuration artifacts. downloading https://repo.opencloud.com/artifactory/opencloud-internal-snapshots/opencloud/sentinel-core/2.7.0/sentinel-cassandra-ra-deploy/2.7.0.0/sentinel-cassandra-ra-deploy-config-2.7.0.0.zip ... .. (0kB) .. (0kB) [SUCCESSFUL ] opencloud#sentinel-cassandra-ra-deploy#sentinel-core/2.7.0;2.7.0.0!sentinel-cassandra-ra-deploy-config.zip(config) (275ms) downloading https://repo.opencloud.com/artifactory/opencloud-internal-snapshots/opencloud/sentinel-legacy-deploy/2.7.0/sentinel-cdr-ra-deploy/2.7.0.0/sentinel-cdr-ra-deploy-config-2.7.0.0.properties ... .. (0kB) .. (0kB) [SUCCESSFUL ] opencloud#sentinel-cdr-ra-deploy#sentinel-legacy-deploy/2.7.0;2.7.0.0!sentinel-cdr-ra-deploy-config.properties (345ms) ... edited for brevity ... Finished writing deployment module to: /home/testuser/sentinel-volte-sdk/deploy-volte The purpose of deployment modules is to be able to install a complete product in one go, and creating one is therefore typically one of the first things to do in an SDK. For more information about deployment modules see Modules. Custom features can also be added to deployment modules, see Creating a Feature. |
7 |
Now that the deployment module has been created successfully, you can use the > list-sdk-modules Searching for modules in: /home/testuser/sentinel-volte-sdk Found 1 module: deploy-volte The new module |
8 |
Exit the sdkadm program: type The file system will have a new directory called $ cd deploy-volte/ /deploy-volte$ ls build.xml config doc ivy.xml module.properties |
9 |
Look at the contents of each of the files and directories, to 'get a feel' for what is included in a deployment module. |
10 |
Make sure that you are in the The output should look like this: $ ant clean publish-local
Buildfile: /home/testuser/sentinel-volte-sdk/build.xml
init-build-extensions:
pre-init-ivy-common:
init-ivy-common:
[echo] Ivy Resolvers: /home/testuser/sentinel-volte-sdk/build/ivy/resolvers-remote.xml
[echo] Configuring Ivy with settings: /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[ivy:var] :: Apache Ivy 2.3.0 - 20130110142753 :: http://ant.apache.org/ivy/ ::
[ivy:var] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
ivy-authentication-check:
[ivy:resolve] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[echo] Build infrastructure lib/ directory is up to date.
update-index-properties:
[oc:index-properties] Properties file "/home/testuser/sentinel-volte-sdk/release.properties" already exists.
[oc:index-properties] Index configuration has not changed since previous build.
[oc:index-properties] Index configuration uses dynamic revisions. Current version of indexes will be queried.
[oc:index-properties] Querying current version of: opencloud#volte-sentinel-index#volte/2.7.0;latest.integration
[oc:index-properties] Current version is: opencloud#volte-sentinel-index#volte/2.7.0;2.7.0.0
[oc:index-properties] Currently available index versions are the same as previous build. Properties file "/home/testuser/sentinel-volte-sdk/release.properties" will not be regenerated.
init:
init-branch:
... edited for brevity ...
init-build-extensions:
pre-init-ivy-common:
init-ivy-common:
[echo] Ivy Resolvers: /home/testuser/sentinel-volte-sdk/build/ivy/resolvers-remote.xml
[echo] Configuring Ivy with settings: /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[ivy:resolve] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[echo] Build infrastructure lib/ directory is up to date.
init:
init-branch:
publish-local-branch:
[oc:ivymultimodulebuild] Modules to be built: [UNSET#deploy-volte]
[oc:ivymultimodulebuild]
[oc:ivymultimodulebuild] ========================================
[oc:ivymultimodulebuild] Entering module UNSET#deploy-volte
[oc:ivymultimodulebuild] ========================================
[oc:ivymultimodulebuild]
init-build-extensions:
pre-init-ivy-common:
init-ivy-common:
[echo] Ivy Resolvers: /home/testuser/sentinel-volte-sdk/build/ivy/resolvers-remote.xml
[echo] Configuring Ivy with settings: /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[ivy:var] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[ivy:resolve] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[echo] Build infrastructure lib/ directory is up to date.
init:
init-module:
[mkdir] Created dir: /home/testuser/sentinel-volte-sdk/deploy-volte/target/logs
[echo] Resolving ivy configurations "*" for deploy-volte
set-local-build-revision:
[oc:ivybuildnumber]
[oc:ivybuildnumber] Revision search for deploy-volte
[oc:ivybuildnumber] ---------------------------------------
[oc:ivybuildnumber] Revision basis: 1.0.0
[oc:ivybuildnumber] Latest revision: none
[oc:ivybuildnumber]
[oc:ivybuildnumber]
[oc:ivybuildnumber] New revisions for deploy-volte
[oc:ivybuildnumber] ---------------------------------------
[oc:ivybuildnumber] release: 1.0.0.0
[oc:ivybuildnumber] milestone: 1.0.0.0-M1
[oc:ivybuildnumber] snapshot: 1.0.0.0-SNAPSHOT.r20160401142116
[oc:ivybuildnumber] local: 1.0.0.0-DEV0-testuser
[oc:ivybuildnumber]
[echo] Building for local publication of revision 1.0.0.0-DEV0-testuser
set-default-build-revision:
do-build:
[echo] Initialising build extensions.
[echo] Retrieving ivy configuration "antlib" into /home/testuser/sentinel-volte-sdk/deploy-volte/target/libs/antlib
[copy] Copying 1 file to /home/testuser/sentinel-volte-sdk/deploy-volte/target/generated
[echo] Skipping default module src build - no source available.
[echo] Skipping default module test build - no test source available.
[mkdir] Created dir: /home/testuser/sentinel-volte-sdk/deploy-volte/target/artifacts
[echo]
[echo]
[touch] Creating /home/testuser/sentinel-volte-sdk/deploy-volte/target/artifacts/deploy-volte-deploy.xml
[echo]
[copy] Copying 170 files to /home/testuser/sentinel-volte-sdk/deploy-volte/target/generated/config
[zip] Building zip: /home/testuser/sentinel-volte-sdk/deploy-volte/target/artifacts/deploy-volte-config.zip
[copy] Copying 1 file to /home/testuser/sentinel-volte-sdk/deploy-volte/target/artifacts
[echo]
[echo] Building module as a module pack.
[echo] Building module pack using the following properties:
[echo] module.pack.include.path=**/*
[echo] module.pack.exclude.path=
[echo] module.pack.basedir=/home/testuser/sentinel-volte-sdk/deploy-volte
[echo] module.pack.prepend.file=
[echo] module.pack.prepend.include.path=**/*.java
[echo] module.pack.prepend.exclude.path=
[mkdir] Created dir: /home/testuser/sentinel-volte-sdk/deploy-volte/target/module-pack
[copy] Copying 176 files to /home/testuser/sentinel-volte-sdk/deploy-volte/target/module-pack
[oc:update-module-pack-dependencies] Updating module-pack ivy dependencies for: /home/testuser/sentinel-volte-sdk/deploy-volte/target/module-pack
[oc:update-module-pack-dependencies]
[oc:update-module-pack-dependencies]
[oc:verify-module-pack] Verifying module-pack content: /home/testuser/sentinel-volte-sdk/deploy-volte/target/module-pack
[oc:verify-module-pack]
[zip] Building zip: /home/testuser/sentinel-volte-sdk/deploy-volte/target/artifacts/deploy-volte-module-pack.zip
build:
test:
[echo] Skipping default module test - no tests available.
publish-local-module:
[echo] Publishing module to local repository.
[ivy:publish] :: delivering :: UNSET#deploy-volte#trunk;working@testmachine :: 1.0.0.0-DEV0-testuser :: integration :: Fri Apr 01 14:21:17 NZDT 2016
[ivy:publish] delivering ivy file to /home/testuser/sentinel-volte-sdk/deploy-volte/target/artifacts/ivy.xml
[ivy:publish] :: publishing :: UNSET#deploy-volte
[ivy:publish] published deploy-volte-config to /home/testuser/.ivy2/opencloud-local/UNSET/trunk/deploy-volte/1.0.0.0-DEV0-testuser.part/deploy-volte-config-1.0.0.0-DEV0-testuser.zip
[ivy:publish] published deploy-volte-config to /home/testuser/.ivy2/opencloud-local/UNSET/trunk/deploy-volte/1.0.0.0-DEV0-testuser.part/deploy-volte-config-1.0.0.0-DEV0-testuser.properties
[ivy:publish] published deploy-volte-module-pack to /home/testuser/.ivy2/opencloud-local/UNSET/trunk/deploy-volte/1.0.0.0-DEV0-testuser.part/deploy-volte-module-pack-1.0.0.0-DEV0-testuser.zip
[ivy:publish] published ivy to /home/testuser/.ivy2/opencloud-local/UNSET/trunk/deploy-volte/1.0.0.0-DEV0-testuser.part/ivy.xml
[ivy:publish] publish commited: moved /home/testuser/.ivy2/opencloud-local/UNSET/trunk/deploy-volte/1.0.0.0-DEV0-testuser.part
[ivy:publish] to /home/testuser/.ivy2/opencloud-local/UNSET/trunk/deploy-volte/1.0.0.0-DEV0-testuser
[oc:ivymultimodulebuild]
[oc:ivymultimodulebuild] ========================================
[oc:ivymultimodulebuild] Exiting module UNSET#deploy-volte
[oc:ivymultimodulebuild] ========================================
[oc:ivymultimodulebuild]
[oc:ivymultimodulebuild]
[oc:ivymultimodulebuild] ========================================
[oc:ivymultimodulebuild] Build Report:
[oc:ivymultimodulebuild] ========================================
[oc:ivymultimodulebuild]
[oc:ivymultimodulebuild] deploy-volte:
[oc:ivymultimodulebuild] [SUCCESS] (1m, 58.687s)
[oc:ivymultimodulebuild] Tests: none
publish-local:
BUILD SUCCESSFUL
Total time: 2 minutes 4 seconds
|
Setting up Rhino in the Sentinel VoLTE Public SDK
Once the module is built, you can deploy it into Rhino using the deployer. However, first you need to set up Rhino in the Sentinel VoLTE Public SDK. You do this by:
-
using the built-in Rhino SDK bootstrap (recommended for new users)
-
configuring an external Rhino location (for advanced users).
Rhino SDK setup using the built-in bootstrap
The Sentinel VoLTE Public SDK includes a built-in mechanism for using the Rhino SDK. This mechanism downloads the Rhino SDK and sets it up under the rhino-sdk directory of your Sentinel VoLTE Public SDK install.
It includes commands to initialise and start the Rhino SDK. Once running, the various Rhino utilities are available under the rhino-sdk/RhinoSDK/client/bin directory.
Four steps are necessary to install a Rhino suitable for testing all the way from service deployment straight through to handled test network traffic:
1 |
Installation
Enter the |
||
|---|---|---|---|
2 |
Licensing
Retrieve a suitable license and copy it over the file
|
||
3 |
Starting
Type
Rhino will be operational when the the following message displays: [exec] 2014-10-30 12:00:05.065 INFO [rhino.sleestate] <main> SLEE successfully started on node(s) [101] |
Configuring an external Rhino location in the Sentinel VoLTE Public SDK
If you want to use another version of Rhino (SDK or production) other than the one provided through the Sentinel VoLTE Public SDK:
1 |
Download and install Rhino (production or SDK). |
||
|---|---|---|---|
2 |
In the Sentinel VoLTE Public SDK install directory, there is a file called
|
||
3 |
Once this variable has been set, save the file, and start your Rhino. |
The Sentinel VoLTE Public SDK is now configured to use the user-defined Rhino.
Deploying the deployment module
Now that the Sentinel VoLTE Public SDK has been configured with the location of Rhino, and Rhino is running, to deploy the deploy-volte module:
1 |
Enter the ant -Ddb.type=postgres -Dpostgres.jdbc.dir=$PWD/../rhino-sdk/RhinoSDK/lib deploy-with-deps
Here’s some sample output (edited for brevity): $ ant -Ddb.type=postgres -Dpostgres.jdbc.dir=$PWD/../rhino-sdk/RhinoSDK/lib -Ddeployer.latest-revision-checks.enabled=false deploy-with-deps
Buildfile: /home/testuser/sentinel-volte-sdk/deploy-volte/build.xml
init-build-extensions:
pre-init-ivy-common:
init-ivy-common:
[echo] Ivy Resolvers: /home/testuser/sentinel-volte-sdk/build/ivy/resolvers-remote.xml
[echo] Configuring Ivy with settings: /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[ivy:var] :: Apache Ivy 2.3.0 - 20130110142753 :: http://ant.apache.org/ivy/ ::
[ivy:var] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
ivy-authentication-check:
[ivy:resolve] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[echo] Build infrastructure lib/ directory is up to date.
update-index-properties:
[oc:index-properties] Properties file "/home/testuser/sentinel-volte-sdk/release.properties" already exists.
[oc:index-properties] Index configuration has not changed since previous build.
[oc:index-properties] Index configuration uses dynamic revisions. Current version of indexes will be queried.
[oc:index-properties] Querying current version of: opencloud#volte-sentinel-index#volte/2.7.0;latest.integration
[oc:index-properties] Current version is: opencloud#volte-sentinel-index#volte/2.7.0;2.7.0.0
[oc:index-properties] Currently available index versions are the same as previous build. Properties file "/home/testuser/sentinel-volte-sdk/release.properties" will not be regenerated.
init:
init-module:
[echo] Resolving ivy configurations "*" for deploy-volte
deploy-with-deps:
[echo] Deploying module.
[oc:deploy] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[oc:deploy] Created deployer with options: OutdatedIvyModuleDetection: Disabled, IvyStatusesToCheck: [integration]
[oc:deploy] Invoking the deployer to process root module UNSET#deploy-volte#trunk;1.0.0.0-DEV0-testuser and its dependencies ...
[oc:deploy] WARNING: Dependency order for module opencloud#volte-sentinel-public-full-deploy#volte/2.7.0;2.7.0.0 mentions module volte-sentinel-mmtel-sip-mappers, which doesn't match any of opencloud#volte-sentinel-public-full-deploy#volte/2.7.0;2.7.0.0's dependencies.
[oc:deploy] WARNING: Dependency order for module opencloud#volte-sentinel-public-full-deploy#volte/2.7.0;2.7.0.0 mentions module volte-sip-sis-setup, which doesn't match any of opencloud#volte-sentinel-public-full-deploy#volte/2.7.0;2.7.0.0's dependencies.
[oc:deploy] downloading https://repo.opencloud.com/artifactory/opencloud-internal-snapshots/opencloud/third-party/commons-jxpath-library/1.3/commons-jxpath-library-1.3.du.jar ...
[oc:deploy] .................. (267kB)
[oc:deploy] [SUCCESSFUL ] opencloud#commons-jxpath-library#third-party;1.3!commons-jxpath-library.du.jar (79ms)
[oc:deploy] Installing module opencloud#commons-jxpath-library#third-party;1.3
[oc:deploy] Installing module opencloud#oc-common#infrastructure/1.6;1.6.1
[oc:deploy] Installing module opencloud#protobuf#cgin-connectivity/1.5.2;2.3.0.15
[oc:deploy] Installing module opencloud#sentinel-cgin-base-deploy#sentinel-legacy-deploy/2.7.0;2.7.0.0
[oc:deploy] Installing module opencloud#sentinel-cgin-deploy#sentinel-legacy-deploy/2.7.0;2.7.0.0
[oc:deploy] Installing module opencloud#easysip-ratype#sis/2.5.2;1.4.23
[oc:deploy] Installing module opencloud#sentinel-jsip-library-deploy#sentinel-legacy-deploy/2.7.0;2.7.0.0
[oc:deploy] Installing module opencloud#sentinel-sis-deploy#sentinel-legacy-deploy/2.7.0;2.7.0.0
[oc:deploy] Installing module opencloud#sentinel-dbquery-ra-deploy#sentinel-legacy-deploy/2.7.0;2.7.0.0
[oc:deploy] Installing module opencloud#sentinel-cdr-ra-deploy#sentinel-legacy-deploy/2.7.0;2.7.0.0
[oc:deploy] downloading https://repo.opencloud.com/artifactory/opencloud-internal-snapshots/opencloud/third-party/guava-library/10.0.1/guava-library-10.0.1.du.jar ...
[oc:deploy] ................................................................................... (1300kB)
[oc:deploy] [SUCCESSFUL ] opencloud#guava-library#third-party;10.0.1!guava-library.du.jar (595ms)
[oc:deploy] Installing module opencloud#guava-library#third-party;10.0.1
[oc:deploy] downloading https://repo.opencloud.com/artifactory/opencloud-internal-snapshots/opencloud/third-party/netty-library/3.2.7/netty-library-3.2.7.du.jar ...
[oc:deploy] ............................................. (694kB)
... edited for brevity ...
[oc:deploy] Deployment Result:
[oc:deploy] ---------------------------------------------------------------------
[oc:deploy] | Deploy result:
[oc:deploy] ---------------------------------------------------------------------
[oc:deploy] | Already Deployed:
[oc:deploy] | opencloud#cdr-ra#cdr-ra/2.2.0;2.2.0.3
[oc:deploy] | |__ ResourceAdaptorTypeID[name=CDR Generation,vendor=OpenCloud,version=2.2]
[oc:deploy] | ResourceAdaptorID[name=CDR Generation,vendor=OpenCloud,version=2.2]
[oc:deploy] | opencloud#sentinel-registrar-fetch-cmsisdn-profile#sentinel-registrar/2.7.0;2.7.0.0
[oc:deploy] | |__ ProfileSpecificationID[name=sentinel-registrar-fetch-cmsisdn-profile,vendor=OpenCloud,version=2.7.0]
[oc:deploy] | opencloud#sentinel-sip-mid-call-play-announcement-feature#sentinel-sip/2.7.0;2.7.0.0
[oc:deploy] | |__ SbbPartID[name=sentinel-sip-mid-call-play-announcement-feature,vendor=OpenCloud,version=2.7.0]
[oc:deploy] | opencloud#sentinel-uniqueid-ra#sentinel-core/2.7.0;2.7.0.0
[oc:deploy] | |__ ResourceAdaptorTypeID[name=UniqueID RA Type,vendor=OpenCloud,version=2.7.0]
[oc:deploy] | ResourceAdaptorID[name=UniqueID RA,vendor=OpenCloud,version=2.7.0]
[oc:deploy] | opencloud#easysip-ratype#sis/2.5.2;1.4.22
[oc:deploy] | |__ LibraryID[name=EasySIP Types,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.ACK,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.NOTIFY,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.UPDATE,vendor=jainslee.org,version=1.4]
[oc:deploy] | ResourceAdaptorTypeID[name=EasySIP,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.NoAckReceived,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipResponse.Error,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipResponse.Provisional,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipResponse.Success,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.MESSAGE,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.PRACK,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.REFER,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.BYE,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.SIP_EXTENSION,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipResponse.Redirect,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipResponse.Trying,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.NoPrackReceived,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.PUBLISH,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.CANCEL,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.REGISTER,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.SUBSCRIBE,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.INFO,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.INVITE,vendor=jainslee.org,version=1.4]
[oc:deploy] | EventTypeID[name=org.jainslee.resources.sip.IncomingSipRequest.OPTIONS,vendor=jainslee.org,version=1.4]
[oc:deploy] ---------------------------------------------------------------------
[oc:deploy] | Modules with no Component:
[oc:deploy] | opencloud#volte-sentinel-scc-features#volte/2.7.0;2.7.0.0
[oc:deploy] | opencloud#mmtel-communication-barring#volte/2.7.0;2.7.0.0
... edited for brevity ...
[oc:deploy] ---------------------------------------------------------------------
[oc:deploy] | Deployed Modules:
[oc:deploy] | opencloud#commons-jxpath-library#third-party;1.3.1-oc2
[oc:deploy] | |__ LibraryID[name=commons-jxpath,vendor=opencloud,version=1.3.1-oc2]
[oc:deploy] | opencloud#volte-determine-charge-mode#volte/2.7.0;2.7.0.0
[oc:deploy] | |__ SbbPartID[name=volte-determine-charge-mode,vendor=OpenCloud,version=2.7.0]
[oc:deploy] | opencloud#sentinel-ss7-classify-call-feature#sentinel-ss7/2.7.0;2.7.0.0
[oc:deploy] | |__ SbbPartID[name=sentinel-ss7-classify-call-feature,vendor=OpenCloud,version=2.7.0]
[oc:deploy] | opencloud#sentinel-registrar-reject-registrar-request-feature#sentinel-registrar/2.7.0;2.7.0.0
[oc:deploy] | |__ SbbPartID[name=sentinel-registrar-reject-registrar-request-feature,vendor=OpenCloud,version=2.7.0]
... edited for brevity ...
[oc:deploy] ---------------------------------------------------------------------
[oc:deploy] All modules deployed successfully.
[delete] Deleting directory /home/testuser/sentinel-volte-sdk/deploy-volte/target/deployer-work
BUILD SUCCESSFUL
Total time: 7 minutes 10 seconds
|
|---|
Binding features into the services
Next bind the deployed services and features together by running:
ant -Dslee.binder.service-strategy=copy_if_active bind-with-deps
Use REM or rhino-console to view what has been deployed. You can also check the Rhino logs to get a feeling for typical output when installing a Sentinel service.
Here is some sample output:
$ ant -Dslee.binder.service-strategy=copy_if_active bind-with-deps
Buildfile: /home/testuser/sentinel-volte-sdk/deploy-volte/build.xml
... edited for brevity ...
bind-with-deps:
[echo] Binding module.
[oc:bind] Connecting to Rhino ...
[oc:bind] Connected to Rhino.
[oc:bind] Initialising Ivy.
[oc:bind] :: loading settings :: file = /home/testuser/sentinel-volte-sdk/build/ivy/ivysettings.xml
[oc:bind] Creating binder.
[oc:bind] Created binder with options: ServiceStrategy: COPY_IF_ACTIVE
[oc:bind] Finished resolving dependencies.
[oc:bind] Invoking the binder to process root module UNSET#deploy-volte#trunk;1.0.0.0-DEV0-testuser and its dependencies ...
... edited for brevity ...
[oc:bind] Finished processing root modules.
[oc:bind] Bind Result:
[oc:bind] ---------------------------------------------------------------------
[oc:bind] | Bind result:
[oc:bind] ---------------------------------------------------------------------
[oc:bind] | Successfully processed modules:
[oc:bind] | opencloud#sentinel-sip-session-refresh-feature#sentinel-sip/2.7.0;2.7.0.0
[oc:bind] | |__ ModuleBindResult{resultParts=[bindings installed, bindings applied for service ServiceID[name=volte.sentinel.sip,vendor=OpenCloud,version=2.7.0.0]]}
[oc:bind] | opencloud#sentinel-registrar-fetch-cmsisdn-feature#sentinel-registrar/2.7.0;2.7.0.0
[oc:bind] | |__ ModuleBindResult{resultParts=[bindings installed, bindings applied for service ServiceID[name=sentinel.registrar,vendor=OpenCloud,version=2.7.0.0]]}
[oc:bind] | opencloud#sentinel-sip-b2bua-iec-prefeature#sentinel-sip/2.7.0;2.7.0.0
[oc:bind] | |__ ModuleBindResult{resultParts=[bindings installed, bindings applied for service ServiceID[name=volte.sentinel.sip,vendor=OpenCloud,version=2.7.0.0]]}
... edited for brevity ...
[oc:bind] ---------------------------------------------------------------------
[oc:bind] ---------------------------------------------------------------------
[oc:bind] | Created service copies:
[oc:bind] | ServiceID[name=sentinel.registrar,vendor=OpenCloud,version=2.7.0.0-copy#1]
[oc:bind] | |__ copied from ServiceID[name=sentinel.registrar,vendor=OpenCloud,version=2.7.0.0]
[oc:bind] | ServiceID[name=volte.sentinel.ss7,vendor=OpenCloud,version=2.7.0.0-copy#1]
[oc:bind] | |__ copied from ServiceID[name=volte.sentinel.ss7,vendor=OpenCloud,version=2.7.0.0]
[oc:bind] | ServiceID[name=volte.sentinel.sip,vendor=OpenCloud,version=2.7.0.0-copy#1]
[oc:bind] | |__ copied from ServiceID[name=volte.sentinel.sip,vendor=OpenCloud,version=2.7.0.0]
[oc:bind] ---------------------------------------------------------------------
[oc:bind] All modules bound successfully.
BUILD SUCCESSFUL
Total time: 1 minute 46 seconds
Configuring the services
Once the services have been deployed, before running any calls through, they must be configured.
The SDK creates an 'out-of-the-box' example configuration when it makes the deployment module.
The example configuration files are in the config directory in the deployment module.
To configure the services:
Enter the deployment module directory, and type:
ant configure-with-deps
