mirror of
https://github.com/iiab/iiab.git
synced 2025-02-14 20:22:08 +00:00
commit
0f957d536d
12 changed files with 86 additions and 40 deletions
|
@ -14,7 +14,7 @@ Connecting to the Server
|
|||
|
||||
To connect to the server, you will also need to download Minetest client software for each of your client devices, e.g. from: https://www.minetest.net/downloads/
|
||||
|
||||
The port is nominally the standard 30000. This can be changed in `/etc/iiab/local_vars.yml <http://wiki.laptop.org/go/IIAB/FAQ#What_is_local_vars.yml_and_how_do_I_customize_it.3F>`_ using variable: ``minetest_port``
|
||||
The port is nominally the standard 30000. If necessary, change the ``minetest_port`` as explained below.
|
||||
|
||||
The admin user is the usual: ``Admin``
|
||||
|
||||
|
@ -23,6 +23,8 @@ No password is required.
|
|||
Configurable Parameters
|
||||
-----------------------
|
||||
|
||||
If changes are necessary, please edit `/etc/iiab/local_vars.yml <http://wiki.laptop.org/go/IIAB/FAQ#What_is_local_vars.yml_and_how_do_I_customize_it.3F>`_ (adding any variables that you need) prior to installation if possible:
|
||||
|
||||
- ``minetest_install:`` set Minetest up to install; default is False
|
||||
- ``minetest_enabled:`` set Minetest up to be enabled; default is False
|
||||
- ``minetest_port:`` port on which client should connect; default is 30000
|
||||
|
@ -31,6 +33,10 @@ Configurable Parameters
|
|||
- ``minetest_default_game:`` only carbone-ng and minetest are supported; default is `carbone-ng <https://github.com/Calinou/carbone-ng>`_
|
||||
- ``minetest_flat_world:`` use a flat mapgen engine to lower computation on client; default is False
|
||||
|
||||
After installation, you can monitor the 'minetest-server' service with command::
|
||||
|
||||
systemctl minetest-server freepbx
|
||||
|
||||
File Locations
|
||||
--------------
|
||||
|
||||
|
@ -46,12 +52,14 @@ File Locations on Raspberry Pi
|
|||
|
||||
File Locations on Other Platforms
|
||||
---------------------------------
|
||||
|
||||
- The server binary is ``/usr/lib/minetest/minetestserver``
|
||||
- The working directory is ``/usr/share/games/minetest``
|
||||
- mods are in ``/usr/share/games/minetest/games/<game>/mods``
|
||||
|
||||
To Do
|
||||
-----
|
||||
|
||||
- Add more mods — currently only the default mods are there in carbone-ng
|
||||
- Add more games
|
||||
- Minetest client software for Windows and Android, included onboard IIAB for offline communities (`#1465 <https://github.com/iiab/iiab/issues/1465>`_)
|
||||
|
|
|
@ -48,5 +48,5 @@
|
|||
mode: 0644
|
||||
with_items:
|
||||
- { src: 'minetest.conf.j2', dest: '/etc/minetest/minetest.conf' }
|
||||
- { src: 'minetest-serve.service.j2', dest: '/etc/systemd/system/minetest-server.service' }
|
||||
- { src: 'minetest-server.service.j2', dest: '/etc/systemd/system/minetest-server.service' }
|
||||
when: minetest_install
|
||||
|
|
|
@ -66,6 +66,10 @@ sugarizer_port={{ sugarizer_port }}
|
|||
nodered_port={{ nodered_port }}
|
||||
mosquitto_port={{ mosquitto_port }}
|
||||
minetest_port={{ minetest_port }}
|
||||
pbx_signaling_ports_chan_sip={{ pbx_signaling_ports_chan_sip }}
|
||||
pbx_signaling_ports_chan_pjsip={{ pbx_signaling_ports_chan_pjsip }}
|
||||
pbx_data_ports={{ pbx_data_ports }}
|
||||
pbx_enabled={{ pbx_enabled }}
|
||||
block_DNS={{ block_DNS }}
|
||||
|
||||
echo "LAN is $lan and WAN is $wan"
|
||||
|
@ -106,6 +110,12 @@ if [ "$services_externally_visible" == "True" ]; then
|
|||
$IPTABLES -A INPUT -p tcp --dport $transmission_http_port -m state --state NEW -i $wan -j ACCEPT
|
||||
$IPTABLES -A INPUT -p tcp --dport $transmission_peer_port -m state --state NEW -i $wan -j ACCEPT
|
||||
$IPTABLES -A INPUT -p udp --dport $minetest_port -m state --state NEW -i $wan -j ACCEPT
|
||||
|
||||
if [ "$pbx_enabled" == "True" ]; then
|
||||
$IPTABLES -A INPUT -p udp --dport $pbx_signaling_ports_chan_sip -m state --state NEW -i $wan -j ACCEPT
|
||||
$IPTABLES -A INPUT -p udp --dport $pbx_signaling_ports_chan_pjsip -m state --state NEW -i $wan -j ACCEPT
|
||||
$IPTABLES -A INPUT -p udp --dport $pbx_data_ports -m state --state NEW -i $wan -j ACCEPT
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$iiab_gateway_enabled" == "True" ]; then
|
||||
|
|
|
@ -4,14 +4,14 @@ PBX README
|
|||
|
||||
This 'pbx' playbook adds `Asterisk <https://asterisk.org/>`_ and `FreePBX <https://freepbx.org/>`_ to Internet-in-a-Box (IIAB) for VoIP and SIP functionality e.g. for rural telephony.
|
||||
|
||||
This initial release (for IIAB 6.7 in February 2019) supports Ubuntu 18.04 and Debian 9 "Stretch" — in future Raspberry Pi (Raspbian) might also be possible! (`#1467 <https://github.com/iiab/iiab/issues/1467>`_)
|
||||
This initial release (for IIAB 6.7 in February 2019) supports Ubuntu 18.04, Debian 9 "Stretch" — and experimentally supports Raspberry Pi: `#1467 <https://github.com/iiab/iiab/issues/1467>`_
|
||||
|
||||
Explanation
|
||||
-----------
|
||||
What Asterisk & FreePBX Do
|
||||
--------------------------
|
||||
|
||||
Asterisk is a software implementation of a private branch exchange (PBX). In conjunction with suitable telephony hardware interfaces and network applications, Asterisk is used to establish and control telephone calls between telecommunication endpoints, such as customary telephone sets, destinations on the public switched telephone network (PSTN), and devices or services on Voice over Internet Protocol (VoIP) networks. Its name comes from the asterisk (*) symbol for a signal used in dual-tone multi-frequency (DTMF) dialing.
|
||||
|
||||
FreePBX is a web-based open source GUI (graphical user interface) that controls and manages Asterisk (PBX), an open source communication server.
|
||||
FreePBX is a web-based open source GUI (graphical user interface) that controls and manages Asterisk (PBX), the open source communication server.
|
||||
|
||||
Using It
|
||||
--------
|
||||
|
@ -25,9 +25,11 @@ Optionally, you may want to enable `chan_dongle <https://github.com/wdoekes/aste
|
|||
|
||||
asterisk_chan_dongle: True
|
||||
|
||||
After installing PBX as part of IIAB, please visit http://pbx.lan/freepbx and proceed with initial configuration (no login/password is required initially — you will be asked to set this up). **CAUTION: as of 2019-02-10 it is sometimes necessary to put "[ACTUAL IP ADDRESS] pbx.lan" into the 'hosts' file on the client machine (where the browser is being used) to get http://pbx.lan/freepbx name resolution to work.**
|
||||
After installing PBX as part of IIAB, please visit http://pbx.lan/freepbx and proceed with initial configuration (no login/password is required initially — you will be asked to set this up).
|
||||
|
||||
You can monitor the PBX service with command::
|
||||
**CAUTION: it is sometimes necessary to put "[ACTUAL IP ADDRESS] pbx.lan" into the 'hosts' file on the client machine (where the browser is being used) to get http://pbx.lan/freepbx to work.** This file is ``/etc/hosts`` on Linux and macOS, or ``c:\Windows\System32\Drivers\etc\hosts`` on most Windows machines (conversely, customizing the hosts file is *not* necessary if your browser is able to access the `'LAN' side <https://github.com/iiab/iiab/wiki/IIAB-Networking#internet-in-a-box-iiab-networking>`_ of your IIAB server).
|
||||
|
||||
You can monitor the FreePBX service with command::
|
||||
|
||||
systemctl status freepbx
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
# pbx_install: False
|
||||
# pbx_enabled: False
|
||||
# asterisk_chan_dongle: False
|
||||
# pbx_signaling_ports_chan_sip: "5160:5161"
|
||||
# pbx_signaling_ports_chan_pjsip: "5060"
|
||||
# pbx_data_ports: "10000:20000"
|
||||
|
||||
# All above are set in: github.com/iiab/iiab/blob/master/vars/default_vars.yml
|
||||
# If nec, change them by editing /etc/iiab/local_vars.yml prior to installing!
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
name: aptitude
|
||||
state: latest
|
||||
|
||||
- name: Asterisk - Ensure all dependencies are resolved - CAN TAKE 2 MIN OR LONGER!
|
||||
- name: Asterisk - Ensure all dependencies are resolved - CAN TAKE 5 MIN OR LONGER!
|
||||
shell: export DEBIAN_FRONTEND=noninteractive && ./contrib/scripts/install_prereq install
|
||||
args:
|
||||
chdir: "{{ asterisk_src_dir }}"
|
||||
|
@ -68,13 +68,13 @@
|
|||
args:
|
||||
chdir: "{{ asterisk_src_dir }}"
|
||||
|
||||
- name: Asterisk - Run 'make' - CAN TAKE 10 MIN OR LONGER!
|
||||
- name: Asterisk - Run 'make' - CAN TAKE 30 MIN OR LONGER!
|
||||
command: make
|
||||
args:
|
||||
chdir: "{{ asterisk_src_dir }}"
|
||||
creates: "defaults.h"
|
||||
|
||||
- name: Asterisk - Run 'make install' - CAN TAKE 3 MIN OR LONGER!
|
||||
- name: Asterisk - Run 'make install' - CAN TAKE 2 MIN OR LONGER!
|
||||
command: make install
|
||||
args:
|
||||
chdir: "{{ asterisk_src_dir }}"
|
||||
|
@ -145,7 +145,3 @@
|
|||
path: /etc/asterisk/asterisk.conf
|
||||
regexp: 'rungroup ='
|
||||
line: 'rungroup = asterisk'
|
||||
|
||||
- name: Asterisk - Install chan_dongle
|
||||
include: chan_dongle.yml
|
||||
when: asterisk_chan_dongle
|
||||
|
|
|
@ -91,7 +91,7 @@
|
|||
group: asterisk
|
||||
recurse: yes
|
||||
|
||||
- name: FreePBX - Install (just run once) - CAN TAKE 2 MIN OR LONGER!
|
||||
- name: FreePBX - Install (just run once) - CAN TAKE 12 MIN OR LONGER!
|
||||
command: "{{ item }}"
|
||||
args:
|
||||
chdir: "{{ freepbx_src_dir }}"
|
||||
|
@ -108,7 +108,7 @@
|
|||
group: root
|
||||
mode: 0644
|
||||
|
||||
- name: FreePBX - Copy freepbx.conf
|
||||
- name: FreePBX - Install Apache's sites-available/freepbx.conf from template
|
||||
template:
|
||||
src: freepbx.conf.j2
|
||||
dest: /etc/apache2/sites-available/freepbx.conf
|
||||
|
@ -116,37 +116,26 @@
|
|||
group: www-data
|
||||
mode: 0644
|
||||
|
||||
- name: FreePBX - Link freepbx.conf apache file to sites-enabled
|
||||
- name: FreePBX - Create symlink freepbx.conf from sites-enabled to sites-available (if pbx_enabled)
|
||||
file:
|
||||
src: /etc/apache2/sites-available/freepbx.conf
|
||||
dest: /etc/apache2/sites-enabled/freepbx.conf
|
||||
state: link
|
||||
when: pbx_enabled
|
||||
|
||||
- name: FreePBX - Unlink freepbx.conf apachefile from sites-enabled
|
||||
- name: FreePBX - Remove symlink /etc/apache2/sites-enabled/freepbx.conf (if not pbx_enabled)
|
||||
file:
|
||||
path: /etc/apache2/sites-enabled/freepbx.conf
|
||||
state: absent
|
||||
when: (not pbx_enabled)
|
||||
when: not pbx_enabled
|
||||
|
||||
- name: FreePBX - Copy systemd unit file
|
||||
- name: FreePBX - Restart Apache service ({{ apache_service }})
|
||||
systemd:
|
||||
name: "{{ apache_service }}" # httpd or apache2
|
||||
state: restarted
|
||||
|
||||
- name: FreePBX - Install /etc/systemd/system/freepbx.service systemd unit file from template
|
||||
template:
|
||||
src: freepbx.service.j2
|
||||
dest: /etc/systemd/system/freepbx.service
|
||||
mode: 755
|
||||
|
||||
- name: FreePBX - Enable and Start freepbx service
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: freepbx
|
||||
enabled: yes
|
||||
state: started
|
||||
when: pbx_enabled
|
||||
|
||||
- name: FreePBX - Disable & Stop freepbx service
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: freepbx
|
||||
enabled: no
|
||||
state: stopped
|
||||
when: (not pbx_enabled)
|
||||
|
|
15
roles/pbx/tasks/freepbx_enable.yml
Normal file
15
roles/pbx/tasks/freepbx_enable.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
- name: FreePBX - Enable & (Re)start 'freepbx' systemd service (if pbx_enabled)
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: freepbx
|
||||
enabled: yes
|
||||
state: restarted
|
||||
when: pbx_enabled
|
||||
|
||||
- name: FreePBX - Disable & Stop 'freepbx' systemd service (if not pbx_enabled)
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: freepbx
|
||||
enabled: no
|
||||
state: stopped
|
||||
when: not pbx_enabled
|
|
@ -16,12 +16,32 @@
|
|||
Asterisk and FreePBX work on other OS's / distros, Thank
|
||||
You! http://FAQ.IIAB.IO ###############################################################################
|
||||
|
||||
- name: Check if freepbx is already installed
|
||||
stat:
|
||||
path: /etc/systemd/system/freepbx.service
|
||||
register: freepbx_installed
|
||||
|
||||
- debug:
|
||||
msg: >-
|
||||
FreePBX already installed. Reinstall shall be skipped
|
||||
when: freepbx_installed.stat.exists
|
||||
|
||||
- name: Install Asterisk (debuntu)
|
||||
include_tasks: asterisk.yml
|
||||
when: internet_available and pbx_install and (not pbx_installed) and is_debuntu
|
||||
when: internet_available and pbx_install and (not pbx_installed) and is_debuntu and (not freepbx_installed.stat.exists)
|
||||
|
||||
#when: internet_available and pbx_install and (not pbx_installed) and ((is_debian and ansible_distribution_major_version == "9") or is_ubuntu_18)
|
||||
|
||||
- name: Install FreePBX (debuntu)
|
||||
include_tasks: freepbx.yml
|
||||
when: internet_available and pbx_install and (not pbx_installed) and is_debuntu and (not freepbx_installed.stat.exists)
|
||||
#when: internet_available and pbx_install and (not pbx_installed) and ((is_debian and ansible_distribution_major_version == "9") or is_ubuntu_18)
|
||||
|
||||
- name: Enable FreePBX (debuntu)
|
||||
include_tasks: freepbx_enable.yml
|
||||
when: internet_available and pbx_install and (not pbx_installed) and is_debuntu
|
||||
#when: internet_available and pbx_install and (not pbx_installed) and ((is_debian and ansible_distribution_major_version == "9") or is_ubuntu_18)
|
||||
|
||||
- name: Asterisk - Install chan_dongle
|
||||
include: chan_dongle.yml
|
||||
when: asterisk_chan_dongle
|
||||
|
|
|
@ -301,6 +301,9 @@ nextcloud_enabled: False
|
|||
pbx_install: False
|
||||
pbx_enabled: False
|
||||
asterisk_chan_dongle: False
|
||||
pbx_signaling_ports_chan_sip: "5160:5161"
|
||||
pbx_signaling_ports_chan_pjsip: "5060"
|
||||
pbx_data_ports: "10000:20000"
|
||||
|
||||
# If using WordPress intensively, set apache_high_php_limits in 3-BASE-SERVER
|
||||
wordpress_install: False
|
||||
|
|
|
@ -197,8 +197,8 @@ nextcloud_enabled: True
|
|||
|
||||
# A full-featured PBX (for rural telephony, etc) based on Asterisk and FreePBX.
|
||||
# So far, supported on Ubuntu 18.x and Debian 9 ONLY. Uses Node.js 10.x
|
||||
pbx_install: False
|
||||
pbx_enabled: False
|
||||
pbx_install: True
|
||||
pbx_enabled: True
|
||||
asterisk_chan_dongle: False
|
||||
|
||||
# If using WordPress intensively, set apache_high_php_limits in 3-BASE-SERVER
|
||||
|
|
Loading…
Reference in a new issue