Merge pull request #697 from greenjon/docs-edit

Change Airtime to Libretime in the docs; fix a few typos; update help file
This commit is contained in:
Kyle Robbertze 2019-01-18 08:38:27 +02:00 committed by GitHub
commit 0cfd4c62f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 42 additions and 210 deletions

View File

@ -1,12 +1,12 @@
Airtime has a feature which enables your station's show and schedule information to be displayed on remote websites. This feature is included in Airtime because you would not usually invite the general public to access your Airtime server directly. If you had very large numbers of people requesting data from the Airtime server at once, the burst of network traffic might overload the server, potentially disrupting your broadcasts. If carried out maliciously, this network overload is known as a *denial of service attack*.
Libretime has a feature which enables your station's show and schedule information to be displayed on remote websites. This feature is included in Libretime because you would not usually invite the general public to access your Libretime server directly. If you had very large numbers of people requesting data from the Libretime server at once, the burst of network traffic might overload the server, potentially disrupting your broadcasts. If carried out maliciously, this network overload is known as a *denial of service attack*.
Instead, your public-facing web server can retrieve the schedule information from the Airtime API. This information can then be displayed on your broadcast station or affiliate websites by a content management system, such as Sourcefabric's **Newscoop** (<http://newscoop.sourcefabric.org/>). It can be presented using Javascript widgets and styled with CSS, in any format that you require. The **Broadcaster** theme for Newscoop (<https://github.com/newscoop/theme-Broadcaster>) integrates these widgets with ready-to-use styles.
Instead, your public-facing web server can retrieve the schedule information from the Libretime API. This information can then be displayed on your broadcast station or affiliate websites by a content management system, such as Sourcefabric's **Newscoop** (<http://newscoop.sourcefabric.org/>). It can be presented using Javascript widgets and styled with CSS, in any format that you require. The **Broadcaster** theme for Newscoop (<https://github.com/newscoop/theme-Broadcaster>) integrates these widgets with ready-to-use styles.
There are two kinds of information that can be retrieved remotely from the Airtime API without authentication; the metadata for the current show plus the following show (live-info), or the schedule for the current week and the week ahead (week-info). The week-info metadata includes show names, times, and individual show URLs on your public website. That way, the audience for your station can click through from the schedule information to find out more about a particular show, or download a previous show recording that you might have made available.
There are two kinds of information that can be retrieved remotely from the Libretime API without authentication; the metadata for the current show plus the following show (live-info), or the schedule for the current week and the week ahead (week-info). The week-info metadata includes show names, times, and individual show URLs on your public website. That way, the audience for your station can click through from the schedule information to find out more about a particular show, or download a previous show recording that you might have made available.
If your Airtime server was accessible at https://airtime.example.com the live show information could be retrieved by your web server using this URL:
If your Libretime server was accessible at https://libretime.example.com the live show information could be retrieved by your web server using this URL:
https://airtime.example.com/api/live-info/?callback
https://libretime.example.com/api/live-info/?callback
The comma-separated text metadata returned to your web server might be something like this:
@ -70,7 +70,7 @@ The comma-separated text metadata returned to your web server might be something
The information for the current week's schedule could be retrieved using the URL:
https://airtime.example.com/api/week-info/?callback
https://libretime.example.com/api/week-info/?callback
In this case, the metadata returned would be in a different format from the above example, something like the following. To keep the example short, this particular schedule export only contains four shows on a Monday. A full weekly schedule export would contain a great deal more text.
@ -126,32 +126,32 @@ In this case, the metadata returned would be in a different format from the abov
"sunday":[],
"AIRTIME_API_VERSION":"1.1"})
If you see the message *You are not allowed to access this resource* when attempting to display schedule information in your web browser, log in to the Airtime administration interface, click *System* in the main menu, then *Preferences*. Set **Allow Remote Websites To Access "Schedule" Info?** to **Enabled**, click the **Save** button, then refresh the browser window opened on the schedule export URL. If you do not wish to make schedule information available to the public, set this option to **Disabled** instead.
If you see the message *You are not allowed to access this resource* when attempting to display schedule information in your web browser, log in to the Libretime administration interface, click *System* in the main menu, then *Preferences*. Set **Allow Remote Websites To Access "Schedule" Info?** to **Enabled**, click the **Save** button, then refresh the browser window opened on the schedule export URL. If you do not wish to make schedule information available to the public, set this option to **Disabled** instead.
![](static/Screenshot497-System_preferences_240.png)
Caching schedule information
----------------------------
If the Airtime server is behind a firewall, or you want to protect the Airtime server from large numbers of schedule requests, you may wish to cache the schedule information on a public-facing or intermediate server. You can then create a firewall rule that only allows the schedule server to connect to the Airtime server, in addition to any remote users of the Airtime web interface.
If the Libretime server is behind a firewall, or you want to protect the Libretime server from large numbers of schedule requests, you may wish to cache the schedule information on a public-facing or intermediate server. You can then create a firewall rule that only allows the schedule server to connect to the Libretime server, in addition to any remote users of the Libretime web interface.
Your system administrator can set up schedule caching on a standard Apache and PHP enabled web server with the *curl* program installed, using the following steps:
1. Create a shell script on the schedule server (schedule.example.com) that polls the remote Airtime server (airtime.example.com), and writes the metadata returned into a pair of local temporary files:
1. Create a shell script on the schedule server (schedule.example.com) that polls the remote Libretime server (libretime.example.com), and writes the metadata returned into a pair of local temporary files:
sudo nano /usr/local/bin/airtime-schedule.sh
sudo nano /usr/local/bin/libretime-schedule.sh
The content of this file should be like the following script, replacing airtime.example.com with the name of your Airtime server:
The content of this file should be like the following script, replacing libretime.example.com with the name of your Libretime server:
#!/bin/sh
curl -s "https://airtime.example.com/api/live-info/?callback=***" > /tmp/live-info
curl -s "https://libretime.example.com/api/live-info/?callback=***" > /tmp/live-info
curl -s "https://airtime.example.com/api/week-info/?callback=***" > /tmp/week-info
curl -s "https://libretime.example.com/api/week-info/?callback=***" > /tmp/week-info
2. Make the script executable:
sudo chmod +x /usr/local/bin/airtime-schedule.sh
sudo chmod +x /usr/local/bin/libretime-schedule.sh
3. Create an Apache VirtualHost configuration for the schedule server:
@ -214,18 +214,18 @@ containing the following code:
8. Create a cron job to run the shell script each minute:
sudo nano /etc/cron.d/airtime-schedule
sudo nano /etc/cron.d/libretime-schedule
containing the line:
* * * * * www-data /usr/local/bin/airtime-schedule.sh
* * * * * www-data /usr/local/bin/libretime-schedule.sh
The schedule server will now be serving the same show information as the Airtime server, with a cache lifetime of one minute. You can adjust the cache lifetime by altering the frequency of the cron job that polls the Airtime server.
The schedule server will now be serving the same show information as the Libretime server, with a cache lifetime of one minute. You can adjust the cache lifetime by altering the frequency of the cron job that polls the Libretime server.
Pushing schedule information via FTP or SSH
-------------------------------------------
If there is no inbound access to the Airtime server at all, an FTP script can be used to push cached schedule data from Airtime to an external web server. The standard ftp command should be available on the Airtime server and the external web server should have a suitably restricted FTP account set up. After following steps 1 and 2 above to export schedule data to a pair of temporary files on the Airtime server, create a new script on the Airtime server to automatically make the upload:
If there is no inbound access to the Libretime server at all, an FTP script can be used to push cached schedule data from Libretime to an external web server. The standard ftp command should be available on the Libretime server and the external web server should have a suitably restricted FTP account set up. After following steps 1 and 2 above to export schedule data to a pair of temporary files on the Libretime server, create a new script on the Libretime server to automatically make the upload:
sudo nano /usr/local/bin/upload-schedule-data.sh
@ -247,129 +247,4 @@ Replace host, user and password values with appropriate values for your external
Then make the new script executable and create a cron job to launch it every minute, as in step 8 above. Steps 3 to 7 above should be carried out on the external web server so that it can convert the two temporary files uploaded via FTP into public schedule data.
If you have secure shell access (SSH) to the remote web server, you could write a script to use the secure copy command (scp) instead of ftp.
Website widgets
---------------
Example HTML, Javascript and CSS code for your public website are provided in the *widgets* folder of the Airtime installation tarball, or on GitHub: <https://github.com/sourcefabric/Airtime/tree/master/widgets>
If you have performed an automated installation on Debian or Ubuntu, the widgets can be found in the */usr/share/doc/airtime/examples/* directory.
For the widgets to work on a typical web server, links to the Javascript and CSS code have to be included in the HTML page &lt;head&gt; element, like the following example:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Airtime widgets</title>
<script src="js/jquery-1.6.1.min.js" type="text/javascript">
</script>
<script src="js/jquery-ui-1.8.10.custom.min.js" type="text/javascript">
</script>
<script src="js/jquery.showinfo.js" type="text/javascript">
</script>
<link href="css/airtime-widgets.css" rel="stylesheet" type="text/css" />
</head>
A full example is shown in the *widgets/sample\_page.html* file in the Airtime installation tarball, on GitHub, or in the */usr/share/doc/airtime/examples/* directory if you have installed the Debian/Ubuntu package of Airtime.
The following code is for a small *airtimeLiveInfo* widget that displays information about the current show (show time elapsed, and show time remaining), as well as some information about the next show (start time and end time). In this example, the label text for *onAirNow* is translated into French for local language support:
<script>
$(document).ready(function() {
$("#headerLiveHolder").airtimeLiveInfo({
sourceDomain: "https://schedule.example.com/",
text: {onAirNow:"Sur Les Antennes", offline:"Offline", current:"Current", next:"Next"},
updatePeriod: 20 //seconds
});
});
</script>
The &lt;script&gt; element above would typically be added to the page's &lt;head&gt; element. You would then add a &lt;div&gt; element to the &lt;body&gt; element of the page to hold the widget, such as:
<div id="headerLiveHolder" style="border: 1px solid #999999; padding: 10px;"></div>
On the public website, this widget can be made to look like the following screenshot:
 ![](static/Screenshot-85-now_playing_widget.png)
The CSS properties *color:* and *text-transform:uppercase* have been used to style the *onAirNow* label. There is a full example CSS file *widgets/css/airtime-widgets.css* in the Airtime installation tarball, GitHub repository, or */usr/share/doc/airtime/examples/* directory on Debian/Ubuntu.
A variation on this widget displays the item being played out, rather than the show names:
<script>
$(document).ready(function() {
$("#headerLiveTrackHolder").airtimeLiveTrackInfo({
sourceDomain: "https://schedule.example.com/",
text: {onAirNow:"On Air Now", offline:"Offline", current:"Current", next:"Next"},
updatePeriod: 20 //seconds
});
});
</script>
The id of the &lt;div&gt; element in the page body would have to be updated to match:
<div id="headerLiveTrackHolder" style="border: 1px solid #999999; padding: 10px;"></div>
The next widget *airtimeShowSchedule* is medium sized, and displays the upcoming show schedule for that day.
<script>
$(document).ready(function() {
$("#onAirToday").airtimeShowSchedule({
sourceDomain: "https://schedule.example.com/",
text: {onAirToday:"On air today"},
updatePeriod: 60 //seconds
});
});
</script>
Again, the id of the &lt;div&gt; element has to match the script for the widget to appear:
<div id="onAirToday"></div>
The output from the widget script above can be styled to look like this screen shot:
![](static/Screenshot-86-upcoming_shows_widget.png)
Finally, the following code creates a large widget *airtimeWeekSchedule* that enables site visitors to browse through the show schedule for that week. In this example, all widget labels have been translated into French:
<script>
$(document).ready(function() {
$("#scheduleTabs").airtimeWeekSchedule({
sourceDomain:"https://schedule.example.com/",
dowText:{monday:"Lundi", tuesday:"Mardi", wednesday:"Mercredi", thursday:"Jeudi", friday:"Vendredi", saturday:"Samedi", sunday:"Dimanche"},
miscText:{time:"Temps", programName:"Nom du Programme", details:"Détails", readMore:"Lire La Suite"},
updatePeriod: 600 //seconds
});
 var d = new Date().getDay();
    $('#scheduleTabs').tabs({selected: d === 0 ? 6 : d-1, fx: { opacity: 'toggle' }});
});
</script>
The &lt;div&gt; element for this widget would be:
<div id="scheduleTabs"></div>
Using the code above and the CSS and image files provided with Airtime, the weekly schedule can be styled to look like this:
![](static/Screenshot-87-weekly_schedule_widget.png)
Optionally, you can display the schedule for the week ahead, as well as the current week. This requires the Javascript file *jquery.showinfo.js* supplied with Airtime 2.5.0 or later, where the value of the variable *dow* (for days of the week) includes fourteen rather than seven days:
var dow = ["monday", "tuesday", "wednesday", "thursday", "friday",
"saturday", "sunday", "nextmonday", "nexttuesday",
"nextwednesday","nextthursday", "nextfriday",
"nextsaturday", "nextsunday"];
In that case, the labels for the days of the week could be configured as follows:
dowText: {monday:"Monday", tuesday:"Tuesday", wednesday:"Wednesday",
thursday:"Thursday", friday:"Friday", saturday:"Saturday",
sunday:"Sunday", nextmonday:"Next Monday",
 nexttuesday:"Next Tuesday", nextwednesday:"Next Wednesday",
 nextthursday:"Next Thursday",nextfriday:"Next Friday",
  nextsaturday:"Next Saturday", nextsunday:"Next Sunday"},
The value of **sourceDomain** in the code examples above should match the URL that you wish to serve schedule information to the public from. If you have used the *Caching schedule information* method detailed above, this would be the URL of your schedule server, not the Airtime server directly.
If you have secure shell access (SSH) to the remote web server, you could write a script to use the secure copy command (scp) instead of ftp.

View File

@ -1,4 +1,4 @@
This listing is provided to help ensure that the correct model parameter is passed to the ALSA kernel module for an Intel HDA soundcard, if one is fitted to your Airtime server. See the chapter *Preparing the server* in this book for more details.
This listing is provided to help ensure that the correct model parameter is passed to the ALSA kernel module for an Intel HDA soundcard, if one is fitted to your Libretime server. See the chapter *Preparing the server* in this book for more details.
Model name Description
---------- -----------

View File

@ -1,22 +1,16 @@
The first entry on Airtime's **Help** menu offers a **Getting Started** guide for new users. Further down, there is also a link to the online version of this **User Manual** and an **About** page, which displays version and licensing information.
The first entry on Libretime's **Help** menu offers a **Getting Started** guide for new users. Further down, there is also a link to the online version of this **User Manual** and an **About** page, which displays version and licensing information.
![](static/Screenshot460-Help_page.png)
You can visit the Airtime online support forum, and sign up for the mailing list, at <http://forum.sourcefabric.org/categories/airtime-support>
You can visit the Libretime online support forum at <https://discourse.libretime.org/c/get-help> to ask for help from the community regarding your LibreTime setup.
This forum is mirrored by the mailing list, so posts on the forum appear on the mailing list and vice versa. You can therefore also post a message there by emailing <airtime-support@lists.sourcefabric.org>
To subscribe to forum updates via email, please register or login to the forum by clicking the appropriate link. Then visit your profile page at <http://forum.sourcefabric.org/profile/> and click the link **My Email Subscriptions** on the left side menu. In the pop-up window that opens, check the boxes for the mailing lists you wish to subscribe to, then click the **Save** button.
Bug reporting
-------------
Airtime needs your input to improve. If you think you've found a bug, please visit <http://dev.sourcefabric.org/> and sign in, using the same login and password that you registered for the Airtime forum. Create a bug report by selecting **Create Issue**, then **Airtime**, and then **Bug**. That way, the Airtime team can keep track of your problem and notify you when it has been fixed. You can also suggest improvements and new features for Airtime on that site.
Libretime needs your input to improve. If you think you've found a bug, please visit <https://github.com/LibreTime/libretime>. Create a bug report by selecting **Issues**, then **New Issue**. That way, the Libretime team can keep track of your problem and notify you when it has been fixed. You can also suggest improvements and new features for Libretime on that site.
Contact
-------
Finally, when all other avenues have been exhausted, email us directly at <contact@sourcefabric.org> and we'll try to help!
Other help
----------

View File

@ -1,4 +1,4 @@
The streaming host configuration for Airtime is shown in the file */etc/airtime/liquidsoap.cfg* which is automatically generated by the **Streams** page, found on the **System** menu of the Airtime administration interface. For this reason, you would not normally edit the streaming configuration manually, as any changes are likely to be overwritten by the administration interface.
The streaming host configuration for Libretime is shown in the file */etc/airtime/liquidsoap.cfg* which is automatically generated by the **Streams** page, found on the **System** menu of the Libretime administration interface. For this reason, you would not normally edit the streaming configuration manually, as any changes are likely to be overwritten by the administration interface.
Database and RabbitMQ hosts
---------------------------
@ -7,7 +7,7 @@ Optionally, you may wish to edit the file */etc/airtime/airtime.conf* to set the
sudo nano /etc/airtime/airtime.conf
You can also set options for RabbitMQ messaging, the Airtime server and SoundCloud uploads in this file, although you should not normally need to adjust the defaults unless you are running a large Airtime system distributed across multiple servers. To run the Airtime server in demo mode, which changes the greeting on the login page and prevents user accounts from being created or modified, set the value of *demo* to 1.
You can also set options for RabbitMQ messaging, the Libretime server and SoundCloud uploads in this file, although you should not normally need to adjust the defaults unless you are running a large Libretime system distributed across multiple servers. To run the Libretime server in demo mode, which changes the greeting on the login page and prevents user accounts from being created or modified, set the value of *demo* to 1.
[database]
host = localhost
@ -26,7 +26,7 @@ You can also set options for RabbitMQ messaging, the Airtime server and SoundClo
api_key = XXXXXXXXXXXXXXXXXXXXX
web_server_user = www-data
airtime_dir = /usr/share/airtime
base_url = airtime.example.com
base_url = libretime.example.com
base_port = 80
base_dir = /
cache_ahead_hours = 1
@ -46,13 +46,14 @@ Save and close the file with **Ctrl+O** and **Ctrl+X**. If you have changed the
sudo airtime-update-db-settings
to make sure all of Airtime's database configuration files are updated. This command should output the following text to the server console:
to make sure all of Libretime's database configuration files are updated. This command should output the following text to the server console:
Airtime root folder found at /usr/share/airtime
Libretime root folder found at /usr/share/airtime
Updating /usr/share/airtime/application/configs/application.ini
Updating /usr/share/airtime/build/build.properties
Updating /usr/share/airtime/build/runtime-conf.xml
Success!
API client configuration
------------------------
@ -62,53 +63,15 @@ If you have changed the *base\_url*, *base\_port* or *base\_dir* setting in */et
bin_dir = /usr/lib/airtime/api_clients
api_key = 'XXXXXXXXXXXXXXXXXXXX'
api_base = api
host = airtime.example.com
host = libretime.example.com
base_port = 80
base_dir = /
Media monitor settings
----------------------
Airtime's media monitor has its own configuration file in */etc/airtime/media-monitor.cfg* which contains RabbitMQ settings and other preferences.
api_client = airtime
# where the binary files live
bin_dir = /usr/lib/airtime/media-monitor
# where the logging files live
log_dir = /var/log/airtime/media-monitor
############################################
# RabbitMQ settings #
############################################
rabbitmq_host = localhost
rabbitmq_user = airtime
rabbitmq_password = XXXXXXXXXXXXXXXXXXXX
rabbitmq_vhost = /airtime
############################################
# Media-Monitor preferences #
############################################
#how long to queue up events performed on the files themselves.
check_filesystem_events = 5
#how long to queue metadata input from airtime.
check_airtime_events = 30
# MM2 only:
touch_interval = 5
chunking_number = 450
request_max_wait = 3.0
rmq_event_wait = 0.1
logpath = /var/log/airtime/media-monitor/media-monitor.log
index_path = /var/tmp/airtime/media-monitor/last_index
Playout and recorder settings
-----------------------------
Settings for pypo, the playout and recording engine used by Airtime, are found in the file */etc/airtime/pypo.cfg*. After making changes to this file, you will have to issue the command:
Settings for pypo, the playout and recording engine used by Libretime, are found in the file */etc/airtime/airtime.conf*. After making changes to this file, you will have to issue the command:
sudo /etc/init.d/airtime-playout restart

View File

@ -1,12 +1,12 @@
Airtime supports direct connection to two popular streaming media servers, the open source **Icecast** (<http://www.icecast.org>) and the proprietary **SHOUTcast** (<http://www.shoutcast.com>). Apart from the software license, the main difference between these two servers is that Icecast supports simultaneous MP3, AAC, Ogg Vorbis or Ogg Opus streaming from Airtime, whereas SHOUTcast supports MP3 and AAC streams but not Ogg Vorbis or Opus. The royalty-free Ogg Vorbis format has the advantage of better sound quality than MP3 at lower bitrates, which has a direct impact on the amount of bandwidth that your station will require to serve the same number of listeners. Ogg Opus also benefits from good sound quality at low bitrates, with the added advantage of lower latency than other streaming formats. Opus is now an IETF standard (<http://tools.ietf.org/html/rfc6716>) and requires Icecast 2.4 or later to be installed on the streaming server.
Libretime supports direct connection to two popular streaming media servers, the open source **Icecast** (<http://www.icecast.org>) and the proprietary **SHOUTcast** (<http://www.shoutcast.com>). Apart from the software license, the main difference between these two servers is that Icecast supports simultaneous MP3, AAC, Ogg Vorbis or Ogg Opus streaming from Libretime, whereas SHOUTcast supports MP3 and AAC streams but not Ogg Vorbis or Opus. The royalty-free Ogg Vorbis format has the advantage of better sound quality than MP3 at lower bitrates, which has a direct impact on the amount of bandwidth that your station will require to serve the same number of listeners. Ogg Opus also benefits from good sound quality at low bitrates, with the added advantage of lower latency than other streaming formats. Opus is now an IETF standard (<http://tools.ietf.org/html/rfc6716>) and requires Icecast 2.4 or later to be installed on the streaming server.
Ogg Vorbis playback is supported in **Mozilla Firefox**, **Google Chrome** and **Opera** browsers, via **jPlayer** (<http://jplayer.org/>), and is also supported in several popular media players, including VideoLAN Client, also known as VLC (<http://www.videolan.org/vlc/>). (See the chapter *Stream player for your website* on how to deliver **jPlayer** to your audience). Ogg Opus is relatively new and is supported natively in the very latest browsers, such as Mozilla Firefox 25.0, and media players including VLC 2.0.4 or later.
Streaming MP3 below a bitrate of 128kbps is not recommended for music, because of a perceptible loss of high audio frequencies in the broadcast playout. A 96kbps or 64kbps MP3 stream may be acceptable for voice broadcasts if there is a requirement for compatibility with legacy hardware playback devices which do not support Ogg Vorbis or Opus streams.
Because Airtime supports simultaneous streaming in multiple formats, it is possible to offer one or more streams via your website, and another independent stream for direct connection from hardware players. You can test whether Ogg streams sound better at low bitrates for yourself, by using the **LISTEN** button in Airtime's **Master Panel** to switch between streaming formats.
Because Libretime supports simultaneous streaming in multiple formats, it is possible to offer one or more streams via your website, and another independent stream for direct connection from hardware players. You can test whether Ogg streams sound better at low bitrates for yourself, by using the **LISTEN** button in Libretime's **Master Panel** to switch between streaming formats.
Conversely, you may have a music station which wants to stream at 160kbps or 192kbps to offer a quality advantage over stations streaming at 128kbps or less. Since Ogg, AAC and MP3 formats use lossy compression, listeners will only hear the benefit of higher streaming bitrates if the media files in the Airtime storage server are encoded at an equivalent bitrate, or higher.
Conversely, you may have a music station which wants to stream at 160kbps or 192kbps to offer a quality advantage over stations streaming at 128kbps or less. Since Ogg, AAC and MP3 formats use lossy compression, listeners will only hear the benefit of higher streaming bitrates if the media files in the Libretime storage server are encoded at an equivalent bitrate, or higher.
UTF-8 metadata in Icecast MP3 streams
-------------------------------------
@ -15,10 +15,10 @@ When sending metadata about your stream to an Icecast server in non-Latin alphab
![](static/Screenshot223-Icecast_UTF-8_metadata.png)
The solution is to specify that the metadata for the MP3 mount point you are using should be interpreted using UTF-8 encoding. You can do this by adding the following stanza to the */etc/icecast2/icecast.xml* file, where *airtime.mp3* is the name of your mount point:
The solution is to specify that the metadata for the MP3 mount point you are using should be interpreted using UTF-8 encoding. You can do this by adding the following stanza to the */etc/icecast2/icecast.xml* file, where *libretime.mp3* is the name of your mount point:
  <mount>
       <mount-name>/airtime.mp3</mount-name>
       <mount-name>/libretime.mp3</mount-name>
       <charset>UTF-8</charset>
  </mount>

View File

@ -1,14 +1,14 @@
In a typical radio station configuration, the live output from the broadcast studio and the scheduled output from Airtime are mixed together before being sent further along the broadcast chain, to a transmitter or streaming media server on the Internet. (This may not be the case if your Airtime server is remote from the studio, and you are using the **Show Source Mount Point** or **Master Source Mount Point** to mix live and scheduled content. See the *Stream Settings* chapter for details).
In a typical radio station configuration, the live output from the broadcast studio and the scheduled output from Libretime are mixed together before being sent further along the broadcast chain, to a transmitter or streaming media server on the Internet. (This may not be the case if your Libretime server is remote from the studio, and you are using the **Show Source Mount Point** or **Master Source Mount Point** to mix live and scheduled content. See the *Stream Settings* chapter for details).
If your **Icecast** server is hosted in a remote data centre, you may not have the option to handover the streaming media source manually, because you have no physical access to connect a broadcast mixer to the server. Disconnecting the stream and beginning another is less than ideal, because the audience's media players will also be disconnected when that happens.
The **Icecast** server has a *fallback-mount* feature which can be used to move clients (media players used by listeners or viewers) from one source to another, as new sources become available. This makes it possible to handover from Airtime output to a show from another source, and handover to Airtime again once the other show has ended.
The **Icecast** server has a *fallback-mount* feature which can be used to move clients (media players used by listeners or viewers) from one source to another, as new sources become available. This makes it possible to handover from Libretime output to a show from another source, and handover to Libretime again once the other show has ended.
To enable fallback mounts, edit the main Icecast configuration file to define the mount points you will use, and the relationship between them.
sudo nano /etc/icecast2/icecast.xml
The example *&lt;mount&gt;* section provided in the *icecast.xml* file is commented out by default. Before or after the commented section, add three mount point definitions. The default mount point used by Airtime is */airtime\_128* which is shown in the */etc/airtime/liquidsoap.cfg* file. You must also define a mount point for the live source (called */live.ogg* in this example) and a mount point for the public to connect to (called */stream.ogg* in this example).
The example *<mount>* section provided in the *icecast.xml* file is commented out by default. Before or after the commented section, add three mount point definitions. The default mount point used by Libretime is */airtime\_128* which is shown in the */etc/airtime/liquidsoap.cfg* file. You must also define a mount point for the live source (called */live.ogg* in this example) and a mount point for the public to connect to (called */stream.ogg* in this example).
<mount>
<mount-name>/airtime_128</mount-name>
@ -29,9 +29,9 @@ The example *&lt;mount&gt;* section provided in the *icecast.xml* file is commen
<hidden>0</hidden>
</mount>
These mount point definitions mean that a client connecting to a URL such as *http://icecast.example.com:8000/stream.ogg* will first fall back to the */live.ogg* mount point if it is available. If not, the client will fall back in turn to the */airtime\_128* mount point for Airtime playout.
These mount point definitions mean that a client connecting to a URL such as *http://icecast.example.com:8000/stream.ogg* will first fall back to the */live.ogg* mount point if it is available. If not, the client will fall back in turn to the */airtime\_128* mount point for Libretime playout.
Setting the value of *&lt;fallback-override&gt;* to 1 (enabled) means that when the */live.ogg* mount point becomes available again, the client will be re-connected to it.  If you wish to hide the */airtime\_128* and */live.ogg* mount points from the public Icecast web interface, set the value of *&lt;hidden&gt;* in each of these definitions to 1.
Setting the value of *<fallback-override>* to 1 (enabled) means that when the */live.ogg* mount point becomes available again, the client will be re-connected to it.  If you wish to hide the */airtime\_128* and */live.ogg* mount points from the public Icecast web interface, set the value of *<hidden>* in each of these definitions to 1.
Source configuration
--------------------

View File

@ -1,4 +1,4 @@
Piwik (<http://piwik.org/>) is an open source web analytics platform which supports Icecast's log format, in Piwik version 2.0 or later. For your convenience, packages of Piwik for Debian and Ubuntu are provided in the <http://apt.sourcefabric.org> repository. If you have already configured your Airtime server for this repository, you can install the **piwik** package and its dependencies with the command:
Piwik (<http://piwik.org/>) is an open source web analytics platform which supports Icecast's log format, in Piwik version 2.0 or later. For your convenience, packages of Piwik for Debian and Ubuntu are provided in the <http://apt.sourcefabric.org> repository. If you have already configured your Libretime server for this repository, you can install the **piwik** package and its dependencies with the command:
sudo apt-get install piwik php5-geoip php5-cli mysql-server