Skip to content
Works with Twilio-compatible systems to automatically route incoming calls to a voicemail queue. Has flexible management options available through phone and web interfaces.
PHP JavaScript CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
files
support
.gitignore
README.md
base.php
index.php
manage.php

README.md

Voicemail Manager

Voicemail Manager works with Twilio-compatible systems to automatically route incoming calls to a voicemail queue. It has flexible management options available through phone and web interfaces.

Donate

Features

  • Customizable messaging options.
  • Voicemail queue and per-user assignments queues for streamlined handling of incoming voicemail.
  • Phone and web interfaces for admins.
  • Sends SMS and/or email notifications to configured phones whenever a new voicemail arrives.
  • Keeps personal phone numbers private.
  • Easily block abusive numbers.
  • Calling and call forwarding options on a per-phone number basis.
  • Works with Twilio and Twilio-compatible services (i.e. TwiML) for rapid deployment.
  • Has a liberal open source license. MIT or LGPL, your choice.
  • Designed for relatively painless integration into your environment.
  • Sits on GitHub for all of that pull request and issue tracker goodness to easily submit changes and ideas respectively.

Getting Started

Download or clone the latest software release. Transfer the files to a web server directory of your choosing.

Change the owner of the 'files' directory to be the web server user (e.g. 'chown www-data /path/to/files').

In the root of the directory where the files were uploaded, create a new file called settings.php and put the following code into it:

<?php
	// The phones that are allowed to access the voicemail manager.  Phone numbers must be in E.164 format.
	// When 'admin' is true, the user of that phone can make configuration changes in the web interface.
	// The 'notify' option can be 'sms', 'email', or 'all'.
	$allowedphones = array(
		"+13145551212" => array("name" => "Your Name", "email" => "you@yourdomain.com", "admin" => true, "notify" => "all"),
	);

	// SMTP options when sending email.
	// See:  https://github.com/cubiclesoft/ultimate-email/blob/master/docs/smtp.md
	$emailfrom = "\"Voicemail Manager\" <webmaster@yourdomain.com>";
	$emailoptions = array();

	// Twilio Account Sid and Token.
	$twilio_sid = "YOUR_ACCOUNT_SID";
	$twilio_token = "YOUR_ACCOUNT_TOKEN";
	$twilio_apibase = false;
?>

Adjust the various options above for your needs. When not using Twilio, the $twilio_apibase will need to be set to point at the service's Twilio-compatible API. The API is used to send SMS messages and also retrieve and delete voicemail recordings so long-term storage charges aren't incurred.

Next, purchase a phone number through Twilio or a Twilio-compatible service. Note that only non-trial Twilio accounts are known to be fully supported at this time.

Point the newly purchased phone number's Voice webhook to the URL where this software is installed. Also, remove the default SMS webhook to disable SMS for that number.

Finally, call the phone number from an allowed phone. If all goes well, a menu of options will be spoken. Press '4' to receive a link to the management interface via SMS and email. Once inside the management interface, configure various options as desired.

Use Cases

This tool is great for:

  • Small business owners who don't want to give out personal or office phone numbers. By default, customers who call the number are dropped to voicemail, notifications about the new voicemail are sent, which allows their call to be returned in a timely fashion. Multiple employees can be set up to access the system to handle incoming messages as their time permits to generally keep the voicemail queue empty while simultaneously keeping important meetings interruption-free.
  • Quickly setting up a temporary phone number to use as a help line for a contest or event where multiple people need to be set up to handle the calls that come in.
  • Keeping a personal phone number private for a variety of reasons. Give a throwaway phone number to people you don't trust yet with your personal phone number.
  • Building a call center where you don't want to have customers wait on the line for 30+ minutes to talk to a human.

Twilio Alternatives

Note that Twilio can get pricey pretty quick. It's great for low-volume needs but the costs add up fast.

  • SignalWire - Half the cost with similar API and TwiML interfaces. U.S. and Canada only. Note that, as of this writing in 2019, certain features that Twilio supports are not implemented or not implemented properly in SignalWire. Therefore, this tool may not function on SignalWire until their interface becomes sufficiently compatible.
You can’t perform that action at this time.