Giter VIP home page Giter VIP logo

ivr-recording-laravel's Introduction

IVR Phone Tree: IVR, call screening and recording for beginners. powered by Twilio - Laravel

An example application implementing an automated phone line using Twilio and Laravel.

Read the full tutorial!

Build Status

Run the application

  1. Clone the repository and cd into it.

  2. Install the application's dependencies with Composer

    composer install
  3. The application uses PostgreSQL as the persistence layer. If you don't have it already, you should install it. The easiest way is by using Postgres.app.

  4. Create a database.

    createdb ivr_recording
  5. Copy the sample configuration file and edit it to match your configuration.

    cp .env.example .env

    You'll need to set DB_HOST, DB_DATABASE, DB_USERNAME, and DB_PASSWORD. You can often leave DB_USERNAME and DB_PASSWORD empty. DB_HOST should be localhost if you're running the DB in your own machine.

  6. Generate an APP_KEY:

    php artisan key:generate
  7. Run the migrations:

    php artisan migrate
  8. Load seed data:

    php artisan db:seed
  9. Run the application using Artisan.

    php artisan serve
  10. Expose the application to the wider Internet using ngrok

    ngrok http 8000
  11. Provision a number under the Manage Numbers page on your account. Set the voice URL for the number to http://<your-ngrok-subdomain>.ngrok.io/ivr/welcome.

  12. Grab your phone and call your newly-provisioned number!

Dependencies

This application uses this Twilio helper library:

Run the tests

  1. Configure a test database in .env.test.

  2. Run the database migrations for the test database

    APP_ENV=testing php artisan migrate
  3. Run at the top-level directory:

    phpunit --coverage-text

If your PHP installation doesn't have xdebug support then simply run the tests without coverage reporting:

phpunit

ivr-recording-laravel's People

Contributors

dependabot-preview[bot] avatar jefflinwood avatar kwhinnery avatar lopenchi avatar mcelicalderon avatar onlywade avatar stern-shawn avatar tomwanzek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ivr-recording-laravel's Issues

Provide seed data for Agents

After setting up the app, I could get to the ExtensionController logic, but when I chose an extension it would redirect me back to the main menu instead of connecting me to the agent.

I think it's because the $planetExtensions are hard-coded, but since this version of the tutorial relies on an Agent model database, we need to have that data pre-populated.

Here's what that seed file looks like in the Rails app:
https://github.com/TwilioDevEd/ivr-recording-rails/blob/master/db/seeds.rb

And here's how the controller makes it dynamic:
https://github.com/TwilioDevEd/ivr-recording-rails/blob/master/app/controllers/twilio_controller.rb#L149-L158

Maybe you already have seed data, but I just missed it. In which case, add a note about how to load that data in the README.

.env.example DB_DATABASE field

The README asks you to create a database named ivr_recording, but the .env.example file has DB_DATABASE=homestead. That value should be ivr_recording, right?

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.