Coder Social home page Coder Social logo

twilio / openvbx Goto Github PK

View Code? Open in Web Editor NEW
700.0 700.0 341.0 10.4 MB

OpenVBX is a web-based open source phone system for business.

Home Page: http://openvbx.org

License: Other

PHP 79.26% Shell 0.01% CSS 7.35% Makefile 0.05% JavaScript 13.12% ApacheConf 0.06% HTML 0.12% Nginx 0.02%

openvbx's Introduction

Requirements

  • Web Server
  • PHP 5.2.3+
  • MySQL 5+
  • Twilio Account

SSL Certificate Requirements

Twilio requires a valid SSL certificate if you want to use HTTPS. Self signed certificates are not supported. See https://www.twilio.com/docs/api/errors/11237 for more information on what Twilio considers a valid certificate.

Install

Please see INSTALL.markdown

Bug Reporting Guidelines

Report issues to: https://github.com/twilio/openvbx/issues

Title: A brief description of the story
Body:

  1. A full summary of the problem.
  2. Steps to reproduce
  3. Possible solution (optional)

For a list of common/known issues see the Troubleshooting Guide/Common Issues Page

Contributing to OpenVBX

When working on OpenVBX try to work on the develop branch. This is where all work is done before being completed and merged in to master. No work goes directly to master.

To open a pull request against OpenVBX open it from your develop branch on to the main develop branch. We will end up pulling any requests against master in to a feature branch off of develop before merging the pull request.

Trademarks

"OpenVBX" and "Twilio" are trademarks of Twilio, Inc., all rights reserved. If you want to say something like "Powered by Twilio" or "Powered by OpenVBX" we'd be honored. If you want to redistribute OpenVBX or the iPhone app, you must come up with your own product name. Use of the Twilio trademarks in your product name requires Twilio's written permission.

More Information

Visit http://openvbx.org
Pickles and gravy.

Please remember that your use of OpenVBX in connection with the Twilio website and services is subject to the Twilio Terms of Service. Remember that you bear sole responsibility for adequate security, protection and backup of your content, software, servers and systems in connection with your use of OpenVBX and the Twilio services. We strongly encourage you to use encryption and other customary security technology to protect your content, software, servers and systems from unauthorized access or use and to routinely archive and back-up your content and other materials. Twilio will have no liability or responsibility for any unauthorized access or use, corruption, deletion, destruction or loss of any of your content, software, servers or systems. You acknowledge that you are responsible for any charges incurred by virtue of your use (or any other use under your account) of the Twilio applications and services, whether or not authorized and whether or not the application acted in error.

openvbx's People

Contributors

abv avatar anderly avatar andrewwatson avatar caseysoftware avatar chadsmith avatar gipetto avatar joepikowski avatar johndbritton avatar josh-authy avatar jpwalters avatar michaelcurry avatar mongus avatar rahims avatar stammy avatar thevinci avatar timothee avatar tjlytle avatar trenton42 avatar trinitronx avatar walker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openvbx's Issues

Non admin users can access admin pages

the pages don't show up in the menu but if they know the URL they can still get to it. seems like admin pages should inherit an "is_admin" functionality

my new plugin takes it into account so that data isn't exposed but people should be aware!

/flows

Hi,

going to flows shows a blank page, I can't get it to show any errors (same with numbers) all urls work. Any idea what this could be???

Many thanks,

CJ

Uploaded Audio Greeting file reference not retained after flow save and will not play during call

Uploaded file Audio Greeting does not "stick" and will not play during call

Trying to create a simple flow with Greeting, Audio Choice, mp3. My mp3 file uploads and plays back. After Save, Close and return to Edit the flow again the Audio choice is not retained.
It does however remain as a choice in the saved recording drop down menu

When editing the flow my browser shows this activity.

http://www.######.com/vbx/index.php/audio-uploads/#########.mp3 - Not Found

Removing the "index.php" part of the url plays the audio file successfully.

Testing the flow by calling my number gets an error message.

OpenVBX โ€ข v0.80 r37
Installed by Dreamhost.com web hosting services

Install process with existing DB

When you set up a new instance of VBX and point it at an existing vbx database, it should ask you if you want to use the old data or wipe it out and start over.

Advanced Phone Number Options

it would be nice to be able to activate the advanced features like fallback URL and Caller ID lookup from the number admin panel in VBX.

CSS all jacked up...

I just pulled down the latest changes from the master branch and now the whole site is foobar.

PluginData - not pulling data

Am I doing something wrong here? I am on PHP 5.1.6 and this is the latest version of OpenVBX.


$CI =& get_instance();
 
PluginData::set('dofus_littlePlanet', 123);
$test = PluginData::get('dofus_littlePlanet');
echo '
$test: "'.print_r($test, 1).'"
';

echo '

'.print_r($CI->db->last_query(), 1).'
';

PluginData::set('simple', 123);
$test = PluginData::get('simple');
print_r($test);

This is the output I get. I run the query and this works. The default parameter stopped working as well. If I do a PluginData::get('mykey', 'mydefaultvalue'). 'mydefaultvalue' doesn't get set to variable.

$test: ""
SELECT `plugin_store`.`key`, `plugin_store`.`value`, `plugin_store`.`plugin_id`
FROM (`plugin_store`)
WHERE `key` = 'dofus_littlePlanet'
AND `plugin_id` = 'PL98e5bcde8b555a3add3cd9da3629db2b'
AND `plugin_store`.`tenant_id` = '1'
LIMIT 1

When installing new plugins, js is not loaded

I think I figured this out. After you first install a new plugin, the js for that is not loaded. You need to do a shift refresh in order to get it to work. Maybe the script.js are being cached. Perhaps this should load the plugin with a timestamp. Also if there is one bad plugin it will break all of the other plugins. We should consider give each its own namespace area or load it dynamically.

Cannot Playback Uploaded Audio

I'm working on our menu system, and have run into a small problem.

We've recorded the menu using GarageBand. After successfully uploading, I'm unable to play it. There's a progress indicator beside the player that keeps going, and when I click play, the screen refreshes, going back to the previous greeting.

You can listen to the greeting at:
http://phone.rypple.com/openvbx/audio-uploads/3469a6d04d19e4a30a5e07f07ecb4052.mp3

Steps to reproduce:

  1. Download the MP3 located at http://phone.rypple.com/openvbx/audio-uploads/3469a6d04d19e4a30a5e07f07ecb4052.mp3
  2. Upload into the Menu Greeting sound selector
  3. Wait, notice the progress indicator
  4. Hit play

add admin page with plugin and now i have two admin menus...

"links" : [{
                    "menu" : "admin",
                    "url" : "Notifo",
                    "script" : "NotifoConfig/index.php",
                    "label" : "Notifo Service Config"
            },
           {
                    "menu" : "setup",
                    "url" : "NotifoUser",
                    "script" : "NotifoUserConfig/index.php",
                    "label" : "Notifo User Config"
           }]

SpeechPickerWidget makes it impossible to write TwiML

I don't know about you guys, but native TwiML makes it a lot easier. An example of how complex using PHP objects to write TwiML can be found in the standard plugins such as Menu and Dial. The standard PHP libraries prevent you from messing with the verbs as well. If you want to use an undocumented feature you cannot even change it because the verbs are protected.

AudioSpeechPickerWidget::getVerbForValue

Below is my workaround - its not great but it works


  1 <?php           
  2 $CI =& get_instance();                                                                                                                                   
  3 $current_entry = PluginData::get('current_entry');
  4 $next_human = AppletInstance::getDropZoneUrl('next-human');
  5 $next_machine = AppletInstance::getDropZoneUrl('next-machine');
  6 $prompt = AppletInstance::getAudioSpeechPickerValue('prompt');                                                                                           
  7 $prompt_verb = AudioSpeechPickerWidget::getVerbForValue($prompt, NULL);                                                                                  
  8                 
  9                                                                                                                           
 10             
 11 if(is_string($prompt)) {                                                                                                                                 
 12     $prompt = str_ireplace(
 13         array(  
 14             '[OrderId]',                                                                                                                                 
 15             '[EventName]',
 16             '[EventDate]',
 17             '[SellerName]'                                                                                                                               
 18         ),  
 19         array(
 20             wordwrap($current_entry->OrderId, 1, ' ', TRUE),                                                                                             
 21             $current_entry->EventName,                                                                                                                   
 22             date('M d Y g:i a', $current_entry->EventDate),                                                                                              
 23             $current_entry->Name
 24         ),  
 25         $prompt 
 26     );          
 27 }                   
 28 ?>              
 29 <Response>                                                                                                                                               
 30     <Gather numDigits="1" action="<?php echo $next_human ?>">
 31         <?php if(strpos($prompt, '.mp3') !== FALSE): ?>                                                                                                           
 32         <Play><?php echo $prompt ?></Play>                                                                                                               
 33         <?php else: ?>                                                                                                                                   
 34         <Say></Say>
 35         <?php endif; ?>                                                                                                                                  
 36     </Gather>       
 37                     
 38     <Pause length="30" />                      
 39                                                
 40     <!--  -->
 41     <Redirect><?php echo $next_machine ?></Redirect>                                                                                                     
 42 </Response> 

plugin.json - nav breaks for subdirectories in url parameter

Create a new plugin.json and for the json parameter put a subdirectory in there. It will break.

Example plugin.json:


{
   "name": "My sample app",
   "links": [
      {
          "menu": "myapps",
          "url": "myapps/dashboard",
          "script": "dashboard.php",
          "label": "Dashboard"
      } 
  ]
}

This will result in a "script not found error"

Dial applet connects caller, then voicemail

The Dial applet seems to be acting on the logic of:

Call Party X AND then connect to voicemail (after Party X hangs up)
as opposed to
Call Party X OR if and only if they don't answer connect to voicemail

When I configure this applet, the person who calls in is connected to the party they are trying to reach. They talk, but if the party the reached hangs up first then the caller hears the voicemail prompt as well.

More visibility for plugins

As a plugin writer I would like more visibility to plugins. We should be able to have bigger icons so we can put some nicer high res ones. Also for menu, I would like to have control of a counter - similar to badges for chrome extensions.

PluginData - not pulling data

Am I doing something wrong here? I am on PHP 5.1.6 and this is the latest version of OpenVBX v0.78 r35. This is inside of twiml.php. The data is being set in the database but is not being pulled correctly. Perhaps this have something to do with serialize()?


$CI =& get_instance();
 
PluginData::set('dofus_littlePlanet', 123);
$test = PluginData::get('dofus_littlePlanet');
echo '<pre>$test: "'.print_r($test, 1).'"</pre>';
echo '<pre>'.print_r($CI->db->last_query(), 1).'</pre>';
 
PluginData::set('simple', 123);
$test = PluginData::get('simple');
print_r($test);

This is the output I get. I run the query and this works. The default parameter stopped working as well. If I do a PluginData::get('mykey', 'mydefaultvalue'). 'mydefaultvalue' doesn't get set to variable.

$test: ""
SELECT `plugin_store`.`key`, `plugin_store`.`value`, `plugin_store`.`plugin_id`
FROM (`plugin_store`)
WHERE `key` = 'dofus_littlePlanet'
AND `plugin_id` = 'PL98e5bcde8b555a3add3cd9da3629db2b'
AND `plugin_store`.`tenant_id` = '1'
LIMIT 1

Error Adding User under IIS7

I'm running an existing and otherwise functioning copy of OpenVBX v0.79 r36 under IIS7. When I attempt to add a user I receive the following error message.

An unknown error occurred. Please contact your OpenVBX provider. Unable to complete request: http://www.url.com/openvbx/index.ph...

If I cancel the Add dialog box and click Users to refresh the user I attempt to add appears. Subsequent edits to this user are successful and deletion of the user is successful.

I have reviewed the IIS logs and see no error messages related to PHP.

No default action when no flow attached

Just got a friend to setup openvbx totally green. he called in to the local number he created without attaching a flow to it and got a weird system error. it should probably just say "you have not attached a flow" or something instead.

deleting & re-adding a user

After I delete a user I am unable to add that same user to the system again due to errors "email address already in use" or "phone already in use."

Call Dialog button does not dial in IE

When I click on the "Call" button on the upper left corner of OpenVBX, I am not able to make a call when using IE.

I have IE 8 so I have not tested it with other versions of IE. I did however, manage to make calls with Google Chrome and FireFox.

Windows R2008 Support on Apache

This is still a work in progress, we are working on it to make it work within subdirs. Currently just works in a top level directory.

SMS to Numbers of format +XXXXXXXXXX Fail

There seems to be a validation issue with the built in SMS functionality in OpenVBX.

When sending a SMS to a 10 digit international number in the following format an error is returned.
+XXXXXXXXXX

Error message: "Unable to send sms. Message from server: Number is not a valid phone number"

View Twiml button is missing from Voicemail Applet

To fix:

Inset a

at the bottom as seen at line 28.


  1 <?php                                                                                                                          
  2     // get the current owner (user or group) to decide if we should show the Prompt area on load                               
  3     $currentlyIsUser = AppletInstance::getUserGroupPickerValue('permissions') instanceof VBX_User;                             
  4 ?>                                                                                                                             
  5                                                                                                                                
  6 <div class="vbx-applet voicemail-applet">                                                                                      
  7                                                                                                                                
  8         <div class="prompt-for-group" style="display: <?php echo $currentlyIsUser ? "none" : ""  ?>">                          
  9             <h2>Prompt</h2>                                                                                                    
 10             <p>What will the caller hear before leaving their message?</p>                                                     
 11             <?php echo AppletUI::AudioSpeechPicker('prompt') ?>                                                                
 12         <div>                                                                                                                 
 13                                                                                                                                
 14         <div class="prompt-for-individual" style="display: <?php echo !$currentlyIsUser ? "none" : ""  ?>">                    
 15             <h2>Prompt</h2>                                                                                                    
 16                                                                                                                                
 17             <div class="vbx-full-pane">                                                                                        
 18                 <fieldset class="vbx-input-container">                                                                         
 19                     The individual's personal voicemail greeting will be played.                                               
 20                 </fieldset>                                                                                                    
 21             </div>                                                                                                             
 22         </div>                                                                                                                 
 23         <br />                                                                                                                 
 24         <h2>Take voicemail</h2>                                                                                                
 25         <p>Which individual or group should receive the voicemail?</p>                                                         
 26         <?php echo AppletUI::UserGroupPicker('permissions'); ?>                                                                
 27                                                                                                                                
 28         <div style="clear:both;"></div>                                                                                        
 29                                                                                                                                
 30 </div><!-- .vbx-applet -->      

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.