Page MenuHomePhabricator

Introduction
AG Projects RTC Platforms (Provisioning Guides)

This document describes how provisioning works and can be used

Provisioning of Multimedia Service Platform is performed by the NGNPro SOAP/XML provisioning server. To access the server you need either a SOAP/XML client, the web front-end that comes standard with the platform, or one developed by the operator using the supplied SOAP/XML schema.

The examples and screenshots presented in this document have been taken using AG Projects developed NGNPro client part of CDRTool application and may differ from the actual deployment of each customer. Access to the hosted version of Multimedia Service Platform also exposes less functionality, some functions are only available to administrator account and not available to resellers.

It is the responsibility of the operator to build a web interface that talks to the SOAP/XML interface. The sample code provided with CDRTool application is merely an example for how to access the API and should not be used in production by customers.

NGNPro Server

NGNPro server software provides a SOAP/XML provisioning interface that allows for the management of accounts along with all their auxiliary settings.

Using NGNPro SOAP/XML interface the Operator may build new front-ends or adapt the existing CRM, provisioning or support systems to the Multimedia Service Platform, making the integration easy and effective. SOAP/XML is an industry standard for which there are implementations available in almost any programming language (like C, Java, PHP and Python) and it can be used by web developers to create customized web portals for the Operator or its resellers without bothering with the complexity of the platform setup and the database schemas sitting behind.

The WSDL for the SOAP/XML provisioning API can be found at:

https://mdns.sipthor.net/ngnpro/wsdl

SOAP/XML API

  1. SIP domain management (adding, removing and querying domains)
  2. SIP account management (adding, updating, deleting and getting a SIP account)
  3. SIP aliases (adding, deleting and getting SIP aliases for a given SIP account)
  4. Group membership management (granting, revoking or listing group membership)
  5. Voicemail account (adding, updating, removing or getting a voicemail account)
  6. Call diversions (setting or getting the diversions for a given user)
  7. Retrieving call information for a certain user (missed, placed, received calls)
  8. Retrieving the registered phones one user has (getting the user locations info)
  9. ENUM management (adding, removing and getting the ENUM mappings)
  10. LCR management (adding, removing and getting the PSTN routes and gateways)

book-general-sip-platform-NGNPro-Datatree (424×613 px, 52 KB)

Encrypted passwords

The platform can be configured for using encrypted or non encrypted passwords for sip accounts. The web passwords are separate and are currently stored as 'plain' text in the database. The web password allows you to login with a sip account to the settings for that sip account.

If the platform is using encrypted passwords you will be not able to retrieve the password as 'plain' text. This results in that passwords will not be shown in the email you get when sending account info to to configured email address. Only the web password will show, which allows you to login and change the sip account password.

The time you'll know the password before it is encrypted, is when provisioning the accounts (add). At this point in time you should send the email/letter to the customers telling them the info they need. From CDRTool they will get an email without password if the send email to email is used from the Identity tab.

Another consequence is that the web interface will never show the password. It can only be changed.

NGNPro Clients

Multimedia Service Platform comes with a fully featured provisioning client, which is part of CDRTool web application. The Operator may also chose to develop his own web portals to interface with Multimedia Service Platform by using the provided SOAP/XML schema.

Python Client

To help the development a custom client is available:

Usage is simple and described in the WSDL.Proxy class docstring. In addition to what is mentioned there, you need to also specify the auth argument, which is a dictionary like:

dict(username='myusername', password='mypassword')

The Proxy, will load the WSDL and add the methods from the specified port in the WSDL on the fly to the proxy instance that is created when you instantiate Proxy(). After the creation you can call the port methods directly on the proxy, so no code generation is needed. You can discover the available methods using inspection on the proxy instance as with any other python object. You pass simple data structures (strings, ints, lists, dicts), that are automatically converted to the appropriate SOAP types.

Inside the archive you'll also find a short example of how to use it in ngnpro_test.py

PHP Client

To use this example code you must install SOAP library for PEAR project.

Generate the library with:

#!/usr/bin/php
<?php
require_once('SOAP/WSDL.php');
$wsdl       = new SOAP_WSDL('https://mdns.sipthor.net/ngnpro/wsdl');
print "<?\n";
print $wsdl->generateAllProxies();
print "?>\n";

You will end up with a file containing all client functions, attached is an example of the generated file for NGNPro version 4.3.5:

The script:

Server Location

NGNPro is reachable on the following URLs, which were configured during the setup phase of the platform:

Colocated PlatformProtocolPortLocationSOAP ports
Multimedia Service PlatformTLS443https://cdr.example.com/ngnproall ports except Voicemail port
Multimedia Service PlatformTLS443https://cdr.example.com/ngnpro/voicemailVoicemail port
Multimedia Service PlatformTCP9200http://sip.example.com:9200all ports except Voicemail port
Multimedia Service PlatformTCP9200http://vm.example.com:9200Voicemail port
SIP Thor PlatformTLS9200https://ngnpro.example.com:9200All ports

Test Server

You can test your provisioning client against the live platform hosted by AG Projects.

PlatformProtocolPortLocationSOAP ports
Hosted AG Projects platformTLS443https://mdns.sipthor.net/ngnproAll ports

The credentials for accessing the test server are the same as the login account used for accessing AG Projects support web page.

SOAP/XML Authentication

SOAP/XML requests must contain valid authentication header with credentials in the form of a combination of username, password and impersonate attributes. There are two types of SOAP credentials to access the server:

  • Administrator level. The server has an administrator account configured in the server configuration file, /etc/ngnpro/config.ini, that can be used to perform all functions without restrictions. Set the impersonate attribute of the SOAP authentication header to a valid customer of the system to perform actions in behalf of that customer.
  • Customer level. Access a partition of the data provisioned into the platform. The customers table, managed using the SOAP/XML CustomerPort, is used as a login database for authenticating and authorizing the SOAP/XML requests. First use the administrator level account to add a customer. When the combination of username/password in the SOAP authentication header matches an entry in the customers table, all actions will be performed in behalf of that customer. This means that any record created will inherit the customer id of the customer and any modification will be checked for ownership before being committed. This allows reseller to have limited access to the platform based on rights assigned to them by the system administrator.

More information about the *Customer* concept can be found in Main Entities

Next Steps

Continue by: