Skip to content

Local Number Portability Client for New Zealand Telecommunications Companies

License

Notifications You must be signed in to change notification settings

mpainenz/ipms-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python IPMS Client

What is IPMS?

The Industry Portability Management System is a government regulated service provided to New Zealand Telecommunication Carriers and Service providers. The system is used to "Port" telephone numbers between members.

Number Portability allows New Zealand consumers to keep ownership of their Telephone numbers when changing Service Providers.

About this project

This project contains a very simple, easy to use, IPMS API Client written in Python 3.6. This project will enable an IPMS user to connect to, and perform function calls against the IPMS SOAP Service. This project was initially created to test the latest API functionality introduced in 2018, however it could also be extended to provide other functionality such as automated email alerting.

This library supports TLS1.2 SSL.

Requirements

Available IPMS Functions

Some function calls have not yet been implemented, however it is not difficult to add any missing functions. If a missing functions is required, please create an issue to request missing functionality be added.

Function Call Implentation Status
acceptApprovedPortChange ⬛ Implemented
activatePort ⬛ Implemented
approvePort ⬛ Implemented
cancelPort ⬜ TBC
changePassword ⬜ TBC
completePort ⬛ Implemented
confirmNetworkUpdates ⬛ Implemented
failPort ⬜ TBC
getApprovedPortChangeRequests ⬛ Implemented
getApprovedPorts ⬛ Implemented
getCarriers ⬛ Implemented
getCompanies ⬛ Implemented
getCurrentUserData ⬜ TBC
getNetworkUpdates ⬛ Implemented
getPortProgress ⬛ Implemented
getRequestedPorts ⬛ Implemented
getServiceProviders ⬛ Implemented
numberEnquiry ⬛ Implemented
rejectApprovedPortChange ⬜ TBC
rejectPort ⬜ TBC
requestApprovedPortChange ⬛ Implemented
requestEmergencyReturn ⬜ TBC
requestPort ⬛ Implemented
requestRelinquishment ⬜ TBC
sOMEnquiry ⬜ TBC
sOMStatusEnquiry ⬜ TBC
submitPortResponse ⬛ Implemented
updatePortProgress ⬛ Implemented
version ⬜ TBC
withdrawPort ⬜ TBC

Installation

  • Install Python 3.6 or later
  • Clone this library using a Git client, such as TortoiseGit for Windows (Or simply download using the green link above)
  • You can then either use Python from command line to execute script from the examples directory, or I would recommend using an IDE like PyCharm which is a lot more user-friendly

Usage

For a basic example, look at the examples/basic_functions.py script.

Simply change the Username, Password, and Company ID fields to something valid, and run the script to connect to IPMS

Example code

In order to make things simple for those who aren't familiar with Programming, most of the more complicated code is wrapped inside a class called TNASConnection. You use this class to connect and run commands against IPMS.

ipms_connection = api_client.IPMSConnection(ipms_interface=api_client.IPMS_TRAIN,
                                            username='joebloggs',
                                            password='something',
                                            company_id=123)

response = ipms_connection.som_enquiry(123456)
success = response['success']
if success:
    print(response)

For more rigourous examples, take a look at examples/vngs_test_loop.py

About

Local Number Portability Client for New Zealand Telecommunications Companies

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages