voip drupal presentation at drupalcon sf 2010

22
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

Upload: leo-burd

Post on 18-May-2015

3.009 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Voip Drupal presentation at DrupalCon SF 2010

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

Page 2: Voip Drupal presentation at DrupalCon SF 2010

Contents

• Who is doing what?

• Cases

• The asterisk.module

• The What’s Up system

• Others?

• The Voip Drupal platform

• Next steps

Page 3: Voip Drupal presentation at DrupalCon SF 2010

The asterisk.module

Page 4: Voip Drupal presentation at DrupalCon SF 2010

The What’s Up system

Page 5: Voip Drupal presentation at DrupalCon SF 2010

5

Can technology

help change

this situation?

Page 6: Voip Drupal presentation at DrupalCon SF 2010
Page 7: Voip Drupal presentation at DrupalCon SF 2010

organization of

personally

meaningful

community events

Page 8: Voip Drupal presentation at DrupalCon SF 2010
Page 9: Voip Drupal presentation at DrupalCon SF 2010

demo

Page 10: Voip Drupal presentation at DrupalCon SF 2010

Other examples?

Page 11: Voip Drupal presentation at DrupalCon SF 2010

The Voip Drupalplatform

Page 12: Voip Drupal presentation at DrupalCon SF 2010

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.

Page 13: Voip Drupal presentation at DrupalCon SF 2010

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

Page 14: Voip Drupal presentation at DrupalCon SF 2010

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

Page 15: Voip Drupal presentation at DrupalCon SF 2010

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

Page 16: Voip Drupal presentation at DrupalCon SF 2010

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

Page 17: Voip Drupal presentation at DrupalCon SF 2010

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

Page 18: Voip Drupal presentation at DrupalCon SF 2010

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

Page 19: Voip Drupal presentation at DrupalCon SF 2010

<?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

Page 20: Voip Drupal presentation at DrupalCon SF 2010

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

Page 21: Voip Drupal presentation at DrupalCon SF 2010

Love needed

• audio_recorder.module

• dialplan command definition

• voip_freeswitch.module

• all the other modules

• … and more!

Page 22: Voip Drupal presentation at DrupalCon SF 2010

For additional information

• Leo Burd ([email protected])

• Bryan Hirsch ([email protected])

• Chad Phillips ([email protected])

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

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