Call Auth. w/ Twilio - Python
Pre-requisites
- First Orion Branded Communications agreement
- Access to First Orion Customer Portal
- Vetted and Approved Business
- Ability to originate phone calls from configured phone numbers in calling platform
- Understanding of current calling platform and environment to integrate required API
Generate First Orion API Keys
See the API Credentials Page for more information. API Credential Page
Example
Prepare
- Replace lines 13 and 14 with the Business API keys.
- Replace lines 26 and 27 with the caller and callee information.
- Replace lines 54 and 55 with Twilio API Credentials.
- Replace lines 60 and 61 with the caller and callee information.
Python Script
Libraries needed
- json, requests, os
#CallAuth.py
import json
import requests
import os
def get_token():
url = "https://api.firstorion.com/v1/auth"
headers = {
'X-SERVICE': 'auth',
'content-type': 'application/json',
'X-API-KEY': 'your-api-key',
'X-SECRET-KEY': 'your-secret-key'
}
response = requests.request("POST", url, headers=headers)
data = response.json()
return data['token']
def push_precall(token):
url = "https://api.firstorion.com/exchange/v1/calls/push"
payload = json.dumps({
"aNumber": "+15555555555",
"bNumber": "+15554444444"
})
headers = {
'Authorization': token,
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
data = response.json()
value = {
'statusCode': response.status_code,
'body': data['body']['message']
}
# Return JSON Object
return json.loads(json.dumps(value))
# Replace this Create Call function based on your platform
# Download the helper library from https://www.twilio.com/docs/python/install
# Set environment variables for your credentials
# Read more at http://twil.io/secure
import os
from twilio.rest import Client
def createCall():
account_sid = "your_account_sid"
auth_token = "your_auth_token"
client = Client(account_sid, auth_token)
call = client.calls.create(
url="http://demo.twilio.com/docs/voice.xml",
to="+15555555555",
from_="+15554444444"
)
print(call.sid)
# Makes the pre-call push.
token = get_token()
precall = push_precall(token)
createTwilioCall = createCall()
print("Call Auth Info: " + precall)
print("Twilio Call Info: "+ createTwilioCall)
Responses
Run the Python script in
fouser@FO-user-pc Python % python3 CallAuth.py
Call Auth Info:
{
"body": {
"message": "Ok"
}
}
Twilio Call Info:
{
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
...
...
}
Updated 2 days ago