GithubHelp home page GithubHelp logo

amitiyer / fusionpbx-webrtc Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 7.0 3.02 MB

WebRTC Dialer for FusionPBX

License: GNU General Public License v3.0

HTML 0.71% PHP 4.74% CSS 4.87% JavaScript 78.79% Less 5.41% SCSS 5.48%
asterisk browser-phone communication dialer freeswitch fusionpbx telephony voip webrtc web-sockets

fusionpbx-webrtc's Introduction

Fusionpbx-WEBRTC

WebRTC Dialer for FusionPBX. A fully featured browser based WebRTC SIP phone for FusionPBX.

*NOTE this is a custom made WebRTC client for Fusionpbx and i have used Browser-Phone which is a repo of Mr. Conrad de Wet. I have just made changes on the Browser-Phone code and created few php files to make it work with FusionPBX.

Description

This web application for FusionPBX. When installed you won't have to enter the extension username / password or do any other configuration on FusionPBX for this to work. You just have to assign a user to the extension and then open the webphone. The application will automatically fetch your domain / username / password and callerID and it will register automatically.

Features

  • SIP Audio Calling
  • SIP Video Calling
  • XMPP Messaging
  • Call Transfer (Both Blind & Attended)
  • 3rd Party Conference Call
  • Call Detail Records
  • Call Recording (Audio & Video)
  • Screen Share during Video Call
  • Scratchpad Share during Video Call
  • Video/Audio File Share during Video Call
  • SIP (text/plain) Messaging
  • SIP Message Accept Notification (not delivery)
  • Buddy (Contact) Management
  • Useful debug messages sent to console.
  • Works on: Chrome (all features work), Edge (same as Chrome), Opera (same as Chrome), Firefox (Most features work), Safari (Most feature work)
  • Asterisk SFU - Including talker notification and Caller ID
  • Dark Mode & Light Mode - System Setting Detects

XMPP Features v0.2.x

  • User Login & Auth (Use SIP credentials)
  • Buddy List (Roster) Saved on Server
  • Buddy vCard
  • Buddy Picture Upload
  • Message Typing Indication
  • Message Delivery & Read Notification
  • Offline Message History (If supported by server)
  • Tested to work with Openfire

WebRTC

Requirements.

  1. You need to have a Valid SSL Certificate. You can get one from Certbot which will be free for 3 months, or you can get your own SSL certificate and install it on the FusionPBX server.

  2. You need to have a valid Domain and you need to make sure the Domain's DNS A record points to the FusionPBX server.

  3. Required Freeswitch Version 1.8+

  4. Optional : Openfire XMPP Server.

Installation Guide.

cd /usr/src/
git clone https://github.com/amitiyer/Fusionpbx-WEBRTC.git
cd Fusionpbx-WEBRTC
cp -R Browser-Phone /var/www/fusionpbx/
cp -R core/phone  /var/www/fusionpbx/core/

Certificates.

As mentioned above, you can get a certbot certificate or have your own. Now you need to copy the certificates to freeswitch directory.

Copy your certificates like below.

cat fullchain.pem > /etc/freeswitch/tls/all.pem
cat privkey.pem >> /etc/freeswitch/tls/all.pem

Then restart Freeswitch.

service freeswitch restart

Configuring FusionPBX.

Login to your FusionPBX Admin go to Advance -> SIP Profiles and edit Internal, Make sure the value for ws-binding is :5066 and wss-binding is :7443 and both are Enabled.

Internal-Profile

Confirm if your freeswitch has =ws and =wss on your internal profile. Profile-Status

Restart freeswitch if necessary.

Create a user from Accounts -> Users. Create or edit the extension on which you want to enable WebRTC and assign the user on the extension. User-Assign

Adding Phone on the Menu

Edit the default menu from Advance -> Menu Manager. Add a new menu. You can keep the title whatever you want. Link : /core/phone/index.php Target : Internal Icon : anything you want. Parent Menu Blank Groups : superadmin,admin,users,agents Protected : True Order : 101

Menu-Item

Once done. log out and login with the user on which you have enabled the WebRTC and you will get a phone option on FusionPBX menu. Click on it and you will be able to make calls.

fusionpbx-webrtc's People

Contributors

amitiyer avatar wouam31200 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fusionpbx-webrtc's Issues

Contact Not Subscriber Presense

Hello amitiyer,
I make a tests with your webrtc and work very good.

But i undestand that when i created a contact and select subscriver presense and add ins internal number of the other extension, for me when this other extension make or received calls, would change for me, but for not only is unknow and the icon only grey.

I understand that has other works, but i use a long time fusionPBX and i use other WEBRTC Saraphone (), it's good but your project is better,

I don't know it's help you to this issue or not, but if you see this project, has other interesing caracteristcs, example the administrator create a device and on this device create your BLFs (Contacts) for user only use this webrtc softphone not necessary create contacts.

See this attacheds
1 Your Fone that not work presense.
2 Saraphone Example with presense its working
1
2

Clear Browser LocalStorage Info upon logout

Dear,

Think there might be a small issue. I noticed the LocalStorage of the browser still holds the information of the last login extension.

Might need to adjust the script to clear the storages in the use case where a PC is shared and another agents needs to login.

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.