This is a basic server application that consumes audio from Twilio Media Streams.
It's a good starting point to develop your own application logic.
Requires Java >= v1.8
mvn compile && mvn exec:java
You can setup your environment to run the demo by using the CLI (BETA) or the Console.
-
Find available phone number
twilio api:core:available-phone-numbers:local:list --country-code="US" --voice-enabled --properties="phoneNumber"
-
Purchase the phone number (where
+123456789
is a number you found)twilio api:core:incoming-phone-numbers:create --phone-number="+123456789"
-
Start ngrok
ngrok http 8080
-
Edit the
src/main/resources/templates/twiml.mustache
file to replace<ngrok url>
with your ngrok host. -
Make the call where
+123456789
is the Twilio number you bought and+198765432
is your phone number andabcdef.ngrok.io
is your ngrok host.twilio api:core:calls:create --from="+123456789" --to="+198765432" --url="https://abcdef.ngrok.io/twiml"
- Access the Twilio console to get a
<TWILIO-PHONE-NUMBER>
. - Run the server (listening on port 8080)
- Use ngrok to make your server publicly available:
ngrok http 8080
- Edit the twiml.mustache file in the
/src/main/resources/templates/
directory and add your ngrok URL aswss://<ngrok url>/voice
- Run the curl command in order to make the proper call
curl -XPOST https://api.twilio.com/2010-04-01/Accounts/<ACCOUNT-SID>/Calls.json -d "Url=http://<ngrok url>/twiml" -d "To=<PHONE-NUMBER>" -d "From=<TWILIO-PHONE-NUMBER>" -u <ACCOUNT-SID>:<AUTH-TOKEN>