Skip to content

Commit

Permalink
Add screenshots and diagrams for service examples
Browse files Browse the repository at this point in the history
Add screenshots and diagrams for as many of the service program examples 
as possible.
  • Loading branch information
Steve Lewis KC0EUW authored and ae6xe committed Jan 29, 2019
1 parent b245e33 commit bbca0c8
Show file tree
Hide file tree
Showing 24 changed files with 156 additions and 15 deletions.
Binary file added arednServicesGuide/_images/asterisk.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/citadel.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/etherpad.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/freepbx.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/freeswitch.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/ftp.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/irc.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/letschat.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/linphone.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/matrix.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/mattermost.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/meshchat.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/mumble.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/nextcloud.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/server-sync.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/teamtalk.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/thunderbird.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/winlink.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added arednServicesGuide/_images/xmpp.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions arednServicesGuide/chat_programs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,39 +17,66 @@ 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
-------------------

Several implementations of `Internet Relay Chat <https://en.wikipedia.org/wiki/IRCd>`_ are available, either as open source software or in proprietary versions. The Internet Relay Chat Daemon (IRCd) is a server program that listens for connections from IRC client programs and brokers the communication between the connected clients. With this client-server architecture, the IRC server must be available on a network link with sufficient bandwidth in order for the clients to function.

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
-----------

Originally known as Jabber, `XMPP <https://en.wikipedia.org/wiki/XMPP>`_ servers have been around for a long time but are fully compliant with modern messaging standards thanks to a large community of developers worldwide. These servers provide one-to-one messaging as well as group chat sessions. User lists have activity and presence indicators, and chat history can be archived for later use. There are dozens of feature modules available for XMPP servers which can extend the functionality as needed.

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
----------

The *Mattermost Team Edition* is an open source platform that supports mobile and desktop messaging apps. It provides one-to-one and group messaging, file sharing, and message history with search capabilities. It is often described as an open source alternative to the commercial *Slack* communication tool.

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
----------------

*Synapse* is the "homeserver" implementation of the *Matrix* communication platform. As with a traditional client-server architecture, every user runs a Matrix client that connects to a Synapse server which stores the personal chat history and user account information. However, these servers communicate with each other on the network, which creates a distributed content architecture that minimizes single points of failure.

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
-------------------------------

Expand Down
37 changes: 27 additions & 10 deletions arednServicesGuide/email_programs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
----------
Expand All @@ -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.
Expand All @@ -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
--------------------------------
Expand All @@ -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.


Expand All @@ -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
========== ================== ============ =============== ======
========== ================== ============ ================= ======
Program Features Network Load Platform Effort
========== ================== ============ ================= ======
Citadel groupware, webmail small lin/mac/rpi easy
Open Email client-server small lin/mac/rpi expert
WinLink email, attachments small win (proprietary) medium
========== ================== ============ ================= ======

.. |trade| unicode:: U+02122 .. TRADE MARK SIGN
:ltrim:
18 changes: 15 additions & 3 deletions arednServicesGuide/file_sharing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
------------
Expand All @@ -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:

0 comments on commit bbca0c8

Please sign in to comment.