Voip Drupal presentation at DrupalCon SF 2010

Post on 18-May-2015

3,009 views 1 download

Tags:

transcript

From Phone 2 Web(and back)

using VoIP technologies to enhance Drupal sites

Leo Burd1 & Bryan Hirsch2 & Chad Phillips3

1civic.media.mit.edu

2starswithstripes.org

3apartmentlines.com

2010.04.20 – Drupal Con SF 2010

Contents

• Who is doing what?

• Cases

• The asterisk.module

• The What’s Up system

• Others?

• The Voip Drupal platform

• Next steps

The asterisk.module

The What’s Up system

5

Can technology

help change

this situation?

organization of

personally

meaningful

community events

demo

Other examples?

The Voip Drupalplatform

Voip Drupal is…

A platform that facilitates the construction of Drupal sites

that literally pick-up the phone, make calls, record

messages, broadcast audio, run voice polls, and more.

design considerations• Flexibility

• Integration with Asterisk, FreeSwitch and other VoIP servers

• Integration with SMS, email and other communication services

• Speed• Minimize file transference, use URLs instead

• Minimize file conversion; use MP3 as much as possible

• Ease of use• CCK (Fields) integration

• End-user creation of “dialplan scripts” (IVRs)

• Web-based audio recording

• Voice/language support

• Ease of adoption• Basic building blocks for common applications

• Minimize dependencies on the VoIP service provider

• D6 (D7?) compatibility

Voip Drupal modules

voip.module

voip_directory.module

voip_extensions.module

voip_fields.module

voip_voicemail.module voip_announcements.module

voip_logger.module

voip_call_blast.module

voip_geo_call.module

voip_conference.module

core

useful

specific voip_weather.module

voip_voice.module voip_events.module

voip_group.modulevoip_polls.module

voip_asterisk.module voip_freeswitch.module

services.module

Basic architecture

voip.module

z.modulea.module

hook_voip_process_request($request_id, $options)

voip_process_request($request_id, $options )

voip_send_request($request_id, $options)

voip_server.api

voip_<server>.modulevoip_<server>.module

<voip server>

<server>.api

dial-in workflowasterisk

mp3 filesasterisk_script_handler.

sh

asterisk server

drupal serverphpagi_fastagi

drupal

voipmodules

script and command requests)

wav/mp3 files

1

2

3

dial-outworkflowasterisk

mp3 filesasterisk_script_handler.

sh

asterisk server

drupal serverphpagi_fastagi

phpagi_asmanager

drupal

voipmodules

script and command requests)

wav/mp3 files

1

2

4

3

The dialplan script system

• Dialplan scripts are like “audio pages”

• Each module defines its own scripts

• Basic commands might include• Dial <number, script>

• Say <text>

• Play <audio>

• Menu <options>

• Goto <script name>

• Back

• Record

• GetInput

• Hangup

<?xml version="1.0"?>

<voip_script name='hello_world'>

<say><text>Hello, world!</text></say>

<goto>bye_bye</goto>

</voip_script>

<?xml version="1.0"?>

<voip_script name='bye_bye'>

<say><text>Nice meeting you. Goodbye!</text></say>

<hangup></hangup>

</voip_script>

Sample dialplan scripts

Current status

• Already have “proof of concept” (What’s Up, asterisk.module)

• Defined basic architecture

• Implemented basic skeleton of the system

• Implementing core modules– voip.module

– voip_extensions.module

– voip_directory.module

– voip_call_blast.module

• Defining core dialplan commands

Love needed

• audio_recorder.module

• dialplan command definition

• voip_freeswitch.module

• all the other modules

• … and more!

For additional information

• Leo Burd (leoburd@media.mit.edu)

• Bryan Hirsch (bhirsch@starswithstripes.org)

• Chad Phillips (chad@apartmentlines.com)

• http://www.voipdrupal.org/ (soon!!)

• http://groups.drupal.org/voip-drupal