voip drupal presentation at drupalcon sf 2010
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 ([email protected])
• Bryan Hirsch ([email protected])
• Chad Phillips ([email protected])
• http://www.voipdrupal.org/ (soon!!)
• http://groups.drupal.org/voip-drupal