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.
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.
- Python 3.6
- Zeep (A Python SOAP client library)
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 |
- 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
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
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