Add screenshots and diagrams for service examples

Add screenshots and diagrams for as many of the service program examples 
as possible.
This commit is contained in:
Steve Lewis KC0EUW 2019-01-25 09:15:11 -07:00 committed by Joe AE6XE
parent b245e330db
commit bbca0c8786
24 changed files with 156 additions and 15 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@ -17,6 +17,11 @@ In addition to the keyboard-to-keyboard chat feature, MeshChat also allows files
MeshChat *Action Scripts* also provide for functional extensions, such as sending messages to an SMS gateway for external distribution. It is also possible for action scripts to periodically save the message database for archive purposes or integration with external tools. For additional information about MeshChat, visit this link: `MeshChat <http://www.trevorsbench.com/meshchat-messaging-for-mesh-networks/>`_
.. image:: _images/meshchat.png
:alt: MeshChat Web Interface
:align: center
Internet Relay Chat
-------------------
@ -24,6 +29,10 @@ Several implementations of `Internet Relay Chat <https://en.wikipedia.org/wiki/I
A wide variety of features and functions are available with these and similar chat programs, including various zones, channel types, and user roles. For additional information about IRC services, visit these links: `IRC Servers <https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_daemons>`_ and `IRC Clients <https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients>`_
.. image:: _images/irc.png
:alt: IRC in KiwiChat Web Interface
:align: center
Jabber/XMPP
-----------
@ -31,11 +40,19 @@ Originally known as Jabber, `XMPP <https://en.wikipedia.org/wiki/XMPP>`_ servers
Two of the most popular XMPP servers are eJabberd and Prosody, but there are many others. For additional information about these services, visit the following links: `eJabberd <https://ejabberd.im/>`_ and `Prosody <https://prosody.im/>`_
.. image:: _images/xmpp.png
:alt: Prosody XMPP Interface
:align: center
Let's Chat
----------
*Let's Chat* is an open source messaging service for small teams. It provides one-to-one communication between `XMPP <https://en.wikipedia.org/wiki/XMPP>`_ users as well as group messaging and @mentions in a variety of chat rooms. Searchable conversation history is available, in addition to text and image pasting, user activity notifications, and file uploads. User self-registration is configurable on the server. For additional information about Let's Chat, visit this link: `Let's Chat <https://github.com/sdelements/lets-chat>`_
.. image:: _images/letschat.png
:alt: Let's Chat Interface
:align: center
Mattermost
----------
@ -43,6 +60,11 @@ The *Mattermost Team Edition* is an open source platform that supports mobile an
Mattermost supports @mentions, and channels are available for organizing conversations which can be topic-based, group-based, or event-based. Notifications indicate user presence and activity. File sharing is provided for PDF and text files, as well as audio, video, and image files. For additional information about Mattermost, visit this link: `Mattermost <https://mattermost.com/>`_
.. image:: _images/mattermost.png
:alt: Mattermost Interface
:align: center
Matrix - Synapse
----------------
@ -50,6 +72,11 @@ Matrix - Synapse
Matrix services can provide one-to-one communication channels as well as group chats in a variety of rooms. User presence and typing notifications are supported, as well as chat history and read receipts. Although the Matrix platform is intended to provide end-to-end encryption, it can be run without cryptographic signing. Matrix can also integrate with :abbr:`IRC (Internet Relay Chat)` services, as well as :abbr:`VoIP (Voice over IP)` and video conferencing solutions via `WebRTC <https://en.wikipedia.org/wiki/WebRTC>`_. For additional information about Matrix-Synapse, visit these links: `Matrix Home <https://matrix.org/blog/home/>`_ and `Synapse <https://github.com/matrix-org/synapse>`_
.. image:: _images/matrix.png
:alt: Matrix Chat Interface
:align: center
Example Chat Service Comparison
-------------------------------

View File

@ -6,7 +6,7 @@ Email Programs
Email operates on a client-server model. Users create or read their messages on some type of client program, although this software could be hosted on a network web server and accessed through a user's web browser rather than requiring a standalone email program to be installed on the client computer. Client programs typically access messages from the email server using either `Internet Message Access Protocol (IMAP) <https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol>`_ or `Post Office Protocol (POP) <https://en.wikipedia.org/wiki/Post_Office_Protocol>`_. Client programs use `Simple Mail Transfer Protocol (SMTP) <https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol>`_ to send messages to email servers, while the servers themselves use SMTP for both sending and receiving.
As with any client-server program, the email server must be reachable on a network segment with adequate bandwidth in order for the clients to exchange messages. If you have a choice, put your email server on one of your largest and most reliable network segments. Refer to this link for a comparison of email `Client Programs <https://en.wikipedia.org/wiki/Comparison_of_email_clients>`_, and visit this link for a comparison of email `Server Programs <https://en.wikipedia.org/wiki/Comparison_of_mail_servers>`_. The following list is not comprehensive or complete but represents a sample of the types of software that may be available for you to use as services on your mesh network. Only programs with open source licenses were included in this list, although commercial email software can also be used.
As with any client-server program, the email server must be reachable on a network segment with adequate bandwidth in order for the clients to exchange messages. If you have a choice, put your email server on one of your largest and most reliable network segments. Refer to this link for a comparison of email `Client Programs <https://en.wikipedia.org/wiki/Comparison_of_email_clients>`_, and visit this link for a comparison of email `Server Programs <https://en.wikipedia.org/wiki/Comparison_of_mail_servers>`_. The following list is not comprehensive or complete but represents a sample of the types of software that may be available for you to use as services on your mesh network. With one exception, only programs with open source licenses were included in this list, although proprietary email software can also be used.
Citadel/UX
----------
@ -15,10 +15,14 @@ Not only does Citadel provide email, but it is also a full-featured *groupware*
Since a variety of features are bundled into a single application suite, Citadel is a less complicated and more integrated way to implement several network services at once by installing a single package capable of running on a lightweight `Raspberry Pi <https://en.wikipedia.org/wiki/Raspberry_Pi>`_ computer if necessary. Citadel's email services can be accessed using its browser-based webmail interface or from a separate email client program on a remote computer. For additional information about Citadel, visit this link: `Citadel <https://en.wikipedia.org/wiki/Citadel/UX>`_
.. image:: _images/citadel.png
:alt: Citadel Web Interface
:align: center
Open Source Email Server
------------------------
In order to implement an open source email server you will probably need to install several individual software packages, each of which will process one or more of the required email protocols. This is slightly more complicated than implementing a single groupware package such as the *Citadel* program described in the previous section. Protocols and example packages are described in the following lists.
In order to implement an open source email server you will need to install several individual software packages, each of which will process one or more of the required email protocols. This is slightly more complicated than implementing a single groupware package such as the *Citadel* program described in the previous section. Protocols and example packages are described in the following lists.
**SMTP**
In order to implement an email server you will need to select a software package to handle the Simple Mail Transfer Protocol. You can select one of the example open source packages from the list below, or you can implement another SMTP agent of your choice.
@ -32,13 +36,22 @@ In order to implement an open source email server you will probably need to inst
* `Dovecot <https://en.wikipedia.org/wiki/Dovecot_(software)>`_ is one of the most popular IMAP and POP3 servers for open source email systems, being found on more than 2/3 of the email servers across the Internet.
You will need to have detailed knowledge and skills when building your own open source email server, with the advantage of having complete control over everything on the system. There is some administrative overhead for creating and maintaining all user email accounts, as well as handling other management tasks on your system. Using these open source software packages, it is possible to build a very robust email server that is capable of running on a small portable computer like a `Raspberry Pi <https://en.wikipedia.org/wiki/Raspberry_Pi>`_.
You will need to have detailed knowledge and skills when building your own open source email server, with the advantage of having complete control over everything on the system. There is some administrative overhead for creating and maintaining all user email accounts as well as handling other management tasks on your system. Using these open source software packages, it is possible to build a very robust email server that is capable of running on a small portable computer like a `Raspberry Pi <https://en.wikipedia.org/wiki/Raspberry_Pi>`_.
.. image:: _images/thunderbird.png
:alt: Thunderbird IMAP Client
:align: center
Using WinLink to Send Email
---------------------------
Although it is not typically used as a TCP/IP network application, many operators are already familiar with `WinLink 2000 <https://en.wikipedia.org/wiki/Winlink>`_ for sending message traffic between WinLink computers across amateur radio frequencies. It is possible to configure *RMS Express* and Telnet Post Office or Telnet P2P for sending email with attachments across a mesh network. You will need a stable Microsoft Windows computer with plenty of memory to run this system (8GB recommended). Refer to the information link below for details about the specific network port settings that will be required. The maximum attachment size is currently 5MB per message as compared to the 100KB limitation on HF and Packet RMS stations. For additional information, please visit the AREDN |trade| forum category on Winlink located here: `Winlink Forum <https://www.arednmesh.org/forums/winlink>`_
.. image:: _images/winlink.png
:alt: Winlink Interface
:align: center
Keeping Multiple Servers in Sync
--------------------------------
@ -53,6 +66,10 @@ For mission-critical services on high speed data networks, *Disaster Recovery* d
**Automated Failover Design**
`High Availability <https://en.wikipedia.org/wiki/High-availability_cluster>`_ technology allows two or more sets of computing resources to send `heartbeat <https://en.wikipedia.org/wiki/Heartbeat_(computing)>`_ signals for detecting whether their services are available across the network. Several types of open source and commercial clustering packages are available, which provide varying degrees of complexity and recovery capabilities. Suffice it to say that many options are available for ensuring the availability of mission-critical services on your network. Feel free to research, investigate, and test several of these options if you have a pressing need for highly available mesh services.
.. image:: _images/server-sync.png
:alt: Server Sync Diagram
:align: center
As a general rule for mesh networks, simpler is better. The more complicated and automated you make your service design, the more network and computing resources will be required to operate the system. It is always best to conserve mesh networking resources wherever possible.
@ -62,13 +79,13 @@ Example Email Service Comparison
Platform abbreviations:
win=MS Windows, mac=Apple, lin=Linux, rpi=Raspberry Pi
========== ================== ============ =============== ======
========== ================== ============ ================= ======
Program Features Network Load Platform Effort
========== ================== ============ =============== ======
========== ================== ============ ================= ======
Citadel groupware, webmail small lin/mac/rpi easy
Open Email client-server medium lin/mac/rpi expert
WinLink email, attachments small windows medium
========== ================== ============ =============== ======
Open Email client-server small lin/mac/rpi expert
WinLink email, attachments small win (proprietary) medium
========== ================== ============ ================= ======
.. |trade| unicode:: U+02122 .. TRADE MARK SIGN
:ltrim:

View File

@ -13,7 +13,11 @@ FTP Services
`File Transfer Protocol (FTP) <https://en.wikipedia.org/wiki/File_Transfer_Protocol>`_ servers can be configured as file repositories from which users can copy digital content using FTP client programs. Some of the more common FTP server packages include `FileZilla Server <https://en.wikipedia.org/wiki/FileZilla#FileZilla_Server>`_, `ProFTPD <https://en.wikipedia.org/wiki/ProFTPD>`_, `Pure-FTPd <https://en.wikipedia.org/wiki/Pure-FTPd>`_, and `vsftpd <https://en.wikipedia.org/wiki/Vsftpd>`_ (which is the default FTP server in many Linux distributions).
All of the most common web browsers allow content to be downloaded using FTP, although they may not support all protocol extensions. However, there are many `FTP client programs <https://en.wikipedia.org/wiki/Comparison_of_FTP_client_software>`_ with complete FTP support. FTP is a tried-and-true method for retrieving files from a central repository.
All of the most common web browsers allow content to be downloaded using FTP as shown below, although they may not support all protocol extensions. However, there are many `FTP client programs <https://en.wikipedia.org/wiki/Comparison_of_FTP_client_software>`_ with complete FTP support. FTP is a tried-and-true method for retrieving files from a central repository.
.. image:: _images/ftp.png
:alt: FTP Web Interface
:align: center
Web Services
------------
@ -24,15 +28,23 @@ There are also many web service packages that provide a robust file sharing inte
Users login to NextCloud to see available content, and file sharing permissions can be set on a user or group basis. Files and folders can be uploaded, downloaded, moved, renamed, deleted, and previewed (depending on file type). Simple file version control is provided through auto-backup, and the *Details* sidebar lists past versions available for rollback. These and other similar software packages can provide a full-featured file sharing service when hosted on a web server.
.. image:: _images/nextcloud.png
:alt: NextCloud Web Interface
:align: center
Collaborative Computing
-----------------------
Collaborative computing enables people to collaborate on documents together in real time. Multiple users dispersed across a wide geographic area can be working simultaneously to create or modify a set of documents that are available to others over the network. With this type of collaborative model, documents no longer need be viewed as static but can become truly living projects.
Collaborative computing enables people to collaborate on documents in real time. Multiple users dispersed across a wide geographic area can be working simultaneously to create or modify a set of documents that are available to others over the network. With this type of collaborative model, documents no longer need be viewed as static but can become truly living projects.
One example package that facilitates collaborative document creation is `Etherpad Lite <https://en.wikipedia.org/wiki/Etherpad>`_. Users access the Etherpad server through a web browser, so no client software is required on the users' computers. Anyone who connects to the service can create a new document or contribute to an existing document. Active users are displayed and have the ability to chat with each other in the messaging area. Changes to a document are periodically auto-saved, but users can force a checkpoint to capture the current state of a document. The "time slider" control allows users to view document revisions at any point in time throughout its history. Documents can be downloaded in several formats (text, HTML, Open Document, Microsoft Word, or PDF).
One example package that facilitates collaborative document creation is `Etherpad Lite <https://en.wikipedia.org/wiki/Etherpad>`_. Users access the Etherpad server through a web browser, so no client software is required on the users' computers. Anyone who connects to the service can create a new document or contribute to an existing document. Active users are displayed and have the ability to chat with each other in the messaging area. Changes to a document are periodically auto-saved, but users can force a checkpoint to capture the current state of a document. The "time slider" control allows users to view document revisions at any point in time throughout its history. Documents can also be downloaded in several formats (text, HTML, Open Document, Microsoft Word, or PDF).
`Collaborative document sharing <https://en.wikipedia.org/wiki/Document_collaboration>`_ could be very helpful for a number of EmComm use cases, such as maintaining an accurate picture of deployed resources at various locations during an incident or event. Document version tracking makes it possible to scroll back and forth in history to see the status of deployed resources at any given time, as well as to capture information and save it for wider distribution.
.. image:: _images/etherpad.png
:alt: Etherpad Web Interface
:align: center
.. |trade| unicode:: U+02122 .. TRADE MARK SIGN
:ltrim:

View File

@ -2,9 +2,94 @@
VoIP Audio/Video Conferencing
=============================
.. important:: This section of the documentation is currently a work in progress.
The programs described in the previous sections can facilitate the sharing of detailed information across your mesh network. Some of them attempt to emulate a conversation, but nothing can replace an actual interactive discussion. Today people are accustomed to voice conversations, and since much of a message is communicated by non-verbal queues, having an audio-visual conversation can be even more effective. However, these communication advantages come at a cost. Multimedia programs will typically have a much greater impact on network performance than the programs mentioned previously.
The software described in this section can help you to provision services that enable both voice and video conferencing on your *meshnet*. The phrase `Voice over IP (VoIP) <https://en.wikipedia.org/wiki/Voice_over_IP>`_ encompasses a collection of technologies capable of encoding and delivering realtime multimedia content across a digital network. When you have an established need for this type of communication, and if your mesh network is capable of supporting it, there are many reliable options for implementing VoIP and video conferencing.
The following list is not comprehensive or complete but represents a sample of the types of software that may be available for services on your mesh network. With one exception, programs having open source licenses were included in this list, although software with proprietary licenses can also be used. Dozens of VoIP programs have been available over the years, but the list of current open source projects in active development has dwindled over the past decade. Refer to this link for a comparison of `VoIP client and server software <https://en.wikipedia.org/wiki/Comparison_of_VoIP_software>`_.
VoIP Server
-----------
**Asterisk Server**
`Asterisk <https://en.wikipedia.org/wiki/Asterisk_(PBX)>`_ is one of the original *software* `Private Branch eXchange (PBX) <https://en.wikipedia.org/wiki/IP_PBX>`_ servers. It was first designed to run on Linux computers, but it is now available for MacOS and OpenWRT routers. It has been used to build large-scale telephony systems so it has many of the features of commercial and proprietary PBX systems, including voice mail, conference calling, interactive voice response (IVR) menus, and automatic call distribution.
Dozens of full-length books have been written about Asterisk, so it is widely documented. It also serves as the underlying communication engine for several other software PBX packages. Asterisk is extremely robust tried-and-true IP-PBX software, but you will need specific knowledge and skills to implement it.
.. image:: _images/asterisk.png
:alt: Asterisk Diagram
:align: center
**FreePBX Server**
`FreePBX <https://en.wikipedia.org/wiki/FreePBX>`_ is a web-based graphical user interface (GUI) for managing Asterisk. However, it is most commonly deployed as part of the integrated `FreePBX Distro <https://en.wikipedia.org/wiki/FreePBX_Distro>`_, which installs a complete Linux operating system with Asterisk, FreePBX, and software dependencies included.
All of the extensive features of Asterisk are available along with the benefit of having the FreePBX web interface to facilitate Asterisk management, making it much easier for users who are not telephony experts. Many mesh network operators who deploy VoIP have taken advantage of the *FreePBX Distro* when implementing their PBX services.
.. image:: _images/freepbx.png
:alt: FreePBX Diagram
:align: center
VoIP Endpoints
--------------
Once you have a VoIP PBX provisioned on your mesh network, you will need VoIP endpoints which can communicate through the server. Specialized `VoIP phone <https://en.wikipedia.org/wiki/VoIP_phone>`_ hardware is available from several manufacturers which can provide communication endpoints on your network. It is also possible to use legacy analog phone hardware connected to the network using `Analog Telephone Adapters (ATA) <https://en.wikipedia.org/wiki/Analog_telephone_adapter>`_. In addition to these options, there are pure software phones (`softphones <https://en.wikipedia.org/wiki/Softphone>`_) that are supported on a variety of devices, such as the Linphone program described below.
.. image:: _images/linphone.png
:alt: Linphone Softphone
:align: right
**Linphone Softphone**
`Linphone <https://en.wikipedia.org/wiki/Linphone>`_ is a software phone that is supported on Windows, Linux, MacOS, Raspberry Pi, iPhone, and Android. It can be used to place voice and video direct calls as well as calls through a VoIP PBX like those mentioned above. Users can transfer calls to other numbers, send chat messages, share pictures or files, and merge calls into a group conference. The softphone has the ability to manage contact lists, and call history is available for future reference.
**Mumble**
`Mumble <https://en.wikipedia.org/wiki/Mumble_(software)>`_ is a VoIP package that is available on Linux, MacOS, and Windows systems which support the `Qt <https://en.wikipedia.org/wiki/Qt_(software)>`_ platform. Mobile apps are also available, such as *Mumblefy* for iPhone and *Plumble* for Android.
Hosting Mumble locally requires downloading the *Murmur* server, which is included as an option in the Mumble installer. The primary users of Mumble are Internet video gamers who want to communicate with each other during game play. However, it can also be used as a non-gaming voice communication service which does not require that an IP-PBX server exist on the network.
.. image:: _images/mumble.png
:alt: Mumble Group Conference
:align: center
Video Conferencing Software
---------------------------
**FreeSWITCH Server**
`FreeSWITCH <https://en.wikipedia.org/wiki/FreeSWITCH>`_ is a recent communication platform that can be used to build voice PBX systems with voice response menus, video conferencing with chat messaging and screen sharing capabilities, and full `WebRTC <https://en.wikipedia.org/wiki/WebRTC>`_ support. Its modular design makes it possible to install only what is required to meet your communication needs. Currently the FreeSWITCH package can be installed on Linux and Windows servers, and it can be compiled on MacOS computers if required.
FreeSWITCH provides robust voice and video communication, voicemail, interactive voice response (IVR) menus, user directories, call accounting, screen sharing, chat messaging, call recording, hold music, and many other features that can be implemented as required. It is an extremely flexible communication platform, but you will need specific knowledge and skills in order to install, configure, and manage it as a service.
.. image:: _images/freeswitch.png
:alt: FreeSWITCH Video Conference
:align: center
**TeamTalk**
`TeamTalk <https://en.wikipedia.org/wiki/TeamTalk>`_ is an audio-visual conferencing system which enables people to communicate and share information across the network. It is often classified as *freeware*, but the TeamTalk server is proprietary and its source code is not publicly available. During a conference users talk through their computer microphone, see others via their webcams, create instant messages, share files, and show desktop applications. The TeamTalk software package bundles the client and server programs, so any computer may play the role of client or server.
Voice and video conversations happen in channels or rooms, and a single server can host multiple rooms. While participating in a channel, users can write text messages in the *Chat* tab, view `AV <https://en.wikipedia.org/wiki/Audiovisual>`_ webcam streams in the *Video* tab, see shared applications in the *Desktops* tab, and download files from the *Files* tab. The server owner can specify a wide range of access permissions for each available room. TeamTalk is currently supported on Windows, Linux, MacOS, and Raspberry Pi computers.
.. image:: _images/teamtalk.png
:alt: TeamTalk Video Conference
:align: center
Example VoIP Service Comparison
-------------------------------
Platform abbreviations:
win=MS Windows, mac=Apple, lin=Linux, rpi=Raspberry Pi
========== ================== ============ ================== ======
Program Features Network Load Platform Effort
========== ================== ============ ================== ======
Asterisk extensive medium lin/mac/rpi expert
FreePBX web management medium lin/mac/rpi medium
Linphone client softphone small win/lin/mac/mobile easy
Mumble voice + chat medium win/lin/mac medium
FreeSWITCH PBX + video medium-large win/lin/mac/rpi expert
TeamTalk video conferencing large win/lin/mac/rpi easy
========== ================== ============ ================== ======
.. |trade| unicode:: U+02122 .. TRADE MARK SIGN

View File

@ -9,7 +9,7 @@ This documentation set consists of several sections which are shown in the navig
* The **Getting Started Guide** walks through the process of configuring an AREDN |trade| radio node to be part of a mesh network.
* The **Network Design Guide** provides background information and tips for planning and deploying a robust mesh network.
* The **Applications and Services Guide** discusses the types of programs or services that can be used across a mesh network. *NOTE: This section is incomplete while in progress.*
* The **Applications and Services Guide** discusses the types of programs or services that can be used across a mesh network.
* The **How-to Guides** provide tips and techniques for various tasks.
* Finally, the **Appendix** contains supplementary information.