Set Up a Python Dev Environment for PHLO

Using this guide, you can set up a development environment in five minutes to trigger a PHLO.

Install Python, Flask, and the Plivo Python SDK

To get started, install Python, the Flask web framework, and Plivo’s Python SDK.

Linux and macOS users should already have Python installed. Windows users can download and install it. Follow instructions to install Flask.

Install the Plivo Python SDK

To install the Plivo Python SDK, first create a project directory using the command mkdir mypythonapp, then change to the directory and install the SDK using pip:

pip install plivo

Alternatively, you can download the source code from our GitHub repo and run

python setup.py install

We recommend that you use virtualenv to manage and segregate your Python environments, instead of using sudo with your commands and overwriting dependencies.

Trigger the PHLO

Create and configure a PHLO, then integrate the PHLO into your application workflow by making an API request to trigger the PHLO with the required payload.

You can run a PHLO with static payload values by entering specific values in fields like from and to on the PHLO console.

With Static Payload

To deliver a dynamic payload instead of a static one, define the payload keys as Liquid templates on the PHLO console and pass the values at runtime.

With Dynamic Payload

To trigger a PHLO, create a file — we called ours trigger_phlo.py — and paste into it the code below for either a static or dynamic payload.

Static payload

1
2
3
4
5
6
7
8
9
10
import plivo

auth_id = '<auth_id>'
auth_token = '<auth_token>'
phlo_id = '<phlo_id>' 
payload = {"from" : "<Caller_ID>","to" : "<Destination_Number>"}
phlo_client = plivo.phlo.RestClient(auth_id=auth_id, auth_token=auth_token)
phlo = phlo_client.phlo.get(phlo_id)
response = phlo.run(**payload)
print str(response)

Dynamic payload

1
2
3
4
5
6
7
8
9
import plivo

auth_id = '<auth_id>'
auth_token = '<auth_token>'
phlo_id = '<phlo_id>' 
phlo_client = plivo.phlo.RestClient(auth_id=auth_id, auth_token=auth_token)
phlo = phlo_client.phlo.get(phlo_id)
response = phlo.run()
print str(response)
Note:
  • Replace the placeholders <auth_id> and <auth_token> with your authentication credentials, which you can find on the overview page of the Plivo console.
  • We recommend that you store your credentials in the auth_id and auth_token environment variables to avoid the possibility of accidentally committing them to source control. If you do this, you can initialize the client with no arguments and it will automatically fetch the values from the environment variables.
  • Replace the placeholder <phlo_id> with the PHLO_ID from the PHLO list screen of the Plivo console.
  • Replace the placeholder <Caller_ID> with a phone number you’ve purchased, and <Destination_Number> with the phone number you’ll be calling. Both phone numbers should be in E.164 format.

Save the file and run it.

python trigger_phlo.py
Note: If you’re using a free trial account you must verify (sandbox) your destination number, unless you use the phone number you used for signup verification as your destination number. We require this as a security measure to avoid abuse. To sandbox a number in a Plivo trial account, visit Phone Numbers > Sandbox Numbers and click on Add Sandbox Number.