Git Product home page Git Product logo

vialer-js's Introduction

NOTE: THIS PRODUCT IS NO LONGER MAINTAINED. UPDATES ABOUT THE FUTURE OF THIS REPO WILL FOLLOW

Take me to the quickstart guide

The Vialer-js project

Vialer-js is a free, pluggable, open-source communication platform that focusses on customization, development pace and platform reach. Its philosophy is to empower developers and vendors to build their own communication tools at a fast pace, while maintaining flexibility of the most opinionated implementation details.

Customization

From application functionality to the documentation look-and-feel; all parts about Vialer-js can be styled, branded to fit a corporate identity or customized through the use of plugins that hook into the core functionality. The build system accomodates this branding flexibility and offers an easy way to customize naming, testing, default configurations and more.

Development pace

The Bologna Vialer-js brand uses SIP-over-websockets and relies on a suitable SRTP backend to tap in to all of the call features a PBX like Asterisk or Freeswitch has to offer: PSTN connectivity, on-hold, waiting music, transfers, queues, IVR and callgroups. Besides dealing with audio calls, video through a PBX may be another interesting application to your end-users. However, having a PBX in-between a call may not always be the desired situation.

A decentralized approach with a custom WebRTC signalling protocol and p2p connections between call participants may be more appropriate in situations where scalability and/or privacy concerns dictate that (video) data needs to flow between peers instead of through a centralized service. Another reason to use a custom signalling protocol, would be that features like chat and file transfers are much easier to implement without having to deal with the complexity of the SIP protocol.

The purpose of Vialer-js is not only to facilitate different use-cases, but also to be able to integrate them in one unified communication experience for your end-users. In our view, a user will be entirely free to use a VoIP-service provider with Vialer-js, while at the same time being able to communicate p2p with their friends over a decentralized signalling network.

Platform reach

Vialer-js is a readable environment-agnostic ES2017 codebase that uses a simple but powerful reactive data-oriented design. This allows it to run on several suitable JavaScript runtimes. At the moment, this includes:

  • Blink-compatible WebExtension browsers (Opera, Chrome, Chromium)
  • Electron desktop app

Headless Node.js support is implemented partially, to be able to run unit tests without having to mock data. Calling from Node.js is not supported yet though.

Want to learn more?

Great! Nice to have you interested in this project. Head over to the quickstart guide to learn more about how to work with Vialer-js. Are you interested in contributing or would you like to see some feature implemented? Please read our code of conduct and contributing guide first. Have any non-technical questions? Feel free to contact us.

vialer-js's People

Contributors

c0deaddict avatar frenchvillain avatar m-vellinga 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

vialer-js's Issues

Build is failing

Version

master

File / Feature

-

Expected behaviour

Build should succeed.

Actual behaviour

Build does not succeed.

Stacktrace / Error

[20:35:12] gulp-notify: [Error running Gulp] Error: src/scss/_fonts.scss
Error: File to import not found or unreadable: font-awesome/scss/font-awesome.
       Parent style sheet: /local/browser-plugins/webext-click-to-dial/src/scss/_fonts.scss
        on line 4 of src/scss/_fonts.scss
>> @import "font-awesome/scss/font-awesome";
   ^

[20:35:12] Finished 'scss-webext' after 42 ms
[20:35:12] gulp-notify: [Error running Gulp] Error: src/scss/_fonts.scss
Error: File to import not found or unreadable: font-awesome/scss/font-awesome.
       Parent style sheet: /local/browser-plugins/webext-click-to-dial/src/scss/_fonts.scss
        on line 4 of src/scss/_fonts.scss
>> @import "font-awesome/scss/font-awesome";
   ^

Other info

-

The font-weight or font-family doesn’t work

(it might be the npm package that differs for the worse - the newer isn’t as smooth, maybe because it’s not SemiBold (font-weight 600, not 700)):
old:
image

new:

image

Same other that is supposedly font-weight: bold text inside the widgets as well (not the headers it seems - they have weight: normal):

Old:

image

New:

image

Opening new tabs from popout closes popout.

Version

master

File / Feature

Popout links

Expected behaviour

When a user clicks on an icon in the top right corner that opens a new tab, the existing tab (with the popout) should not be closed.

Actual behaviour

When a user clicks on an icon in the top right corner that opens a new tab, the existing tab (with the popout) is force-closed.

Stacktrace / Error message

-

Other info

This is happening (again) because of shared code between the popup and popout. The popup is force-closed when opening a new tab, this shouldn't happen for the popout.

Error in background page when opening popup

I believe what I did was: after testing response to 401 by changing my user’s password and refreshing the plugin and then restoring my user’s password and closing/opening the popup, the restore for colleagues went kaput and a logout/login will fix it.

image

No notification for call attempts to invalid numbers.

Version

master

File / Feature

Click-to-dial using the context menu

Expected behaviour

A notification a call wasn't set up.

Actual behaviour

No feedback is given after the HTTP 400 response.

Stacktrace / Error message

-

Other info

To test e.g. highlight the part of a number but the plus-sign and right-click to call.

No call status dialog for firefox

Version

master

File / Feature

Call status dialog

Expected behaviour

A call status dialog should appear after starting a call.

Actual behaviour

Nothing happens when starting a call with the context menu (cannot use the icons, see #33)

Stacktrace / Error message

-

Loaded xpi and tested it, so no console output.

Other info

Firefox only, tested in v52/v53

Missing (re)connect icon

Version

master

File / Feature

The blinking (re)connecting icon is just a weird spinning circle with a gap.

Expected behaviour

This icon should be used:

2017-07-05-1499282960_screenshot

Actual behaviour

I see this icon:

2017-07-05-1499282586_screenshot

Stacktrace / Error message

-

Other info

-

No text in `npm run firefox`

Cornelis ran into this issue, but I can't reproduce myself, so need to investigate.

npm run firefox shows no text, perhaps because of this errors:

[firefox/index.js][debug] Firefox stdout: 1498810472444	addons.webextension.click-to-dial@web-extensions	WARN	Please specify whether you want browser_style or not in your browser_action options

[firefox/index.js][debug] Firefox stderr: JavaScript strict warning: moz-extension://3d8dec69-d7cf-4ca2-bdfb-3859113a6916/js/vendor.js, line 8071: SyntaxError: test for equality (==) mistyped as assignment (=)?

[firefox/index.js][debug] Firefox stderr: JavaScript error: moz-extension://3d8dec69-d7cf-4ca2-bdfb-3859113a6916/js/webext_bg.js, line 2687: SyntaxError: missing : after property id

Maybe the ^ bug also prevents this from working (url is empty):

image

OpenSans font is missing from build/

Version

master

File / Feature

-

Expected behaviour

OpenSans font files to be present in the build target directory

Actual behaviour

OpenSans font files are nowhere to be found

Stacktrace / Error message

Failed to load resource: net::ERR_FILE_NOT_FOUND chrome-extension://fogpekdafpcofdellklpnfbnbloiflge/fonts/OpenSans-Regular.woff2
Failed to load resource: net::ERR_FILE_NOT_FOUND chrome-extension://fogpekdafpcofdellklpnfbnbloiflge/fonts/OpenSans-Italic.woff2
Failed to load resource: net::ERR_FILE_NOT_FOUND chrome-extension://fogpekdafpcofdellklpnfbnbloiflge/fonts/OpenSans-Semibold.woff2

Other info

-

Colleagues list not available when using Firefox

Version

click-to-dial-2.0.12 August 2017

Browser Version

Mozilla Nightly 57.0a1 (2017-08-14) (64-bit)
Mozilla Firefox 55.0.1 (64-bit)

Description

Whenever a user logs into the plugin it is impossible to access the Colleagues list. Clicking on the drop down menu for Colleagues does nothing. Please refer to the screenshot for further information.

File / Feature

Contact List

Expected behaviour

When clicking on Colleagues the colleagues list should appear.

Actual behaviour

When clicking on Colleagues nothing happens.

Stacktrace / Error message

TypeError: parentDocShell.getDocShellEnumerator is not a function

Steps to reproduce

  1. Log in to the plugin
  2. Wait for the "refresh wheel" to stop (you can also click right away)
  3. Notice how the drop down menu does not appear showing the list of Colleagues

unable to display colleagues list

Radio buttons missing for the Availability menu (FF only)

Version

2.0.12

Description

There are no radio buttons to select whether a user is Available or not.
The functionality is okay, since the user can still change the status by pressing on the actual YES or NO messages, but it is not clear enough that YES and NO are elements the user can press to change his/her state.
While there are other visual clues for the user to figure out whether he is Available or not, the lack of the radio buttons makes it unclear enough for this to be addressed.

Feature containing the issue

Availability dropdown menu

Current behaviour

The radio buttons the user should be able to select in order to switch from Available to Not Available are missing for the Firefox browser.

Expected behaviour

There should be two radio buttons the user can click to change from one to the other state (Available/Not Available)

Steps to reproduce

  1. Log in to the Plugin using Firefox
  2. Click on the Availability drop down menu
  3. Notice the lack of radio buttons by the options YES/NO

missing radio buttons

No icons in the page with firefox

Version

master

File / Feature

Click-to-dial icons for detected phone numbers in websites

Expected behaviour

Click-to-dial icons should be injected in websites

Actual behaviour

No click-to-dial icons appear in websites

Stacktrace / Error message

-

Loaded xpi and tested it, so no console output.

Other info

Firefox only, tested in v52/v53

Popout design styling for colleagues list

Version

master

File / Feature

Colleagues list in the popout

Expected behaviour

Every colleague-item should have a complete border.

2017-08-22-1503388057_screenshot

Actual behaviour

The ones at the bottom do not if the list wraps.

2017-08-22-1503388084_screenshot

Stacktrace / Error message

-

Other info

-

Why is package-lock.json ignored ?

Version

master

File / Feature

.gitignore

Expected behaviour

Track the file package-lock.json

Actual behaviour

package-lock.json is ignored.

Stacktrace / Error message

-

Other info

package-lock.json has a very specific purpose. This is useful so new builds use the exact same versions this repository guaranteed to be working. This is also required to have a successful review process for Firefox builds: if versions have been bumped after building the xpi/before a reviewer starts building from provided source files and the output is different you have a rejected build and can start over.

Styling for login button doesn't change

Version

master

File / Feature

src/scss/_popup.scss

Expected behaviour

One example: when logging in with wrong credentials I expect the login button to highlight red with a warning

Actual behaviour

When logging in with wrong credentials the login button shows a warning but does not highlight red

Stacktrace / Error message

-

Other info

Missing at least a few ampersands for the nested rules in .login-button:


.login-button {
    background: #3c3c50;
    color: #fff;
    border: 0;
    height: 40px;
    display: block;
    margin-top: 5px;
    border-radius: 4px;

    &:active {
        padding: 0;
    }

    &:hover {
        background: #334;
    }

    .loading {
        background: #3c3c50;
    }

    .failed {
        background: #f2dede;
        color: #a94442;
        border: 1px solid #ebccd1;
    }

    .info {
        background: #d9edf7;
        color: #31708f;
        border: 1px solid #bce8f1;
    }
}

I haven't looked through the entire source if more might be missing.

Popout doesn't apply flex styling in Firefox

Version

master

File / Feature

Popout

Expected behaviour

The list of colleagues in the popout should fill horizontally.

Actual behaviour

The list of colleagues in the popout is listed vertically, resulting in a scrollbar.

Stacktrace / Error message

-

Other info

In the previous version of the plugin the popup and popout were separated. I can't remember the exact difference apart from interaction, but it seemed to be necessary. For instance at the top of the HTML files I see:

panel.html

<!DOCTYPE html>
<html lang="nl" class="no-scroll">

popout.html

<!-- having a <!DOCTYPE html> here actually breaks the flexbox -->
<html lang="nl" class="no-scroll">

I have not tested to see if this still applies.

Tested in Firefox 54

Dep missing when building for FF

When trying to test the build input/output for the Mozilla reviewers I do rm -rf node_modules and then the gulp build --target firefox fails; There is a dep missing.

image

Styling broken in Firefox.

Version

master

File / Feature

Login dialog

Expected behaviour

Styling in Firefox to be identical to Chrome, this is what it looks like in Chrome
2017-07-07-1499411412_screenshot

Actual behaviour

mozilla firefox start page - mozilla firefox_018

Stacktrace / Error message

-

Other info

Tested in Firefox 52/54, broken since 3727a3d

Error on logout

Version

master

File / Feature

-

Expected behaviour

No errors

Actual behaviour

Errors happen

Stacktrace / Error message

2017-08-22-1503385536_screenshot

Other info

-

No autofocus in firefox for login dialog

Version

master

File / Feature

Autofocus for login dialog

Expected behaviour

Login dialog should focus on first input field

Actual behaviour

No focus is set automatically

Stacktrace / Error message

-

Other info

Firefox only, tested in v52/v53

Clicking Settings while logged in redirects to the login page instead of showing Settings

Version

2.0.12
For both FF and Chrome browsers.

Description

Whenever a user that is already logged in to the plugin tries to access the Settings menu by clicking on the wheel icon, he gets redirected to the login website instead of the actual Settings website.
He then needs to enter his credentials to log in and then gets to see the Settings, but he should not need to do that since he is successfully logged in already through the plugin.

Current behaviour

When pressing the Settings icon in the plugin, the user gets redirected to the portal´s login menu as if he was not logged in.

Expected behaviour

When pressing the Settings icon in the plugin, the user should be redirected to the Settings page.

Steps to reproduce

  1. Log in to the Plugin
  2. Click on the wheel icon to access Settings
  3. Notice you are sent to the login website

Plugin logs in to live version while settings are set to acceptatie or a bogus address

Version

2.0

Description

The user can change the server address in the options menu and save it. Despite the address being correctly saved to a random address, if the user tries a valid user+pass combination for the live server, the plugin will accept it and log in to the live server regardless of the address set in the options menu.

This happens in both FF and Chrome.

While playing around with the server address setting it to non-existent ones, the bug stopped from occuring and was not possible to reproduce.

When making a clean install of FF and the plugin, the bug is reproduceable.

Actual behaviour

When logging in with a combination of username and password that is valid for the live server, the plugin will log the user in even when the server has been changed to something other than https://partner.voipgrid.nl.

Expected behaviour

It should not be possible to log in to the live server after changing the address in the options menu to anything other than https://partner.voipgrid.nl

Steps to reproduce

  1. Make sure you are not logged in the plugin
  2. Open the options menu for the plugin ("about:addons" in Firefox, or "chrome://extensions" in Chrome)
  3. Set the address to https://ANYTHING.voipgrid.nl and save it
  4. Log in using a combination of user+pass that is valid for https://partner.voipgrid.nl
  5. Open the options menu and notice how the address has been changed to https://partner.voipgrid.nl
  6. Click on Settings and notice how it redirects to https://partner.voipgrid.nl

Attached video

FF login to wrong server.zip

Missing critical information in README.md for contributors

Version

master

File / Feature

README.md

Expected behaviour

Clear instructions to be included in the README.md for working with the gulp file, explaining build targets, node/npm requirements, installation steps, production ready flags etc.

Actual behaviour

-

Stacktrace / Error message

-

Other info

-

Unable to use chrome for testing (not chromium)

Version

master

File / Feature

npm run test_chromium

Expected behaviour

I expect the plugin to build and then start chrome instead of chromium.

Actual behaviour

After building the plugin the script stops.

Stacktrace / Error message

sh: 1: chromium: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] test_chromium: `gulp build --target chrome;chromium --user-data-dir=/tmp/click-to-dial --load-extension=./build/chrome --no-first-run`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the [email protected] test_chromium script.

Other info

There is a package called chrome-launcher to e.g. detect various chrome/chromium installations in PATH. It also supports chromium on linux.

Building unsigned firefox xpi file

Version

master

File / Feature

Building unsigned firefox xpi

Expected behaviour

gulp build --target firefox should build an unsigned xpi (as a by-product). Unsigned xpi's can be used for testing over and over again without having the need to bump the version every build (because signing happens at AMO and the version number is then registered).

Actual behaviour

gulp build --target firefox only creates a build directory

Stacktrace / Error message

-

Other info

Creating an xpi is as easy as executing web-ext build. In Firefox developer editions and/or in versions when you can toggle (in about:config) you allow installing unsigned add-ons by setting xpinstall.signatures.required to false you can install xpi's from about:addons > install from file.

Since this exact xpi can then be uploaded to AMO and released as a new version, this is as close as you can test with a pre release artifact.

Popup doesn't close in Firefox when going to popout/wiki/user settings.

Version

master

File / Feature

Opening new tabs from the icons in the top right

Expected behaviour

For the popup to close after clicking one of the icons, like in Chrome.

Actual behaviour

Popup stays open after clicking an icon that opens a new tab

Stacktrace / Error message

-

Other info

Tested in Firefox 54

The build process for firefox should not include the source files/folder

The build process for firefox should not include the source files/folder; this is what happens if you compare xpi versus building from source:

$     diff -r /tmp/click-to-dial-2.0.zip-unzipped/ /tmp/click-to-dial-2.0.zip-src/
Only in /tmp/click-to-dial-2.0.zip-src/: build
Only in /tmp/click-to-dial-2.0.zip-src/: CHANGELOG.md
Only in /tmp/click-to-dial-2.0.zip-src/: CONTRIBUTING.md
Only in /tmp/click-to-dial-2.0.zip-src/: CONTRIBUTORS.md
Only in /tmp/click-to-dial-2.0.zip-unzipped/: css
Only in /tmp/click-to-dial-2.0.zip-src/: docs
Only in /tmp/click-to-dial-2.0.zip-src/: .eslintrc
Only in /tmp/click-to-dial-2.0.zip-unzipped/: fonts
Only in /tmp/click-to-dial-2.0.zip-src/: .github
Only in /tmp/click-to-dial-2.0.zip-src/: .gitignore
Only in /tmp/click-to-dial-2.0.zip-src/: gulpfile.js
Only in /tmp/click-to-dial-2.0.zip-unzipped/: img
Only in /tmp/click-to-dial-2.0.zip-unzipped/: js
Only in /tmp/click-to-dial-2.0.zip-src/: .jsdoc.json
Only in /tmp/click-to-dial-2.0.zip-unzipped/: _locales
Only in /tmp/click-to-dial-2.0.zip-unzipped/: manifest.json
Only in /tmp/click-to-dial-2.0.zip-src/: node_modules
Only in /tmp/click-to-dial-2.0.zip-src/: package.json
Only in /tmp/click-to-dial-2.0.zip-src/: package-lock.json
Only in /tmp/click-to-dial-2.0.zip-src/: .sass-lint.yml
Only in /tmp/click-to-dial-2.0.zip-src/: src
Only in /tmp/click-to-dial-2.0.zip-unzipped/: test.html
Only in /tmp/click-to-dial-2.0.zip-unzipped/: webext_callstatus.html
Only in /tmp/click-to-dial-2.0.zip-unzipped/: webext_options.html
Only in /tmp/click-to-dial-2.0.zip-unzipped/: webext_popup.html

This means this plugin will be rejected since there should be no differences for firefox.

isOpen localstorage status is not updated after reopening the popup.

Version

2.0.0

File / Feature

Not sure, this should probably be updated in the panels module

Expected behaviour

The localstorage status should be updated accordingly, or the popup widgets should restore their state.

Actual behaviour

The isOpen property on widgets(localstorage) remains open in case a user has a widget open, closes the popup and reopens the popup again.

Stacktrace / Error message

None (check localstorage)

Other info

First check with product owner what should happen with the expected behaviour...

Plugin description is gone

Version

master

File / Feature

Plugin description

Expected behaviour

There should be a descriptive plugin description instead of the "name" of the plugin.

Actual behaviour

The name of the plugin is used as the description and it is also untranslated in the nl locale.

Stacktrace / Error message

-

Other info

The current description is:

_locales/en

    "extDescription": {
        "message": "Chrome extension for Click-to-Dial, status updates and queue monitoring",
        "description": "Extension description."
    },

_locales/nl

    "extDescription": {
        "message": "Chrome plugin voor klik&bel, statusupdate en wachtrij monitoring",
        "description": "Plugin omschrijving."
    },

Block calling another while session is active

Version

2.0.13

Expected behaviour

If you doubleclick (or tripple click) a phonenumber the popups start overlapping. I would disable a second click/popup/callstart action as long as the popup is open.

Actual behaviour

The popup will even block the entire session and you won't be able to click it away (via X of click beside screen) when you open 5 popups for example.

Popout design

Version

master

File / Feature

Popout

Expected behaviour

Existing plugin doesn't have a link to pop out in the popout (in the top right corner).

Actual behaviour

The new plugin doesn't have a link to pop out in the popout (in the top right corner).

Stacktrace / Error message

-

Other info

-

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.