Git Product home page Git Product logo

twilio-call's Introduction

Twilio phone call

Description

This field plug-in is part of a series of tools for working with Twilio in SurveyCTO. To learn more, check out our support article on using Twilio with SurveyCTO to securely record phone calls only with consent.

This plug-in allows for forms to launch outbound calls via Twilio.

The twilio-call field plug-in can be use when collecting data using computer-assisted telephone interviewing (CATI).

Under active development

This plug-in is still under active development and piloting, and there is no easy way (yet!) to decrypt encrypted audio recordings. If you're interested in piloting Twilio for CATI applications, please reach out to [email protected].

Features

  • Supports displaying or hiding the number being dialed.
  • Supports audio recording within Twilio.
  • Supports at-rest encryption of call recordings using SurveyCTO-generated encryption keys.

See this blog post for more benefits.

Data format

This field plug-in supports the text field type, and the data is stored in the field in a pipe-separated ("|") list. For example:

completed|call_id_123|https://api.twilio.com/2010-04-01/Accounts/account_id_123/Calls/call_id_123.json|https://api.twilio.com/2010-04-01/Accounts/account_id_123/Calls/call_id_123/Recordings.json

Retrieve the following items from this list using the item-at() form function at these positions in the list:

  • 0 - The call status. e.g. "queued", "ringing", and "complete".
  • 1 - The string identifier (SID) for the call.
  • 2 - Twilio URL to the record of the call.
  • 3 - Twilio URL to the recording of the call (if enabled).

How to use

If you would like more detailed steps, including on how to set up a Twilio account and phone number, check out this guide. If you run into an error, check out our troubleshooting guide.

  • Download the sample form.
  • Download the field plug-in.
  • Edit that sample to change the two references to "+1" to be a plus followed by your current country code.
  • Download the twilio_access.csv dataset template (right-click the link, click Save link as, set format to All Files, add .csv to the file name, and save).
  • Edit that .csv template to add your Twilio Account SID and Auth Token, as well as one of your Twilio numbers into the 1234 row.
  • Upload the sample form to your SurveyCTO server, attaching both the plug-in package and the .csv file. Alternatively, upload the .csv into a dataset and attach that dataset (learn more about pre-loading).

If you're new to Twilio, your free trial's home screen should include your trial Twilio number as well as your Account SID and Auth Token:

Important: please note that with a free Twilio trial account, you can only call to numbers that have been verified as belonging to you. So if you're using a trial account, be sure to verify all numbers you want to test with before trying to call them. This includes the number you will call from. If you do not verify both the from_number and to_number, you will get a status 400 error when trying to make a call.

When you use the plug-in, it will dial your number first (from_number), then dial the number you're trying to call (to_number). If you're using a free trial account, there will be a brief message from Twilio before the second number is dialed.

The plug-in allows just one dial attempt per field, so the sample form uses a repeat group to support multiple dial attempts. For each, the field itself records, in the field's response data, call status, unique Twilio call SID, Twilio details API URL, and Twilio recordings API URL in a pipe-separated ("|") list (use item-at() to access each item). The full API response from Twilio is available in the field's metadata.

When a dial attempt is first made, the saved status will always be queued, which means that the dial attempt has been issued within Twilio. The user can click the Update status button to request updated status from Twilio, in which case the field's response value and metadata will be updated with the latest status.

Parameters

The plug-in requires that you specify values for each of the following parameters:

Key Value
from_number (required) This is the phone number of the caller (generally the enumerator), starting with a country code (like +1 for U.S. numbers). The dialer will dial this number first.
to_number (required) This is the phone number to dial (generally the respondent), starting with a country code (like +1 for U.S. numbers). The dialer will dial this number second, connecting it to the first.
twilio_number (required) This is the Twilio number that will be used as the caller ID for both phone calls. Note that Twilio only allows one call per second from a given Twilio number, so if you have many enumerators making calls at the same time you may need to use multiple Twilio numbers.
accountSID (required) This is your Twilio Account SID.
auth_token (required) This is your Twilio Auth Token.
record (optional) This should be equal to 1 to record the phone call within Twilio or 0 to not record the call. If the call is recorded, it will be recorded with Twilio's dual-channel support so that each side of the conversation can be isolated during analysis. The default is to record calls (record = 1)
display_number (optional) This should be equal to 1 to show the to_number in the form's user interface or 0 to hide the number. The default is to show the number (display_number = 1)

More resources

twilio-call's People

Contributors

amrikcooper avatar chrislrobert avatar theomnimax avatar mofya1 avatar cking0987 avatar meletis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.