Python package for using Sonetel's REST API endpoints.
Sonetel Developer Home
.
API Documentation
.
Get Free Account
The Sonetel API is a REST based web-service that enables you to manage your Sonetel account from your own platform or service. You can manage your account, your phone numbers and make callback calls etc.
This Python package provides an easy-to-use interface to integrate Sonetel's APIs with your service. For more information about the API, please see the documentation.
To use the package, you need a Sonetel account. If you don't already have one, get a free account from sonetel.com.
This is the recommended way to install the module. It installs the latest stable version from the Python Package Index.
pip install sonetel
To get the latest features, clone the repository and follow these instructions to build the SDK locally.
To use the package, add the following line to the top of your Python program.
import sonetel
Here's a description of the various modules and the methods available with each.
The Auth module is used to generate and manage access tokens.
To instantiate it, you need to pass your Sonetel username and password to it. It supports the following methods:
create_token()
- create a new access token. Called automatically when a new instance is created.get_access_token()
- fetch the current access token.get_refresh_token()
- get the refresh token, used to refresh the access token.get_decoded_token()
- return the decoded JWT value. Returns a dict.
import os
import sonetel as sntl
user = os.environ.get('sonetelUsername')
pswd = os.environ.get('sonetelPassword')
s = sntl.Auth(username=user, password=pswd)
print(s.get_access_token())
When your access token has expired, you can use the create_token()
method to get a new access_token
& refresh_token
.
This automatically updates the Account object to use the newly generated access and refresh tokens.
import os
import sonetel as sntl
user = os.environ.get('sonetelUsername')
pswd = os.environ.get('sonetelPassword')
s = sntl.Auth(username=user, password=pswd)
print(s.get_access_token())
# Generate the refresh token and update the Account object
response = s.create_token(refresh="yes", grant_type="refresh_token")
print(response)
Get the decoded JWT token.
import os
import sonetel as sntl
user = os.environ.get('sonetelUsername')
pswd = os.environ.get('sonetelPassword')
s = sntl.Auth(username=user, password=pswd)
print(s.get_decoded_token())
The Account module provides you information about your Sonetel account. For example, the prepaid balance, address and so on.
It supports the following methods:
get()
- Get information about the account. Return a dict with an overview of the information such as account ID, currency, prepaid balance, country and so on.update()
- Update basic information about your account.get_balance()
- Returns the prepaid balance. Pass the parametercurrency
=True
to include the currency with the returned value.get_accountid()
- Fetch the account ID.
import os
from sonetel import Auth
from sonetel import Account
user = os.environ.get('sonetelUsername')
pswd = os.environ.get('sonetelPassword')
s = Auth(username=user,password=pswd)
a = Account(s.get_access_token())
print(f"Your account ID is {a.get_accountid()} and your prepaid balance is {a.get_balance()}.")
Use this to make callback calls with your Sonetel account.
It supports the callback()
method which requires your mobile number and the number of the person you wish to speak to. In a callback call, our system will first call you and when you answer, call the other number you provided. When the second call has been answered successfully, the calls will be connected together.
When making a callback call, num1
is the destination where you will first answer the call before we call num2
. This can be your mobile number, a SIP address or your Sonetel email address.
If you set num1
as your Sonetel email address, then the call will be handled as per your incoming call settings.
import os
import sonetel
user = os.environ.get('sonetelUsername')
pswd = os.environ.get('sonetelPassword')
s = sonetel.Auth(username=user,password=pswd)
c = sonetel.Call(s.get_access_token())
result = c.callback(
num1="YOUR_NUMBER_OR_ADDRESS",
num2="NUMBER_TO_CALL",
)
print(result)
The Phonenumber
module allows you to manage phone numbers in your Sonetel account.
It supports the following methods:
get()
- get a list of phone numbers in your account. By default only returns a list of the E164 numbers. Set the parametere164only
equal toFalse
to get detailed information.add()
- buy a new phone number.update()
- update the call forwarding settings for a phone number.delete()
- remove a phone number from your Sonetel account.
import os
import sonetel
user = os.environ.get('sonetelUsername')
pswd = os.environ.get('sonetelPassword')
s = sonetel.Auth(username=user,password=pswd)
ph = sonetel.PhoneNumber(s.get_access_token())
print(ph.get())
Please keep your Sonetel login credentials safe to avoid any misuse of your account. Do not hard code them into scripts or save them in files that are saved in any form of version control.
You can add them to your operating system's environment variables and use Python's os
module to fetch them.
Assuming the username and password are stored in environment variables named sonetelUsername
and sonetelPassword
respectively, here's how you can access them from a script:
import os
import sonetel
user = os.environ.get('sonetelUsername')
pswd = os.environ.get('sonetelPassword')
s = sonetel.Auth(username=user,password=pswd)
print(s.get_access_token())
For help with the Sonetel API, have a look at the API documentation.
If you have an issue with the module, please report an issue on GitHub.