How is VoIP Drupal structured?
The following image shows some of the main modules that are part of the VoIP Drupal framework.
The VoIP Drupal framework is composed of modules that can be grouped into “core,” “useful” and “utility” categories. The modules in the “core” category are included in the official VoIP Drupal project page (http://www.drupal.org/project/voipdrupal/). They provide either essential or extremely useful functionality required for other other modules to benefit from the VoIP Drupal capabilities. Among other things,
- The voip.module defines a common API that facilitates the interaction with VoIP servers of different kinds. It provides ways to make, receive and cancel phone calls, select default voices, and more.
- The voipcall.module defines the attributes and behaviors associated with each call sent or received, including their caller id, destination number, duration, etc. VoIP Drupal calls also include scripts with commands such as “read text,” “play audio file,” “get input from keypad,” and others that determine what should be done whenever a call is picked up. Those scripts can be extremely powerful. Depending on the need, they might be either predefined or built in real time. They also have the potential to access any PHP or Drupal function available in the system.
- The voipscriptui.module provides an easy way for developers to create new VoIP Drupal scripts direct from the web browser.
- The voipscriptsamples.module includes examples that highlight how to implement common and complex features in the “VoIP Drupal way”.
The VoIP Drupal "core" also include modules that implement the functionality associated with specific Internet telephony servers. Ideally those modules should only be accessed via the functions provided by the VoIP Drupal API modules. We already have the following modules available:
- voipplivo.module, which implements the API for Plivo, enabling access to the FreeSWITCH open source telephony server.
- voiptropo.module, which implements the API for Tropo
- voiptwilio.module, which implements the API for Twilio
The modules in the “useful” category demonstrate good, useful applications of the VoIP Drupal API. Example modules include:
- audioblog.module, which allows users to access and record audio blog entries via SMS and regular phone calls.
- click2call.module, which makes it easy to create website buttons that provide answering machine capabilities or execute custom made scripts.
- messaging_voip.module, which integrates VoIP Drupal with the Drupal Messaging framework, making it possible for users to receive event notifications via phone calls
- multifactor.module, which provides a secure method for multi-factor authentication using VoIP Drupal and phone based pin numbers.
- phonerecorderfield.module, which calls the user to record the audio contents of a Drupal field.
- visualvoipdrupal.module, which provides a graphical programming language that facilitates the creation of VoIP Drupal scripts.
- voicemail.module, which provides voicemail boxes for users and nodes.
- voipextension.module, which provides a basic API that enables Drupal modules to assign phone extension numbers to nodes, users, views, and other elements of the system.
- voipnumber.module, which defines a phone number type to be used with other VoIP Drupal modules
- voipphone.module, which embeds a phone on the page, enabling users to make phone calls directly from the browser.
- voipusernumber.module, which provides phone numbers to Drupal users and manages auto-login and registration based on caller ids.
- voipvoice.module, which enables users to add their own voices to phone menus and audio prompts.
- voipwebform.module, which enables users to take webform surveys by telephone.
- And many more to come!
Finally, the modules in the “utility” category implement useful functionality that does not require VoIP Drupal in order to be adopted. They include: