О руководстве

Copyright (C) 2011 Sourcefabric o.p.s

Настоящее руководство было написано для Sourcefabric Даниэлем Джеймсом с использованием инструментов FLOSS Manuals. Ваши комментарии и дополнения можно оставить по адресу: http://en.flossmanuals.net/airtime/

Данная документация является бесплатной; вы можете распространять и/или модифицировать ее на условиях версии 3 лицензии GNU General Public License, опубликованной фондом Free Software Foundation..

Данная документация распространяется в надежде на то, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, даже без подразумеваемых, КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Более подробную информацию см. в лицензии GNU General Public License.

Вы должны были получить копию лицензии GNU General Public License вместе с настоящей документацией; в противном случае пишите по адресу: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


ОТКРЫТОЕ ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ GNU

Версия 3, 29 июня 2007 г.

Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>

Каждый имеет право копировать и распространять дословные копии данного лицензионного документа, при этом вносить изменения в него запрещено. 

Преамбула

Открытое лицензионное соглашение GNU это бесплатная разрешенная для копирования лицензия для программного обеспечения и других видов работ.

Цель создания лицензий для основного числа ПО и других разработок состоит в ограничении свободного распространения и изменения программ.  Открытое лицензионное соглашение GNU, напротив, предназначено для того, чтобы гарантировать вашу свободу делиться и изменять любые версии программы, сохраняя их свободными и доступными для всех пользователей. Мы, Фонд свободного ПО, используем Открытое лицензионное соглашение GNU для большинства наших продуктов. Оно применяется также для любых других разработок, чьи авторы разделяют наши принципы. Вы тоже можете использовать его для своих программ. 

Говоря о свободном ПО, мы говорим о свободе, а не о цене. Наши открытые лицензионные соглашения созданы для того, чтобы гарантировать вашу свободу в распространении копий свободного ПО (и, если вы хотите, назначать на него цену), что вы получаете исходный код или можете получить его, если захотите, что вы можете менять ПО или использовать его фрагменты в новых программах, и также, что вы знаете о том, что можете все это делать.

Для защиты ваших прав мы должны оградить вас от попыток отнять у вас эти права или заставить вас отказаться от них. Таким образом, у вас тоже есть определенные обязательства. Если вы распространяете копии данного программного обеспечения или изменяете его, вы обязаны уважать свободы других людей.

Например, если вы распространяете копии такой программы за деньги или бесплатно, вы должны передать получателям те же свободы, которыми пользуетесь сами. Вы должны обеспечить для них получение или возможность получения исходного кода. И вы должны ознакомить их с этими условиями, чтобы они знали свои права.

Разработчики, которые используют Открытое лицензионное соглашение GNU, защищают ваши права следующими двумя действиями:

1. Утверждают авторское право на ПО и

2. Предлагают вам эту лицензию, тем самым давая законное разрешение копировать, распространять и/или модифицировать его.

Для защиты разработчиков и авторов Открытое лицензионное соглашение GNU четко разъясняет, что на данное свободное ПО нет гарантий. Ради пользователей и авторов Открытое лицензионное соглашение GNU требует, чтобы модифицированные версии были обозначены как измененные, чтобы проблемы не были ошибочно приписаны авторам предыдущих версий.  

Некоторые устройства спроектированы таким образом, чтобы ограничить доступ пользователей к установке или запуску на них модифицированных версий ПО, хотя сами производители имеют такой доступ. Это абсолютно несовместимо с принципами защиты свободы пользователей изменять ПО. Систематический характер такого злоупотребления имеет место в области производства продукции для индивидуальных пользователей, что особенно неприемлемо. Поэтому мы разработали данную версию Открытого лицензионного соглашения GNU, чтобы запретить подобную практику. Если такие проблемы возникнут в других областях, мы готовы расширить действие данного положения на эти области в будущих версиях Открытого лицензионного соглашения GNU, чтобы защитить права пользователей.

Наконец, каждой программе угрожают патенты на ПО. Государства не должны позволять ограничение патентами разработки и использования ПО на компьютерах общего назначения. В тех государствах, где это все же имеет место, мы хотели бы избежать особой опасности, когда патенты, примененные к свободной программе, могут сделать ее патентованной. Чтобы избежать этого, Открытое лицензионное соглашение GNU гарантирует, что патенты не могут быть использованы в целях сделать программу несвободной.

Далее описаны точные условия для копирования, распространения и модификации программ. 
 

ПОСТАНОВЛЕНИЯ И УСЛОВИЯ

0. Определения.

"Данная лицензия" означает версию 3 Открытого лицензионного соглашения GNU.

"Авторское право" также обозначает законы, схожие с законами об авторском праве, применимые к другим видам разработок, как, например, слоям полупроводников.

"Программа" относится к любой работе, охраняемой авторским правом, лицензируемой по данной лицензии. К каждому владельцу лицензии относится обращение "вы".

Владельцы лицензии и получатели могут быть физическими и юридическими лицами.  
"Модифицировать" разработку означает копировать ее часть или адаптировать ее всю или часть в той форме, которая требует разрешения согласно авторскому праву в отличие от простого копирования. Получившая в результате работа называется "измененной версией" более ранней разработки или разработкой, основанной на более ранней версии.

"Лицензированная разработка" означает немодифицированную программу или разработку, основанную на программе.

"Распространять" разработку означает действия, которые, если они совершены без разрешения, могут сделать вас прямо или косвенно ответственным за нарушение закона об авторском праве, кроме случаев, когда вы выполняете программу на компьютере или изменяете частную копию. Распространение включает в себя копирование, распространение (с модификацией или без ее), опубликование ее и, в некоторых странах, другие действия.

"Передача" разработки означает любой способ распространения, в результате которого третьи лица смогут создавать или получать копии. Взаимодействие с пользователями через компьютерную сеть без передачи копии не является "передачей".

Интерактивный пользовательский интерфейс отображает "Соответствующие предусмотренные правом уведомления" в той степени, в которой они включает доступные и заметные функции, которые 1. Отображают соответствующее уведомление об авторском праве и 2. Сообщают пользователю, что на работу нет гарантий (кроме случаев, когда гарантия предоставляется); что владельцы лицензии могут передавать разработку согласно данной лицензии, и дают информацию о том, как увидеть копию данной Лицензии. Если интерфейс представляет список пользовательских команд или опций, например, меню, значимый пункт этого списка соответствует критерию. 
 

1. Исходный код.

"Исходный код" разработки обозначает предпочитаемую форму для создания изменений разработки. "Объектный код" обозначает любую форму разработки, не имеющую отношения к источнику.

"Стандартный интерфейс" означает интерфейс, который либо является официальным стандартом, определенным признанной организацией по стандартизации, либо, в случае интерфейсов, определенных для конкретного языка программирования, одним из стандартов, широко распространенных среди разработчиков, работающих на данном языке.

"Системные библиотеки" выполняемой программы включают все, что не относится к программе в целом, что a) включено в стандартный пакет Главного компонента, но не является его частью, b) служит только для использования этой программы с Главным компонентом или реализации Стандартного интерфейса, реализация которого доступна для пользователей в виде исходного кода. В этом контексте "Главный компонент" означает главный существенный компонент (ядро, система окон и т.д.) определенной операционной системы (если она имеется), в которой работает выполняемая программа, или компилятор, использованный для создания разработки, или интерпретатор объектного кода, использованный для запуска разработки. 

"Соответствующий исходный код" для разработки в форме объектного кода означает весь исходный код, необходимый для генерации, установки и (для исполняемых  разработок) запуска объектного кода и модификации разработки, в том числе, скрипты для контроля этих действий. Однако, он не содержит Системные библиотеки  разработки, инструменты общего назначения или свободно доступные программы, которые  использовались в немодифицированном виде, но не  являются частью разработки. Например, Соответствующий исходный код включает  файлы определения интерфейса, связанные с исходными файлами для разработки, и  исходный код для общих библиотек и динамически связанных подпрограмм, которые должна затребовать разработка, например, такие как прямая передача данных или поток управляющих команд между этими подпрограммами и другими частями разработки.

Соответствующий исходный код не обязан включать в себя что-либо, что пользователь  может автоматически сгенерировать из остальных частей Соответствующего исходного  кода. 

Соответствующий Исходный Код разработки в форме исходного кода - та же самая разработка. 
 

2. Основные права.

Все права, предоставленные данной Лицензией, действительны в течение срока действия авторских  прав на Программу и не подлежат изменениям при условии, что все поставленные условия  соблюдены. Данная Лицензия однозначно подтверждает Ваши неограниченные права на  использование немодифицированной Программы. Действие данной Лицензии на результат работы программы, защищённой данной Лицензией, распространяется только в том случае, если  результат подпадает под действие данной лицензии. Данная Лицензия признаёт ваши права законного использования или его эквивалент в соответствии с законом об авторских  правах.  

Вы можете создавать, запускать и тиражировать лицензированные разработки, которые  Вы не передаёте, без каких-либо условий до тех пор, пока лицензия остаётся в силе. Вы можете  передать лицензированные разработки третьим лицам с единственной целью получить от них модификации разработки исключительно для вас, либо для предоставления вам  возможностей для запуска этих разработок, однако, вы должны выполнять условия данной  Лицензии при передаче материалов, на которые не обладаете авторским правом. Третьи  лица, создающие или запускающие лицензированные разработки, должны делать это  исключительно от вашего имени, под вашим контролем, при этом им запрещено делать копии материалов, защищенных авторским правом, вне рамок вашей совместной деятельности.

Передача при любых других обстоятельствах разрешена исключительно при  соблюдении нижеуказанных условий. Сублицензирование запрещено; раздел 10 исключает  необходимость в этом.   
 

3. Защита юридических прав пользователей от недобросовестных действий.

Ни одна из лицензированных разработок не должна считаться частью эффективной  технологической меры в соответствии с любой применяемой правовой нормой, выполняющей обязательства согласно статье 11 или сходным законам, запрещающим или ограничивающим обход данных норм. 

Передавая лицензированную разработку вы отказываетесь от юридического права запрещать  обход технических мер, пока такой обход находится в рамках осуществления прав  согласно Лицензии в знак уважения к лицензированной разработке, и Вы  отказываетесь от любых намерений ограничить действие или модификацию  разработки как средств принуждения, направленных против пользователей разработки,  ваших законных прав и прав третьих лиц запретить обход технологических мер.   
 

4. Передача дословных копий.

Вы можете передавать точные копии исходного кода Программы в том виде, в котором вы  их получили, на любом носителе, при условии, что вы очевидно и адекватно размещаете уведомление об авторском праве на каждой копии; сохраняете нетронутыми  все уведомления, указывающие, что данная Лицензия и любые неразрешающие условия,  добавленные в соответствии с Разделом 7, применимы к коду; сохраняете  нетронутыми все уведомления об отсутствии гарантий; предоставляете всем  получателям копию данной Лицензии вместе с Программой. 

Вы можете установить любую цену, либо не устанавливать цены за каждую копию,  которую Вы передаёте, Вы также можете предлагать техническую поддержку или  гарантии за определенную плату.   
 

5. Передача модифицированных версий источника.

Вы можете передавать разработку, основанную на Программе, или ее модификации  в форме исходного кода согласно условиям Раздела 4, при условии, что вы  выполняете следующие требования:

Компиляция лицензированной разработки с другими отдельными и независимыми  разработками, которые по своей природе не являются расширениями лицензированной  разработки и не соединены с ней, например, для формирования более крупной программы на  носителе хранения или распространения, называется "агрегатом", если компиляция и её  результирующие авторские права не используются для ограничения доступа и юридических прав пользователя  компиляции относительно исходной разработки. Включение лицензированной разработки  в агрегат не распространяет действие данной Лицензии на остальные части  агрегата. 

6. Передача Неисходных форм.

Вы можете передавать лицензированную разработку в  форме объектного кода на условиях, оговоренных в Разделах 4 и 5, в том случае, если вы также передаёте машиночитаемый  Соответствующий исходный код на условиях данной Лицензии, одним из следующих  способов:   

Не нужно включать в передачу разработки в форме объектного кода  отделимые части объектного кода, чей исходный код исключён из Соответствующего  Исходного Кода как Системная Библиотека.  

"Пользовательский Продукт" это либо (1) "потребительский товар", что означает  любые формы материального личного имущества, которые используются для личных,  семейных или бытовых целей, либо (2) что-либо разработанное или продающееся для  установки в домашних условиях. При определении, является ли продукт потребительским товаром,  случаи, вызывающие сомнения, будут решены в пользу лицензирования. Для конкретного  продукта, полученного конкретным пользователем, "обычное использование"  относится к типичному или распространённому использованию такого типа продуктов,  безотносительно статуса конкретного пользователя или того, как конкретный  пользователь использует, или рассчитывает, или будет использовать продукт. Продукт  является потребительским товаром вне зависимости от того, имеет ли он существенные  коммерческое, промышленное или непотребительское применение до тех пор, кроме случаев, когда такое  применение является единственно возможным.

"Установочная информация" Пользовательского продукта означает любые методы,  процедуры, ключи авторизации и другую информацию, необходимую для установки и исполнения модифицированных версий лицензированной разработки в Пользовательском продукте  из модифицированной версии его Соответствующего исходного кода. Объем информации должен  быть достаточным для гарантирования того, что работа  изменённого объектного кода ни в каком случае не пострадает из-за  произведённых изменений.  

Если вы передаёте объектный код, согласно данному Разделу, как часть Пользовательского продукта, вместе с продуктом или специально для использования в продукте, и передача проходит как часть сделки, в  которой права владения и использования Пользовательского продукта переходят  получателю пожизненно, либо на определённый срок (вне зависимости от того, как  характеризуется сделка), Соответствующий исходный код, передаваемый согласно  данной главе, должен сопровождаться Информацией для установки программы. Но данное требование  не действует в том случае, если ни вы, ни третьи лица, не обладаете возможностью установки  измененного объектного кода на Пользовательский продукт (например, разработка  установлена в ROM).  

Требование предоставления Информации для установки программы не включает в себя требование  предоставления поддержки, гарантии или обновлений для разработки, которая была  изменена либо установлена получателем, или для Пользовательского продукта,  в котором разработка изменена или установлена. Доступ к сети может быть  запрещён, если сама модификация существенно и негативно влияет на работу сети, либо  нарушает правила и протоколы передачи данных в сети.  

Предоставленные Соответствующий исходный код и Информация для установки программы, в  соответствии с данной главой, должны быть в открытом формате (с  реализацией, доступной в форме исходного кода) и не должны запрашивать пароль или ключ для распаковки, чтения или копирования.   
 

7. Дополнительные Условия.

"Дополнительные разрешения" - это условия, которые дополняют условия данной Лицензии в виде исключений из одного или нескольких ее условий. Дополнительные разрешения,  применимые ко всей Программе, должны рассматриваться так, как если бы они были  включены в данную Лицензию, до той степени, в которой они действительны согласно применимому  закону. Если дополнительные разрешения применяются только к части Программы, эта  часть может быть использована отдельно, согласно этим разрешениям, но вся Программа  остается регулируемой данной лицензии без учёта дополнительных разрешений.  

Когда Вы передаёте копию лицензированной разработки, Вы можете по своему усмотрению убрать любые  дополнительные разрешения из этой копии или из любой её части. (Дополнительные  разрешения могут требовать их удаления в конкретных случаях, если вы изменяете  разработку.) Вы можете добавить дополнительные разрешения к материалам,  добавленным вами в лицензированную разработку, и на которые вы имеете или можете  предоставить авторское право.  

Несмотря на любые другие положения данной Лицензии, на материал, добавленный  вами к лицензированной разработке, вы можете (если разрешено обладателями  авторских прав на материал) дополнить условия данной Лицензии следующими  условиями:    

Все остальные не разрешающие дополнительные условия рассматриваются как  "дополнительные запреты", в пределах контекста Раздела 10. Если Программа в том  виде, в котором вы её получили, либо её часть, содержит уведомление о том, что она защищена данной Лицензией и при этом содержит  дополнительные запреты, вы можете удалить это условие. Если документ лицензии  содержит дополнительные запреты, но допускает повторное лицензирование или  передачу на условиях данной Лицензии, вы можете добавить к лицензированной  разработке материал, защищённый условиями того лицензионного документа, при  условии, что дополнительный запрет не сохраняется при таком повторном  лицензировании или передаче.  

Если вы добавляете условия в лицензированную разработку в соответствии с данным  разделом, вы должны добавить в соответствующие исходные файлы примечание о том,  что к этим файлам применяются дополнительные условия, а также примечание о том, где  искать данные соответствующие условия. 

Дополнительные условия, разрешающие либо не разрешающие, могут быть изложены в  форме отдельной лицензии, либо изложены как исключения; перечисленные выше  требования применяются в любом случае. 
 

8. Прекращение действия лицензии.

Вы не можете тиражировать или изменять лицензированную разработку за исключением  случаев, четко изложенных в условиях данной Лицензии. Любая попытка тиражирования  или изменения разработки недействительна и автоматически лишает вас всех прав,  гарантируемых данной Лицензией (включая любые патенты, предоставленные Лицензией  согласно третьему параграфу Раздела 11). 

Однако, если вы прекращаете нарушать Лицензию, ваша лицензия от  конкретного обладателя авторского права восстанавливается (а) условно, если или до тех пор,  пока обладатель авторского права не прекратит действие вашей  лицензии явно и окончательно, и (б) окончательно, если обладатель авторского права не сможет  уведомить вас о нарушении посредством приемлемых средств в течение 60 дней с  момента прекращения нарушений.  

Кроме того, ваша лицензия от конкретного обладателя авторского права  восстанавливается окончательно, если обладатель авторского права  уведомляет вас о нарушении с помощью надлежащих средств, но вы впервые получаете  уведомление о нарушении данной Лицензии (для любой разработки) от этого обладателя  авторского права и устраняете нарушение в течение 30 дней после получения  уведомления.  

Окончание ваших прав согласно этому разделу не прекращает действие лицензий сторон,  которые получили от вас копии или права по этой Лицензии. Если ваши права  закончились и не восстановлены постоянно в прежнем режиме, у вас нет права  получать новые лицензии для сходных разработок согласно разделу 10.  
 

9. Согласие, не требуемое для создания копий.

Вы не обязаны соглашаться с данной Лицензией для того, чтобы получить или запустить копию  Программы. Добавочное распространение лицензированной разработки,  происходящее исключительно как результат передачи от пользователя к  пользователю для получения копии, также не требует соглашения. Однако,  только данная Лицензия даёт вам права тиражирования или изменения любых  лицензированных разработок. Такие действия нарушают авторское право, если вы не  приняли условия данной Лицензии. Поэтому, изменяя или тиражируя лицензированную  разработку, вы подтверждаете своё согласие с данной Лицензией. 
 

10. Автоматическое лицензирование последующих получателей.

Каждый раз, когда вы передаёте лицензированную разработку, получатель  автоматически получает от первоначального лицензиара лицензию на запуск, изменение  и тиражирование разработки, регулируемой данной Лицензией. Вы не отвечаете за соблюдение условий данной Лицензии третьими лицами.  

"Сделка по организации" - сделка, передающая контроль над организацией или практически  всеми активами, деление организации или слияние организаций. Если тиражирование  лицензированной разработки является результатом сделки по организации, каждая сторона  сделки, получающая копию разработки, также получает все лицензии на разработку,  которые предшественник стороны имел или мог выдать согласно предыдущему  параграфу, плюс право владения Соответствующим исходным кодом разработки от  предшественника, если он обладал Соответствующим исходным кодом, либо мог  получить его при некоторых разумных усилиях.  

Вы не можете налагать никакие дополнительные запреты на осуществление прав,  выданных или подтверждённых согласно данной Лицензии. Например, вы не можете  налагать лицензионные сборы, авторский гонорар, или другие виды выплат за  осуществление прав, предоставленных согласно данной Лицензии, и вы не можете  инициировать судебный процесс (в том числе перекрестный или встречный иск в  судебном процессе) на основании того, что любое патентное требование нарушено путём  создания, использования, продажи, предложения продажи или импортирования  Программы либо любой её части.    
 

11. Патенты.

"Спонсор" – обладатель авторского права, разрешающий использование Программы либо  разработки, на которой основана Программа, согласно данной Лицензии. Разработка,  лицензированная таким образом, называется "версией спонсора".  

"Основные патентные требования" спонсора это все патентные требования во владении или под контролем спонсора, приобретённые либо планируемые для приобретения, которые  будут нарушены тем или иным образом, допускающимся данной Лицензией, включая  создание, использование или продажу версии спонсора, но исключая требования,  которые будут нарушены только в форме совокупности будущих изменений версии  спонсора. Для данного определения, "контроль" включает в себя право выдавать  патентные сублицензии в форме, соответствующей требованиям данной Лицензии. 

Каждый спонсор выдаёт вам неэксклюзивные, международные, свободные от  отчислений патентные лицензии, согласно основным патентным требованиям спонсора,  на использование, продажу, предложение продажи, импортирования и запуска,  изменения и тиражирования содержимого версии вкладчика.   
В следующих трёх разделах, "патентная лицензия" - любое точно сформулированное соглашение или  обязательство не применять патент (такое, например, как сформулированное разрешение на использование  патента или соглашение не подавать исков за нарушение патента).  

"Выдать" такую патентную лицензию одной из сторон означает заключить такое  соглашение или обязательство не применять патент против этой стороны.  Если вы передаёте лицензированную разработку, сознательно основываясь на  патентной лицензии, и при этом Соответствующий исходный код разработки не доступен  никому для копирования бесплатно, и в соответствии с условиями данной Лицензии  через Публичный сервер или другие легкодоступные методы, вы должны (1) сделать так,  чтобы Соответствующий исходный код был доступен, либо (2) лишить себя патентной  лицензии для данной конкретной разработки, либо (3) оговорить соответствующим  данной Лицензии образом расширение действия патентной лицензии для последующих  получателей.

"Сознательно основываясь" означает, что вам известно о том, что, кроме патентной лицензии, ваша передача лицензированной разработки в стране либо использование  лицензированной разработки получателями в стране, нарушит один или более опознаваемый патент в данной стране, которые вы имеете основания считать  действительными.  

Если в соответствии или в связи с конкретной сделкой или соглашением вы передаёте или распространяете путём передачи лицензированную разработку и предоставляете одной из сторон получателей патентную лицензию, давая им  право использовать, распространять, изменять или передавать конкретную копию  лицензионной разработки, в этом случае патентная лицензия, которую вы  предоставляете, автоматически распространяется на всех получателей лицензированной  разработки и разработок, основанных на ней.

Патентная лицензия является "умаляющей в правах", если она не включает в свою область  применения, запрещает осуществление или обусловлена неосуществлением одного или  более прав, которые гарантированно даются согласно данной Лицензии. 
Вы не можете  передавать лицензированную разработку, если вы одна из сторон соглашения с третьей  стороной, которая занимается распространением ПО, по которому вы производите  выплату третьему лицу в зависимости от степени вашего участия в осуществлении передач, и согласно  которому третье лицо выдаёт любой стороне, получающей от вас лицензированную разработку, умаляющую в правах патентную лицензию (а) вместе с копиями лицензированной  разработки, переданными вами (или копиями, сделанными с этих копий), или (б) вместе с  конкретными продуктами или компиляциями, содержащими лицензированную разработку, в  случае, если вы не вступили в соглашение, или патентная лицензия не предоставлена до  28 марта 2007 г.  

Ничто в данной Лицензии не должно рассматриваться как исключение или ограничение  любой подразумеваемой лицензии или других способов противодействия нарушениям,  которые в других случаях могут быть доступны для вас согласно применимому  патентному закону. 

12. Запрет на отказ в праве на свободу.

Если вам навязываются условия (судебным запросом, соглашением или другим  способом), которые противоречат условиям этой Лицензии, они не освобождают вас от  выполнения условий этой Лицензии. Если вы не можете передать лицензированную  работу так, чтобы удовлетворить одновременно ваши обязательства по этой Лицензии и  любые другие относящиеся к делу обязательства, тогда, как следствие, вы можете не передавать  ее вообще. Например, если вы согласны с условиями, которые обязывают вас собирать  авторский гонорар для дальнейшей передачи с тех лиц, которым вы передаете  Программу, единственный способ, которым вы могли бы удовлетворить эти условия и  данную Лицензию - полностью устраниться от передачи Программы.   

13. Использование с Усиленным открытым лицензионным соглашением (GNU Affero).

Несмотря на любые другие положения настоящей Лицензии, вы имеете разрешение  подключать или совмещать любую лицензированную разработку с разработкой,  лицензированной согласно версии 3 Усиленного открытого лицензионного соглашения (GNU Affero) в единую комбинированную разработку и передавать её. Условия данной  Лицензии будут по-прежнему применяться к той части, которая является разработкой, но  специальные требования Раздела 13 усиленного соглашения GNU Affero, касающиеся взаимодействия  через компьютерную сеть, будут применяться ко всей объединённой разработке.

14. Исправленные версии данной Лицензии.

Фонд Свободного программного обеспечения может время от времени публиковать  пересмотренные и/или новые версии Открытого лицензионного соглашения GNU. Такие  пересмотренные версии будут схожи по духу с нынешней версией, но могут отличаться в  деталях, чтобы соответствовать новым проблемам и вопросам.  

Каждой версии выдаётся отличительный номер. Если в Программе указано,  что конкретный номер версии Открытого лицензионного соглашения GNU "или любая более  поздняя версия" применима к ней, у вас есть выбор либо следовать условиям версии под указанным номером, либо более поздних версий, опубликованных Фондом свободного программного  обеспечения.

Если программа не указывает номер версии Открытого лицензионного соглашения GNU, вы можете выбрать любую версию, когда-либо опубликованную Фондом.  Если программа уточняет, что уполномоченный представитель может решать, какая из  будущих версий Открытого лицензионного соглашения GNU может быть использована,  публичное заявление этого представителя о принятии версии на постоянной основе даёт  вам право выбрать эту версию для Программы.  

Следующие версии лицензии могут давать вам дополнительные или другие разрешения.  Однако, никакие дополнительные обязательства не будут возлагаться на автора или  обладателя авторских прав, если вы  решите следовать более поздним версиям.   
 

15. Отказ от гарантии.

НА ПРОГРАММУ ОТСУТСТВУЕТ ГАРАНТИЯ В ДОПУСКАЕМЫХ ЗАКОНОМ ПРЕДЕЛАХ.  ЗА ИСКЛЮЧЕНИЕМ ТЕХ СЛУЧАЕВ, КОГДА ПИСЬМЕННО УКАЗАНО ОБРАТНОЕ,  ОБЛАДАТЕЛИ АВТОРСКОГО ПРАВА И/ИЛИ ДРУГИЕ СТОРОНЫ ПОСТАВЛЯЮТ  ПРОГРАММУ "В ТАКОМ ВИДЕ, В КАКОМ ОНА ЕСТЬ" БЕЗ КАКОЙ БЫ ТО НИ БЫЛО ГАРАНТИИ, ЯВНОЙ ИЛИ  ПОДРАЗУМЕВАЕМОЙ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯ, ПОДРАЗУМЕВАЕМЫЕ  ГАРАНТИИ, НЕОБХОДИМЫЕ ПРИ ТОРГОВЛЕ И ОБЯЗАТЕЛЬНЫЕ ДЛЯ ДРУГИХ  КОНКРЕТНЫХ ЦЕЛЕЙ. ВЫ БЕРЕТЕ НА СЕБЯ ВЕСЬ РИСК ЗА КАЧЕСТВО И  РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ. ЕСЛИ ПРОГРАММА ОКАЖЕТСЯ НЕИСПРАВНОЙ,  ВЫ НЕСЕТЕ ВСЕ РАСХОДЫ ПО НЕОБХОДИМОМУ ОБСЛУЖИВАНИЮ, РЕМОНТУ ИЛИ  КОРРЕКТИРОВКЕ. 

16. Ограничение ответственности.

НИ В КАКИХ СЛУЧАЯХ, КРОМЕ ПОДПАДАЮЩИХ ПОД ДЕЙСТВИЕ ПРАВОВОЙ НОРМЫ ИЛИ СОГЛАСОВАННЫХ В  ПИСЬМЕННОЙ ФОРМЕ, ЛЮБОЙ ОБЛАДАТЕЛЬ АВТОРСКОГО ПРАВА ИЛИ ДРУГОЕ ЛИЦО,  КОТОРЫЕ ИЗМЕНЯЮТ И РАСПРОСТРАНЯЮТ ПРОГРАММУ В СООТВЕТСТВИИ С УКАЗАННЫМИ ВЫШЕ УСЛОВИЯМИ,  БУДУТ НЕСТИ ОТВЕТСТВЕННОСТЬ ПЕРЕД ВАМИ ЗА НАНЕСЕННЫЙ ПРОГРАММОЙ  УЩЕРБ, ВКЛЮЧАЯ ЛЮБОЙ УЩЕРБ ОБЩЕГО ХАРАКТЕРА, СПЕЦИАЛЬНЫЙ,  СЛУЧАЙНЫЙ ИЛИ ЯВЛЯЮЩИЙСЯ СЛЕДСТВИЕМ ПОВРЕЖДЕНИЯ, ВЫЯВЛЕННОГО  ПРИ ИСПОЛЬЗОВАНИИ ПРОГРАММЫ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАТЬ  ПРОГРАММУ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПОТЕРЕЙ ДАННЫХ ИЛИ ИХ НЕПРАВИЛЬНОЙ  ПЕРЕДАЧЕЙ ИЛИ ПОТЕРЕЙ, КОТОРУЮ ПОНЕСЛИ ВЫ ИЛИ ТРЕТЬЯ СТОРОНА, ИЛИ  НЕСПОСОБНОСТЬЮ ПРОГРАММЫ ВЗАИМОДЕЙСТВОВАТЬ С ДРУГИМИ  ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ВЛАДЕЛЕЦ ИЛИ ТРЕТЬЯ СТОРОНА  БЫЛИ УВЕДОМЛЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА. 

17. Интерпретация Разделов 15 и 16.

Если отказ от гарантии или ограничение ответственности, представленные выше, не  могут иметь юридической силы в вашем государстве, кассационные суды должны применить  местное законодательство, которое наиболее приближено к абсолютному отказу от всей гражданской  ответственности в связи с Программой, исключая случаи, когда гарантия или принятие  ответственности сопровождают копию Программы за плату.  

КОНЕЦ УСЛОВИЙ

Add Media (Добавить медиа-файл)

Если у вас нет доступа к скрипту airtime-import на сервере, вы можете добавлять файлы в базу данных Airtime, используя страницу Add Media (Добавить медиа-файл) в интерфейсе администрирования. Эта страница включает очередь загрузки файлов, которая поддерживает функцию перетаскивания файлов из файлового менеджера вашего компьютера, если вы используете рекомендуемый веб-браузер Firefox 3.6.

Страница Add Media (Добавить медиа-файл) не видна пользователям-Гостям.

Если ваш веб-браузер не поддерживает перетаскивание файлов, вы можете использовать кнопку Add files (Добавить файлы), на которой имеется значок в виде белого плюса в зеленом круге, чтобы открыть окно выбора файлов на вашем компьютере.
 


После добавления в очередь загрузки всех нужных вам файлов нажмите кнопку Start upload (Начать загрузку), на которой изображен значок в виде зеленой стрелки.

Строка загружаемого в данный момент файла выделяется светло-зеленым цветом. В нижней части окна очереди загрузки имеется индикатор выполнения, показывающий, какая часть загрузки в процентах уже выполнена.

Как только загрузка файла успешно завершается, в строке каждого файла отображается значок в виде белой галочки в зеленом круге.

 

Теперь ваши файлы импортированы в базу данных Airtime и готовы для включения в списки воспроизведения для вещания.

Автоматический импорт файлов

Скрипт airtime-import может использоваться в комбинации со стандартной программой SFTP (безопасное FTP-соединение) и с демоном cron на сервере под GNU/Linux для автоматизированного импорта файла с нескольких удаленных ПК. Это экономит время ваших сотрудников при использовании методов распределенного производства или одновременной публикации контента. 

Традиционные FTP-серверы используют простые текстовые пароли (без шифрования), поэтому не рекомендуется использование учетных записей на них для загрузки файлов на серверы Airtime, доступные через Интернет. SFTP является кроссплатформенным протоколом, который работает со многими программами для ПК, включая gFTP для GNU/Linux (http://www.gftp.org/), которая может быть установлена на ПК под Debian или Ubuntu с помощью команды:

 $ sudo apt-get install gftp

Другие популярные клиенты SFTP включают FileZilla для Windows (http://filezilla-project.org/) и Cyberduck для Mac и Windows (http://cyberduck.ch/).

Чтобы включить режим закачки по протоколу SFTP, сначала запустите процесс adduser, чтобы создать учетную запись uploads (закачки) на сервере. В целях безопасности данная учетная запись создается исключительно для использования SFTP; она не может быть использована для выполнения общих команд в исходном командном процессоре.

$ sudo adduser --home /srv/airtime/uploads --shell /usr/lib/sftp-server uploads 

Затем сервер предложит вам ввести пароль для нового пользователя uploads (закачек) и снова ввести его для подтверждения. Безопасность вашего сервера Airtime зависит от надежности пароля, который вы установите, поэтому обязательно используйте длинный и сложный пароль, применяя верхний регистр, нижний регистр и цифровые символы. Для этой учетной записи нет необходимости указывать полное имя или другие данные.  

Adding user `uploads' ...
Adding new group `uploads' (1003) ...
Adding new user `uploads' (1002) with group `uploads' ...
Creating home directory `/srv/airtime/uploads' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for uploads
Enter the new value, or press ENTER for the default
    Full Name []:
    Room Number []:
    Work Phone []:
    Home Phone []:
    Other []:
Is the information correct? [Y/n] Y

Затем создайте каталог для хранения входящих файлов:

 $ sudo mkdir /srv/airtime/uploads/incoming/

Затем создайте скрипт для запуска процесса каждый час:

 $ sudo nano /etc/cron.hourly/airtime-upload 

Скрипт должен импортировать вновь загружаемые файлы из указанного каталога для входящих файлов, используя опцию  copy (копирование), а затем удалять оригинальные загруженные файлы. Такая мера, в отличие от простого использования опции watch (просмотр)  в папке /srv/airtime/uploads/incoming/, гарантирует, что учетная запись SFTP uploads не будет иметь прямого доступа для записи файлов на сервер Airtime для хранения данных. Это создавало бы угрозу безопасности в случае взлома пароля.     

#!/bin/sh

# Run the import script on fresh uploads

airtime-import copy /srv/airtime/uploads/incoming/

# Clean the incoming directory to save disk space

rm -r /srv/airtime/uploads/incoming/*.mp3
rm -r /srv/airtime/uploads/incoming/*.ogg

Наконец, скрипт следует сделать исполняемым, чтобы демон cron мог запустить его.

$ sudo chmod +x /etc/cron.hourly/airtime-upload

По умолчанию Debian и Ubuntu GNU/Linux запускают процесс выполнения запланированных в cron.hourly задач в 17 минут каждого часа. При необходимости время можно настроить в файле /etc/crontab на сервере.

Удаленные пользователи должны подключаться к серверу Airtime, используя предпочитаемое клиентское ПО и убедившись, что они указывают SFTP, а не FTP-соединение. Удаленным каталогом для использования клиентами будет каталог /srv/airtime/uploads/incoming/ в соответствии с настройками выше.


Для большей безопасности вы можете при настройке сервера Airtime вместо пароля установить необходимость использовать пары ключей шифрования для учетной записи uploads. О том, как это сделать на сервере Ubuntu, можно прочитать здесь: https://help.ubuntu.com/community/SSH/OpenSSH/Keys.

 

Автоматизированная установка

Этот метод установки предназначен для компьютеров, на которых установлена операционная система Ubuntu или Debian GNU/Linux, а также рекомендуется для производственных систем Airtime. Если ранее вы устанавливали Airtime на сервер вручную, вам понадобится запустить скрипт airtime-uninstall, чтобы удалить его перед тем, как настраивать сервер для автоматизированной установки. 

Репозитории установки для Ubuntu

При установке программы на сервере под Ubuntu, несколько пакетов, необходимых для работы Airtime, размещаются в репозиториях Ubuntu universe или multiverse. Если какое-либо из этих хранилищ отключено, вы можете включить их в файле /etc/apt/sources.list, открыв редактор nano в консоли вашего сервера. Редактор nano должен быть установлен по умолчанию, но если его нет, вы можете установить его при помощи команды:

$ sudo apt-get install nano  

Затем откройте файл sources.list file при помощи команды:

$ sudo nano /etc/apt/sources.list
Для сервера под Ubuntu Lucid найдите строки, которые начинаются с deb и заканчиваются на lucid universe или lucid-updates universe, добавляя multiverse в конце этих строк, если его там нет. Репозиторий multiverse требуется для библиотеки libmp3lame0, которая является кодировщиком в MP3. 

Точные адреса зеркал репозиториев в вашем файле sources.list будут отличаться от адресов на приведенном выше скриншоте в зависимости от вашего местоположения.

Репозиторий Sourcefabric содержит пакеты для Airtime и любые другие пакеты, которые требуются для работы Airtime. Чтобы добавить репозиторий Sourcefabric на сервер под Ubuntu Lucid, пролистайте файл sources.list до конца и добавьте следующую строку:

deb http://apt.sourcefabric.org/ lucid main

Для Ubuntu Maverick, Natty илиOneiric, вставьте maverick, natty или oneiric вместо lucid в вышеуказанной строке.

Нажмите сочетание клавиш Ctrl+O (клавишу Ctrl и букву O вместе) чтобы сохранить файл, а затем Ctrl+X для выхода из редактора nano.

Репозитории установки для Debian

На сервере под Debian Squeeze вы можете отредактировать файл /etc/apt/sources.list при помощи команды:

# nano /etc/apt/sources.list

Пакеты для кодирования в MP3 не входят в официальные репозитории установки Debian. Вы можете получить нужные пакеты libmp3lame0 и libmp3lame-dev, добавив следующий репозиторий в конце файла:

deb http://www.debian-multimedia.org squeeze main non-free

Чтобы добавить репозиторий Sourcefabric на сервер под Debian Squeeze, добавьте следующую строку в конец файла:

deb http://apt.sourcefabric.org/ squeeze main

Нажмите Ctrl+O (клавиш Ctrl и букву О вместе), чтобы сохранить файл, а затем Ctrl+X для выхода из редактора nano.

Установка ключа подписи Sourcefabric  

Перезагрузите список пакетов системы при помощи команды:

$ sudo apt-get update

Вы увидите сообщение об ошибке – отсутствии открытого ключа.




Чтобы исправить эту системную ошибку, вам нужно установить пакет sourcefabric-keyring, который содержит ключ для подписи пакета. Этот ключ шифрования – мера безопасности, которая помогает гарантировать, что пакеты Airtime, которые вы будете загружать в будущем, не были изменены третьей стороной. Вы можете установить ключ командой:
$ sudo apt-get install sourcefabric-keyring

В ответ на запрос нажмите кнопку у на клавиатуре, чтобы установить пакет sourcefabric-keyring без проверки. Если вы хотите проверить подлинность ключа для подписи пакета, пожалуйста, свяжитесь с Sourcefabric для получения помощи.



Обновите исходные коды ПО вашего компьютера еще раз, чтобы подтвердить, что вы в настоящее время используете доверенный репозиторий ПО:

$ sudo apt-get update 
Сообщение об ошибке отсутствия открытого ключа больше появляться не должно.

Установка системы управления базами данных  

Airtime использует базу данных PostgreSQL для отслеживания медиа-архивов и связанных с ними метаданных на сервере-хранилище. В зависимости от уровня вашей установки Airtime и имеющегося аппаратного обеспечения, вы можете при желании установить PostgreSQL на отдельном сервере. Если у вас только один сервер, вы можете установить пакет postgresql на той же машине, что и Airtime, с помощью команды:

$ sudo apt-get install postgresql

Установка потокового сервера

По желанию вы можете направлять поток прямо из Airtime на дистрибуционный мультимедийный сервер Icecast, для чего не требуется наличие звуковой карты или микшера в радиовещательной цепи. Этот вариант особенно подходит для полностью автоматизированных станций, на которых все программы выходят в эфир с использованием Airtime. Вы можете установить пакет icecast2 на вашем сервере с помощью команды:

$ sudo apt-get install icecast2 

В некоторых случаях поток из Airtime должен направляться на удаленный сервер Icecast, например, когда Icecast установлен на сервере в центре обработки данных с большей пропускной способностью, чем у сервера Airtime, находящегося в вашей студии вещания. Такое разделение может стать необходимым, если ваш поток становится популярным, потому что каждый дополнительный слушатель, который подключается к потоку Icecast, использует дополнительную пропускную способность. В этом случае вам не нужно устанавливать пакет icecast2 на сервере Airtime.

Перед тем, как запустить Icecast в первый раз, вы должны отредактировать файл  /etc/icecast2/icecast.xml, а именно, заменить значение  'hackme' в <source-password>, <relay-password> и <admin-password> на что-то более надежное.

$ sudo nano /etc/icecast2/icecast.xml

Вы также должны установить доменное имя сервера Icecast в качестве значения для  <hostname>, например:

<hostname>icecast.example.com</hostname>

Сохраните и закройте файл icecast.xml сочетанием клавиш Ctrl+O и Ctrl+X. Затем установите автоматическое начало работы для Icecast при загрузке сервера: в файле /etc/default/icecast2:

$ sudo nano /etc/default/icecast2

указав true для значения ENABLE в последней строке данного файла:

ENABLE=true

Сохраните и закройте файл сочетанием клавиш Ctrl+O и Ctrl+X и запустите Icecast:

$ sudo service icecast2 start

Ответ сервера должен быть следующим:

Starting icecast2: Starting icecast2
Detaching from the console
icecast2.

Установка Airtime

Теперь вы можете инсталлировать пакет Airtime при помощи команды:

$ sudo apt-get install airtime

Эта команда установит все компоненты Airtime и любые другие пакеты, которые потребуются Airtime для работы.

$ sudo apt-get install airtime
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Suggested packages:
  airtime-audio-samples lame mpg123
The following NEW packages will be installed
  airtime
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/15.6MB of archives.
After this operation, 73.1MB of additional disk space will be used.
Preconfiguring packages ...
Selecting previously deselected package airtime.
(Reading database ... 400129 files and directories currently installed.)
Unpacking airtime (from .../airtime_1.9.4-10_amd64.deb) ... 

После того как все пакеты были загружены и установлены, вам будет задано несколько вопросов о конфигурации системы AirtimeВы можете принять настройки по умолчанию, нажав клавишу ввода (Enter), или использовать клавишу табуляции (Tab), чтобы изменить свой выбор.

Во-первых, вам будет задан вопрос о том, хотите ли вы автоматически создать конфигурацию виртуального хоста Apache.

Если это так, то вам нужно ввести доменное имя, которое будет использовать персонал вашей станции для доступа к Airtime. Для тестового сервера, доступ к которому будет осуществляться только непосредственно с этой же машины, вы можете использовать задаваемое здесь по умолчанию значение рабочей станции пользователя localhost.

Далее, установите контактный адрес электронной почты администратора сервера, что рекомендуется на случай каких-либо проблем с сервером. Для тестового сервера допустимо использование адреса рабочей станции пользователя.

Серверы под Debian и Ubuntu создаются с настройками Apache по умолчанию, что может заблокировать доступ персонала станции к Airtime. По вашему желанию эта конфигурация по умолчанию может быть удалена автоматически.

Если вы настраиваете Airtime подавать поток напрямую на Icecast без использования звуковой карты, вы можете использовать имя хоста и пароль для сервера Icecast в процессе установки Airtime. 

Прежде всего, назначьте имя хоста сервера Icecast. Если Icecast установлен на одной машине с Airtime, вы можете использовать localhost.


Безопасность вашего потокового сервера зависит от выбранного вами пароля. Вы должны использовать сильные пароли для доступа source, relay и admin.


Наконец, вам будет задан вопрос о часовом поясе, в котором находится ваша станция. Список часовых поясов вы найдете в Приложениях к данной книге.


В некоторых версиях GNU/Linux вы также можете быть предупреждены об обновлении пакета rabbitmq-server, даже если вы его никогда не устанавливали. Если RabbitMQ используется Airtime только на вашем сервере, можно спокойно нажимать клавишу ввода Enter для продолжения.   


После этого установочный пакет Airtime запустит скрипт для проверки правильности настройки вашей сетевой среды.

 *** Verifying your system environment ***
CPU                            = Dual Core AMD Opteron(tm) Processor 170
Total RAM                      = 6128244 kB
Free RAM                       = 167276 kB
OS                             = Ubuntu 10.04.3 LTS x86-64
AIRTIME_CONFIG_FILES           = OK
POSTGRESQL_DATABASE            = OK
PYTHON_KOMBU_VERSION           = 1.2.0
PYTHON_POSTER_VERSION          = 0.8.1
PYTHON_MUTAGEN_VERSION         = 1.20
PYTHON_PYINOTIFY_VERSION       = 0.9.2
RABBITMQ_SERVER                = OK
AIRTIME_VERSION_URL            = http://localhost:80/api/version/api_key/%%api_key%%
APACHE_CONFIGURED              = YES
AIRTIME_VERSION                = 1.9.4
PLAYOUT_ENGINE_PROCESS_ID      = 24021
PLAYOUT_ENGINE_RUNNING_SECONDS = 7
LIQUIDSOAP_PROCESS_ID          = 24025
LIQUIDSOAP_RUNNING_SECONDS     = 7
MEDIA_MONITOR_PROCESS_ID       = 24078
MEDIA_MONITOR_RUNNING_SECONDS  = 7
SHOW_RECORDER_PROCESS_ID       = 24055
SHOW_RECORDER_RUNNING_SECONDS  = 7
ICECAST_PROCESS_ID             = 23649

  -- System setup looks OK!

********************** Install Complete ***********************

Вы готовы перейти к главе Настройка.

Резервное копирование сервера

Следующие команды исходного процессора могут быть использованы для резервного копирования и восстановления баз данных на сервере под управлением PostgreSQL в системе Airtime.

Следующие команды исходного процессора могут быть использованы для резервного копирования и восстановления баз данных на сервере под управлением PostgreSQL в системе Airtime. 

$ sudo -u postgres pg_dumpall | gzip -c > airtime-backup.gz 

Эта команда может быть автоматизирована для выполнения ее на регулярной основе путем использования стандартного инструмента cron на вашем сервере. 

При восстановлении рабочей базы данных в заново установленной системе Airtime может понадобиться сбросить пустую базу данных, которая была создана во время новой установки, с помощью команды dropdb. Опять же, эта команда выполняется с помощью команды sudo от имени пользователя postgres

$ sudo -u postgres dropdb airtime

Вышеуказанная команда dropdb необходима для того, чтобы избежать ошибок типа 'already exists' («уже существует») при создании таблиц во время перезаписи пустой базы данных Airtime в следующем шаге. Эти ошибки могут препятствовать восстановлению некоторых данных, таких как данные учетной записи пользователя.

Для восстановления данных сначала распакуйте резервный файл при помощи команды gunzip, а затем используйте команду psql как пользователь postgres:

$ gunzip airtime-backup.gz
$ sudo -u postgres psql -f airtime-backup postgres 

Теперь у вас есть возможность войти в веб-интерфейс Airtime в обычном режиме.

По соображениям безопасности, ваши регулярные резервные копии баз данных должны храниться в каталоге, резервирование которого поддерживается инструментом для резервирования баз данных по вашему выбору, например, каталог /srv/airtime/database_backups. Это должно обеспечить возможность восстановления баз данных, а также согласование и сохранение полной версии базы данных Airtime со дня создания резервной копии.  

Резервное копирование хранилища

Резервное копирование базы данных Airtime при помощи команды pg_dumpall не будет создавать резервные копии сервера Airtime для хранения медиа-файлов, для резервного копирования которого, скорее всего, понадобится гораздо больше пространства. Создание сжатых файлов из сотен гигабайт содержимого сервера-хранилища наверняка займет очень много времени и может оказаться малополезным из-за потребления мощности процессора, если медиа-файлы уже хранятся в сжатом формате. Также непрактично создание очень больших файлов резервных копий во всей сети на ежедневной основе.

Вместо этого рекомендуется использовать процедуру инкрементного резервного копирования для синхронизации базы данных рабочего сервера Airtime с сервером для резервного копирования ежедневно или еженощно. Если на резервном сервере также установлена программа Airtime, должна быть возможность довольно быстрого переключения воспроизведения на эту вторую машину на случай сбоя оборудования или других чрезвычайных ситуаций на рабочем сервере.

Стандартным инструментом инкрементного резервного копирования для серверов под GNU/Linux является приложение rsync (http://rsync.samba.org/), которое можно установить с помощью диспетчера пакетов вашего дистрибутива GNU/Linux. Однако инкрементное резервное копирование само по себе не может помочь в том случае, когда файл, который позже оказывается важным, был удален администратором. Для резервного копирования, при котором возможен откат для восстановления более ранних данных, чем текущая резервная копия, можно установить инструмент rdiff-backup (http://www.nongnu.org/rdiff-backup/).     

Calendar (Календарь)

Страница Calendar (Календарь) интерфейса администрирования программы Airtime имеет три режима просмотра: Day ень), Week (Неделя) и Month (Месяц), которые можно переключать с помощью серых кнопок в правом верхнем углу. По умолчанию страница отображается в режиме Month (Месяц), с сегодняшней датой, выделенной при помощи светло-зеленого фона. 

В верхнем левом углу страницы вы можете вернуться назад или пролистать Календарь (Calendar) вперед, нажимая на кнопки с маленькими белыми треугольниками. Нажмите кнопку Today (Сегодня), чтобы перейти к сегодняшней дате в текущем режиме просмотра. В режимах просмотра Day ень) или Week (Неделя) имеется также выпадающее меню, которое позволяет установить разрешение для отображения календаря, начиная с одной минуты в строке до шестидесяти минут в строке.

Добавление программы

Этой опцией могут пользоваться только администраторы или программные менеджеры. Чтобы добавить новую программу в календарь, нажмите кнопку + Show (Добавить программу) в верхнем левом углу страницы или нажмите на любую пустую строку в самом Календаре. Любое из этих действий открывает окно Add this show (Добавить эту программу), которое состоит из пяти разделов, расположенных по вертикали: What (Что), When (Когда), Record & Rebroadcast (Запись и Ретрансляция), Who (Кто) и Style (Оформление). Нажмите на маленький черный треугольник слева от названия раздела, чтобы свернуть или развернуть его.

В поле What (Что) введите название и описание программы, которую вы создаете, а также URL общедоступного сайта и жанр.

Далее в разделе When (Когда) дата, на которую вы нажали в Календаре, уже должна быть введена в поле Date/Time Start (Дата и время первого выхода в эфир). Чтобы установить другую дату для программы, кликните на дату в поле Date/Time Start (Дата и время первого выхода в эфир) и затем выберите другую нужную вам дату для программы в маленьком всплывающем календаре. Затем установите Start time ремя первого выхода в эфир) программы тем же способом, используя всплывающее поле Hour (Часы) и Minute (Минуты). Значения минут во всплывающих полях для установки времени округляются до ближайших пяти минут, но вы можете отрегулировать время вручную, щелкнув по полю и вводя цифры. Продолжительность (Duration) программы автоматически определится на основе времени начала и окончания, которые вы устанавливаете.

Чтобы запланировать регулярную программу, установите флажок в поле Repeats? (Повторяется?) и выберите режим Weekly (Еженедельно), Bi-weekly (Раз в две недели) или Monthly (Ежемесячно) из выпадающего меню Repeat Type (Тип повтора). Затем установите флажки напротив дней недели, на которые вы планируете регулярный выход программы в эфир. Установите Date End ату последнего выхода в эфир) регулярной программы или установите флажок в поле No End (Постоянно), чтобы запланировать регулярный выход программы в эфир на неопределенный срок. 

В разделе Record & Rebroadcast (Запись и Ретрансляция) установка флажка в поле Record? (Запись?) позволяет установить режим автоматической прямой записи со звуковой карты, если на вашем сервере Airtime таковая имеется, во время передачи. Программы в режиме записи в прямом эфире не могут одновременно включать плейлисты. Аудио-формат для записей в прямом эфире по умолчанию MP3, а файлы записей сохраняются в директории-хранилище, заданной при установке Airtime. 

Если вы планируете в дальнейшем воспроизводить запись, установите флажок в поле Rebroadcast? (Ретрансляция?), а затем выберите до десяти ячеек в расписании дат и времени вещания в окне Repeat Days (Повторите дни).

Программы в режиме записи отмечены в календаре значком в виде маленькой красной точки, а программы, настроенные на режим ретрансляции, отмечены белым значком петли. 

В разделе Who (Кто) введите несколько первых букв имени ди-джея в поле Поиск пользователей (Search Users), чтобы выбрать имя из базы данных, или выберите в списке ниже одно из полей вертикальной прокруткой. 

Наконец, выберите Цвет фона (Background Colour) и Цвет текста (Text Colour) в разделе Оформление (Style), чтобы новую программу было легко найти в Календаре. 

 

Нажмите кнопку Add this show (Добавить эту программу) в верхней или нижней части окна. Новая программа теперь будет отображаться в Календаре и в одинаковых ячейках, если вы запланировали повторы.  

Редактирование программы

Конфигурация и метаданные программы могут быть изменены в любое время до начала ее трансляции. Нажмите на программу в Календаре и выберите пункт Редактировать программу (Edit Show) во всплывающем контекстном меню. Откроется окно Обновить программу (Update Show), которое выглядит точно так же, как и окно Add this Show (Добавить программу). Нажмите кнопку Обновить программу (Update Show) в верхней или нижней части окна после внесения всех изменений.

Кроме того, по отдельным программам можно щелкнуть и перетащить их на другие дни и часы в календаре. Однако в Airtime невозможно перетащить будущую программу в ячейку уже прошедшего дня, или перетащить программу в ячейку другого дня так, чтобы программы перекрывали друг друга по времени трансляции.

В режиме просмотра Day (День) и Week (Неделя) можно регулировать продолжительность программы, щелкнув по нижнему краю окошка программы и перетаскивая край окошка вверх или вниз. Новая длина программы рассчитывается автоматически. Airtime не позволит вам перетащить время окончания программы дальше начала следующей программы. 

Добавление контента в программу

Чтобы добавить содержание в программу, щелкните по ней в Календаре и выберите во всплывающем контекстном меню пункт Add/Remove Content (Добавить/удалить содержание).

Это действие открывает всплывающее окно Schedule Media (Планировать медиа-файл). Так же, как и при использовании Playlist Builder (Компоновщика плейлистов) для поиска файлов, вы можете осуществлять поиск списков воспроизведения и перетаскивать их в окно Items In This Show (Элементы в этой программе).

Оранжевая шкала-индикатор под окном Items In This Show (Элементы в этой программе) автоматически обновляется, показывая, сколько времени осталось от заданной продолжительности программы. Если вы добавите слишком много медиа-файлов по отношению ко времени, отведенному на программу, Airtime покажет предупреждение, а список воспроизведения будет обрезан до времени окончания программы. Нажмите на маленький белый треугольник слева от каждой строки, чтобы увидеть подробную информацию о списке воспроизведения, или нажмите белый крестик с правой стороны, чтобы удалить его из программы.

 

После включения всего необходимого содержания в программу нажмите кнопку ОК в правом нижнем углу, чтобы закрыть окно. Вернувшись в Календарь, нажмите на программу и выберите пункт Show content одержание программы) во всплывающем контекстном меню, чтобы просмотреть список содержания, которое теперь включено в программу.

 

Нажмите на любую строку в окне Show content (Содержание программы) для загрузки отдельного файла для прослушивания или для дальнейшего редактирования. Как только вы закончите, нажмите кнопку ОК в правом нижнем углу или белый крестик в правом верхнем углу, чтобы закрыть окно.


Удаление контента программы

Для удаления отдельных списков воспроизведения из программы нажмите на программу в Календаре и выберите пункт Add/Remove content (Добавить/удалить содержание) из всплывающего меню. В открывшемся окне Schedule Playlist (Планировать плейлист)используйте белый крестик, чтобы удалить список воспроизведения из содержания программы. Чтобы удалить все списки воспроизведения из программы, нажмите на программу в Календаре и выберите пункт Remove All Content (Удалить все содержание) из всплывающего меню..

 

Удаление запланированной программы   

Чтобы удалить один выпуск запланированной программы, нажмите на программу в Календаре и выберите во всплывающем меню пункт Delete This Instance (Удалить этот выпуск). Если вы хотите удалить все последующие выпуски этой программы, выберите во всплывающем меню пункт Delete This Instance and All Following (Удалить этот выпуски все последующие).

Вы не можете удалять содержание программ, уже вышедших в эфир. Для этих программ во всплывающем меню имеется только одна опция, Show Content (Содержание программы).

Отмена трансляции и записи

Если вы хотите отменить запись передачи в прямом эфире и удалить записанный файл с сервера-хранилища, нажмите на программу в Календаре и выберите во всплывающем меню пункт Cancel Current Show (Отменить текущую трансляцию). Тем же способом можно отменить также трансляцию программы, составленной из списков воспроизведения или записанной ранее, непосредственно во время эфира.

Airtime спросит, уверены ли вы в том, что хотите выполнить данное действие, поскольку оно не может быть отменено.


Настройка

В пакете Debian/Ubuntu Airtime параметры PHP задаются в файле /usr/share/airtime/public/.htaccess, но если вы использовали метод установки вручную, вы должны также проверить соответствие временной зоны PHP местному времени на вашей станции. Вы можете отредактировать файл .htaccess file в редакторе nano при помощи команды:

$ sudo nano /usr/share/airtime/public/.htaccess

Найдите следующую строку и измените часовой пояс на нужный вам, например:

php_value date.timezone "Europe/London"

В приложении к данной книге вы можете найти правильное значение часовых поясов.

Нажмите сочетание клавиш Ctrl+O для сохранения файла .htaccess file, затем Ctrl+X, чтобы выйти из редактора nano.

Настройка Liquidsoap

Воспроизведение радиовещания в Airtime настраивается через Liquidsoap. Вы можете открыть файл liquidsoap.cfg для редактирования при помощи команды:

$ sudo nano /etc/airtime/liquidsoap.cfg

Для вывода звука на звуковую карту ALSA сервера Airtime помимо прямого потока Icecast или Shoutcast, вы должны изменить значение output_sound_device с указанного по умолчанию false на true:

output_sound_device = true
Если вам не нужны потоки в форматах Ogg Vorbis или MP3, вы можете установить значения false для output_icecast_vorbis, output_icecast_mp3 или output_shoutcast. Отключение неиспользуемых потоковых опций снизит нагрузку на центральный процессор вашего сервера, поскольку кодирование потока постоянно обращается к системным ресурсам. Если ваш сервер недостаточно мощный, возможно, вы предпочтете производить кодирование потока на отдельном компьютере.    

 

Если вы используете пакет Debian/Ubuntu, вы, должно быть, настроили прямой поток на Icecast в процессе установки. Для настройки Airtime для прямого потока вручную, установите доменное имя или IP адрес другого компьютера в качестве значения icecast_host. Значение icecast_port можно оставить по умолчанию, т.е. 8000, если, конечно, системный администратор сервера Icecast не выдал вам другой номер порта. Shoutcast имеет сходные настройки за исключением порта по умолчанию: 9000.

Вы также можете настроить значения mount_point_mp3, mount_point_vorbis, icecast_url, icecast_description, и icecast_genre так, чтобы они соответствовали вашей рабочей станции. В Shoutcast есть схожие опции shoutcast_url и shoutcast_genre. Опция output_icecast_vorbis_metadata по умолчанию имеет значение false потому что некоторые мультимедийные плейеры отключаются от потока, когда метаданные Ogg Vorbis меняются для отображения новой информации. 

Когда вы закончите, сохраните и закройте файл /etc/airtime/liquidsoap.cfg сочетанием клавиш Ctrl+O и Ctrl+X. Перезагрузите механизм воспроизведения Airtime, чтобы запустить новые установки, при помощи команды: 

$ sudo invoke-rc.d airtime-playout restart

Ответ сервера будет следующим:

Restarting Airtime Playout: Done.

Настройка базы данных   

При желании вы можете отредактировать файл /etc/airtime/airtime.conf чтобы установить хост базы данных PostgreSQL и назначить имя пользователя и пароль для связи с базой данных.

$ sudo nano /etc/airtime/airtime.conf

Вы также можете настроить опции для работы с сообщениями в RabbitMQ, Airtime API и Soundcloud в этом же файле, хотя обычно не требуется менять значения, заданные по умолчанию.

Сохраните и закройте файл сочетанием клавиш Ctrl+O и Ctrl+X. Если вы меняли настройки базы данных, вам нужно выполнить команду:

$ sudo airtime-update-db-settings

чтобы убедиться, что конфигурационные файлы базы данных Airtime обновлены. В результате работы этой команды в консоли сервера появится большой текст, последними словами которого будут:

BUILD FINISHED

и отчет о времени, затраченном на обновление настроек.  

Теперь вы сможете войти в административный интерфейс Airtime, как показано в главе Начало работы.

Быстрая установка

Пакет airtime-easy-install позволяет получить типичную конфигурацию Airtime, не запрашивая у вас каких-либо настроек. Вы можете установить самый свежий пакет Airtime из базы Sourcefabric в несколько кликов. Он подходит для тестовых установок, при которых доступ в административный интерфейс Airtime производится через http://localhost. 

Пакет airtime-easy-install можно загрузить из каталога http://apt.sourcefabric.org/misc/. В течение процесса установки ваше интернет-подключение должно быть активным, поскольку несколько пакетов нужно будет установить из онлайн-баз.  

В Ubuntu 10.04 'lucid' или Debian 6.0 'squeeze', вы можете запустить пакет airtime-easy-install прямо с рабочего стола, используя программу GDebi. В диспетчере файлов рабочей зоны наведите курсор на пакет airtime-easy-install, нажмите правую кнопку мыши и выберите Open with GDebi Package Installer (Откройте установщиком ПО GDebi):

 

Для серверов Ubuntu lucid или Debian squeeze без рабочей панели вы можете использовать gdebi в командной строке:

$ sudo gdebi airtime-easy-install_1.9.4-4_all.deb

Если gdebi не установлен, воспользуйтесь командой:

$ sudo apt-get install gdebi

Более поздние версии Ubuntu заменили GDebi программой software-center. На рабочем столе наведите курсор на пакет, кликните правой кнопкой мыши и выберите Open with Ubuntu Software Center (Открыть с помощью Ubuntu Software Center). Эту программу также можно запустить из командной строки, например: 

$ software-center airtime-easy-install_1.9.4-4_all.deb

Любые из вышеперечисленных способов должны автоматически разрешить зависимости ПО.

По окончании установки f airtime-easy-install вы можете установить последнюю версию Airtime на настольную операционную систему, используя свой обычный диспетчер пакетов, как например, Ubuntu Software Center или Synaptic в Debian.

 

На сервере вы можете использовать команды:

$ sudo apt-get update
$ sudo apt-get install airtime

Configure for production

Чтобы из тестовой установки сделать эксплуатационную, воспользуйтесь командой:

$ sudo dpkg-reconfigure airtime

Команда dkpg-reconfigure пройдет все этапы настройки, описанные в главе Автоматическая установка, и вы сможете назначить корректные имена главного компьютера и пароли для вашего сервера Airtime.  

Экспертная установка

Данные шаги для быстрой установки предназначены для опытных системных администраторов GNU/Linux. Более детальное объяснение содержится в главе Автоматическая установка данной книги. 

1. Редактируйте файл хранилищ на вашем сервере:

$ sudo nano /etc/apt/sources.list

Для серверов под Ubuntu Lucid используйте хранилище Sourcefabric:

deb http://apt.sourcefabric.org/ lucid main

и активируйте репозиторий Multiverse, если вам нужна поддержка MP3-кодирования:

deb http://archive.ubuntu.com/ubuntu/ lucid multiverse

Для серверов под Debian Squeeze используйте хранилище Sourcefabric:

deb http://apt.sourcefabric.org/ squeeze main

и активируйте хранилище Debian Multimedia, если вам нужна поддержка MP3-кодирования:

deb http://www.debian-multimedia.org squeeze main non-free

2. Установите ключ подписи пакета Sourcefabric:

$ sudo apt-get update
$ sudo apt-get install sourcefabric-keyring

3. Установите систему управления базами данных:

$ sudo apt-get install postgresql

4. Установите потоковый медиа-сервер (по желанию):

$ sudo apt-get install icecast2

5. Удалите PulseAudio:

$ sudo apt-get purge pulseaudio

6. Установите Airtime:

$ sudo apt-get install airtime 

Обратитесь к главе Автоматизированная установка за сведениями об опциях конфигурации. Теперь у вас должно получиться войти в административный интерфейс Airtime, как показано в главе Начало работы. 

Экспорт программы вещания

Airtime имеет опцию, благодаря которой еженедельная программа вещания вашей станции и информация о передаче в эфире отображается на удаленных веб-сайтах. Эта функция включена в Airtime в связи с тем, что, как правило, у широкой публики нет доступа напрямую к вашему серверу Airtime. Если очень большое количество людей одновременно будет запрашивать данные с вашего сервера Airtime, сетевой трафик может перегрузить сервер, что может помешать вещанию. Подобная перегрузка сети, осуществляемая намеренно, известна как DDoS-атака.

Вместо этого ваш веб-сервер, предназначенный для общего доступа, может загружать сведения о расписании вещания из Airtime. Эта информация может затем отображаться на веб-сайте вашей станции или партнерских веб-сайтах системой управления контентом, такой как система Newscoop, созданная Sourcefabric (http://newscoop.sourcefabric.org/).  Она может отображаться при помощи виджетов Javascript и каскадных таблиц стилей в любом требующемся формате. 

Есть два вида информации, которая может быть получена удаленно из Airtime; метаданные о текущей программе в эфире, а также о следующей передаче, или программа вещания на текущую неделю. Эти метаданные включают название программы, время выхода в эфир, описание и индивидуальный URL-адрес программы на вашем общедоступном веб-сайте. Таким образом, аудитория вашей станции может переходить по баннерам от информации о программе вещания к более подробной информации о конкретной программе, или скачивать запись предыдущей программы, которую вы выложили для общего доступа. 

Например, если ваш сервер Airtime доступен на http://radio.example.com, информация о передаче в эфире может быть получена вашим веб-сервером с помощью следующего URLX:

http://airtime.example.com/api/live-info/?callback

Разделенные запятыми текстовые метаданные, возвращаемые на ваш веб-сервер, могут выглядеть примерно так:

({
"env":"development",
"schedulerTime":"2011-05-09 15:01:18",
"currentShow":[{"start_timestamp":"2011-05-09 16:00:00",
"end_timestamp":"2011-05-09 17:00:00",
"name":"Funk Show",
"id":"8",
"instance_id":"8",
"record":"0",
"url":"http:\/\/funk.example.com\/"}],
"nextShow":[{"id":"9","starts":"2011-05-09 17:00:00",
"ends":"2011-05-09 18:00:00",
"show_id":"9",
"record":"0",
"rebroadcast":"0",
"instance_id":null,
"file_id":null,
"soundcloud_id":null,
"time_filled":null,
"name":"Dance show",
"url":"http:\/\/dance.example.com",
"genre":"Dance",
"description":"Techno, techno, techno, techno!",
"color":"000000",
"background_color":"ffea00",
"start_timestamp":"2011-05-09 17:00:00",
"end_timestamp":"2011-05-09 18:00:00"}],
"timezone":"BST",
"timezoneOffset":"3600"
})

Информация о расписании вещания на текущую неделю может быть получена при помощи следующего URL:

http://airtime.example.com/api/week-info/?callback

В этом случае метаданные будут получены в формате, отличном от приведенного выше примера, и могут приблизительно выглядеть, как показано ниже. Для краткости данный пример экспорта программы вещания включает только четыре передачи понедельника. Экспорт полной еженедельной программы вещания будет содержать гораздо больше текста. 

({
"sunday":[],
"monday":[
{"show_starts":"2011-05-09 14:25:00",
"show_ends":"2011-05-09 14:35:00",
"show_name":"Elvis Show",
"url":"http:\/\/elvis.example.com\/"},
{"show_starts":"2011-05-09 14:50:00",
"show_ends":"2011-05-09 14:55:00",
"show_name":News",
"url":"http:\/\/news.example.com\/"},
{"show_starts":"2011-05-09 16:00:00",
"show_ends":"2011-05-09 17:00:00",
"show_name":"Funk Show",
"url":"http:\/\/funk.example.com\/"},
{"show_starts":"2011-05-09 17:00:00",
"show_ends":"2011-05-09 18:00:00",
"show_name":"Dance show",
"url":"http:\/\/dance.example.com"}
],
"tuesday":[],
"wednesday":[],
"thursday":[],
"friday":[],
"saturday":[]
})

Если при попытке показать информацию о программе в вашем браузере вы увидели сообщение У вас нет прав доступа к данному ресурсу, войдите в административный интерфейс Airtime, выберите Configure в главном меню, затем Preferences. Разрешите (enable) Удаленным вебсайтам доступ к информации о программе вещания (Allow Remote Websites To Access "Schedule" Info, кликните Отправить, затем обновите окно браузера, открытое на странице экспорта программы вещания. 

 

Кэширование информации о программе вещания  

Если сервер Airtime защищен брандмауэром или, в случае, если вы хотите защитить сервер Airtime от слишком большого числа запросов о программе вещания, вы можете пожелать кэшировать данную информацию на общедоступном или промежуточном сервере. Затем вы можете создать правило для брандмауэра, согласно которому помимо любых удаленных пользователей веб-интерфейса Airtime связаться с сервером Airtime может только сервер для программы вещания

Ваш системный администратор может настроить кэширование программы на стандартном веб-сервере с Apache и PHP, на котором установлена программа curl следующим образом:

1. Создайте bash-скрипт на сервере с программой вещания, который будет запрашивать сервер Airtime и записывать метаданные в виде пары временных файлов:

$ sudo nano /usr/local/bin/airtime-schedule.sh

содержимое этого файла должно быть таким, как этот скрипт, но air1.example.com заменено именем вашего сервера Airtime:

#!/bin/sh

curl -s "http://air1.example.com/api/live-info/?callback=***" > /tmp/live-info

curl -s "http://air1.example.com/api/week-info/?callback=***" > /tmp/week-info

2. Сделайте bash-скрипт исполняемым:

$ sudo chmod +x /usr/local/bin/airtime-schedule.sh

3. Создайте конфигурацию Apache VirtualHost для сервера с программой вещания:

$ sudo nano /etc/apache2/sites-available/schedule

содержащую следующий код, заменяя schedule.example.com именем вашего сервера с программой вещания:

<VirtualHost *:80>
   ServerName schedule.example.com
   DocumentRoot /var/www/schedule/
</VirtualHost>
4. В папке DocumentRoot сервера с программой вещания создайте папки api/live-info/ и api/week-info/
$ sudo mkdir -p /var/www/schedule/api/live-info/
$ sudo mkdir -p /var/www/schedule/api/week-info/

5. Создайте файл index.php в папке api/live-info/:

$ sudo nano /var/www/schedule/api/live-info/index.php

содержащий следующий код:

<?php
$filename = '/tmp/live-info';  // define here the path and name of uploaded live-info file

header('Content-Type: text/javascript');
header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");

$callback = empty($_GET['callback']) ? null : $_GET['callback'];
$content = file_get_contents($filename);
$content = str_replace('***', $callback, $content);
echo $content;
?>

6. Создайте файл index.php в папке api/week-info/:

$ sudo nano /var/www/schedule/api/week-info/index.php

содержащий следующий код:

<?php
$filename = '/tmp/week-info';  // define here the path and name of uploaded week-info file

header('Content-Type: text/javascript');
header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");

$callback = empty($_GET['callback']) ? null : $_GET['callback'];
$content = file_get_contents($filename);
$content = str_replace('***', $callback, $content);
echo $content;
?>

7. Запустите новую конфигурацию и перезагрузите веб-сервер Apache:

$ sudo a2ensite schedule
$ sudo /etc/init.d/apache2 reload

8. Создайте функцию запуск задач по расписанию для запуска bash-скрипта ежеминутно:

$ sudo nano /etc/cron.d/airtime-schedule

содержащую следующую строку:

* * * * * www-data /usr/local/bin/airtime-schedule.sh

Сервер программы вещания начнет обслуживать  ту же информацию о вещании, что и сервер Airtime со временем сохранения кэша - одна минута. Вы можете настраивать время сохранения, изменяя функцию запуска задач, которая посылает запросы на сервер Airtime. 

Виджеты вебсайта

Образцы кодов HTML, Javascript и CSS для вашего общедоступного сайта приведены в папке widgets установочного архива Airtime. Чтобы виджеты работали на типичном веб-сервере, ссылки на коды Javascript и CSS должны быть вставлены в <head> HTML страницы, например: 

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

Полный пример дан в файле widgets/sample_page.html в установочном архиве Airitme.

Код в примере ниже предназначен для виджета airtimeLiveInfo, который отображает информацию о текущей передаче (пройденное время и время до окончания) и информацию о следующей передаче (время начала и время окончания). В этом примере текст метки для onAirNow переведен на французский для поддержки местного языка: 

<script>
    $(document).ready(function() {
        $("#headerLiveHolder").airtimeLiveInfo({
            sourceDomain: "http://schedule.example.com/",
            text: {onAirNow:"Sur Les Antennes", offline:"Offline", current:"Current", next:"Next"},
            updatePeriod: 20 //seconds
        });
    });
</script>

На общедоступном сайте этот виджет может выглядеть следующим образом:

 

Свойства CSS color: и text-transform:uppercase были использованы для создания тиля метки  onAirNow. Полный пример CPP файла widgets/css/airtime-widgets.css находится в установочном архиве Airtime.

Следующий виджет airtimeShowSchedule среднего размера. Он показывает следующие программы этого дня.

<script>
    $(document).ready(function() {
        $("#onAirToday").airtimeShowSchedule({
            sourceDomain: "http://schedule.example.com/",
            text: {onAirToday:"On air today"},
            updatePeriod: 5 //seconds
        });
    });
</script>

Данный выше код виджета можно оформить следующим образом: 


И наконец, следующий код создает виджет больших размеров airtimeWeekSchedule, который позволяет пользователям изучить программу вещания недели. В данном примере все метки виджета переведены на французский:

<script>    
    $(document).ready(function() {
        $("#scheduleTabs").airtimeWeekSchedule({
            sourceDomain:"http://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
        });
    });
</script>

При помощи указанного выше кода и CSS первые шесть часов ежедневной программы вещания можно оформить следующим образом:

 

Значение sourceDomain в данном примере должно совпадать с тем адресом, по которому, согласно вашим планам, должна быть размещена информация о программе вещания. Если вы применили метод Кэширования информации о программе вещания, о котором мы подробно написали выше, то данным адресом будет адрес вашего сервера программы вещания, а не сервер Airtime. 


Начало работы

Если на сервере Airtime имеется установленный веб-браузер, вы можете получить доступ к интерфейсу администрирования, открыв адрес:

http://localhost/login

Если вы настроили программу Airtime так, чтобы иметь к ней доступ с других компьютеров, вы будете вместо этого использовать доменное имя. Например:

http://airtime.example.com/login

Вы можете войти в систему в первый раз, введя имя пользователя admin и пароль admin.

Войдя в систему как admin в первый раз, вы увидите всплывающее окно с вопросом о том, не желаете ли вы послать в Sourcefabric информацию или запрос по поводу технической поддержки вашего сервера. Эти данные можно увидеть, кликнув на ссылку Show me what I am sending (Показать мне, что я посылаю), в результате чего увеличивается окно с прокруткой. Эти данные помогают инженерам Sourcefabric решить проблемы вашей установки Airitme и подсчитать количество таких установок по всему миру. Sourcefabric придерживается политики защиты конфиденциальности частной информации, о чем можно прочитать здесь http://www.sourcefabric.org/en/about/policy/. Отметив поля Send support feedback (Послать сообщение о технической поддержке) и privacy policy (Не раскрывать мою личную информацию), вы можете отправить данные, нажав кнопку Yes, help Airtime (Да, помочь Airitme).

 

Это окно также дает возможность Promote my station on Sourcefabric.org (Промоутировать мою станцию на Sourcefabric.org) на странице http://sourcefabric.org/en/products/airtime_whosusing. Сделайте отметку в соответствующем поле, заполните появившуюся форму информацией о вашей станции. Контактные данные запрашиваются только для проверки и не будут открыты для публичного доступа. Кликните кнопку Browse (Искать), чтобы выбрать изображение Логотипа станции на вашем компьютере.


После того, как закрылось всплывающее окно, вы должны увидеть Master Panel (Панель управления), которая присутствует в верхней части каждой страницы интерфейса Airtime. Слева на панели отображается информация о Previous (Предыдущем) воспроизведенном файле, о текущем проигрываемом файле (включая оранжевую шкалу-индикатор выполнения и прошедшего/ оставшегося времени), а также информацию о Next (Следующем) файле в очереди на воспроизведение. Также на ней отображается название и запланированное время текущей передачи, включая голубую шкалу-индикатор выполнения.

Под этой частью Панели управления находится главное меню навигации, включающее подменю, помеченные как Now Playing (Проигрывается), Add Audio (Добавить аудио), Playlist Builder (Компановщик списков воспроизведения), Calendar (Календарь), Configure (Настройка) и Help (Справка). Мы рассмотрим содержание этих меню в следующих главах данной книги.  

С правой стороны на Панели управления расположен индикатор On Air (В эфире), который меняет цвет с серого на красный каждый раз, когда проигрывается какой-либо файл. Здесь имеются также часы, показывающие Station time (Время на станции) и часовой пояс. Сверху на противоположной стороне по ссылке About (O программе) открывается всплывающее окно с информацией об Airtime. Далее отображается имя пользователя, вошедшего в систему, а под ним расположена ссылка Logout (Выход).

Проверка сервера Icecast

Если вы включили опцию потокового вещания Icecast при установке Airtime, вы можете проверить, как работает сервер Icecast, открыв порт 8000 сервера в веб-браузере. Например, на самом сервере, вы можете использовать команду:

http://localhost:8000/

Вы увидите страницу статуса Icecast, с подробной информацией об изменениях, которыеAirtime внесло в Icecast. Если у вас только что установленAirtime, то не будет осуществляться проигрывания каких-либо аудио-файлов.

Help (Справка)

Меню Справки в Airtime предлагает краткое руководство для быстрого начала работы для новых пользователей.

Вы можете посетить интернет-форум поддержки пользователей Airtime, а также подписаться на рассылку: http://forum.sourcefabric.org/index.php/f/14/

Этот форум зеркально дублируется в списке электронной почты, поэтому сообщения на форуме появляются в списке электронной почты, и наоборот. Таким образом, вы также можете отправить туда сообщение по электронной почте на адрес: airtime-support@lists.sourcefabric.org

Чтобы подписаться на рассылку обновлений форума по электронной почте, пожалуйста, зарегистрируйтесь или войдите на форум, щелкнув по соответствующей ссылке. Затем нажмите кнопку «Подписаться», находящуюся в верхней части каждой страницы форума.

Сообщения об ошибках

Airtime нуждается в информации от вас для улучшения программы. Если вы считаете, что обнаружили ошибку, пожалуйста, посетите сайт http://dev.sourcefabric.org/ и войдите в систему, используя тот же логин и пароль, под которыми вы зарегистрировались на форуме Airtime. Создайте отчет об ошибке, выбрав опцию Create Issue (Создать отчет), затем Airtime, а затем Bug (Ошибка). Таким образом команда Airtime сможет отследить вашу проблему и уведомить вас, когда она будет исправлена. Вы также можете предложить на этом сайте улучшения и новые возможности для включения Airtime.

Контакт

Наконец, если все другие возможности были исчерпаны, свяжитесь с нами непосредственно по адресу: contact@sourcefabric.org и мы постараемся помочь!

Еще помощь

Статья в Вики-ЮНЕСКО «Community Radio - A user's guide to the technology» (Общинное радио – Руководство пользователя, ведение в технологию»):: http://cr-userguide.web4all.in/ представляет собой всеобъемлющее руководство по созданию общинной радиостанции. Это руководство предназначено для людей, планирующих создание радиостанций в Индии, но оно включает множество практических советов, которые будут полезны в любой стране.

Интеграция с Mixxx

Mixxx – это кроссплатформенное приложение с открытым исходным кодом для ди-джеев, доступное по адресу:  http://www.mixxx.org/

Установленная на настольном компьютере или ноутбуке, программа Mixxx дополняет ваш сервер Airtime для обеспечения целостной системы, как для прямого эфира, так и для планового вещания. Хотя Mixxx имеет много функций, рассчитанных на ди-джеев, использующих танцевальную музыку, для которой требуются сведение ритма (битмэтчинг) и растягивание звука независимо от тональности, программа может быть использована для любого вида запускаемого вручную воспроизведения в эфире, включая передачи разговорного жанра в прямом эфире, такие как новости или обсуждение актуальных проблем.

Mixxx поддерживает широкий спектр популярных аппаратных средств управления, которые могут быть подключены к компьютеру с помощью кабеля USB. Панель управления может заменить или дополнить аналоговый микшер в вашей студии в зависимости от ваших требований к микшированию и воспроизведению.

Если вы сделаете каталог для хранения данных на сервере Airtime /srv/airtime/stor/ доступным с ПК только для чтения, при запуске в первый раз Mixxx примет этот адрес в качестве музыкальной библиотеки по умолчанию. (Этот адрес также можно настроить после установки, нажав кнопку Options, затем Preferences, затем Library в главном меню Mixxx).

 

Вам может понадобиться настроить права доступа к файлам и каталогам таким образом, чтобы установить доступ для чтения файлов в каталоге хранения данных для учетной записи ПК-пользователя. Устанавливать доступ для записи файлов непосредственно на сервер-хранилище не рекомендуется, поскольку ПК-пользователи могут удалить файлы, которые могут потребоваться для воспроизведения позже.

Если путь в файловой системе был настроен правильно, метаданные для файлов на сервере-хранилище Airtime будут отображаться в главном окне интерфейса Mixxx. Отдельные файлы с сервера-хранилища Airtime можно затем добавлять в любой из плейеров Mixxx для прямого эфира, кликнув правой кнопкой мыши по имени файла или нажав соответствующие кнопки на панели управления. Таким образом, управлять архивом станции можно удаленно и совместно через Airtime, а Mixxx использовать как клиент для воспроизведения в прямом эфире в нескольких удаленных студиях.

Архив Airtime может быть экспортирован, как и любой другой общий каталог файлового сервера. Метод, который вы примените, будет зависеть от операционной системы на ваших клиентских ПК и от того, подключены ли они к той же локальной сети, что и сервер Airtime, или находятся в удаленном доступе. Исходя из соображений производительности и резервирования желательно кэшировать файлы, необходимые для конкретной передачи, на клиентской машине, где установлена Mixxx. Например, клиентскую машину под      GNU/Linux еженощная загрузка новых медиа-файлов в архив при помощи rsync защитит на время воспроизведения от проблем в сети, которые потенциально могут нарушать трансляцию из удаленной студии.

Пользователи Mixxx могут также записывать передачу, кодировать ее, а затем загружать его через веб-интерфейс Airtime на локальный или удаленный сервер для совместных трансляций или воспроизведения записи пользователями. Кроме того, Mixxx 1.9.0 или более поздняя версия включает потоковый клиент для прямого эфира, который, как и Airtime, совместим с медиа-сервером Icecast.

Airtime скин для Mixxx

Тематический скин Airtime для Mixxx, разработанный в расчете на пользователей, осуществляющих радиотрансляцию, доступен для скачивания по адресу https://sourceforge.net/projects/airtime/files/

Этот скин - упрощенный интерфейс для прямого вещания, из которого удалены регулятор тональности/ темпа, эквалайзер, фленжер-эффект, зацикливание и другие функции, нужные диджеям для сведения танцевальной музыки (битмэтчинга). Вместо этого акцент делается на четком и лаконичном интерфейсе, который не требует больших движений мыши для работы с наиболее важными элементами управления.

После скачивания распакуйте файл zip и скопируйте его в каталог skins на компьютере, где установлена программа Mixxx. Например, в Debian или Ubuntu:

$ unzip Airtime1280x1024_skin_for_Mixxx.zip
$ sudo cp -r Airtime1280x1024 /usr/share/mixxx/skins/

Затем запустите Mixxx и выберите скин для Airtime, выбирая функции Options, Preferences,, а затем Interface в главном меню Mixxx.

 

Настройка интерфейса

Административный интерфейс Airtime как веб-приложение подлежит полной настройке при помощи тех же методов, которые вы используете для обновления веб-сайта. Например, вы желаете увеличить размер шрифта или изменить цвета в интерфейсе Airtime, чтобы вашим сотрудникам, которые имеют плохое зрение, было удобнее работать. Для этого в таком редакторе, как nano откройте один из файлов CSS в папке /public/css/, которая лежит в директории Aritime DocumentRoot:

$ sudo nano /usr/share/airtime/public/css/styles.css

Чтобы изменить цвет фона в административном интерфейсе с темно-серого на белый, свойство background: можно заменить на #ffffff:

body {
      font-size: 62.5%;
      font-family:Arial, Helvetica, sans-serif;
      background: #ffffff;
      margin: 0;
      padding: 0;
}

Сохраните файл сочетанием клавиш Ctrl+O, затем обновите окно браузера, чтобы увидеть, как изменился цвет фона интерфейса.

Для любых изменений, произведенных вами в административном интерфейсе, нужно делать резервную копию, поскольку при обновлении версии Airtime они могут быть потеряны. Если вы считаете, что внесенные вами изменения могут быть полезны другим пользователям Airtime, пожалуйста, свяжитесь с нами и расскажите нам об этом. 

Модификация интерфейса Icecast

Если у вас установлен Icecast, в папке /etc/icecast2/web/ вы найдете несколько XSLT и других файлов, которые используются для создания веб-интерфейса Icecast. Если вы знакомы с HTML, у вас должно получиться модифицировать эти страницы, поскольку они хорошо прокомментированы. Вам нужно быть внимательными с синтаксисом. потому что такая простая мелочь, как пропущенная скобка может нарушить работу веб-интерфейса Icecast.

Например, вы могли бы поменять статус страницы status.xsl:

$ sudo nano /etc/icecast2/web/status.xsl

Начать с модификации статуса страницы status.xsl это удачная мысль, потому что это и есть та страница, которую пользователи видят, когда ищут порт 8000 на вашем сервере Icecast. Наиболее очевидное изменение для XSLT страниц это замена содержимого тегов <title> и <h2> для анонсирования вашей страницы. Кроме того, вы можете изменить файл style.css в этой папке для смены цвета и опций компоновки. 

Сохранив файл клавишами Ctrl+O, обновите окно браузера и увидите новый интерфейс Icecast. 

 

Почувствовав удовлетворение внешним видом вашего веб-интерфейса и качеством транслируемого вами звука, вы можете раскомментировать секцию <directory> в файле  /etc/icecast2/icecast.xml, чтобы ваша новая радиостанция автоматически появилась в каталоге сайта http://dir.xiph.org и найти там новых слушателей. Кроме того, вы можете разместить ссылку на статусную страницу Icecast на домашней странице вашей станции, чтобы помочь взаимной интеграции этих двух сайтов. 


Управление папками медиа-файлов

В Airtime предусмотрен архив медиа-файлов, который по умолчанию размещается в папке /srv/airtime/stor/ на вашем сервере. В меню Configure/Manage Media folders (Настройки/Управление папками медиа-файлов) вы можете изменить это местоположение или добавить дополнительные папки, которые будут просматриваться Airtime. Любые медиа-файлы, которые вы захотите добавить к числу просматриваемых папок, будут автоматически импортироваться в базу данных Airtime, а любые удаленные папки, будут удаляться из базы данных. 

Чтобы изменить папку-хранилище Airtime, кликните верхнюю кнопку choose folder (выбрать папку). Во всплывающем окне дважды кликните на название папки, которую хотите выбрать. Затем кликните кнопку Open (Открыть) для открытия этой папки.

 

На предыдущей странице Manage Media folders (Управление папками медиа-файлов) кликните кнопку Установить (set), для смены папки-хранилища. Airtime спросит, действительно ли вы хотите этого. Кликните ОК для подтверждения выбора.

Страница Manage Media folders (Управление папками медиа-файлов) покажет новое месторасположение хранилища. 

Папку-хранилище нельзя изменить, пока идет процесс импортирования файла. Если вы все же попытаетесь ее изменить в этот момент, появится сообщение об ошибке.


Просмотр папки

В поле Choose a Folder to Watch (Выберите папку для просмотра) кликните нижнюю кнопку choose folder (выбрать папку), откройте требующуюся папку и затем нажмите на кнопку add (добавить). Вы можете добавлять неограниченное количество папок. Для удаления папки кликните значок х справа от папки в списке. 

И снова у вас спросят, уверены ли вы в том, что делаете.

Редактирование списков сохраненных и просматриваемых медиа-файлов автоматически отслеживается Airtime. Если вы редактируете любой файл архива, как например, подгоняете длину дорожки, Airtime автоматически выверит длительность плейлиста и покажет длину этого самого аудиофайла. 

Структура папок и имена файлов в архиве доступны для чтения человеком. Это означает, что вы можете найти файлы для загрузки и редактирования, используя диспетчер файлов на вашем сервере, а также закладку Поиск (Search) в Компоновщике плейлистов (Playlist Builder)

 УПРАВЛЕНИЕ ПОЛЬЗОВАТЕЛЯМИ

Вы должны сразу установить новый пароль администратора, воспользовавшись пунктом меню Manage Users (Управление пользователями) в меню Configure (Настройки).

Слева на странице Manage Users (Управление пользователями) выберите admin в списке пользователей. Информация об этом пользователе будет отображаться в окне справа. На данный момент только пользователю admin присвоены Username (Имя пользователя) и Password (Пароль).

Введите надежный пароль (по возможности максимально длинный и неоднотипный) в поле Password (Пароль). Надежное сохранение данного пароля критически важно для бесперебойной работы вашей радиостанции, так как он обеспечивает доступ ко всем функциям планирования и управления. Вы можете также ввести другую информацию в учетной записи пользователя на этой странице, включая ваше полное имя и контактные данные. Затем нажмите кнопку Submit (Сохранить).

Чтобы ввести в систему дополнительные учетные записи, по одной для каждого сотрудника станции, которому необходим доступ к Airtime, нажмите кнопку New user (Новый пользователь). Введите имя пользователя, пароль и контактные данные, а затем выберите Role (Роль) пользователя из выпадающего меню, Admin (администратор), Program Manager (программный менеджер), DJ (диджей) или Guest (гость). Разница между этими ролями заключается в следующем:

Новые пользователи, которых вы добавите, будут видны в списке на левой стороне страницы Manage Users (Управление пользователями). Если у вас большое количество пользователей в системе, вы можете использовать инструмент поиска над списком (имеющий значок увеличительного стекла) для идентификации определенных учетных записей пользователей. Нажмите на заголовки списков для сортировки результатов поиска по категориям Username (Имя пользователя), Firstname (Имя), Lastname (Фамилия) или Role (Роль).

Чтобы изменить учетную запись пользователя, щелкните на строке данного пользователя в списке, измените данные пользователя в окне справа, а затем нажмите кнопку Submit (Сохранить). Чтобы удалить учетную запись пользователя, нажмите на крестик справа от строки в списке.

Установка вручную

Как правило, нет необходимости устанавливать Airtime вручную, если только Вы не тестируете разрабатываемую версию программного обеспечения. Версии Airtime, рекомендуемые для коммерческого использования, можно скачивать и обновлять через secure apt, как показано в главе Автоматическая установка. 

Полная установка

Скрипт airtime-full-install прошел тестирование на серверах Ubuntu GNU/Linux и имеет все необходимое, чтобы настроить ваш сервер при помощи типичных настроек по умолчанию.

1.     На терминале или консоли сервера загрузите Airtime с wget со страницы https://sourceforge.net/projects/airtime/files/. Например, для загрузки версии 1.9.4 вы должны использовать следующую команду:

$ wget http://downloads.sourceforge.net/project/airtime/1.9.4/airtime-1.9.4.tar.gz

2. Разархивируйте загруженный файл в ваш личный каталог. В результате появится подкаталог с названием airtime-1.9.4:

$ sudo tar -xvzf airtime-1.9.4.tar.gz -C ~/

3. Запустите скрипт airtime-full-install:

$ sudo ~/airtime-1.9.4/install_full/ubuntu/airtime-full-install

Скрипт установки покажет, какие файлы устанавливаются в вашу систему, и каталоги, в которые они распакованы. Наконец, запустится скрипт airtime-check-system, чтобы показать, что среда вашего сервера настроена корректно.

 *** Verifying your system environment ***
CPU                            = Dual Core AMD Opteron(tm) Processor 170
Total RAM                      = 6128244 kB
Free RAM                       = 167276 kB
OS                             = Ubuntu 10.04.3 LTS x86-64
AIRTIME_CONFIG_FILES           = OK
POSTGRESQL_DATABASE            = OK
PYTHON_KOMBU_VERSION           = 1.2.0
PYTHON_POSTER_VERSION          = 0.8.1
PYTHON_MUTAGEN_VERSION         = 1.20
PYTHON_PYINOTIFY_VERSION       = 0.9.2
RABBITMQ_SERVER                = OK
AIRTIME_VERSION_URL            = http://localhost:80/api/version/api_key/%%api_key%%
APACHE_CONFIGURED              = YES
AIRTIME_VERSION                = 1.9.4
PLAYOUT_ENGINE_PROCESS_ID      = 24021
PLAYOUT_ENGINE_RUNNING_SECONDS = 7
LIQUIDSOAP_PROCESS_ID          = 24025
LIQUIDSOAP_RUNNING_SECONDS     = 7
MEDIA_MONITOR_PROCESS_ID       = 24078
MEDIA_MONITOR_RUNNING_SECONDS  = 7
SHOW_RECORDER_PROCESS_ID       = 24055
SHOW_RECORDER_RUNNING_SECONDS  = 7
ICECAST_PROCESS_ID             = 23649

  -- System setup looks OK!

********************** Install Complete ***********************
Вы готовы перейти к разделу Настройки.

Минимальная установка  

Альтернативный скрипт airtime-install не делает попыток настроить ваш сервер, что может оказаться более подходящим вариантом, если у вас есть особые требования.

1. На терминале или консоли сервера установите список зависимостей. Например, в Ubuntu 10.04 (Lucid Lynx) LTS вы можете использовать такую команду:

$ sudo apt-get install apache2 curl ecasound gzip libao-ocaml \
libapache2-mod-php5 libcamomile-ocaml-dev libesd0 libmad-ocaml \
libmp3lame-dev libportaudio2 libsamplerate0 libsoundtouch-ocaml \
libtaglib-ocaml libvorbis-ocaml-dev monit mpg123 odbc-postgresql \
patch php-pear php5-curl php5-gd php5-pgsql python2.6 \
python-virtualenv rabbitmq-server sudo tar unzip

Еще одна зависимость, которую нужно установить, это phing (учтите, что вы должны указывать номер версии):

$ sudo pear channel-discover pear.phing.info
$ sudo pear install phing/phing-2.4.2

2. Убедитесь в том, что модули веб-сервера Apache, необходимые для Airtime запущены:

$ sudo a2enmod php5 rewrite

Ответ сервера должен быть следующим:

Module php5 already enabled
Module rewrite already enabled

3. Создайте каталог для веб-интерфейса Airtime:

$ sudo mkdir -p /usr/share/airtime/public

4. Следующий шаг - создание конфигурационного файла виртуального хоста Airtime virtual для Apache:

$ sudo nano /etc/apache2/sites-available/airtime

и введите данную ниже информацию, где имя главного компьютера вашего сервера нужно подставить вместо airtime.example.com, а e-mail вашего системного администратора вместо admin@example.com. Убедитесь, что настройки маршрутов DocumentRoot и Directory были произведены корректно. Они должны соответствовать каталогу public, в который установщик распакует веб-интерфейс, и который по умолчанию является каталогом /usr/share/airtime/public/.

<VirtualHost *:80>
   ServerName airtime.example.com
   ServerAdmin admin@example.com
   DocumentRoot /usr/share/airtime/public
   php_admin_value upload_tmp_dir /tmp

  <Directory /usr/share/airtime/public>
      DirectoryIndex index.php
      AllowOverride all
      Order allow,deny
      Allow from all
  </Directory>
</VirtualHost>

Нажмите Ctrl+O чтобы сохранить файл, затем Ctrl+X, чтобы выйти из nano редактора.

5. Создайте конфигурационный файл PHP /etc/airtime/airtime.ini в nano:

$ sudo nano /etc/airtime/airtime.ini

со следующим содержимым:

[PHP]
memory_limit = 512M
magic_quotes_gpc = Off
file_uploads = On
upload_tmp_dir = /tmp

Сохраните и выйдите из nano, затем свяжите этот файл с PHP конфигурацией системы при помощи команды:

$ sudo ln -s /etc/airtime/airtime.ini /etc/php5/conf.d/airtime.ini

6. Запустите новую конфигурацию при помощи команды:

$ sudo a2ensite airtime

Ответ сервера должен быть следующим:

Enabling site airtime.
Run '/etc/init.d/apache2 reload' to activate new configuration!

Возможно вам придется отключить конфигурацию сайта по умолчанию, что может каким-то образом помешать установке Airtime:

$ sudo a2dissite default

Как предлагает результат вышеприведенной команды, перезагрузите конфигурацию веб-сервера.

$ sudo /etc/init.d/apache2 reload

Ответ сервера будет следующим:

 * Reloading web server config apache2
7. Загрузите Airtime на странице https://sourceforge.net/projects/airtime/files/ с wget. Например, чтобы загрузить версию 1.9.4, вы можете использовать команду:
$ wget http://downloads.sourceforge.net/project/airtime/1.9.4/airtime-1.9.4.tar.gz

8.Разархивируйте загруженный файл в ваш личный каталог. В результате появится подкаталог с названием airtime

$ sudo tar -xvzf airtime-1.9.4.tar.gz -C ~/
9. Monit это утилита, которую Airtime использует для обеспечения беспроблемного функционирования системы. Ее нужно запустить, открыв файл /etc/default/monit в редакторе nano
$ sudo nano /etc/default/monit

Найдите строку, которая начинается со слова startup и замените значение на 1:

startup=1

Сохраните файл, нажав клавиши Ctrl+O и закройте nano при помощи клавиш Ctrl+X. Теперь скопируйте конфигурацию Monit из установочного каталога Airtime в каталог /etc/monit/conf.d/:

$ sudo cp ~/airtime-1.9.4/python_apps/monit/airtime-monit.cfg /etc/monit/conf.d/

Откройте файл /etc/monit/monitrc в nano:

$ sudo nano /etc/monit/monitrc

В конце файла добавьте строку:

include /etc/monit/conf.d/*
Сохраните файл, нажав Ctrl+O и закройте nano при помощи комбинации клавиш Ctrl+X. Запустите Monit с командой:
$ sudo invoke-rc.d monit start

Более подробно о monit можно прочитать в разделе Использование Monit.

10. В Debian squeeze, убедитесь, что процесс rabbitmq-сервер запустился:

$ sudo invoke-rc.d rabbitmq-server start

11. Наконец, запустите скрипт airtime-install

$ sudo ~/airtime-1.9.4/install_minimal/airtime-install 

Как только вы получите от скрипта airtime-check-system подтверждение того, что установка была завершена успешно, вы можете переходить к разделу Настройки.

Опции установочного скрипта

По умолчанию скрипт airtime-install сохраняет любую существующую конфигурацию или установку, которую обнаруживает на сервере. Однако характер поведения скрипта можно контролировать при помощи командной строки, например:  

--help|-h            Displays usage information.
--overwrite|-o       Overwrite any existing config files.
--preserve|-p        Keep any existing config files.
--no-db|-n           Turn off database install.
--reinstall|-r       Force a fresh install of this Airtime version

Деинсталляция вручную

Для того, чтобы вручную удалить Airtime с вашего сервера, запустите скрипт airtime-uninstall, находящийся в установочном каталоге, например:

$ sudo ~/airtime-1.9.4/install_minimal/airtime-uninstall

По вашему выбору вы также можете удалить архив-хранилище и конфигурационные папки Airtime, если у вас есть резервные копии или вам больше не понадобятся данные на этом сервере. Команду rm нужно использовать осторожно, поскольку отменить ее будет невозможно. 

$ sudo rm -r /srv/airtime
$ sudo rm -r /etc/airtime

Now Playing (Проигрывается)

На этой странице представлены два режима просмотра проигрываемых на вашей станции файлов, между которыми можно переключаться с помощью кнопок Day View (День) и Night View (Ночь) в верхнем правом углу интерфейса администрирования. Если вы только что установили Airtime, информация о каких-либо файлах пока не будет представлена ни в одном из двух режимов.

Режимом просмотра по умолчанию является режим Now View (Сейчас), при котором воспроизведенные файлы удаляются из верхней части списка автоматически. Названия передач отображаются на голубом фоне, а названия файлов на сером. Строка с названием файла, который проигрывается в данный момент, выделяется оранжевым фоном. Любые недоукомплектованные программы (программы с содержанием, недостаточным для того, чтобы заполнить предоставленное время) отображаются в строке с указанием продолжительности незаполненного времени в секундах. Строки Gap until show end (Время до конца программы) имеют красный фон.

C правой стороны в режиме просмотра Now View (Сейчас) отображаются Playlist (Список воспроизведения) и Show (Программа), частью которых является каждый файл. (Формирование списков воспроизведения и программ рассматриваются в последующих главах этой книги). Если программа укомплектована избыточно (общая продолжительность воспроизведения дольше, чем время, предоставленное для передачи), в столбце Status (Состояние) отображается красно-белый значок предупреждения. Предупреждающий значок указывает, что файл в этой строке в конце передачи будет затухать.

Название передачи в прямом эфире, подготовленной для записи, отображается в темно-серой строке, так как не содержит никаких списков воспроизведения.


Режим Day View (День) похож на режим Now View (Сейчас), за исключением того, что воспроизведенные файлы будут показаны в верхней части окна. Вы можете выбрать определенный день, программу вещания для которого вы хотите просмотреть, щелкнув по полю даты слева от кнопки Day View (День) и выбрав день из всплывающего календаря.


Playlist Builder (Компановщик плейлистов)

Данная страница интерфейса Airtime позволяет осуществлять поиск в медиа-архиве, сортировать и отображать результаты поиска согласно выбранным вами критериям и перетаскивать найденные в результате поиска файлы в открытый список воспроизведения. Вы также можете реорганизовывать открытые списки воспроизведения с помощью функции перетаскивания файлов.

Страница Playlist Builder (Компоновщик плейлистов) не видна пользователям-Гостям.

Вкладка "Search" (Поиск)

Слева на странице Playlist Builder (Компоновщик плейлистов), во вкладке Search (Поиск) перечисляются как отдельные медиа-файлы, так и плейлисты в архиве Airtime; по умолчанию на каждой странице отображается по десять записей. Щелкните по выпадающему меню Show entries (Показать записи) в верхнем правом углу, чтобы выбрать отображение 10, 25, 50 или 100 записей на странице, в соответствии с вашими предпочтениями.

Щелкните по заголовкам столбцов Title (Название), Creator (Исполнитель), Album (Альбом), Track (Дорожка), Length (Длина) или Type (Тип) для сортировки записей. В столбце Type (Тип) аудио-файлы помечаются значком динамика, в то время как списки воспроизведения будут помечены значком документа. В нижней части окна щелкайте по кнопкам First (Первая), Previous (Предыдущая), Next (Следующая), Last (Последняя) или по кнопкам с номерами страниц для просмотра медиа-архива.

Введите поисковый запрос в поле со значком лупы в левом верхнем углу. Вы можете провести поиск по заголовку, автору, альбому, номеру дорожки или длительности. Например, чтобы найти все файлы продолжительностью от семи до восьми минут, введите 00:07 в поле поиска. Как и в системах поиска в Интернете, отображаемые отфильтрованные записи уточняются по мере ввода запроса - нет необходимости нажимать клавишу Ввода.

Щелчок по строке файла во вкладке Search (Поиск) откроет всплывающее меню, которое позволит Редактировать метаданные (Edit Metadata) для этого файла, Скачать (Download) его на свой локальный компьютер или мобильное устройство для прослушивания и редактирования или Удалить (Delete) его с сервера-хранилища Airtime. Опцию Удалить (Delete) следует использовать с осторожностью, поскольку данное действие не может быть отменено.


Создание нового плейлиста

После того как вы нашли нужные вам медиа-файлы, используя вкладку Search (Поиск), вы можете создать новый плейлист с правой стороны страницы Playlist Builder (Компоновщик плейлистов). Для начала процесса нажмите кнопку New (Создать новый плейлист).

Введите Название (Title) и Описание (Description) для списка воспроизведения, затем нажмите кнопку Submit (Сохранить). Ввод качественных метаданных поможет вам в дальнейшем находить данный список воспроизведения при помощи вкладки Search (Поиск), поэтому название и описание должны быть максимально информативны.

Затем перетащите файлы из вкладки Search (Поиск) слева в новый плейлист справа.

После перетаскивания файлов в новый список воспроизведения общее время воспроизведения отображается в верхнем правом углу. Длительность отдельных файлов показана белым шрифтом в каждой строке списка воспроизведения, а ниже более мелким серым шрифтом показано время, прошедшее с начала звучания плейлиста.

Для прослушивания файла из плейлиста щелкните по кнопке play/pause (воспроизведение/пауза) со значком в виде белого треугольника в левой части каждой строки. Нажмите на белый крестик в правой части каждой строки, чтобы удалить файл из списка воспроизведения. Вы можете также перетаскивать файлы, чтобы изменить их очередность.

Нажмите на значок в виде карандаша справа от названия списка воспроизведения, чтобы его редактировать, или нажмите на View/edit description (Просмотр/ редактирование описания), чтобы открыть окно для ввода метаданных о списке воспроизведения.

Щелкните по кнопке Crossfade (Перекрестное затухание) в списке воспроизведения (две перекрещивающиеся горизонтальные белые стрелки в сером прямоугольнике), справа от кнопок New (Создать новый список) и Delete (Удалить), чтобы открыть бежевую шкалу, на которой вы можете установить время Ввода (Fade in) следующего трека и Затухания (Fade out) предыдущего трека для данного списка воспроизведения.

Щелкните по любой из кнопок Crossfade (Перекрестное затухание) меньшего размера между строками файлов, чтобы открыть бежевую шкалу, которая позволит вам установить время ввода следующего трека и затухания предыдущего трека для двух соседних файлов в списке воспроизведения. Кнопки перекрестного затухания для соседних файлов меняют фон на оранжевый, когда по ним щелкают.

Напротив каждого файла в списке воспроизведения также имеется кнопка с двумя квадратными скобками, которая позволит вам установить время начала воспроизведения (Cue in) и время окончания воспроизведения (Cue out) для данного конкретного файла. Как и кнопка перекрестного затухания, она меняет фон на оранжевый, когда вы щелкаете по ней. Длина файла в списке воспроизведения обновляется автоматически, но Исходная длина (Original Length) файла также отображается для справки.


Когда ваш список воспроизведения будет завершен, нажмите кнопку Done Editing (Редактирование завершено). Если вы в дальнейшем захотите отредактировать содержимое или метаданные списка воспроизведения, вы сможете найти его по Названию (Title), Исполнителю (Creator) или Типу (Type), используя вкладку Поиск (Search). Нажмите на список воспроизведения в списке результатов поиска и выберите пункт Edit (Редактировать) из всплывающего контекстного меню. В списке воспроизведения, который уже открыт для редактирования, вместо этого отобразится опция Close (Закрыть). Вы также можете Удалить (Delete) список воспроизведения из этого контекстного меню.


УСТАНОВКИ ПОЛЬЗОВАТЕЛЯ

В меню Configure (Настройки) выберите пункт Preferences (Установки пользователя), чтобы ввести Station Name (Название станции) и Время затухания по умолчанию (Default Fade), которое вы хотели бы установить для автоматического перекрестного затухания сигналов (кроссфейда). Опция Stream Label (Метка потока) позволяет установить метаданные, которые будут отправлены с прямыми потоками Icecast: Artist (Исполнитель) и Title (Название песни); Show (Программа), Artist (Исполнитель) и Title (Название песни); или Station name (Название станции) и Show name (Название программы).

Вы также можете по желанию включить режим доступа только для чтения по активной ссылке к календарной программе вещания Airtime на открытом веб-сайте вашей станции, используя опцию Allow Remote Websites to Access Schedule Info? (Разрешить удаленным веб-сайтам доступ к информации о программе вещания?). (Более подробно данная опция рассматривается в разделе Экспертная установка настоящего руководства). Затем нажмите кнопку Submit (Сохранить).

SoundCloud настройки

Если ваша станция имеет учетную запись на SoundCloud (на http://soundcloud.com), вы можете при желании загружать записи передач в прямом эфире на этот сервис автоматически. Нажмите маленький черный треугольник рядом с SoundCloud Settings (Настройки SounCloud), чтобы увидеть эту опцию. Кроме заполнения поля Upload Recorded Shows To SoundCloud (Загрузить запись передачи на SounCloud) вы должны будете ввести ваш адрес электронной почты, который вы используете в качестве логина на SoundCloud, и пароль, а также метаданные, которые SoundCloud будет использовать для классификации записей передач. Вы также можете установить здесь по умолчанию жанр, тип трека и лицензии на авторские права, в том числе лицензии Creative Commons (см. http://creativecommons.org).

Обратите внимание, что, как и большинство онлайн-сервисов дистрибуции, SoundCloud в условиях предоставления услуг требует наличия у вас авторских прав или разрешения на распространение в Интернете от владельца авторских прав в отношении любого медиа-файла, который вы загружаете.

Подготовка сервера

Следующие инструкции предполагают, что у вас есть доступ с правами администратора (sudo в Ubuntu) к серверу под GNU/Linux, и что вы знакомы с основными задачами, которые выполняются из командной строки. Опытные системные администраторы могут по желанию сразу перейти к главе Экспертная установка в приложении к данной книге. 

Рекомендуемой платформой для сервера Airtime является Ubuntu 10.04 «Lucid Lynx» LTS. Debian 6.0 «Squeeze» также является хорошим вариантом. Сервер должен иметь процессор с частотой как минимум 1 ГГц и 512 Мб оперативной памяти. Установка Airtime не занимает много места на диске, но вы должны оставить большой объем памяти для хранения медиа-архива. Рекомендуется использование RAID-массива как оперативной замены для медиа-архива на случай отказа диска. Вы должны также предусмотреть использование ИБП или другой системы с батарейным питанием, чтобы обеспечить определенную защиту от краткосрочных сбоев питания.

Веб-интерфейс администрирования Airtime предназначен для работы с любым браузером, на любой настольной или мобильной платформе. Рекомендуется браузер Mozilla Firefox 3.6.

Звуковые карты 

Если вы планируете, что ваш сервер Airtime будет напрямую выводить звук на радиовещательный передатчик или отдельный кодировщик потока, ваш сервер должен иметь звуковую карту, которая поддерживается драйвером ALSA. Почти для всех стандартных звуковых карт имеются драйверы ALSA, встроенные в ядро Linux, которые не нужно устанавливать отдельно. Если вы сомневаетесь в наличии драйвера для поддержки вашей звуковой карты, проверьте это по таблице звуковых карт, поддерживаемых ALSA, по адресу: http://www.alsa-project.org/main/index.php/Matrix:Main 

Если машина с Airtime будет использоваться только для направления потока на медиа-сервер Icecast, вам не потребуется звуковая карта, установленная на сервере. Этот вариант подходит для установки Airtime в центре обработки данных вашего интернет-провайдера, удаленном от любого передатчика.

Отключение звуков рабочего стола и других

Если вы устанавливаете Airtime на настольный ПК, убедитесь, что отключены или удалены все программы, которые могут посылать нежелательные звуки через звуковые карты, используемые для радиовещания. Это касается сигналов предупреждения, которые звучат, когда компьютер готов к использованию или, когда пользователь входит в систему. В Ubuntu эти звуки настраиваются в меню главного рабочего стола: Система -> Настройки -> Звук. Это меню работает только, когда установлен звуковой сервер PulseAudio.

Вы можете предпочесть удалить все нежелательные звуковые файлы на вашем компьютере, в случае, если есть вероятность их случайного проигрывания через звуковую карту. Например, в Ubuntu вы, возможно, захотите удалить пакет звуков Ubuntu при помощи следующей команды:

$ sudo apt-get purge ubuntu-sounds

Удаление PulseAudio, если он был установлен

Аудио-сервер PulseAudio не совместим с Airtime, но по умолчанию установлен в Ubuntu. Чтобы удалить PulseAudio с машины под Ubuntu, введите следующую команду:

$ sudo apt-get purge pulseaudio

Удаление пакета pulseaudio на настольной машине под Ubuntu может принудительно задавать удаление метапакета ubuntu-desktop. Однако, этот метапакет устанавливается в системе только для управления обновлениями, и при его удалении GNOME не удаляется.

После удаления PulseAudio, если на вашей машине с Airtime имеется рабочий стол и звуковая карта, вы можете установить микшер-апплет, который может непосредственно управлять драйвером звуковой карты ALSA, например, gnome-alsamixer:

$ sudo apt-get install gnome-alsamixer

На сервере со звуковой картой, но без рабочего стола, вы можете контролировать входной и выходной уровни звука с помощью программы, управляемой из командной строки alsamixer:

Эта программа должна быть уже установлена на машине под Ubuntu или Debian со звуковой картой. Если ее нет, вы можете установить ее с помощью команды:

$ sudo apt-get install alsa-utils

Удаление webmin, если она была установлена

Как известно, контрольная панель webmin (http://www.webmin.com) нужна для удаления пакетов Apache и PHP в системах Debian и Ubuntu, что, в свою очередь, может привести к удалению пакета Airtime. Эту проблему легко исправить, переустановив поврежденные пакеты, но есть опасность нарушить радиовещание. Маловероятно, что Webmin будет установлен на вашем сервере, кроме случаев, когда ее установил вручную системный администратор. Причина в том, что несколько лет назад webmin убрали из официальных пакетов Debian и Ubuntu.

RabbitMQ в Debian

В Debian 6.0 (Squeez e) daemon сервера rabbitmq-server не запускается после перезагрузки автоматически. Проблему необходимо исправить до установки Airtime, чтобы избежать неприятностей во время вещания. Если пакет сервера rabbitmq был установлен до последней перезагрузки, вам, пользуясь правами корневого пользователя, до установки Airtime нужно запустить:

# invoke-rc.d rabbitmq-server start

Если он еще не установлен, запустите следующую команду как корневой пользователь:

# apt-get install rabbitmq-server 

После установки rabbitmq-сервер запустится автоматически, вам не придется использовать вышеупомянутую команду invoke-rc.d. 

В любом случае, вам придется отредактировать строки 13 и 14 файла /etc/init.d/rabbitmq-server (как корневому пользователю), чтобы показать:

# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6 

а затем как корневому пользователю запустить команду:

# update-rc.d rabbitmq-server defaults 

Это обеспечит автоматический запуск rabbitmq-сервера после следующей перезагрузки.

Переходим к установке

 

Теперь ваш сервер должен быть готов к установке Airtime. В зависимости от ваших требований вы должны теперь перейти к главе Легкая установка, либо Установка вручную, либо Автоматическая установка. 

Авторские права и роялти

Если вы новичок в области вещания или не осуществляли потоковое вещание он-лайн с вашей станции прежде, прочтение нижеследующего краткого объяснения правил выплаты компенсаций музыкантам может уберечь вас в дальнейшем от целого ряда неприятностей.

Независимое музыкальное радио в Интернете не такое, каким оно могло бы быть, в силу требований SoundExchange в отношении роялти в США и других подобных организаций на других территориях. Эти организации, как правило, представляют собой членские общества или санкционированные государством национальные органы, предназначенные для сбора денег от вещателей для выплаты компенсаций музыкантам за использование их произведения. Общества по сбору роялти требуют предварительной оплаты потокового вещания практически любой музыки, выпущенной на коммерческих CD для широкой публики, - вне зависимости от того, зарабатываете вы какие-либо деньги за счет потокового вещания или нет. Дело не столько в требуемом проценте от прибыли, сколько в существующей, как правило, необходимости вносить годовую минимальную оплату, что приносит несоразмерный ущерб небольшим станциям.

Например, в Великобритании, лицензия на ограниченную онлайн-трансляцию MCPS-PRS Limited Online Music Licence дает право на потоковую передачу некоммерческой музыки группам и отдельным лицам, если их валовой доход составляет менее £ 12,500 в год. Стоимость лицензии возрастает по скользящей шкале до £ 1120, плюс 20% ежегодного налога при передаче до 450000 отдельных потоков или подаче 25000 файлов; при более высоких объемах необходимо подавать заявку на полную лицензию MCPS-PRS Online Music Licence. На первый взгляд это выглядит не так уж плохо, однако 25000 файлов в год для круглосуточного сайта хватает менее, чем на четыре загрузки в час. Данная лицензия распространяется только на издательские права, но не на права на запись, так что вам придется вести переговоры о дополнительной лицензии от Phonographic Performance Limited, чтобы действительно проигрывать записи или компакт-диски.

Например, в Великобритании, лицензия на ограниченную онлайн-трансляцию MCPS-PRS Limited Online Music Licence дает право на потоковую передачу некоммерческой музыки группам и отдельным лицам, если их валовой доход составляет менее £ 12,500 в год. Стоимость лицензии возрастает по скользящей шкале до £ 1120, плюс 20% ежегодного налога при передаче до 450000 отдельных потоков или подаче 25000 файлов; при более высоких объемах необходимо подавать заявку на полную лицензию MCPS-PRS Online Music Licence. На первый взгляд это выглядит не так уж плохо, однако 25000 файлов в год для круглосуточного сайта хватает менее, чем на четыре загрузки в час. Данная лицензия распространяется только на издательские права, но не на права на запись, так что вам придется вести переговоры о дополнительной лицензии от Phonographic Performance Limited, чтобы действительно проигрывать записи или компакт-диски.

Неудивительно, что многие некоммерческие радиостанции исчезли из виртуального эфира на протяжении последних нескольких лет, так как при отсутствии соответствующих лицензий оператор может быть привлечен к судебной ответственности. Если вы собираетесь приобретать платную лицензию и можете себе это позволить, подробную информацию о лицензиях в Великобритании можно найти на сайтах: http://www.prsformusic.com и http://www.ppluk.com websites for UK licence details. Что касается США, на сайте http://www.soundexchange.com в настоящее время указана минимальная годовая плата для некоммерческого сетевого вещания в размере $ 500, плюс плата за использование свыше определенного количества часов эфира, за право потокового вещания музыки для зарегистрированных пользователей.

Возможность передачи бесплатного контента дает «самодельному» Интернет-радио шанс на возрождение. Так как такие общества по сбору роялти, как MCPS-PRS и SoundExchange, могут представлять интересы только своих членов, то отсюда следует, что если вы не являетесь их членом, вы можете передавать контент вашего собственного производства без оплаты их лицензий. Если вы заявляете где-либо на вашем сайте, что осуществляете потоковую передачу вашего собственного авторского материала, доступного аудитории согласно конкретной лицензии, то никто не сможет неправильно истолковать ваши намерения. Возможно, вам удастся убедить других людей позволить вам также передавать их контент, если у них нет противоречащих этому правовых обязательств, таких как уже зарегистрированное членство в одном из многочисленных обществ по сбору роялти по всему миру. Вы можете просить разрешение на передачу, когда посетители сайта загружают свои собственные музыкальные файлы через HTML-форму, как в социальных сетях. Или же вы можете собирать файлы, для которых действует соответствующая лицензия Creative Commons (http://www.creativecommons.org) или другие лицензии на бесплатный контент.

Прямое разрешение на потоковую передачу с вашего конкретного сервера всегда будет идеальным вариантом, так что подумайте о ваших собственных условиях, прежде чем принимать файлы от третьих лиц для потокового воспроизведения. Каким образом, например, вы узнаете о том, что кто-то загрузил на сервер вашей он-лайн радиостанции файл, который, без вашего ведома, был скопирован с выпущенного в коммерческих целях компакт-диска? Подобные ситуации могут привести к проблемам с разрешительными органами и владельцами авторских прав.

Настройка времени на сервере

Поддержка точного времени на сервере имеет принципиальное значение для оптимальной работы Airtime. Вы можете подтвердить, что дата и время на вашем сервере установлены правильно при помощи команды date:

$ date

Сервер должен ответить с указанием даты, времени, часового пояса и года в формате, аналогичном следующему примеру:

Mon Mar  7 14:59:17 GMT 2011

Часовой пояс в ответном сообщении сервера должен соответствовать континенту и городу, которые вы установили в файле .htaccess в ходе установки Airtime, аналогично тому, как GMT в приведенном выше примере соответствует Europe/London. В случае несоответствия см. ниже раздел Настройка часового пояса сервера.

Хотя дату и время сервера можно установить вручную, делать это не рекомендуется, так как часы сервера могут со временем отклоняться от точного времени, ставя под угрозу точность вашего графика вещания. Если ваш сервер Airtime постоянно подключен к Интернету, вы можете синхронизировать ваш сервер c сервером времени при помощи программы ntp.Если ntp у вас еще не установлена, вы можете ввести следующую команду в Debian или Ubuntu:

$ sudo apt-get install ntp 

По желанию можно открыть файл конфигурации ntp в редакторе nano, чтобы добавить дополнительные имена серверов времени:

$ sudo nano /etc/ntp.conf 

В Ubuntu GNU/Linux, по умолчанию установлен сервер времени ntp.ubuntu.com, но существует много других серверов времени, общедоступных в сети Интернет, включая ряд серверов, перечисленных на http://www.pool.ntp.org/ для каждой страны. Использование различных серверов NTP, расположенных вблизи вашего сервера Airtime, даст наиболее точные результаты. Например, для сервера в Великобритании вы могли бы использовать следующий список:

# You do need to talk to an NTP server or two (or three).
server ntp.ubuntu.com
server 0.uk.pool.ntp.org
server 1.uk.pool.ntp.org
server 2.uk.pool.ntp.org
server 3.uk.pool.ntp.org 

Введите необходимые вам имена серверов, нажмите Ctrl + O, чтобы выполнить контрольное считывание файла /etc/ntp.conf, затем Ctrl + X для выхода из nano. Перезапустите службу ntp при помощи команды:

$ sudo service ntp restart

Сервер должен ответить:

* Stopping NTP server ntpd                                 [ OK ]
* Starting NTP server ntpd                                 [ OK ]

Затем используйте команду ntpq -p, чтобы убедиться, что протокол ntp работает. В результате выполнения этой команды должно появиться сообщение, аналогичное следующему скриншоту:


Настройка часового пояса сервера  

Если ваш сервер настроен на иной часовой пояс, чем тот, который вы задали в ходе установки Airtime, ваша программа вещания может быть воспроизведена в неверное время. Центр обработки данных, в котором размещается ваш сервер Airtime, может находиться в любой точке мира. Некоторые серверы настроены на универсальное глобальное время или UTC (по аналогии с гринвичским временем или GMT), независимо от их местонахождения. Если это не подходит для вашей станции, на сервере под Debian или Ubuntu можно перенастроить пакет tzdata (данные о часовом поясе) с помощью команды:

$ sudo dpkg-reconfigure tzdata

Эта команда открывает меню, в котором вы можете выбрать нужный вам континент, нажав клавишу Ввод (Enter).

 

Следующим шагом будет выбор ближайшего города, также нажатием клавиши Ввода. Соответствующий часовой пояс выбирается в зависимости от информации, которую вы ввели.

 

Сообщение, аналогичное нижеследующему, после выполнения команды dpkg-reconfigure tzdata подтвердит новое заданное значение

Current default time zone: 'Europe/London'
Local time is now:      Mon Mar  7 15:04:58 GMT 2011.
Universal Time is now:  Mon Mar  7 15:04:58 UTC 2011.

Переключение соединения при потоковой передаче

В стандартной конфигурации живой сигнал из студии вещания и запланированное вещание архивных материалов микшируются перед их отправкой далее по каналу вещания, например, на передатчик или потоковый медиа-сервер в Интернете.

Если ваш сервер Airtime размещен в удаленном центре обработки данных, у вас может отсутствовать возможность ручного переключения источника потокового медиа с живого вещания на запланированную передачу, так как у вас нет физического доступа для подключения эфирного микшера к серверу. Или же у вас может быть сервер Airtime в студии с подключением к вашему основному микшеру, но вы хотели бы, чтобы переключение потока осуществлялось автоматически в нужное время. Отключение потока и начало другого нежелательно, потому что при этом медиа-плейеры аудитории также будут отключаться.

Сервер Icecast имеет функцию fallback-mount (резервное монтирование), которая может быть использована для переключения клиентов (медиаплейеров, используемых слушателями или зрителями) с одного источника на другой по мере того, как новые источники становятся доступными. Это делает возможным переключение с запланированной передачи в Airtime на вещание в прямом эфире из другого источника и подключения снова к Airtime, как только прямой эфир закончился.

Чтобы активизировать функцию резервного монтирования, отредактируйте основной конфигурационный файл Icecast для определения точек монтирования, которые вы будете использовать, и отношений между ними.

$ sudo nano /etc/icecast2/icecast.xml

Пример раздела <mount>, который содержится в файле icecast.xml, закомментирован по умолчанию. До или после закомментированного раздела добавьте три определения точки монтирования. Точкой монтирования, используемой Airtime по умолчанию, является /airtime.ogg, как показано в файле /etc/airtime/liquidsoap.cfg. Необходимо также определить точку монтирования для источника прямого вещания (в данном примере /live.ogg) и точку монтирования для подключения общего доступа (в данном примере /stream.ogg).

   <mount>
        <mount-name>/airtime.ogg</mount-name>
        <hidden>0</hidden>
   </mount>

   <mount>
        <mount-name>/live.ogg</mount-name>
        <fallback-mount>/airtime.ogg</fallback-mount>
        <fallback-override>1</fallback-override>
        <hidden>0</hidden>
   </mount>

   <mount>
        <mount-name>/stream.ogg</mount-name>
        <fallback-mount>/live.ogg</fallback-mount>
        <fallback-override>1</fallback-override>
        <hidden>0</hidden>
   </mount>

Эти определения точек монтирования означают, что клиент, подключающийся к URL, например, такому как http://icecast.example.com:8000/stream.ogg, сначала вернется к точке монтирования /live.ogg, если она доступна. Если нет, то клиент затем вернется к точке монтирования /airtime.ogg для воспроизведения запланированной передачи.

Настройка значения <fallback-override> на режим «I» («включено») означает, что когда точка монтирования /live.ogg снова станет доступной, клиент будет повторно подключен к ней. Если вы хотите скрыть точки монтирования /airtime.ogg и /live.ogg для общедоступного веб-интерфейса Icecast, установите режим «I» для значения <hidden> в каждом из этих определений.

Настройка источника прямого вещания

Для интеграции источника потокового вещания в прямом эфире с Airtime подключите источник прямого вещания к серверу Icecast с теми же параметрами, которые определены в файле /etc/airtime/liquidsoap.cfg, за исключением точки монтирования. Это должна быть точка монтирования для источника прямого вещания, которую вы определили в файле /etc/icecast2/icecast.xml, как например, /live.ogg в примере выше.

Для настройки Mixxx для потоковой передачи в Icecast выберите пункты меню Options, Preferences, а затем Live Broadcasting. Выберите Icecast 2 по умолчанию как тип сервера (Type) при потоковой передаче на серверы под Debian или Ubuntu, так как эта версия Icecast поставляется с этими дистрибутивами GNU/Linux.

 

По умолчанию, потоки Icecast буферизуются для защиты от сетевых проблем, что вызывает задержку для удаленных слушателей. При удаленном мониторинге потока вам может понадобиться начинать воспроизведение в потоковом режиме на несколько секунд раньше, чем заканчивается предыдущий поток, чтобы обеспечить плавный переход.

Настройки поддержки

Если вы не зарегистрировали Airitme при его установке, как показано в главе Начало работы, вы можете кликнуть на Support Settings (Настройки поддержки) в меню Configure (Настройки) , чтобы воспользоваться опцией автоматической обратной связи. Отметьте клетку Send support feedback (Послать сообщение о технической поддержке), чтобы сообщить Sourcefabric технические детали о вашей установке Airtime по интернету. Эти сведения позволят специалистам Sourcefabric диагностировать любую проблему, которую вы, возможно, наблюдаете в своей системе радиовещания.

Вам, возможно, захочется получить возможность сообщить о своей станции наряду с другими пользователями Airtime на сайте  http://www.sourcefabric.org. Кроме того, эта опция позволяет команде Sourcefabric направлять поддержку тем странам, где она нужна более всего. Отметьте клетку (Promote my station on Sourcefabric.org) Промоутировать мою станцию на Sourcefabric.org на странице Кликните кнопку (Browse) Искать, чтобы выбрать изображение Логотипа станции на вашем компьютере.


Кликните Показать мне, что я посылаю (Show me what I'm sending) для вызова информации о технических данных, которые вы отправляете в Sourcefabric. Все данные собираются с учетом политики сохранения конфиденциальности  (http://www.sourcefabric.org/en/about/policy/) с условиями которой вы должны согласиться прежде, чем отправите информацию.

Команда airtime-user

Airtime имеет инструмент командной строки airtime-user, который можно использовать для добавления, обновления или удаления пользовательских учетных записей. Вы можете видеть эти опции, набрав их в панели управления сервера без использования аргументов:

$ airtime-user

airtime-user
===============
    This program allows you to manage Airtime users.

OPTIONS:
    --addupdate <username>
        Add the user or update user information.
    --delete <username>
        Remove the user.

Например, чтобы создать учетную запись диджея Disco Dave вы можете написать следующее:

$ airtime-user --addupdate dave
Creating user
Enter password (min 6 characters): saturdaynightfever1977
Enter first name: Disco
Enter last name: Dave
Enter user type [(A)dmin|(P)rogram Manager|(D)J|(G)uest]: D

Существующие учетные записи можно обновлять при помощи той же команды.

 

Часовые пояса

Используйте соответствующее часовому поясу значение из нижеприведенного списка в файле php.ini на вашем сервере Airtime.

Африка

Africa/Abidjan, Africa/Accra, Africa/Addis_Ababa, Africa/Algiers, Africa/Asmara, Africa/Asmera, Africa/Bamako, Africa/Bangui, Africa/Banjul, Africa/Bissau, Africa/Blantyre, Africa/Brazzaville, Africa/Bujumbura, Africa/Cairo, Africa/Casablanca, Africa/Ceuta, Africa/Conakry, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Douala, Africa/El_Aaiun, Africa/Freetown, Africa/Gaborone, Africa/Harare, Africa/Johannesburg, Africa/Kampala, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Libreville, Africa/Lome, Africa/Luanda, Africa/Lubumbashi, Africa/Lusaka, Africa/Malabo, Africa/Maputo, Africa/Maseru, Africa/Mbabane, Africa/Mogadishu, Africa/Monrovia, Africa/Nairobi, Africa/Ndjamena, Africa/Niamey, Africa/Nouakchott, Africa/Ouagadougou, Africa/Porto-Novo, Africa/Sao_Tome, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, Africa/Windhoek

Америка

America/Adak, America/Anchorage, America/Anguilla, America/Antigua, America/Araguaina, America/Argentina/Buenos_Aires, America/Argentina/Catamarca, America/Argentina/ComodRivadavia, America/Argentina/Cordoba, America/Argentina/Jujuy, America/Argentina/La_Rioja, America/Argentina/Mendoza, America/Argentina/Rio_Gallegos, America/Argentina/Salta, America/Argentina/San_Juan, America/Argentina/San_Luis, America/Argentina/Tucuman, America/Argentina/Ushuaia, America/Aruba, America/Asuncion, America/Atikokan, America/Atka, America/Bahia, America/Bahia_Banderas, America/Barbados, America/Belem, America/Belize, America/Blanc-Sablon, America/Boa_Vista, America/Bogota, America/Boise, America/Buenos_Aires, America/Cambridge_Bay, America/Campo_Grande, America/Cancun, America/Caracas, America/Catamarca, America/Cayenne, America/Cayman, America/Chicago, America/Chihuahua, America/Coral_Harbour, America/Cordoba, America/Costa_Rica, America/Cuiaba, America/Curacao, America/Danmarkshavn, America/Dawson, America/Dawson_Creek, America/Denver, America/Detroit, America/Dominica, America/Edmonton, America/Eirunepe, America/El_Salvador, America/Ensenada, America/Fort_Wayne, America/Fortaleza, America/Glace_Bay, America/Godthab, America/Goose_Bay, America/Grand_Turk, America/Grenada, America/Guadeloupe, America/Guatemala, America/Guayaquil, America/Guyana, America/Halifax, America/Havana, America/Hermosillo, America/Indiana/Indianapolis, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Petersburg, America/Indiana/Tell_City, America/Indiana/Vevay, America/Indiana/Vincennes, America/Indiana/Winamac, America/Indianapolis, America/Inuvik, America/Iqaluit, America/Jamaica, America/Jujuy, America/Juneau, America/Kentucky/Louisville, America/Kentucky/Monticello, America/Knox_IN, America/La_Paz, America/Lima, America/Los_Angeles, America/Louisville, America/Maceio, America/Managua, America/Manaus, America/Marigot, America/Martinique, America/Matamoros, America/Mazatlan, America/Mendoza, America/Menominee, America/Merida, America/Mexico_City, America/Miquelon, America/Moncton, America/Monterrey, America/Montevideo, America/Montreal, America/Montserrat, America/Nassau, America/New_York, America/Nipigon, America/Nome, America/Noronha, America/North_Dakota/Beulah, America/North_Dakota/Center, America/North_Dakota/New_Salem, America/Ojinaga, America/Panama, America/Pangnirtung, America/Paramaribo, America/Phoenix, America/Port-au-Prince, America/Port_of_Spain, America/Porto_Acre, America/Porto_Velho, America/Puerto_Rico, America/Rainy_River, America/Rankin_Inlet, America/Recife, America/Regina, America/Resolute, America/Rio_Branco, America/Rosario, America/Santa_Isabel, America/Santarem, America/Santiago, America/Santo_Domingo, America/Sao_Paulo, America/Scoresbysund, America/Shiprock, America/St_Barthelemy, America/St_Johns, America/St_Kitts, America/St_Lucia, America/St_Thomas, America/St_Vincent, America/Swift_Current, America/Tegucigalpa, America/Thule, America/Thunder_Bay, America/Tijuana, America/Toronto, America/Tortola, America/Vancouver, America/Virgin, America/Whitehorse, America/Winnipeg, America/Yakutat, America/Yellowknife

Антарктика

Antarctica/Casey, Antarctica/Davis, Antarctica/DumontDUrville, Antarctica/Macquarie, Antarctica/Mawson, Antarctica/McMurdo, Antarctica/Palmer, Antarctica/Rothera, Antarctica/South_Pole, Antarctica/Syowa, Antarctica/Vostok

Арктика

Arctic/Longyearbyen

Asia

Asia/Aden, Asia/Almaty, Asia/Amman, Asia/Anadyr, Asia/Aqtau, Asia/Aqtobe, Asia/Ashgabat, Asia/Ashkhabad, Asia/Baghdad, Asia/Bahrain, Asia/Baku, Asia/Bangkok, Asia/Beirut, Asia/Bishkek, Asia/Brunei, Asia/Calcutta, Asia/Choibalsan, Asia/Chongqing, Asia/Chungking, Asia/Colombo, Asia/Dacca, Asia/Damascus, Asia/Dhaka, Asia/Dili, Asia/Dubai, Asia/Dushanbe, Asia/Gaza, Asia/Harbin, Asia/Ho_Chi_Minh, Asia/Hong_Kong, Asia/Hovd, Asia/Irkutsk, Asia/Istanbul, Asia/Jakarta, Asia/Jayapura, Asia/Jerusalem, Asia/Kabul, Asia/Kamchatka, Asia/Karachi, Asia/Kashgar, Asia/Kathmandu, Asia/Katmandu, Asia/Kolkata, Asia/Krasnoyarsk, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Kuwait, Asia/Macao, Asia/Macau, Asia/Magadan, Asia/Makassar, Asia/Manila, Asia/Muscat, Asia/Nicosia, Asia/Novokuznetsk, Asia/Novosibirsk, Asia/Omsk, Asia/Oral, Asia/Phnom_Penh, Asia/Pontianak, Asia/Pyongyang, Asia/Qatar, Asia/Qyzylorda, Asia/Rangoon, Asia/Riyadh, Asia/Saigon, Asia/Sakhalin, Asia/Samarkand, Asia/Seoul, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Asia/Tashkent, Asia/Tbilisi, Asia/Tehran, Asia/Tel_Aviv, Asia/Thimbu, Asia/Thimphu, Asia/Tokyo, Asia/Ujung_Pandang, Asia/Ulaanbaatar, Asia/Ulan_Bator, Asia/Urumqi, Asia/Vientiane, Asia/Vladivostok, Asia/Yakutsk, Asia/Yekaterinburg, Asia/Yerevan

Атлантика

Atlantic/Azores, Atlantic/Bermuda, Atlantic/Canary, Atlantic/Cape_Verde, Atlantic/Faeroe, Atlantic/Faroe, Atlantic/Jan_Mayen, Atlantic/Madeira, Atlantic/Reykjavik, Atlantic/South_Georgia, Atlantic/St_Helena, Atlantic/Stanley

Австралия

Australia/ACT, Australia/Adelaide, Australia/Brisbane, Australia/Broken_Hill, Australia/Canberra, Australia/Currie, Australia/Darwin, Australia/Eucla, Australia/Hobart, Australia/LHI, Australia/Lindeman, Australia/Lord_Howe, Australia/Melbourne, Australia/North, Australia/NSW, Australia/Perth, Australia/Queensland, Australia/South, Australia/Sydney, Australia/Tasmania, Australia/Victoria, Australia/West, Australia/Yancowinna

Европа

Europe/Amsterdam, Europe/Andorra, Europe/Athens, Europe/Belfast, Europe/Belgrade, Europe/Berlin, Europe/Bratislava, Europe/Brussels, Europe/Bucharest, Europe/Budapest, Europe/Chisinau, Europe/Copenhagen, Europe/Dublin, Europe/Gibraltar, Europe/Guernsey, Europe/Helsinki, Europe/Isle_of_Man, Europe/Istanbul, Europe/Jersey, Europe/Kaliningrad, Europe/Kiev, Europe/Lisbon, Europe/Ljubljana, Europe/London, Europe/Luxembourg, Europe/Madrid, Europe/Malta, Europe/Mariehamn, Europe/Minsk, Europe/Monaco, Europe/Moscow, Europe/Nicosia, Europe/Oslo, Europe/Paris, Europe/Podgorica, Europe/Prague, Europe/Riga, Europe/Rome, Europe/Samara, Europe/San_Marino, Europe/Sarajevo, Europe/Simferopol, Europe/Skopje, Europe/Sofia, Europe/Stockholm, Europe/Tallinn, Europe/Tirane, Europe/Tiraspol, Europe/Uzhgorod, Europe/Vaduz, Europe/Vatican, Europe/Vienna, Europe/Vilnius, Europe/Volgograd, Europe/Warsaw, Europe/Zagreb, Europe/Zaporozhye, Europe/Zurich

Индийский океан

Indian/Antananarivo, Indian/Chagos, Indian/Christmas, Indian/Cocos, Indian/Comoro, Indian/Kerguelen, Indian/Mahe, Indian/Maldives, Indian/Mauritius, Indian/Mayotte, Indian/Reunion

Тихий океан

Pacific/Apia, Pacific/Auckland, Pacific/Chatham, Pacific/Chuuk, Pacific/Easter, Pacific/Efate, Pacific/Enderbury, Pacific/Fakaofo, Pacific/Fiji, Pacific/Funafuti, Pacific/Galapagos, Pacific/Gambier, Pacific/Guadalcanal, Pacific/Guam, Pacific/Honolulu, Pacific/Johnston, Pacific/Kiritimati, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro, Pacific/Marquesas, Pacific/Midway, Pacific/Nauru, Pacific/Niue, Pacific/Norfolk, Pacific/Noumea, Pacific/Pago_Pago, Pacific/Palau, Pacific/Pitcairn, Pacific/Pohnpei, Pacific/Ponape, Pacific/Port_Moresby, Pacific/Rarotonga, Pacific/Saipan, Pacific/Samoa, Pacific/Tahiti, Pacific/Tarawa, Pacific/Tongatapu, Pacific/Truk, Pacific/Wake, Pacific/Wallis, Pacific/Yap

Решение возможных проблем

Если ваш сервер Airtime не работает должным образом, отдельные компоненты системы можно остановить, запустить или перезапустить при помощи команд service:

$ sudo service airtime-playout        start|stop|restart|status
$ sudo service airtime-media-monitor  start|stop|restart|status
$ sudo service airtime-show-recorder  start|stop|restart|status

В Debian squeeze в вышеуказанных командах используйте команду invoke-rc.d вместо service.

Опция status запускает скрипт airtime-check-system, чтобы подтвердить, что все зависимости Airtime установлены и работают корректно.

Airtime сохраняет логи в папке /var/log/airtime/, что может быть полезным при диагностике причины любых проблем. Команда less при ее использовании с опцией +G открывает возможность читать журнал регистрации воспроизведения Airtime с конца:

$ less +G /var/log/airtime/pypo/pypo.log

Если вы хотите просмотреть продолжение журнала регистрации, как, например, журнал Liquidsoap log, вы можете использовать команду tail с опцией -f:

$ sudo tail -f /var/log/airtime/pypo-liquidsoap/ls_script.log

Вы можете прервать tail, нажав Ctrl-C на клавиатуре. Медиа монитор Airtime имеет собственный журнал регистрации в файле:

/var/log/airtime/media-monitor/media-monitor.log

а рекордер Airtime в файле: 

/var/log/airtime/show-recorder/show-recorder.log

Копии этих журналов могут запросить инженеры Sourcefabric при обращении к ним за технической поддержкой.

Обновление

Перед обновлением рабочего сервера Airtime, рекомендуется создать резервную копию как базы данных PostgreSQL, так и файлов сервера для хранения данных, используемого Airtime. Это особенно важно в том случае, если вы до сих пор не устанавливали порядок регулярного резервного копирования. Дополнительное резервное копирование является мерой предосторожности от случайной потери данных во время обновления, например, из-за введения неправильной команды при перемещении файлов. См. в разделе Резервное копирование сервера данного руководства подробную информацию о том, как выполняется такое резервное копирование.

Если вы запустили Airtime методом Автоматизированной установки, вы можете обновить приложение тем же образом. Новый пакет Airtime, имеющийся в хранилище Sourcefabric, можно установить при помощи команд:

$ sudo apt-get update
$ sudo apt-get upgrade

Если вы использовали метод Установки вручную, следует повторить такие шаги процесса установки как загрузка и распаковка tar-архива в директорию установки, внесение изменений в эту директорию и запуск сценария airtime-install. Инсталляционный скрипт обнаружит развернутое приложение Airtime и создаст резервные копии всех конфигурационных файлов, которые найдет.

После завершения обновления вам может потребоваться очистить кэш браузера перед входом в новую версию интерфейса для администрирования AirtimeЕсли проигрывающее устройство запустится и обнаружит, что какая-то программа должна звучать в настоящий момент, оно найдет соответствующее место на дорожке и начнет проигрывание программы.

В версии 1.9.0 Airtime концепция linked files (файлов, к которым созданы ссылки) была заменена концепцией watched folders (просматриваемых папок). Если вы обновляете систему из версии, вышедшей ранее Airtime 1.9.0, и у вас есть файлы, к которым созданы ссылки, папки, в которых они находятся, не будут видны до тех пор, пока вы не добавите их в список просматриваемых папок. О том, как это сделать, вы можете прочитать в главе Управление папками медиа файлов.  

Использование Monit

Monit это утилита, которую можно использовать для управления и мониторинга процессов, файлов, папок и файловых систем вашего сервера Airtime. При установке Airtime эта программа устанавливается по умолчанию.

Чтобы ознакомиться с веб-интерфейсом Monit, откройте порт 2812 вашего сервера в веб-браузере, например:

http://localhost:2812/

Чтобы увидеть веб-интерфейс Monit вам нужно будет войти с именем admin и паролем monit, установленными по умолчанию.

 

Чтобы настроить Monit  для отсылки предупреждений по электронной почте в файле /etc/monit/monitrc раскомментируйте параметр set mailserver. Измените эту строку, чтобы отобразить имя SMTP сервера в сети вашего сервера Airtime, в соответствии с требованиями вашего системного администратора.  

$ sudo nano /etc/monit/monitrc

В конфигурационном файле вы можете указать адреса From: (от) и To: (кому) для предупреждений по электронной почте, используя параметры set mail-format и set alert. Затем раскомментируйте требуемые строки.

Нажмите Ctrl+O, чтобы сохранить файл и Ctrl+X, чтобы выйти из редактора nano. Затем перезапустите утилиту monit при помощи команды:

$ sudo invoke-rc.d monit restart

 Более подробно об использовании Monit можно прочитать здесь: http://mmonit.com/monit/documentation/

Использование скрипта airtime-import

При наличии большого количества файлов в вашей медиатеке трудоемко и утомительно импортировать эти файлы в систему автоматизации вещания по одному. Именно поэтому в Airtime включен сценарий для импортирования всего каталога файлов за один раз.

Качество метаданных

Скрипт airtime-import автоматически импортирует все метаданные, содержащиеся в ID3-тегах файлов. Если эти теги неверны или содержат неполную информацию, вам придется либо отредактировать метаданные, прежде чем импортировать их, или мириться с последствиями этого. Например, если в тегах отсутствуют метаданные о создателе или жанре произведения, то вы не сможете осуществлять поиск, составлять списки воспроизведения или графики вещания по этим критериям.

Есть ряд программ, которые можно использовать для исправления ошибок или неполной информации в ID3-тегах. Под GNU/Linux для группирования и редактирования ID3-тегов перед импортированием файлов на ваш сервер Airtime может быть полезной программа Ex Falso (http://code.google.com/p/quodlibet/). На вашем ПК под Ubuntu вы можете ее установить с помощью команды:

$ sudo apt-get install exfalso

После установки вы можете активировать программу с помощью команды:

$ exfalso

Функция Tags From Path данной программы особенно полезна и сэкономит время в случае, когда у вас имеется большой архив непомеченных файлов. Иногда полезная информация о произведении или его названии содержится в имени файла, которое может быть преобразовано в ID3-тег автоматически.

Паузы в медиа-файлах

Перед импортом медиа-файлов, хорошим тоном является проверка любых зон молчания в медиа-файлах. Хотя Airtime может компенсировать паузы в начале и конце при помощи указателей начала и окончания композиций в Компановщике плейлистов, лучше подрезать эти файлы до нужной длины до того, как загружать их. Таким образом обработанные файлы не потребуют траты времени ваших сотрудников на постоянное назначение указателей начала и окончания, ведь в архиве Airtime медиа-файлы могут быть использованы для разных программ. Для выполнения подрезки файлов вам может пригодиться кросс-платформный редактор Audacity, который можно найти на странице http://audacity.sourceforge.net/.

Слишком тихие вступления или затянутые финалы также могут привести к очевидным паузам в вашем вещании. Некоторые аудио CD в конце имеют так называемые скрытые дорожки, которые создают длительные периоды молчания в последней композиции, а не реальную дорожку. Это означает, что кодирующие программы CD закодируют и скрытый материал и паузу в медиа-файле. Например, дорожка Debra на CD Midnite Vultures (Beck) включает скрытую дорожку, предваряемую семью минутами тишины, что наглядно показывает скриншот Audacity:   

Копирование либо просмотр

При использовании скрипта airtime-import есть три возможности: копировать, перемещать файлы в главное  хранилище Airtime или просматривать файлы где-тв другом месте. Каждый из вариантов имеет свои преимущества и недостатки, поэтому вам придется продумать, как будут использоваться файлы на вашей станции в долгосрочной перспективе.

Скрипт airtime-import запускается из командной строки, поэтому сначала вы должны войти в панель управления на сервере Airtime. В последних версиях Airtime вам не понадобится полностью прописывать путь в файловой системе к медиа-файлам, которые вы хотите импортировать. Копирование обозначается суб-командой copy:

$ airtime-import copy <directory>

где <directory> это корневая папка медиа файлов, которые вы хотите импортировать. 

В другом случае вы можете захотеть удалить эти файлы из места их изначального размещения после того, как скопировали их в архив, и это можно сделать, применив суб-команду move:

$ airtime-import move <directory>

Если новые файлы являются точными копиями файлов, которые уже были импортированы, скрипт это обнаружит.

Любой пользователь, вошедший в административный интерфейс будет предупрежден о том, что происходит импорт файлов. Пользователи с правами admin не должны изменять папку хранения Airtime, назначенную по умолчанию, пока продолжается процесс импортирования. 

 

Просмотр новой папки обозначается использованием суб-команды watch add:

$ airtime-import watch add <directory>

Скрипт сообщит имя папки, которая просматривается в данный момент. Например:

$ airtime-import watch add /home/daniel/Music/mp3/Beck
/home/daniel/Music/mp3/Beck/ added to watched folder list successfully

Просматриваемая папка также отобразится на странице Управления медиа папками (Manage Media Folders) административного интерфейса Airtime. Чтобы получить список просматриваемых в данный момент папок в панели управления сервера вы можете использовать суб-команду watch list:

$ airtime-import watch list
/home/daniel/Music/mp3/Beck/

Любый новые файлы, скопированные в просматриваемую папку (например, с использованием программы управления файлами вашего компьютера), автоматически появятся в базе данных Airtime. Теперь они готовы к проигрыванию. Таким же образом если вы удалите медиа файл при помощи вашей программы управления файлами, они будут автоматически удалены из базы данных Airtime и не будут доступны для проигрывания. 

Если вы больше не хотите просматривать определенную папку, воспользуйтесь суб-командой watch remove:

$ airtime-import watch remove /home/daniel/Music/mp3/Beck
/home/daniel/Music/mp3/Beck/ removed from watched folder list successfully 

Как узнать или настроить путь к папке-хранилищу 

Скрипт airtime-import дает вам возможность читать или прописывать конфигурацию пути к папкам хранения Airtime. Вы можете найти текущие настройки при помощи суб-команды storage-dir get

$ airtime-import storage-dir get
/srv/airtime/stor

Новый путь к папке-хранилищу можно сконфигурировать при помощи суб-командыstorage-dir set:

$ airtime-import storage-dir set /home/daniel/Music/mp3/
Successfully set storage folder to /home/daniel/Music/mp3/

Суб-команду storage-dir set на рабочем сервере стоит использовать  с осторожностью, поскольку перемещение папки хранения в процессе планового программирования может нарушить вещание.