<span style="display:block;height:15px!important"></span>
<p align="center"><img src="https://git.doublebastion.com/roundpin/raw/develop/images/login-logo.png" alt="Roundpin" width="380px" height="108px"/></p>

<span style="display:block;height:20px!important"></span>

**A fully featured browser phone that connects to an Asterisk server and implements audio/video calls, text messaging and video conferencing by using SIP over WebSocket and WebRTC.**

Roundpin allows **video, audio and text conversations** with other extensions configured on the same Asterisk server. It can be also used to make and receive **audio phone calls**
to/from any phone number in the world, if you connect your Asterisk server to a SIP provider, such as Telnyx or Localphone. If you use a SIP account with an attached real phone number,
you can have very cheap phone calls (prices per minute starting from $0.005 in the US and $1/phone number/month). In the installation instructions mentioned below, we describe in detail 
how to configure Asterisk and how to connect it to a Telnyx or Localphone account. We have no affiliation with the two providers. Any SIP provider that allows external Asterisk servers 
to connect to their servers, should work.

Roundpin also implements **video conferencing**. Users can initiate video conferences with other extensions configured in Asterisk but also with external users who don’t have Roundpin
accounts. To participate in a conference, an external user only needs a browser and the link to the conference (supposing they use a device with a video camera).

Roundpin logs recent phone calls and their duration, it allows pausing/muting and transferring phone calls as well as in-browser call recording for one-to-one audio/video calls.
The underlying Asterisk server can be used to implement **advanced PBX features**, such as **Interactive Voice Response (IVR or voice menu), voicemail, queue management, music on hold,
number blacklisting, call recording**, etc., as we describe in detail in the documentation mentioned below. All these can be done independently of your SIP provider. You only need an 
account and a real phone number from the SIP provider, to be able to interface with the Public Switched Telephone Network (PSTN), all the rest is done on your own server, including the 
IVR, the voicemail, the call recording, etc. This allows you to have total control over your communications and more privacy than if you were using the SIP provider’s voicemail, call 
recording, etc.

This application includes large parts of “Browser Phone”, developed by Conrad de Wet and licensed under GNU AGPL v3.0 and of “Cyber Mega Phone 2k” developed by Digium, Inc. and
licensed under the MIT License. We thank them for their amazing work and for licensing their software in a way that promotes user freedom and collaboration. To interact with WebRTC,
Roundpin uses two versatile JavaScript libraries: SIP.js (v0.11.6) for regular calls, and JsSIP (v3.7.0) for video conferences. All due copyright notices are listed in the
LICENSE.txt file located in the root directory.

<span style="display:block;height:20px!important"></span>

## Main Features
<span style="display:block;height:10px!important"></span>

- SIP audio calling
- SIP video calling
- SIP video conferences
- Call transfer
- Call statistics
- In-browser call recording for one-to-one audio/video calls
- Screen sharing during video calls and video conferences
- Link-based access to video conferences (for external users)
- SIP messaging with double encryption (end-to-end AES + RSA encryption, in addition to TLS)
- File transfer during text chat
- Roundcube email integration
- Responsive, mobile friendly interface

<span style="display:block;height:20px!important"></span>

Audio conversation
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_audio_conversation.png)
<span style="display:block;height:40px!important"></span>
Video conversation
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_video_conversation.png)
<span style="display:block;height:40px!important"></span>
Text conversation
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_text_conversations.png)
<span style="display:block;height:40px!important"></span>
Incoming call and onscreen notifications
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_incoming_call_and_notifications.png)
<span style="display:block;height:40px!important"></span>
Call transfer
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_call_transfer.png)
<span style="display:block;height:40px!important"></span>
User menu
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_logged_in_user_menu.png)
<span style="display:block;height:40px!important"></span>
Main dialpad
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_main_dialpad.png)
<span style="display:block;height:40px!important"></span>
Settings
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_settings.png)
<span style="display:block;height:40px!important"></span>
Edit contact
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_edit_contact.png)
<span style="display:block;height:40px!important"></span>
Check emails
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_checking_emails.png)
<span style="display:block;height:40px!important"></span>
Compose email
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_composing_email.png)
<span style="display:block;height:40px!important"></span>
Video conference
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_video_conference.png)
<span style="display:block;height:40px!important"></span>
Video conference with buttons
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_video_conference_with_buttons.png)
<span style="display:block;height:40px!important"></span>
Call graphs
<span style="display:block;height:10px!important"></span>
![Image of Roundpin Interface](https://git.doublebastion.com/roundpin/raw/develop/images/roundpin_call_graphs.png)
<span style="display:block;height:40px!important"></span>


## Browsers
<span style="display:block;height:10px!important"></span>

Firefox is recommended. It also works with the other major browsers.

<span style="display:block;height:20px!important"></span>

## Programming Languages
<span style="display:block;height:10px!important"></span>

Roundpin only uses PHP, SQL, jQuery, pure JavaScript, CSS and HTML. This means it's robust, efficient, light-weight and easy to maintain and debug.

<span style="display:block;height:20px!important"></span>

## Minimum Requirements
<span style="display:block;height:10px!important"></span>

- **VPS or dedicated server** with **1 CPU core and 1 GB RAM**. The size on disk is about 24 MB. It can work on machines with much lower specifications, but if you want to host video
conferences with many participants, it’s recommended to have at least 1 GB RAM. Some of the best quality VPSs at the lowest prices are offered by Linode (Double Bastion 
doesn’t have any affiliation with Linode).

- **The LEMP stack**. It may work with Apache but it has been exclusively tested with Nginx. We recommend Nginx and all the installation instructions mentioned below are for Nginx.
Recommended operating system: Debian 10 or newer.

- **Asterisk** v18.0.0 (with **chan_pjsip** enabled) and **Coturn** v4.5.1.1 or newer.

Note: Roundpin is a component of <a rel="noreferrer noopener" href="https://www.doublebastion.com" target="_blank">RED SCARF Suite</a>. You can install and use Roundpin alone, but if
you want to install all the applications that make up RED SCARF Suite, you will need a VPS or dedicated server with higher specifications: 1 CPU core, 2 GB RAM
and 40 GB storage.

<span style="display:block;height:20px!important"></span>

## Installation
<span style="display:block;height:10px!important"></span>

Complete and detailed instructions on how to install and use Roundpin can be found <a rel="noreferrer noopener" href="https://www.doublebastion.com/install-roundpin/" target="_blank">here</a>. 
That documentation also contains the links to the instructions for installing Asterisk and Coturn (Coturn can be used as a STUN server to assist Roundpin in connecting users who are 
behind routers).

Please note that the installation instructions for Asterisk presents in detail how to implement 4 classes of dial plans, but you should choose only the one that is the closest to your 
situation.

Asterisk version 18.0.0 is coded such as by default it allows a maximum of 15 video conference participants. However, this number can be increased to around 100 by changing the code 
before compiling, as we explain in detail in the above mentioned documentation.

If you want to integrate Roundcube with Roundpin, to be able to open a new email window with one click, to easily send emails to your Roundpin contacts, and to be able to check incoming 
emails from inside Roundpin, you will need to install a complete mail server by following the detailed instructions presented 
<a rel="noreferrer noopener" href="https://www.doublebastion.com/install-the-mail-server/" target="_blank">here</a>.

<span style="display:block;height:20px!important"></span>

## Contribute
<span style="display:block;height:10px!important"></span>

This is the official repository of the Roundpin project. The <a rel="noreferrer noopener" href="https://github.com/CoverTowerSuperAdmin/roundpin" target="_blank">GitHub Roundpin 
repository</a> is just a pointer to this repository. We don’t use GitHub for developing Roundpin because GitHub is owned by one of the companies that proved their disrespect for 
digital freedom over the years and because centralized services create autonomy and privacy issues, in spite of all the benefits.

If you want to contribute code to this project, please submit <a rel="noreferrer noopener" href="https://git.doublebastion.com/roundpin/pullrequests/contrib" target="_blank">this form</a>,
mentioning your intended changes. We'll send you the credentials needed to push code to the "contrib" branch of this repository. After we review the changes we can include them in the
project. We'll list the names of all the contributors, in the Contributors.txt file located in the root directory.

Please post any bugs that are not security related, or feature requests, on the <a rel="noreferrer noopener" href="https://git.doublebastion.com/roundpin/issues/develop" target="_blank">
issue tracker</a>. If you notice bugs related to security, don’t post them on the issue tracker; instead, send them to manager [at] doublebastion [dot] com .

<span style="display:block;height:20px!important"></span>

## License
<span style="display:block;height:10px!important"></span>

Roundpin as a whole is licensed under the GNU Affero General Public License, version 3 or any later version (See the file COPYING.txt located in the root directory, for the text of the
license). If you use Roundpin or distribute it in modified or unmodified form, you will need to comply with the terms of the GNU Affero General Public License, either version 3 of the
license or (at your option) any later version.

Roundpin includes parts from other programs/libraries licensed under different free software licenses. We listed these programs/libraries and their respective copyright notices in
the LICENSE.txt file located in the root directory.
