Call Auth. w/ Twilio - Python

Pre-requisites

  1. First Orion Branded Communications agreement
  2. Access to First Orion Customer Portal
  3. Vetted and Approved Business
  4. Ability to originate phone calls from configured phone numbers in calling platform
  5. 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

  1. Replace lines 13 and 14 with the Business API keys.
  2. Replace lines 26 and 27 with the caller and callee information.
  3. Replace lines 54 and 55 with Twilio API Credentials.
  4. 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"
  ...
  ...
}