Acerca de este manual

Copyright (C) 2012 Sourcefabric o.p.s

Este manual fue escrito para Sourcefabric por Daniel James y traducido por Angélica Quiñónez, usando las herramientas de FLOSS Manuals. Por favor, envía tus comentarios y sugerencias a: http://en.flossmanuals.net/airtime-es-2-0/

Este es un documento liberado; puede distribuirse y/o modificarse bajo los términos de la Licencia Pública General GNU, publicada por la Free Software Foundation, versión 3.

Este documento se distribuye con el propósito de ser útil, pero SIN GARANTÍA; sin siquiera la garantía implicada de COMERCIABILIDAD o ADECUACIÓN PARA UN PROPÓSITO PARTICULAR. Lee la Licencia Pública General GNU para conocer más detalles.

Debes recibir una copia de la Licencia Pública General GNU; si no, escribe a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, EEUU.


LICENCIA PÚBLICA GENERAL GNU

Versión 3, 29 de junio de 2007

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

Se permite la copia y distribución de copias literales de esta licencia, pero no está permitido modificarla.

Preámbulo

La Licencia Pública General GNU (GNU GPL) es una licencia libre, sin derechos para software y otro tipo de trabajos.

Las licencias para la mayoría del software y otros trabajos prácticos están destinadas a suprimir la libertad de compartir y modificar esos trabajos. Por el contrario, la Licencia Pública General GNU persigue garantizar su libertad para compartir y modificar todas las versiones de un programa--y asegurar que permanecerá como software libre para todos sus usuarios. Nosotros, La Fundación de Software Libre, usamos la Licencia Pública General GNU para la mayoría de nuestro software; y también se aplica a cualquier trabajo realizado de la misma forma por sus autores. Usted también puede aplicarla a sus programas.

Cuando hablamos de software libre, nos referimos a libertad, no a precio. Nuestras Licencias Públicas Generales están destinadas a garantizar la libertad de distribuir copias de software libre (y cobrar por ello si quiere), a recibir el código fuente o poder conseguirlo si así lo desea, a modificar el software o usar parte del mismo en nuevos programas libres, y a saber que puede hacer estas cosas.

Para proteger sus derechos, necesitamos evitar que otros le nieguen esos derechos o le pidan renunciar a ellos. Por lo tanto, usted tiene ciertas responsabilidades cuando distribuye copias del software, o si lo modifica: responsabilidades que persiguen respetar la libertad de otros.

Por ejemplo, si distribuye copias de tales programas, gratuitamente o no, debe transmitir a los destinatarios los mismos derechos que usted recibió. Debe asegurarse que ellos también reciban o puedan conseguir el código fuente. Y debe mostrarles estos términos y condiciones para que conozcan sus derechos.

Los desarrolladores que usen la GPL GNU protegen sus derechos de dos formas: (1) imponen derechos al software, y (2) le ofrecen esta Licencia para que legalmente lo copie, distribuya y/o modifique.

Para proteger a desarrolladores y autores, la GPL expone claramente que no existe garantía alguna para este software libre. Para beneficio de ambos, usuarios y autores, la GPL establece que las versiones modificadas deberán estar identificadas como tales, para que cualquier problema no sea atribuido por error a los autores de versiones anteriores.

Algunos dispositivos están diseñados para negar al usuario la instalación o la ejecución de versiones modificadas del software que usan internamente, aunque el fabricante sí pueda hacerlo. Esto es completamente incompatible con el objetivo de proteger la libertad de los usuarios para modificar el software. Este tipo de abuso sistemático ocurre con productos de uso personal, que es precisamente donde es menos aceptable. Por tanto, hemos diseñado esta versión de la GPL para prohibir estas prácticas en esos productos. Si apareciesen problemas similares en otros ámbitos, estaremos preparados para extender estas prestaciones a las próximas versiones de la GPL, tanto como sea necesario para proteger la libertad de los usuarios.

Por último, todo programa está constantemente amenazado por las patentes de software. Los estados no deberían permitir que las patentes restrinjan el desarrollo y el uso de software en ordenadores de uso general; pero en aquellos que lo hagan, esperamos evitar el especial peligro que suponen las patentes, que aplicadas a un programa libre puedan hacerlo propietario en la práctica. Para prevenir eso, la GPL establece que las patentes no pueden usarse para convertir un programa en no-libre.

A continuación se exponen los términos y condiciones para la copia, distribución y modificación.

TÉRMINOS Y CONDICIONES

0. Definiciones.

En adelante “Esta Licencia” se refiere a la versión 3 de la Licencia Pública General GNU.

"Copyright" también significa "leyes similares al copyright" que son aplicables a otro tipo de trabajos, tales como las máscaras de semiconductores.

"El Programa" se refiere a cualquier trabajo con copyright al que se haya aplicado esta Licencia. Cada beneficiario es asimilable a "usted". "Beneficiarios" y "destinatarios" pueden ser personas físicas u organizaciones.

"Modificar" un trabajo significa copiar o adaptar todo o parte de un trabajo, exceptuando la copia exacta, de manera que se requiera permiso de copyright. El trabajo resultante se denomina "versión modificada" de un trabajo anterior o trabajo "basado en" el trabajo anterior.

Un "trabajo amparado" puede ser tanto el Programa no modificado como un trabajo basado en el Programa.

"Difundir" un trabajo significa hacer cualquier cosa con él, sin permiso, que le haga directa o indirectamente responsable de infringir leyes cubiertas por copyright, excepto la ejecución en un ordenador o la modificación de una copia privada. La difusión incluye la copia, distribución (con o sin modificaciones), distribución pública, y en algunos países también otras actividades.

"Distribuir" un trabajo implica cualquier tipo de difusión que permite a la otra parte hacer o recibir copias. La mera interacción con un usuario mediante una red de ordenadores, sin transferir copia alguna, no se considera "distribución".

Una interfaz de usuario interactiva muestra "Avisos Legales Apropiados" siempre y cuando incluya características visuales apropiadas y destacadas que (1) muestren un aviso de copyright apropiado, y (2) indiquen al usuario que no existe garantía alguna para el trabajo (exceptuando las garantías que se hayan podido establecer), que los beneficiarios deben distribuir el trabajo según se establece en la presente Licencia, y cómo se puede ver una copia de esta Licencia. Si la interfaz muestra una lista de opciones o comandos, tales como menús, un elemento destacado en dicha lista cumple estos criterios.

1. Código.

El "código fuente" de un trabajo es el formato preferido para realizar modificaciones sobre él. "Código objeto" se refiere a cualquier formato del trabajo que no sea código fuente.

Una "Interfaz Estándar" se refiere a una interfaz que sea o bien un estándar oficial definido por una institución de estándares reconocida, o bien, en el caso de interfaces específicos para una determinado lenguaje de programación, una cuyo uso esté generalizada entre los desarrolladores que trabajan con ese lenguaje.

Las "Bibliotecas de Sistema" de un trabajo ejecutable incluyen a cualquier elemento, que no sea el trabajo completo, que (a) esté incluida/o de la misma forma que un componente principal, pero que no forme parte de ese componente principal, y (b) sólo sirva para habilitar la utilización del trabajo a través de ese componente principal, o para implementar un Interfaz Estándar para el cual está disponible una implementación pública en código fuente. Un "Componente Principal", en este contexto, se refiere a un componente principal y esencial (núcleo, sistema de ventanas y similares) del sistema operativo particular (en su caso) sobre el cual funcione el ejecutable, o un compilador utilizado para generar el trabajo, o un intérprete del código objeto utilizado para ejecutarlo.

La "Fuente Correspondiente" de un trabajo en código objeto se refiere a todo código fuente necesario para generar, instalar, y (en el caso de trabajos ejecutables) ejecutar el código objeto y modificar el trabajo, incluyendo guiones que controlen esas actividades. Sin embargo, no se incluyen las Bibliotecas de Sistema del trabajo, o herramientas de propósito general o programas gratuitos habitualmente disponibles y usados sin ninguna modificación para realizar estas actividades pero que no forman parte del trabajo. Por ejemplo, la Fuente Correspondiente incluye los archivos de definición de interfaz asociados con archivos fuente del trabajo, y el código fuente de las bibliotecas compartidas o subprogramas enlazados dinámicamente que el programa requiere por diseño, como la comunicación de datos intrínseca o el control de flujo entre esos subprogramas y otras partes del trabajo.

La Fuente Correspondiente no incluye necesariamente aquello que los usuarios pueden regenerar automáticamente a partir de otras partes de la Fuente Correspondiente.

La Fuente Correspondiente de un trabajo en código fuente es ese mismo trabajo.

2. Permisos Básicos.

Todos los derechos garantizados por esta Licencia se otorgan como copyright del Programa, y se proporcionan de manera irrevocable siempre y cuando se cumplan las condiciones establecidas. Esta Licencia afirma explícitamente su permiso ilimitado para ejecutar el Programa sin modificaciones. El resultado de la ejecución de un programa amparado está cubierto por esta Licencia sólo en el caso de que la salida, por su contenido, constituya un trabajo amparado. Esta Licencia reconoce sus derechos de uso razonable u otro equivalente, tal y como determina la ley de copyright.

Usted podrá realizar, ejecutar y difundir trabajos amparados que no distribuya, sin condición alguna, siempre y cuando no tenga otra licencia más restrictiva. Podrá distribuir trabajos amparados a terceros con el mero objetivo de que ellos hagan modificaciones exclusivamente para usted, o para que le proporcionen ayuda para ejecutar esos trabajos, siempre que cumpla los términos de esta Licencia distribuyendo todo el material de cuyo copyright no posee el control. Aquellos que realicen o ejecuten los trabajos amparados para usted deben hacerlo exclusivamente en su nombre, bajo su dirección y control, con términos que les prohíban realizar copias de su material con copyright al margen de la relación con usted.

La distribución bajo otras circunstancias se permite únicamente bajo las condiciones establecidas más abajo. No está permitido sublicenciar; la claúsula 10 lo hace innecesario.

3. Protección de los Derechos Legales de los Usuarios ante Leyes Anti-Burla.

Ningún trabajo amparado debe considerarse parte de una medida tecnológica efectiva, a tenor de lo establecido en cualquier ley aplicable que cumpla las obligaciones expresas en el artículo 11 del tratado de copyright WIPO adoptado el 20 de diciembre de 1996, o leyes similares que prohíben o restringen la burla de tales medidas.

Cuando distribuya un trabajo amparado, renuncia a cualquier poder legal para prohibir la burla de medidas tecnológicas mientras tales burlas se realicen en ejercicio de derechos amparados por esta Licencia respecto al trabajo amparado; además, usted negará cualquier intención de limitar el uso o modificación del trabajo con el objetivo de imponer, al trabajo de los usuarios, sus derechos legales o de terceros para prohibir la burla de medidas tecnológicas.

4. Distribución de Copias Literales.

Usted podrá distribuir copias literales del código fuente del Programa tal y como lo ha recibido , por cualquier medio, siempre que publique de forma clara y llamativa en cada copia el correspondiente aviso de copyright ; mantenga intactos todos los avisos que establezcan que esta Licencia y cualquier término no-permisivo añadido y acorde con la cláusula 7 son aplicables al código; mantenga intactos todos los avisos de ausencia de garantía; y proporcione a todos los destinatarios una copia de esta Licencia junto con el Programa.

Usted podrá cobrar cualquier importe o no cobrar nada por cada copia que distribuya, y podrá ofrecer soporte o protección de garantía mediante un pago.

5. Distribución de Versiones Modificadas de Código.

Usted podrá distribuir un trabajo basado en el Programa, o las modificaciones que lo producen a partir del Programa, como código fuente en virtud de los términos establecidos en la cláusula 4, siempre que cumpla todas las condiciones siguientes:

Un conjunto o recopilación formado por un trabajo amparado y otros trabajos distintos e independientes, que por su naturaleza no sean ampliaciones del trabajo amparado, que no se combinen con él de alguna forma para dar lugar a un programa mayor, y que estén ubicados en un medio de distribución o almacenamiento, se denomina "paquete" si la recopilación y su copyright al completo no son usados para limitar el acceso o los derechos legales de los usuarios de la recopilación, más allá de lo que permita el trabajo individual. La inclusión de un trabajo amparado en un paquete no hace aplicable esta Licencia al resto de elementos del paquete.

6. Distribución de Código No-Fuente.

Usted podrá distribuir el código objeto de un trabajo amparado en virtud de los términos de las cláusulas 4 y 5, siempre que también distribuya las Fuentes Correspondientes en código máquina, de acuerdo con los términos establecidos en esta Licencia, de alguna de las siguientes maneras:

Una parte separable del código objeto, cuyo código fuente esté excluido de las Fuentes Correspondientes como Biblioteca de Sistema, no necesita ser incluida en la distribución del código objeto del trabajo.

Un "Producto de Usuario" es tanto (1) un "producto de consumo", que se refiere a cualquier propiedad personal tangible habitualmente utilizada para fines personales, familiares o domésticos, o (2) cualquier cosa diseñada o vendida para ser incorporada como extensión/expansión para otro producto. Para determinar si un producto es un producto de consumo, los casos dudosos se resolverán favoreciendo el amparo. En el caso de un producto concreto recibido por un usuario particular, "de uso habitual" se refiere al uso típico o corriente de ese tipo de producto, independientemente de la situación del usuario particular o de la forma en que el usuario concreto utilice, o pretenda o se espere que pretenda utilizar, el producto. Un producto es un producto de consumo independientemente de si el producto tiene usos sustancialmente comerciales, industriales o distintos del consumo, a menos que tales usos representen la única forma posible de utilizar el producto.

Las "Instrucciones de Instalación" para un Producto de Usuario se refieren a cualquier método, procedimiento, clave de autorización, u otro tipo de información necesaria para instalar y ejecutar una versión modificada de un trabajo amparado en ese Producto de Usuario a partir de una versión modificada de las Fuentes Correspondientes. Las instrucciones deben ser suficientes para asegurar el funcionamiento continuo del código objeto modificado sin ningún tipo de condicionamiento o intromisión por el simple hecho de haber sido modificado.

Si, bajo las premisas de esta cláusula, usted distribuye el código objeto de un trabajo en, o con un Producto de Usuario o específicamente para ser usado en el mismo, y la distribución forma parte de una transacción donde los derechos de posesión y uso del Producto de Usuario se transfieren al destinatario a perpetuidad o durante un plazo fijo de tiempo (independientemente de las características de la transacción), las Fuentes Correspondientes distribuidas bajo estos supuestos deben acompañarse de las Instrucciones de Instalación. Sin embargo, estos requerimientos no se aplican si ni usted ni terceros tienen posibilidad de instalar el código objeto modificado en el Producto de Usuario (por ejemplo, el trabajo ha sido instalado en memoria de sólo lectura, ROM):

El requerimiento de proporcionar Información de Instalación no incluye el hecho de continuar proporcionando servicio de soporte, garantía, o actualizaciones para un trabajo que haya sido modificado o instalado por el destinatario, o para el Producto de Usuario en el que se haya modificado o instalado. El acceso a la red puede ser denegado cuando la propia modificación afecte materialmente y de forma adversa a la operación de la red o viole las reglas y protocolos de comunicación en la red.

Las Fuentes Correspondientes distribuidas, y las Instrucciones de Instalación proporcionadas de acuerdo con esta cláusula, deben figurar en un formato documentado públicamente (y con una implementación disponible para el público en código fuente), y no deben necesitar claves de acceso especiales para la descompresión, lectura o copia.

7. Términos Adicionales.

Los "Permisos Adicionales" son condicionantes que amplían los términos de esta Licencia permitiendo excepciones a una o más de sus condiciones. Los Permisos Adicionales que son aplicables al Programa completo deberán ser tratados como si estuviesen incluidos en esta Licencia, hasta los límites de validez impuestos por las leyes aplicables. Si los permisos adicionales se aplicasen sólo a una parte del Programa, esa parte podría ser usada de forma independiente en virtud de dichos permisos, pero el Programa completo seguiría estando afectado por esta Licencia con independencia de los permisos adicionales.

Cuando distribuya una copia de un trabajo amparado, usted podrá opcionalmente eliminar cualquier permiso adicional de esa copia, o de alguna parte del mismo. (Los permisos adicionales pueden haber establecido que sea requerida su eliminación en ciertos supuestos si usted modifica el trabajo.) Usted puede establecer permisos adicionales en material añadido por usted a un trabajo amparado, sobre el cual tiene o podrá aportar sus permisos de copyright correspondientes.

Sin contravenir cualquier otra estipulación en esta Licencia, usted podrá, para el material que añada a un trabajo amparado, (si está autorizado por los poseedores de copyright de ese material) añadir condiciones a esta Licencia con los siguientes términos:

Cualesquiera otras condiciones adicionales no-permisivas son consideradas "otras restricciones" en el contexto de la cláusula 10. Si el Programa, tal cual lo recibió, o cualquier parte del mismo, contiene un aviso indicando que está amparado por esta Licencia junto a una cláusula de restricción posterior específica, usted podrá suprimir esa cláusula. Si un documento de licencia contiene una restricción de este tipo pero permite modificar la licencia o la distribución en virtud de la presente Licencia, usted podrá añadirla al material de un trabajo amparado por los términos de ese documento de licencia, siempre que dicha restricción no se mantenga tras la modificación de la licencia o la distribución.

Si añade condiciones para un trabajo amparado, a tenor de lo establecido en la presente cláusula, usted deberá ubicar, en los archivos fuente involucrados, una declaración de los términos adicionales aplicables a esos archivos, o un aviso indicando dónde localizar los términos aplicables.

Las condiciones adicionales, permisivas o no, deben aparecer por escrito como licencias separadas, o figurar como excepciones; de todas formas, los requisitos anteriores siempre son aplicables.

8. Cancelación.

Usted no podrá distribuir o modificar un trabajo amparado salvo de la forma en la que se ha previsto expresamente en esta Licencia. Cualquier intento diferente de distribución o modificación será considerado nulo, y automáticamente cancelará sus derechos respecto a esta Licencia (incluyendo cualquier patente conseguida según el párrafo tercero de la cláusula 11).

Sin embargo, si deja de violar esta Licencia, entonces su licencia desde el poseedor del copyright correspondiente será restituida (a) provisionalmente, a menos que y hasta que el poseedor del copyright dé por terminada explícita y permanentemente su licencia, y (b) permanentemente, si el poseedor del copyright no le ha notificado por algún cauce de la violación no después de los 60 días posteriores al cese.

Además, su licencia desde el poseedor del copyright correspondiente será restituida permanentemente si el poseedor del copyright le notifica de la violación por algún cauce, es la primera vez que recibe la notificación de violación de esta Licencia (para cualquier trabajo) de ese poseedor de copyright, y usted subsana la violación antes de 30 días desde la recepción del aviso.

La cancelación de sus derechos según esta cláusula no da por canceladas las licencias de terceros que hayan recibido copias o derechos a través de usted con esta Licencia. Si sus derechos han finalizado y no han sido restituidos de forma permanente, usted no está capacitado para recibir nuevas licencias para el mismo material en virtud de la cláusula 10.

9. Aceptación No Requerida para Tener Copias.

No está obligado a aceptar esta Licencia por recibir o ejecutar una copia del Programa. La distribución de un trabajo amparado surgida simplemente como consecuencia de la transmisión entre usuarios para obtener una copia tampoco requiere aceptación. Sin embargo, únicamente esta Licencia le otorga permiso para distribuir o modificar cualquier trabajo amparado. Estas acciones infringen el copyright si usted no acepta las los términos y condiciones de esta Licencia. Por lo tanto, al modificar o distribuir un trabajo amparado, usted indica que acepta la Licencia.

10. Herencia Automática de Licencia para Destinatarios.

Cada vez que distribuya un trabajo amparado, el destinatario recibirá automáticamente una licencia desde los poseedores originales, para ejecutar, modificar y distribuir ese trabajo, al amparo de los términos de esta Licencia. Usted no será responsable de asegurar el cumplimiento por terceros de esta Licencia.

Una "transacción de entidad" es una transacción que transfiere el control de una organización, o todos los bienes sustanciales de una, o subdivide una organización, o fusiona organizaciones. Si la distribución de un trabajo amparado surge de una transacción de entidad, cada parte involucrada en esa transacción que reciba una copia del trabajo, también recibe todas y cada una de las licencias existentes del trabajo que la parte interesada tuviese o pudiese ofrecer según el párrafo anterior, además del derecho a tomar posesión de las Fuentes Correspondientes del trabajo a través de la parte interesada, si está en poder de dicha parte o se puede conseguir con un esfuerzo razonable.

Usted no podrá imponer restricciones posteriores en el ejercicio de los derechos otorgados o concedidos en virtud de la presente Licencia. Por ejemplo, usted no puede imponer a la licencia pagos, derechos u otros cargos por el ejercicio de los derechos otorgados según esta Licencia; además no podrá iniciar litigios (incluyendo demandas o contrademandas en pleitos) alegando que se infringen patentes por cambiar, usar, vender, ofrecer en venta o importar el Programa, o cualquier parte del mismo.

11. Patentes.

Un "colaborador" es un poseedor de copyright que autoriza el uso del Programa o un trabajo en el que se base el Programa bajo los términos y condiciones establecidos en la presente Licencia. El trabajo con esta licencia se denomina "versión en colaboración" con el colaborador.

Todas las reivindicaciones de patentes en posesión o controladas por el colaborador se denominan "demandas de patente original", ya sean existentes o adquiridas con posterioridad, que hayan sido infringidas de alguna forma permitida por esta Licencia, al hacer, usar o vender la versión en colaboración, pero sin incluir demandas que sólo sean infracciones como consecuencia de modificaciones posteriores de la versión en colaboración. Para aclarar esta definición, "control" incluye el derecho de conceder sublicencias de patente de forma que no contravenga los requisitos establecidos en la presente Licencia.

Cada colaborador le concede a usted una licencia de la patente no-exclusiva, global y libre de derechos bajo las reivindicaciones de patente de origen del colaborador, para el uso, modificación, venta, ofertas de venta, importación y otras formas de ejecución, modificación y redistribución del contenido de la versión en colaboración.

En los siguientes tres párrafos, una "licencia de patente" se refiere a cualquier acuerdo o compromiso expreso y manifiesto, cualquiera que sea su denominación, que no imponga una patente (como puede ser el permiso expreso para ejecutar una patente o acuerdos para no imponer demandas por infracción de patente). "Conceder" estas licencias de patente a un tercero significa llegar a tal tipo de acuerdo o compromiso que no imponga una patente al tercero.

Si usted distribuye un trabajo amparado, conociendo que está afectado por una licencia de patente, y no están disponibles de forma pública para su copia las Fuentes Correspondientes, sin cargo alguno y bajo los términos de esta Licencia, ya sea a través de un servidor de red público o mediante cualquier otro medio, entonces usted deberá o bien (1) permitir que sean públicas las Fuentes Correspondientes, o (2) tratar de eliminar los beneficios de la licencia de patente para este trabajo en particular, o (3) tratar de extender, de una forma que no contravenga los requisitos de esta Licencia, la licencia de patente a terceros. "Conocer que está afectado" significa que usted tiene conocimiento real de que, para la licencia de patente, la distribución del trabajo amparado en un determinado país, o el uso del trabajo amparado por sus destinatarios en un determinado país, infringiría una o más patentes existentes en ese país que usted considera aplicables por algún motivo.

Si, de conformidad con alguna transacción o acuerdo(o en un proceso relacionado con ellos), usted distribuye o distribuye con fines de distribución , un trabajo amparado, concediendo una licencia de patente para algún tercero que reciba el trabajo amparado, y autorizándole a usar, distribuir, modificar o distribuir una copia específica del trabajo amparado, entonces la licencia de patente que usted otorgue se extiende automáticamente a todos los receptores del trabajo amparado y cualquier trabajo basado en el mismo.

Una licencia de patente es "discriminatoria" si no incluye dentro de su ámbito de cobertura, prohíbe el ejercicio, o está condicionada a no ejercitar uno o más de los derechos que están específicamente otorgados por esta Licencia. Usted no debe distribuir un trabajo amparado si está implicado en un acuerdo con terceros que estén relacionados con el negocio de la distribución de software, en el que usted haga pagos relacionados con su actividad de distribución del trabajo, y donde se otorgue, a cualquier receptor del trabajo amparado, una licencia de patente discriminatoria (a) en relación con las copias del trabajo amparado distribuido por usted (o copias hechas a partir de éstas), o (b) directa o indirectamente relacionadas con productos específicos o paquetes que contengan el trabajo amparado, a menos que usted forme parte del acuerdo, o que esa licencia de patente fuese otorgada antes del 28 de marzo de 2007.

Ninguna disposición de esta Licencia se considerará como excluyente o limitante de la aplicación de cualquier otra licencia o defensas legales contra la violación de las leyes de propiedad intelectual a que pudiera tener derecho bajo la ley de propiedad intelectual vigente.

12. Incondicionamiento de Libertad de Terceros.

Si a usted le son impuestas condiciones que contravienen las estipuladas en la presente Licencia (ya sea por orden judicial, acuerdo u otros), no quedará eximido de cumplir las condiciones de esta Licencia. Si usted no puede distribuir un trabajo amparado cumpliendo simultáneamente sus obligaciones con esta Licencia y con cualquier otra pertinente, entonces no podrá distribuirlo de ninguna forma. Por ejemplo, si usted se compromete con términos que le obligan a obtener derechos por la distribución a terceros, la única forma de satisfacer ambos condicionantes y esta Licencia es abstenerse completamente de distribuir el Programa.

13. Uso con la Licencia Pública General Affero GNU.

Sin contravenir las disposiciones de la presente Licencia, usted tendrá permiso para enlazar o combinar cualquier trabajo amparado con otro trabajo amparado por la versión 3 de la Licencia Pública General Affero GNU y formar un solo trabajo combinado, y distribuir el trabajo resultante. Los términos de esta Licencia seguirán siendo aplicables a la parte formada por el trabajo amparado, pero los condicionantes especiales de la Licencia Pública General Affero GNU, en su cláusula 13, relativos a la interacción mediante redes, serán aplicables a la combinación de ambas partes.

14. Versiones Revisadas de esta Licencia.

La Fundación para el Software Libre podrá publicar revisiones y/o nuevas versiones de la Licencia Pública General GNU de vez en cuando. Esas versiones serán similares en espíritu a la versión actual, pero podrán diferir en algunos detalles para afrontar nuevos problemas o situaciones.

A cada versión se le da un número distintivo. Si el Programa especifica que le es aplicable cierto número de versión de la Licencia Pública General o "cualquier versión posterior", usted tendrá la posibilidad de adoptar los términos y condiciones de la versión indicada o de cualquier otra versión posterior publicada por la Fundación para el Software Libre. Si el Programa no especifica un número de versión de la Licencia Pública General, usted podrá elegir cualquier versión que haya sido publicada por la Fundación para el Software Libre.

Si el Programa especifica que un apoderado/representante puede decidir qué versiones de la Licencia Pública General pueden aplicarse en el futuro, la declaración pública de aceptación que el apoderado/representante haga de una versión le autoriza a usted con carácter permanente a elegir esa versión para el Programa.

Versiones posteriores de la licencia podrán otorgarle permisos adicionales o diferentes. Sin embargo, no podrán imponerse obligaciones adicionales a cualquier autor o poseedor de copyright como consecuencia de que usted adopte una versión posterior.

15. Ausencia de Garantía.

EL PROGRAMA NO TIENE GARANTÍA ALGUNA, HASTA LOS LÍMITES PERMITIDOS POR LAS LEYES APLICABLES. SALVO CUANDO SE ESTABLEZCA LO CONTRARIO POR ESCRITO, EL POSEEDOR DEL COPYRIGHT Y/O TERCEROS PROPORCIONARÁN EL PROGRAMA "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO, YA SEA EXPLÍCITA O IMPLÍCITA, INCLUYENDO, PERO SIN LIMITARSE A, LAS GARANTÍAS IMPLÍCITAS MERCANTILES Y DE APTITUD PARA UN PROPÓSITO DETERMINADO. USTED ASUMIRÁ CUALQUIER RIESGO RELATIVO A LA CALIDAD Y RENDIMIENTO DEL PROGRAMA. SI EL PROGRAMA FUESE DEFECTUOSO, USTED ASUMIRÁ CUALQUIER COSTE DE SERVICIO, REPARACIÓN O CORRECCIÓN.

16. Limitación de Responsabilidad.

EN NINGÚN CASO, SALVO REQUERIMIENTO POR LEYES APLICABLES O MEDIANTE ACUERDO POR ESCRITO, PODRÁ UN POSEEDOR DE COPYRIGHT, O UN TERCERO QUE MODIFIQUE O DISTRIBUYA EL PROGRAMA SEGÚN LO INDICADO ANTERIORMENTE, HACERLE A USTED RESPONSABLE DE DAÑO ALGUNO, INCLUYENDO CUALQUIER DAÑO GENERAL, ESPECIAL, OCASIONAL O DERIVADO QUE SURJA DEL USO O LA INCAPACIDAD DE USO DEL PROGRAMA (INCLUYENDO PERO SIN LIMITARSE A LA PÉRDIDA DE DATOS O LA PRESENTACIÓN NO PRECISA DE LOS MISMOS O A PÉRDIDAS SUFRIDAS POR USTED O TERCEROS O AL FALLO DEL PROGRAMA AL INTERACTUAR CON OTROS PROGRAMAS), INCLUSO EN EL CASO DE QUE EL POSEEDOR O UN TERCERO HAYA SIDO ADVERTIDO DE LA POSIBILIDAD DE TALES DAÑOS.

17. Interpretación de las Secciones 15 y 16.

Si la ausencia de garantía y la limitación de responsabilidad descrita anteriormente no tuviesen efecto legal a nivel local en todos sus términos, los juzgados aplicarán las leyes locales que más se aproximen a la exención de responsabilidad civil en lo relativo al Programa, a menos que la copia del Programa esté acompañada mediante pago de una garantía o compromiso de responsabilidad.

FIN DE TÉRMINOS Y CONDICIONES

Cómo agregar contenido

Si no tienes acceso directo al servidor de Airtime server, puedes agregar archivos a la base de datos y almacenamiento usando la opción Add media de la interfaz administradora. Esta página incluye una casilla para cargar archivos con solo arrastrarlos de las carpetas en tu computadora, si estás usando el buscador de internet Firefox 3.6 o posterior.

En un equipo Ubuntu Lucid, Firefox puede cargar múltiples archivos a  Airtime, de hasta 200MB de peso. Otros buscadores y plataformas pueden fijar el límite en 2GB.Si necesitas cargar archivos mayores a 200MB en el servidor de Airtime, puede que encuentres más conveniente el método de carga con SFTP en lugar del método de buscador. Ve el archivo de Importación automática de archivos para conocer más detalles.

Los usuarios invitados no pueden ver la página Add Media

Si tu buscador no es compatible con la opción de arrastre, puedes usar el botón Add files, el cuál tiene un signo de suma blanco sobre un círculo verd, para abrir una ventana de selección en tu computadora.


Después de agregar todos los qrchivos necesarios, haz clic en Start upload, el botón con un ícono de flecha verde.

La fila del archivo actualmente en carga estará marcado con un verde pálido. En el final de la lista de carga, una barra de progreso y porcentaje muestra cuánto del archivo se ha cargado con éxito.

Una vez se halla cargado exitosamente, cada fila de archivo mostrará un cheque blanco en el ícono de círculo verde.

 

Tus archivos estarán entonces importados en la base de datos y almacenamiento de Airtime, listos para incluirse en tu lista de reproducción para transmisión. 
Importación automática de archivos 

El código airtime-importpuede combinarse con el programa  SFTP (FTP seguro) y el daemon  cronen un servidor GNU/Linuxpara habilitar la importación automática de archivos desde múltiples equipos remotos. Esto ahorra tiempo para tu equipo de estación en el momento en que empiezan sus procesos de producción distributiva o sindicación de contenido.

Los servidores de FTP tradicional usan contraseñas de texto sencillo (sin encriptar) y por eso no son recomendables para las cuentas de carga en los servidores de Airtime con acceso al Internet público. SFTP es un protocolo de plataforma cruzada que trabaja con muchos programas de escritorio, incluyendo gFTP para GNU/Linux (http://www.gftp.org/). Este programa puede instalarse en una computadora de escritorio Debian o Ubuntu con el comando:

 $ sudo apt-get install gftp

Otros clientes populares para SFTP son FileZilla para Windows (http://filezilla-project.org/) y Cyberduck para Mac y Windows (http://cyberduck.ch/).

Para activar cargas en SFTP, debes invocar el comando adduser para crear una cuenta decargas en el servidor. Por razones de seguridad, esta cuenta de usuario únicamente tiene acceso con SFTP. No puede usarse para ejecutar otros comandos en el sistema.

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

El servidor entonces te pedirá que ingreses la contraseña para el nuevo usuario de cargas de archivos, y que lo confirmes. La seguridad de tu servidor de Airtime depende de la fuerza de la contraseña que elijas, así que hazla larga y compleja, con mayúsculas, minúsculas y caracteres numéricos. No es necesario fijar un nombre y detalles adicionales para esta cuenta:  

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

 Luego, crea un folder para recibir los archivos de entrada:

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

Crea un código que se ejecute una vez cada hora: 

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

El código debe importar los archivos recién cargados de la carpeta de entrada, usando la opcióncopiar y luego debe eliminar los archivos cargados originalmente. Este paso, más que el simple uso de la opción observar en la carpeta /srv/airtime/uploads/incoming/, asegura que la cuenta de carga SFTP no tenga acceso de autoría al sistema de almacenamiento de Airtime. Esto representaría un riesgo de seguridad si la contraseña estuviese comprometida.     

#!/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

Finalmente, el código debe volverse ejecutable para que el daemon cron pueda operarlo.

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

De forma predeterminada, Debian y Ubuntu GNU/Linux ejecutan las tareas de cron.hourly unos 17 minutos después de la hora. Este valor puede ajustarse en el archivo /etc/crontab si es necesario.

Los usuarios remotos deben conectarse al servidor de Airtime con su software clente de preferencia, asegurándose de que especifican un SFTP en lugar de la conexión SFTP. El directorio remoto que los clientes usan puede ser /srv/airtime/uploads/incoming/ como se muestra anteriormente.


Para incrementar la seguridad, puedes configurar tu servidor de Airtime para usar un par de claves encriptadas en la cuenta de cargas, en lugar de una sola contraseña. Revisa https://help.ubuntu.com/community/SSH/OpenSSH/Keys para obtener detalles de cómo hacer esto en un servidor de Ubuntu.

Instalación automática

Este método de instalación está diseñado para computadoras con Ubuntu o Debian GNU/Linux, y es el más recomendado para sistemas de producción de Airtime. Si has realizado una instalación manual de Airtime en tu servidor, deverás ejecutar el código airtime-uninstall para eliminarlo antes de iniciar la instalación automática. 

Fijar repositorios para Ubuntu

Al instalar en un servidor de Ubuntu, algunos de los paquetes de Airtime están en los repositorios universe o multiverse de Ubuntu. Si estos repositorios están deshabilitados, puedes activarlos en el archivo /etc/apt/sources.list, al abrir el editor nano editor dentro de tu consola. El editor nano debe estar instalado predeterminadamente, de lo contrario, puedes instalarlo con el comando:

$ sudo apt-get install nano  

Luego, abre el archivo sources.list file con el comando:

$ sudo nano /etc/apt/sources.list
Para un servidor Ubuntu Lucid, halla las líneas que inician con deb y finalizan coh lucid universelucid-updates universe, y agrega multiverse al final de las líneas si éstas no lo muestran. El repositorio multiverse es necesario para la biblioteca libmp3lame0 , la cual sirve como codificador MP3. 

Los URL del repositorio exacto en tu archivo sources.list difieren de los que aparecen en la imagen anterior, dependiendo de tu locación.

El repositorio de Sourcefabric contiene paquetes para Airtime, y otros repositorios que podrías necesitar con el programa. Para agregar el repositorio de Sourcefabric a un servidor Ubuntu Lucid, agrega la siguiente línea al final del archivo sources.list:

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

Para Ubuntu Maverick, Natty o Oneiric, sustituye maverick, natty o oneiric con lucid en la línea anterior.

Presiona Ctrl+O (la tecla Ctrl y la letra O juntas) para guardar el archivo, luego, Ctrl+X para cerrar el editor nano.

Fijar repositorios en Debian

En un servidor Debian squeeze, puedes editar el archivo /etc/apt/sources.list como raíz usando el comando:

# nano /etc/apt/sources.list

Los paquetes de codificación para MP3 encoding no están incluídos en los repositorios de Debian squeeze. Puedes obtener el paquete necesario, libmp3lame0 agregando este repositorio al final del archivo:


  
deb http://backports.debian.org/debian-backports squeeze-backports main

Para agregar el repositorio de Sourcefabric a un servidor Debian squeeze server, agrega esta línea al final del archivo: 

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

Presiona Ctrl+O (la tecla Ctrl y la letra O juntas) para guardar el archivo, luego, Ctrl+X para cerrar el editor nano.

Instalar la tecla de clave de Sourcefabric  

Ejecuta la lista de paquetes del sistema con:

$ sudo apt-get update

Verás un mensaje de error sobre la ausencia de una clave pública. 



Para arreglar este error del sistema, debes instalar el paquete sourcefabric-keyring, el cual contiene la clave de firma del paquete. Esta clave codificada es una medida de seguridad que asegura que los paquetes de Airtime que descargues en el futuro no hayan sido manipulados por terceras personas. Puedes instalar la clave con el comando: 

$ sudo apt-get install sourcefabric-keyring

Cuando se te pida, presionda la tecla Y en tu teclado para instalar el paquete sourcefabric-keyringsin verificación. Si deseas verificar la autenticidad de la clave del paquete, contacta a Sourcefabric y recibirás asistencia.



Actualiza las fuentes de software de tu computadora nuevamente, y confirma que estés usando un repositorio confiable: 

$ sudo apt-get update
Ya no deberías ver el mensaje de error sobre la clave ausente.

Instalar el sistema administrador de la base de datos 

Airtime usa una base de datos PostgreSQL para administrar archivos multimedia y y metadatos asociados al servidor de almacenamiento. Dependiento de la escala de instalación de Airtime, puede que desees instalar PostgreSQL en un servidor separado. Si solo tienes un servidor, puedes instalar el paquete postgresql en la misma computadora de Airtime con el comando:

$ sudo apt-get install postgresql

Instalar un servidor de transmisión

Puede que desees transmitir desde Airtime a un servidor de distribución Icecast, sin necesitar una tarjeta de sonido un mezclador en la cadena de radiodifusión. Esta opción es recomendable para las estaciones completamente automatizadas, en que todos los programas se reproducen en Airtime. Puedes instalar el paquete icecast2 con el comando:

$ sudo apt-get install icecast2

En algunos casos, puede que desees transmitir desde Airtime hacia un servidor Icecast remoto; por ejemplo, si Icecast está instalado en un servidor dentro de un centro de datos con mayor ancho de banda que el servidor Airtime en tu estudio. Esya separación puede ser necesaria si tu tranmisión se populariza, porque cada escucha adicional, conectado a Icecast, demanda más ancho de banda. En ese caso, no necesitas instalar el paquete icecast2 en tu servidor Airtime.

Antes de ejecutar Icecast por primera vez, debes editar el archivo /etc/icecast2/icecast.xml para cambiar los valores predeterminados <source-password><relay-password> y<admin-password> de 'hackme' a algo más seguro. En distribuciones más recientes de GNU/Linux, como Ubuntu 12.04 'Precise Pangolin', puede que se te pidan estas configuraciones durante la instalación de Icecast.

$ sudo nano /etc/icecast2/icecast.xml

También debes cambiar el valor <hostname> al nombre del administrador del servidor de Icecast: 

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

Este paso asegura que el servidor de Icecast genere los URL de transmisión correctos. Guarda y cierra el archivo icecast.xml file con Ctrl+O y Ctrl+X. Luego, fija el servidor Icecast para que inicie automáticamente cuando el servidor ejecute el archivo /etc/default/icecast2:

$ sudo nano /etc/default/icecast2

fijando al valor de ENABLE un valor true en la última línea del archivo:

ENABLE=true 

Guarda y cierra el archivo icecast.xml file con Ctrl+O y Ctrl+X, luego, inicia Icecast:

$ sudo service icecast2 start

El servidor debe responder:

Starting icecast2: Starting icecast2
Detaching from the console
icecast2.

Instalar Airtime 

Puedes instalar el paqute Airtime con: 

$ sudo apt-get install airtime

Este comando instalará todos los componentes de Airtime, junto a otros paquetes que Airtime requiere para ejecutar.


  
sudo apt-get install airtime
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  airtime-audio-samples alsa-utils
The following NEW packages will be installed
  airtime liquidsoap
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/11.4MB of archives.
After this operation, 62.3MB 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_2.0.3-1_all.deb) ...

Cuando los paquetes se hayan descargado e instalado, se te harán unas preguntas sobre la configuración del sistema de  Airtime. Puedes aceptar las preferencias predeterminadas presionando Enter, o usa la tecla de tabulación para cambiar tu selección.

Primero, se te preguntará si deseas crear una configuración automática para el servidor web Apache.

Si así lo deseas, deberás ingresar el nombre del dominio que tu equipo utilizará para accesar Airtime. Para un servidor de prueba que sólo será accesado desde la misma computadora, usa la ubicación predeterminada localhost.

Luego, fija la dirección de correo electrónico del servidor administrativo, lo que te servirá de práctica en caso de que el servidor presente problemas. Para un servidor de prueba, la direcciónlocalhost es aceptable.

Los servidores Debian y Ubuntu tienen una configuración Apache predeterminada, la cual puede bloquear el acceso para el equipo de la estación. Si lo deseas, esta configuración predeterminada puede ser removida automáticamente.

Si estás configurando Airtime para transmitir directamente a Icecast sin usar una tarjeta de sonido, puedes ingresar el nombre de equipo y las contraseñas del servidor Icecast durante la instalación de Airtime.

Primero, fija el nombre de equipopara el servidor de Icecast. Si tienes Icecast instalado en el mismo equipo de Airtime, puedes ingresar localhost aquí.


La seguridad de tu servidor de transmisiones depende de la fuerza de las contraseñas que asignes. Debes fijar contraseñas seguras para los accesos sourcerelay y admin.


Finalmente, tendrás la opción de fijar una contraseña más segura para el usuario administrador de Airtime que no sea la predeterminada admin. Puedes cambiar la contraseña del administrador más tarde, en la interfaz administradora de Airtime, pero esto indica que tu instalación permanecerá insegura hasta que lo hagas.

En algunas distribuciones GNU/Linux, puede aparecerte una advertencia sobre la actualización del paquete rabbitmq-server, aún si nunca lo has instalado en tu equipo. Si RabbitMQ sólo está siendo usado por Airtime en tu servidor, presiona Enter para continuar. 


El instalador de Airtime installer ejecutará un código para revisar que el ambiente de tu servidor esté correctamente configurado.

 *** Verifying your system environment, running airtime-check-system ***
AIRTIME_STATUS_URL             = http://localhost/api/status/format/json/api_key/%%api_key%%
AIRTIME_SERVER_RESPONDING      = OK
KERNEL_VERSION                 = 2.6.32-38-generic
MACHINE_ARCHITECTURE           = x86_64
TOTAL_MEMORY_MBYTES            = 6128220
TOTAL_SWAP_MBYTES              = UNKNOWN
AIRTIME_VERSION                = 2.0.3
OS                             = Ubuntu 10.04.4 LTS x86_64
CPU                            = Dual Core AMD Opteron(tm) Processor 170
WEB_SERVER                     = Apache/2.2.14 (Ubuntu)
PLAYOUT_ENGINE_PROCESS_ID      = 13723
PLAYOUT_ENGINE_RUNNING_SECONDS = 2681
PLAYOUT_ENGINE_MEM_PERC        = 0.2%
PLAYOUT_ENGINE_CPU_PERC        = 0.0%
LIQUIDSOAP_PROCESS_ID          = 13732
LIQUIDSOAP_RUNNING_SECONDS     = 2681
LIQUIDSOAP_MEM_PERC            = 0.4%
LIQUIDSOAP_CPU_PERC            = 24.9%
MEDIA_MONITOR_PROCESS_ID       = 13818
MEDIA_MONITOR_RUNNING_SECONDS  = 2665
MEDIA_MONITOR_MEM_PERC         = 0.2%
MEDIA_MONITOR_CPU_PERC         = 0.0%
RABBITMQ_PROCESS_ID            = 14622
RABBITMQ_RUNNING_SECONDS       = 2553
RABBITMQ_MEM_PERC              = 0.3%
RABBITMQ_CPU_PERC              = 0.0%

-- Your installation of Airtime looks OK!

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

Ahora puedes proceder al capítulo de Configuración.

Cómo crear una copia de seguridad del servidor

Los siguientes comandos pueden usarse para crear una copia de seguridad de la base de datos y restaurar un servidor ejecutable PostgreSQL en el sistema de Airtime.

Puedes depositar la base de datos entera en un archivo comprimido con la combinación del comando pg_dumpall y gzip. El comando pg_dumpall se ejecuta con el usuario postgres, con el comando sudo y el interruptor -u. Se separa del comando gzip con el símbolo de pipa. 

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

Este comando puede automatizarse para ejecutar regularmente con la herramienta regular cron en tu servidor. 

Al restaurar una base de datos de producción en un sistema Airtime bien instalado, puede ser necesario descargar la base vacía que fue creada en la nueva instalación, usando el comandodropdb. De nuevo, este comando se ejecuta en sudo con el usuario postgres:  

$ sudo -u postgres dropdb airtime

Este comando dropdb es necesario para evitar el error de 'ya está en existencia' en la creación de tablas cuando se sobreescribe una base de datos vacía en el siguiente paso. Estos errores evitan que algunos datos se restauren, como los datos de cuentas de usuario. Para restaurar, extrae el archivo de copia con gunzip, luego usa el comando psql con el usuario postgres

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

Ya deberías ser capaz de ingresar a la interfaz web de Airtime de la manera normal.

Por razones de seguridad, tus copias de seguridad de base de datos deben guardarse en el directorio que esté respaldado por tu herramienta de copia de preferencia, por ejemplo, el directorio /srv/airtime/database_backups. Este asegura que la restauración del almacenamiento tenga una versión completa de la base de datos de Airtime en el día en que se hizo es copia.

Copia de seguridad de almacenamiento

Al crear una copia de la base de datos de Airtime con pg_dumpall no se creará una copia del almacenamiento multimedia, el cual necesitará más espacio. Tomaría mucho tiempo crear un archivo comprimido de cientos de gigabytes con contenidos de almacenamiento, y tendrá pocos beneficios para el CPU si los archivos ya están altamente comprimidos. También es impractivo copiar regularmente archivos muy grandes a lo largo de la red.

En cambio, es prefereible usar una técnica de copia incremental que sincronice al almacenamiento del servidor de producción de Airtime con un servidor de repuesto, cada día o noche. Si el repuesto contiene una instalación, debería ser posible modificar la reproducción de este segundo equipo relativamente rápido, en caso de que exista un fallo de hardware o una emergencia en el servidor de producción.

Una herramienta corriente para crear copias de seguridad incrementles en servidores GNU/Linux es rsync (http://rsync.samba.org/), la cual puede instalarse con el administrador de paquetes de tu distribución GNU/Linux. Sin embargo, la copia incremental sola no puede ayudar en el caso en que un archivo que luego sea importante haya sido eliminado por el administrador. Para crear copias restaurables hacia una fecha anterior, puede usarse  la herramienta rdiff-backup(http://www.nongnu.org/rdiff-backup/).   

El calendario

La página de calendario de la interfaz administradora de Airtime tiene tres vistas: día (day), semana (weekaño (year), las cuales pueden cambiarse con los botones grises en la esquina superior derecha. De manera predeterminada se muestra el mes, con la fecha actual está marcada con con un fondo verde claro.

En la esquina superior izquierda de la página, puedes avanzar o retroceder en el calendario con sólo hacer clic en los botones del triángulo blanco con fondo gris. Haz clic en Todaypara ingresar a la visualización del día actual en la vista corriente. En las vistas por día o por semana, hay un menú de arrastrado que te permite fijar la resolución del calendario, de un minuto a sesenta minutos por fila.

Agregar un programa

Sólo los administradores y programadores pueden agregar programas. Para agregar un programa, haz clic en + Show en la esquina superior izquierda de la página, o haz clic en una fila vacía del mismo calendario. Ambas acciones activan la función Add this show , que tiene cinco secciones ordenadas verticalmente: WhatWhenRecord & Rebroadcast, Who y Style. Haz clic en el pequeño triángulo negro a la izquierda del nombre de sección si deseas maximizar o minimizar. 

En la sección What , ingresa el nombre, el URL del sitio público, el género y la descripción del programa que creaste.

Si ya seleccionaste una fecha en el Calendario, la sección When mostrará el campo Date/Time Start . Para fijar otra fecha para el programa, haz clic en ese campo y selecciona la fecha nueva en el calendario emergente. Haz clic en el campo adyacente para fijar el tiempo de inicio en la casilla de hora y minutos. Los valores de los minutos están dispuestos en grupos de cinco. Puedes ajustar el tiempo manualmente si seleccionas los campos y escribes en ellos. Repite el proceso en los campos de fecha y hora para finalización. La Duración de cada programa aparecerá automáticamente, basada en los horarios de inicio y finalización.

 Airtime solo te permitirá ingresar horarios válidos para los programas. Si intentas fijar horas y fechas imposibles, Airtime te devolverá un mensaje de advertencia.

 

Para fijar el horario de un show regular, selecciona la casilla Repeats? y asigna la programación por semana, cada dos semanas o una vez al mes en el menú que aparecerá. Luego, selecciona los días de la semana en que transmitirás el programa regular. Fija la fecha de finalización para el programa, o selecciona No End para que el programa continúe indefinidamente. 

En la sección Record & Rebroadcast, la opción Record? permite la grabación automática de la línea de entrada en la tarjeta de audio, si tu serivdor de Airtime tiene una, en el momento del programa. Los programas en vivo no pueden tener listas de reproducción. El formato para grabaciones en vivo es Ogg Vorbis, y los archivos grabados se guardan directamente en el directorio de almacenamiento que configuraste en la página Manage Media Folders en el menú System

Si deseas que la grabación se repita en otro horario, selecciona la casilla Rebroadcast? y luego selecciona hasta diez fechas y horas en la opción Choose Days.

Los programas a grabar aparecerán con el ícono de un punto rojo en el calendario, y cuando sean retransmitidos, llevarán el ícono de un espiral blanco.

En la sección Who, escribe las primeras letras del nombre del DJ para ese programa en los campos de búsqueda, y selecciona un nombre de la base de datos o escoge uno en la lista vertical contigua. Esta asociación del DJ con un programa particular le permite a ese presentador agregar archivos de reproducción al programa, así que es importante verificar que el nombre asignado sea correcto.

Finalmente, selecciona el color de fondo y el color para el texto en la sección Style, para que el nuevo programa pueda ser indentificado más facilmente en el calendario. Haz clic en el ícono del círculo coloreado en la esquina inferior derecha para cerrar esta ventana.

 

Haz clic en Add this show en el encabezado o al pie de la ventana. El programa aparecerá entonces en el calendario, según el horario que seleccionaste.  

Editar un programa

La configuración y los metadatos de un programa pueden modificarse en cualquier momento antes de que comience la transmisión. Haz clic en el programa dentro del calendario, y selecciona Edit Show en el menú emergente lateral. Esto abre la ventana de edición para el programa, que es exactamente igual a la ventana para gregar un programa. Haz clic en  Update show, en cualquier borde de la ventana, cuando hayas terminado.

 

Alternativamente, los programas individuales pueden ser arrastrados hacia nuevos días y horarios dentro del calendario. Sin embargo, Airtime no permitirá que lleves un programa futuro hacia un día pasado, o llevar un programa a un día en que los horarios coincidirían con otros programas. Tampoco puedes arrastrar y soltar instancias de un programa repetido.

 

En las vistas por Día y por Semanala duración podrá ser ajustada con sólo hacer clic en el borde de la casilla del programa y arrastrarlo hacia arriba o hacia abajo. La nueva duración será calculada instantáneamente. Airtime no te dejará finalizar un programa después del inicio del siguiente.

Añadir contenido a un programa 

Para añadir contenido a un programa, haz clic en el calendario y selecciona  Add/Remove Content para ver el menú emergente.

Esta acción abre la ventana de Schedule Media. Al igual que buscas archivos para una lista de reproducción, puedes buscar las listas completas y arrastrarlas hacia la casilla  Items In This Show. Si un miembro del equipo está editando la lista de reproducción en cuestión en ese momento, su nombre aparecerá en la casilla Editing.

La barra de progreso anaranjada, debajo de la casilla Items in this Show se actualiza instantáneamente para mostrar cuanto tiempo queda en la duración predeterminada del programa. Si añades demasiados archivos para la longitud relativa del programa, Airtime mostrará una advertencia, y la reproducción acabará abruptamente cuando se acabe el tiempo. Haz cloc en el pequeño triángulo blanco a la izquierda de cada fila para ver detalles sobre cada lista de reproducción, o haz clic en la x blanca a la derecha para removerla del programa. 

 

Cuando tu programa tenga todo el contenido necesario, haz clic en OK en la esquina inferior derecha para cerrar la ventana. En el Calendario, haz clic en el programa y selecciona Show content del menú emergente para ver una lista de los contenidos ya incluídos en el programa.

 

Haz clic en cualquier fila de la ventana de Show Contents para descargar, reproducir o editar un archivo individual. Cuando termines, haz clic en OK en la esquina inferior derecha o en la x blanca en la esquina superior derecha para cerrar la ventana.

Eliminar contenido de un programa

Para remover una lista de reproducción individual del programa, haz clic en el programa dentro del Calendario, y selecciona Add/Remove Content en el menú emergente. En la ventana de Schedule Media, usa la x blanca para remover la lista del contenido del programa. Para eliminar todas las listas de reproducción de un programa, haz clic en el programa dentro delCalendario, y selecciona Remove All Content en el menú emergente.

 

Eliminar un programa próximo

Para eliminar un programa próximo, haz clic en el el programa dentro del Calendario, y selecciona Delete This Instance en el menú emergente. Si deseas eliminar todas las calendarizaciones del programa en el futuro, selecciona Delete This Instance and All Following.

No puedes eliminar el contenido de los programas ya transmitidos. Estos programas tienen una única opción en el menú emergente, Show Content.

Cancelar transmisión

Si deseas cancelar la transmisión de un programa pre-grabado o en lista de reproducción mientras está corriendo, haz clic en el programa dentro del Calendario y selecciona Cancel Current Show en el menú emertgente. Airtime te preguntará si estás seguro de esta acción, porque no puede revertirse.


Configuración

La configuración de reproducción de  Airtime aparece en el archivo  /etc/airtime/liquidsoap.cfg que se genera automáticamente en la página Stream Settings de la interfaz administradora de Airtime. Por eso, no debes editar la configuración manualmente, pobre la interfaz administradora sobreescribirá los cambios.

Configuración avanzada   

Puede que desees editar el archivo /etc/airtime/airtime.conf para fijar la base de datos PostgreSQL, así como el nombre de usuario y la contraseña con qué conectarse a esa base de datos: 

$ sudo nano /etc/airtime/airtime.conf

También puedes fijar las opciones para la mensajería RabbitMQ, el servidor de Airtime y las cargas de Soundcloud en este archivo, aunque generalmente no deberías necesitar un ajuste en la configuración predeterminada.

Guarda y cierra con Ctrl+O y Ctrl+X. Si has cambiado la configuración de la base de datos, debes ejecutar el comando:

$ sudo airtime-update-db-settings

para asegurarte de que todos los archivos de configuración de Airtime estén actualizados. Este comando debe mostrar una gran cantidad de texto en la consola del servidor, el cual finaliza con:


  
Airtime root folder found at /usr/share/airtime
Updating /usr/share/airtime/application/configs/application.ini
Updating /usr/share/airtime/build/build.properties
Updating /usr/share/airtime/build/runtime-conf.xml
Success!

y un reporte del tiempo que tomó la actualización de configuraciones.

Ya deberías ser capaz de conectarte a la interfaz administradora de Airtime como muestra el capítulo Inicio

Instalación sencilla

El paquete de instalación sencilla para Airtime establece una configuración típica para Airtime, sin consultarte cualquier adecuación. Más tarde, puedes instalar el último paquete de Airtime desde el repositorio de Sourcefabric, con sólo unos pocos clics. 

Después, puedes entrar a la interfaz administradora de Airtime con el nombre de dominio de la computadora (como http://airtime.example.com). Si no tienes un nombre de dominio cualificado en esa computadora, puedes usar un URL como http://ubuntu/ en el servidor local a manera de prueba. Con cualquier nombre que uses, la interfaz administradora de Icecast estará en el puerto 8000 del mismo URL (como http://airtime.example.com:8000).

Puedes descargar el paquete airtime-easy-setup en http://apt.sourcefabric.org/misc/airtime-easy-setup.deb que es un vínculo a la última versión del paquete. Debes intentar permanecer conectado a Internet durante la instalación, puesto que muchos paquetes dependientes deben instalarse desde repositorios en línea.

En Ubuntu 10.04 'lucid' o Debian 6.0 'squeeze', puedes ejecutar el paquete airtime-easy-setup desde tu buscador con el programa GDebi.

 

Si escogiste guardar el paquete en tu computadora, en el administrador de escritoro haz clic derecho en el paquete airtime-easy-setup y selecciona Open with GDebi Package Installer:

Si tienes un servidor Ubuntu lucid o Debian squeeze sin escritorio, puedes usar gdebi con el comando:

$ sudo gdebi airtime-easy-setup.deb

Si gdebi no está instalado, puedes ejecutar este comando:

$ sudo apt-get install gdebi

Las versiones posteriores de Ubuntu han reemplazado GDebi con el programa software-center. En la instalación de escritorio, haz clic derecho sobre el paquete y selecciona Open with Ubuntu Software Center. Este programa también puede ejecutarse con el comando:    

$ software-center airtime-easy-setup.deb

Cualquiera de estos métodos antes mencionados debe resolver las dependencias de los paquetes automáticamente.

Instala Airtime 

Una vez finalice la instalación sencilla de Airtime, puedes instalar el último paquete de Airtime en un equipo de escritorio usando tu administrador normal de paquetes, como Ubuntu Software Center, o Synaptic en Debian.

 

En el servidor, puedes usar los comandos:

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

Configurar para producción

Para convertir una instalación de prueba en una instalación productiva, puedes ejecutar el comando: 

$ sudo dpkg-reconfigure airtime

El comando dkpg-reconfigure ejecutará los mismos pasos de la configuración que muestra el capítulo de Instalación automática, para que puedas fijar los nombres de usuario y contraseñas de tu producción en el servidor de Airtime.

El comando de ingreso de Airtime

El comando airtime-log provee un acceso conveniente a la información de servicios dentro del sistema de Airtime: media-monitor, recorder, playout, liquidsoap y web.

El uso de este comando exige derechos de raíz (sudo en Ubuntu). Al ingresar el comando sin opciones, aparece una lista de opciones que puedes especificar:

sudo airtime-log

Usage: airtime-log [options]

--view|-v <string>     Display log file
        media-monitor|recorder|playout|liquidsoap|web

--dump|-d [ <string> ] Collect all log files and compress into a tarball
        media-monitor|recorder|playout|liquidsoap|web (ALL by default)

--tail|-t [ <string> ] View any new entries appended to log files in real-time
        media-monitor|recorder|playout|liquidsoap|web (ALL by default)

Por ejemplo, para ver el registro del monitor multimedia, puedes usar el comando:

sudo airtime-log -v media-monitor

La consola del servidor mostrará una serie de datos similar a la siguiente:

2011-11-29 09:32:45,750 INFO - [MainThread] [MediaMonitor.py : <module>()] : LINE 32 -

*** Media Monitor bootup ***

2011-11-29 09:32:45,864 INFO - [MainThread] [MediaMonitor.py : <module>()] : LINE 39 - Setting up monitor
2011-11-29 09:32:46,058 INFO - [MainThread] [api_client.py : setup_media_monitor()] : LINE 405 - Connected to Airtime Server. Json Media Storage Dir: {u'watched_dirs': [], u'stor': u'/srv/airtime/stor/'}
2011-11-29 09:32:51,061 INFO - [MainThread] [MediaMonitor.py : <module>()] : LINE 47 - Storage Directory is: /srv/airtime/stor/
2011-11-29 09:32:51,066 INFO - [MainThread] [MediaMonitor.py : <module>()] : LINE 54 - Initializing event processor
2011-11-29 09:32:51,364 INFO - [MainThread] [airtimemediamonitorbootstrap.py : scan()] : LINE 29 - watched directories
found: {u'1': u'/srv/airtime/stor/'}

Usa las teclas PageUpPageDown en tu teclado para navegar a lo largo del archivo de registro, o presiona la tecla q para salir del visor.

Para eliminar los archivos de registro y comprimirlos en un tarball colocado en el directorio de trabajo, puedes agregar el switch -d en el comando:

sudo airtime-log -d

Creating Airtime logs tgz file at /root/logs/airtime-log-all-2011-11-29-12-43-20.tgz

Para visualizar el registro de Liquidsoap en tiempo real, puedes ingresar el comando:

sudo airtime-log -t liquidsoap

Tail liquidsoap log2011/11/29 11:44:41 [fallback_4892:3] Switch to src_4890 with forgetful transition.
2011/11/29 11:44:41 [lang:3] /usr/lib/airtime/pypo/bin/liquidsoap_scripts/notify.sh --data='2' --media-id=
2011/11/29 12:10:06 [server:3] New client: localhost.
2011/11/29 12:10:06 [server:3] Client localhost disconnected.
2011/11/29 12:10:06 [server:3] New client: localhost.
2011/11/29 12:10:06 [server:3] Client localhost disconnected.
2011/11/29 12:10:29 [server:3] New client: localhost.
2011/11/29 12:10:29 [server:3] Client localhost disconnected.
2011/11/29 12:10:29 [server:3] New client: localhost.
2011/11/29 12:10:29 [server:3] Client localhost disconnected.

Presiona las teclas Ctrl+C para interrumpir el registro en tiempo real y regresar a la consola del servidor.

Escuchar

En el panel principal, bajo el indicador ON AIR, encontrarás el botón LISTEN.

 

El botón abre la ventana emergente de Live stream, la cual t epermite monitorear las transmisiones que configuraste anteriormente en la página Stream Settings del menú System. En la ventana de Live stream, un menú desplegable te permite moverte entre las transmisiones disponibles al momento.

Bajo el menú desplegable de selección de transmisión, hay un botón rectangular de reproducir/detener a la izquierda y una barra anaranjada de control de volumen a la derecha. Este control de volumen solo ajusta el nivel de volumen de la alimentación en la ventana de Live Stream, no en el servidor de Airtime. Haz clic en el ícono de bocina de la izquieda para silenciar la reproducción, o haz clic en el ícono de bocina de la derecha para elevar el volumen al máximo nivel.

 

Para ajustar el nivel de volumen entre silencio y máximo, haz clic en el sitio correspondiente en la barra anaranjada. Cuando hayas terminado de monitorear las transmisiones, puedes cerrar la ventana emergente normalmente, dependiendo del navegador que uses. En Firefox, puedes cerrar la ventana al hacer clic en el botón X en la esquina superior derecha. Esta acción no cerrara la reproducción en el servidor de Airtime, solo la transmisión en tu computadora de escritorio.

Estado

En el menú System, la página de estado (Status) muestra el uso de los recursos que mantiene tu sistema de Airtime. Si todo va bien, verás solamente marcas de cheque verdes en cada columna de estado. Esta página también te dirá cuánto espacio del disco duro has destinado al almacenamiento multimedia.

Si ves que los cheques en la columna Status se han cambiado por un signo de advertencia rojo, ponte en contacto con el administrador del sistema para obtener asistencia. Airtime tratará de reiniciar los servicios fallidos, pero a veces es necesaria una intervención manual; por ejemplo, cuando existe una falla de hardware.

Si se te acabó el espacio para almacenamiento, un usuario de Airtime con permisos de administrador puede ingresar para borrar archivos multimedia que ya no estén en uso y que ya no sean necesarios para construir listas de reproducción. También puedes mover esos archivos a una carpeta observada en otro disco, o pedirle a tu administrador de sistema que instale una mayor capacidad de almacenamiento.

Instalación experta

Estos breves pasos de instalación son recomendables para administradores experimentados del sistema GNU/Linux que hayan completado los pasos en Preparar el servidor en los capítulos anteriores. Si quieres una explicación más detallada, lee el capítulo Instalación automática en este manual.

1. Edita los archivos de respositorio en to servidor:

$ sudo nano /etc/apt/sources.list

Para usuarios Ubuntu Lucid [o Maverick, Natty y Oneiric], usa el repositorio de Sourcefabric:

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

y asegurate de que habilitaste el repositorio de multiverso para obtener soporte en codificación de MP3:

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

Para servidores Debian Squeeze, usa el repositorio de Sourcefabric:

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

y habilita el repositorio backports para codificar MP3:

deb http://backports.debian.org/debian-backports squeeze-backports main

2. Instala la clave de firma del paquete Sourcefabric:

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

3. Instala el sistema administrador para la base de datos:

$ sudo apt-get install postgresql

4. Instala el servidor de transmisión multimedia (opcional):

$ sudo apt-get install icecast2

5. Elimina PulseAudio:

$ sudo apt-get purge pulseaudio

6. Instala Airtime:

$ sudo apt-get install airtime

Consulta el capítulo de Configuración para evaluar las opciones. Ahora deberías poder ingresar a la interfaz administradora de Airtime como muestra el capítulo Inicio.

Cómo exportar la programación

Airtime tiene una función que permite mostrar la información del programa en reproducción y los datos del usuario en sitios remotos. Esta función está incluida en Airtime porque no sería usual que invitaras al público en general a ingresar en el servidor directamente. Si tienes a muchas personas exigiendo los datos del servidor simultáneamente, podría sobrepasarse el tráfico de la red que permite el equipo, interrumpiendo tu transmisión. Si se desarrolla de la forma voluntaria, esta sobrecarga de la red se denomina un ataque de negación de servicio.

En lugar de eso, tu servidor público en la web puede recuperar la información del horario desde Airtime. Esta información aparecerá en tu estación transmisora y en los sitios afiliadosm por medio de un sistema de manejo de contenido, como Newscoop de Sourcefabric (http://newscoop.sourcefabric.org/). Puede presentarse con widgets de Javascript widgets, estilizados con CSS, en cualquier formato que desees.

Existen dos tipos de información que pueden recuperarse de manera remota desde Airtime: los metadatos del programa actual y el siguiente (live-info) o el horario de la semana corriente (week-info). Estos metadatos incluyen nombres de programa, horas, descripciones y direcciones individuales del programa en tu sitio público. Así, tu audiencia puede navegar en la información del horario para investigar más sobre un programa particular, o descargar una grabación del programa anterior que hayas hecho descargable.

Si tu servidor de Airtime está accesible en http://airtime.example.com la información del programa en vivo puede recuperarse en tu servidor web con el URL siguiente:

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

El texto de metadatos separado por comas regresará a tu servidor web de una manera similar a la siguiente:

({
"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"
})

La información del horario de la semana actual puede recuperarse con este URL:

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

En tal caso, los metadatos devueltos tendrán un formato diferente del anterior, y similar al siguiente. Para acortar el ejemplo, esta exportación solo muestra cuatro programas en un lunes. La exportación de un horario semanal tendrá mucho más texto:

({
"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":[]
})

Si aparece el mensaje You are not allowed to access this resource cuando intentas visualizar la información en tu navegador web, entra a la interfaz administradora de Airtime, haz clic en System dentro del menú principal y luego entra a Preferences. Habilita la opción Allow Remote Websites To Access "Schedule" Info? y haz clic en Submit. Luego, refresca la página con el URL de la exportación de horario.

 

Guardar información de horarios en cache   

Si el servidor de Airtime está contenido en un firewall, o quieres protegerlo de un alto número de solicitudes de horario, puede que debas guardar la información en un cache dentro del servidor inmediato o público. Puedes crear una regla de firewall que solo permita al servidor de horarios la conexión con el servidor de Airtime, además de los usuarios remotos de la interfaz web de Airtime.

Tu administrador del sistema puede fijar el almacenamiento de horarios en un servidor habilitado Apache o PHP con el programa curl instalñado, usando los siguientes pasos: 

1. Crea un código bash en el servidor de horarios que revise el servidor d eAirtime y escriba los metadatos devueltos en un par de archivos temporales:

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

El contenido de este archivo debe parecerse al código siguiente, reemplazando air1.example.comcon el nombre de tu servidor de 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. Haz el código bash ejecutable:

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

3. Crea una configuración Apache VirtualHost para el servidor de usuario: 

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

Debe contener una definición como la siguiente, reemplazando schedule.example.com con el nombre de tu servidor de horario:

<VirtualHost *:80>
   ServerName schedule.example.com
   DocumentRoot /var/www/schedule/
</VirtualHost>
4. En la carpeta DocumentRoot del servidor de horario, crea las carpetas api/live-info/ yapi/week-info/

$ sudo mkdir -p /var/www/schedule/api/live-info/
$ sudo mkdir -p /var/www/schedule/api/week-info/

5. Crea un archivo index.php en la carpeta api/live-info/:

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

con este código:

<?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. Crea un archivo index.php en la carpeta api/week-info/:

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

que contenga el código:

<?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. Habilita la nueva configuración y recarga el servidor web Apache: 

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

8. Create un cronometrado para ejecutar el código bash cada minuto:

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

que contenga la línea: 

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

El servidor de horario ahora contendrá la misma información que el servidor de Airtime, con un cache de un minuto de existencia. Puedes ajustar el tiempo del cache al moderar la frecuencia con que el cronometrado revisa el servidor de Airtime.

Widgets de página web

Los códigos para HTML, Javascript y CSS de tu sitio público están provistos en la carpeta widgetsde tu código de instalación de Airtime.  Si realizaste una instalación avanzada en Debian y Ubuntu, los widgets puedes hallarlos en el directorio /usr/share/doc/airtime/examples/.

Para que los widgets funcionen en un típico servidor web, los vínculos a los códigos Javascript y CSS deben incluirse en la página HTML <head> element, como el siguiete ejemplo: 

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

Un ejemplo completo aparece en el archivo widgets/sample_page.html en el código de instalación de Airtime, o el directorio /usr/share/doc/airtime/examples/ si instalaste el paquete Debian/Ubuntu de Airtime.

Este código es para un pequeño widget llamado airtimeLiveInfo que muestra la información del programa actual (tiempo transcurrido y tiempo restante), así como la información del siguiente programa (tiempo de inicio y de fin). En este ejemplo, la etiqueta de texto para onAirNowestá traducida al francés para soportar el lenguaje local: 

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

En la página web, este widget puede verse de la siguiente forma:

 

Las propiedades de CSS como color: y text-transform:uppercase fueron usadas para estilizar la etiqueta de onAirNow. Hay ejemplos completos en el archivo CSS widgets/css/airtime-widgets.cssdel código instalador de Airtime  o el directorio /usr/share/doc/airtime/examples/.

El siguiente widget airtimeShowSchedule tiene tamaño mediano, y muestra el próximo horario del día.

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

 El código de widget anterior puede estilizarse para verse así:


Finalmente, el siguiente código crea un enorme widget airtimeWeekSchedule que permite a los visitantes navegar a lo largo del horario semanal. En este ejemplo, todas las etiquetas han sido traducidas al francés:

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

Con el código anterior y CSS, las primeras seis horas pueden estilizarse de esta forma:

 

El valor de sourceDomain en los ejemplos de código anteriores debe coincidir con el URL del cual deseas servir la información de horarios al público. Si has usado el método de Guardar información de horario en cache, el URL debe ser el de su servidor de horario, no el servidor de Airtime directamente.

Inicio

Si el servidor de Airtime tiene un buscador web instalado, puedes ingresar a la interfez administradora al abrir esta dirección:

http://localhost/login

Si tienes que adecuar Airtime para el acceso desde múltiples computadoras, puedes usar un nombre de dominio, como por ejemplo:

http://airtime.example.com/login

Puedes ingresar la primera vez con el usuario  admin y la contraseña admin. Tu buscador web debe enfocarse en el campo Username.

Si ingresar la contraseña equivocada tres veces, se te presentará un reCAPTCHA para demostrar que eres humano, y no un robot para adivinar contraseñas. Esta función protege tu instalación de Airtime contra ataques de infiltración en bruto.

 

Una vez hayas ingresado como admin una ventana de diálogo te preguntará si deseas enviar datos de soporte técnico sobre tu servidor a Sourcefabric. Estos detalles puedes leerlos al hacer clic en el hipervínculo Show me what I am sending, el cual desplegará una ventana con la información. Estos datos ayudan a los ingenieros de Sourcefabric para resolver cualquier problema que surja con tu instalación de Airtime; también contabiliza las instalaciones efectuadas alrededor del mundo. Sourcefabric tiene una política de privacidad para la recolección de datos, la cual puedes consultar en este sitio  http://www.sourcefabric.org/en/about/policy/ . Luego de seleccionar el reporte de datos y las casillas de aprobación para las políticas de privacidad, dale clic a la opción Yes, help Airtime para enviar tu solicitud.

 

Esta ventana también te ofrece la opción de promocionar tu estación en Sourcefabric.org (en la página  http://www.sourcefabric.org/en/airtime/whosusing/) al seleccionar la opción correspondiente. Completa la forma siguiente con los datos de tu estación. Estos datos de contacto son solo requisitos de verificación, y no serán expuestos públicamente. Dale clic a la opción  Browse para seleccionar la imagen del logotipo de tu estación como un archivo dentro de tu computadora. 


Luego de cerrar la ventana, podrás ver el Panel Principal, el cual encabeza cada página de la interfaz de Airtime. A la derecha, el Panel Principal muestra los detalles del último archivo reproducido, el archivo que actualmente se transmite (con una barra de progreso anaranjada y un cronómetro) y los detalles del siguiente archivo a reproducir. Muestra también el nombre y el horario designado del programa actual, con una barra de progreso azul.

Debajo de este lado del Panel Principal está el menú de navegación, con varios sub-menús como Now PlayingAdd MediaPlaylist BuilderCalendar<span id="><span id=">">System Help. Veremos los contenidos de estos sub-menús en los siguientes capítulos de este manual.

Al lado derecho, el Panel Principal tiene un indicador de transmisión, el cual cambia su color de gris oscuro a rojo cuando se reproduce un archivo. Debajo de este indicador hay un botón para escuchar, que abre un reproductor externo que puede audicionar las transmisiones actuales. También hay un reloj que indica la hora de la estación y la zona horaria.

En el margen, un hipervínculo titulado About abre una ventana con los detalles de la versión de Airtime que has instalado. Debajo de este hipervínculo aparece el nombre del usuario ingresado y la opción para cerrar sesión. 

 

A la derecha, al hacer clic en la marca de cheque verde, se abre una ventana con información sobre la versión de Airtime instalada. Si tu instalación de Airtime no es la más reciente, la marca de cheque cambia a una flecha de actualización. Si tu instalación de Airtime está tmuy atrasada, la flecha cambiará por un signo de exclamación rojo.

 

Cómo revisar un servidor de Icecast

Si habilitaste la opción de transmisión con Icecast cuando instalaste Airtime, puedes revisar que el servidor Icecast esté funcionando con abrir el puerto 8000 del servidor con tu buscador web. Por ejemplo, en el mismo servidor, puedes usar:

http://localhost:8000/

Deberías poder ver la página de status con los detalles de la conexión que Airtime logró con Icecast. Si acabas de instalar Airtime, no habrá archivos en reproducción.

Grabar

La grabación de programas en vivo en la tarjeta de sonido del servidor, si hay una habilitada, puede activarse en la casilla Add Show de la página de calendario en Airtime (lee el capítulo El calendario en este manual). Durante la grabación, aparecerá una luz roja en la casilla Show del panel principal.


Antes de que comience la transmisión calendarizada de un programa grabado, debes asegurarte de que el nivel de grabación sea suficiente para asegurar una buena tasa de señal a sonido, y que no haya un nivel tan alto que distorsione el archivo grabado. Puedes revisar con el comando alsamixer en el servidor de Airtime. Este comando abre una aplicación de mezclador para la tarjeta de sonito en la consola del servidor.

Presiona F4 en tu teclado para capturar niveles. Puede que necesites unos cuantos experimentos para hallar el control correcto en el mezclador, usando las flechas Arriba y Abajo en el teclado. Los niveles se fijan con las flechas Arriba y Abajo, y se captura con la barra espaciadora. El valor Capture dB gain debe iniciar en 0.00, 0.00.

Si no escuchas nada en la grabación, puede que necesites fijan en Line el valor Input Source, usando las flechas Arriba Abajo. Dependiendo de la tarjeta de sonido y las entradas utilizadas, puede que necesites habilitar otras entradas como  DigitalS/PDIF. Si la grabación de prueba está muy silenciosa, intenta subir el nivel de salida de la transmisión en el mezclador hacia 0dB antes de sobrepasar 0dB en la tarjeta de sonido para adquirir la mejor estructura de incremento.

Usar grabaciones

Al finalizar una grabación, hallarás el archivo grabado en la página Playlist Builder, al buscar Recorder. El archivo tendrá un título con la fecha y hora de creación, así como el nombre del programa.

Cancelar una grabación

Si quieres cancelar la grabación de un programa en vivo y eliminar el archivo del servidor de almacenamiento, haz clic en el calendario y selecciona Cancel Current Show del menú emergente. 

Airtime te preguntará si estás seguro de proceder, pues esta acción no puede revertirse.

 

Ayuda

El menú de ayuda ofrece una guía de Inicio para nuevos usuarios. Más abajo, hay un vínculo a la versión en línea de este manual del usuario y una página Acerca de este manual donde hallarás información sobre la versión y la licencia.

Puedes visitar el foro de soporte técnico de Airtime, y enlistarte en la lista de correspondencia en http://forum.sourcefabric.org/categories/airtime-support 

Este foro está conectado al correo electrónico, así que las publicaciones del foro aparecerán en la lista de correo y vice versa. Puedes publicar en el foro al escribir a airtime-support@lists.sourcefabric.org

Para suscribirte a las actualizaciones por correo electrónico, debes registrarte e ingresar al foro por medio del link apropiado. Haz clic en la opción 'Suscribe' en el encabezado de la página.

Reporte de errores

Airtime necesita tu restroalimentación para mejorar. Si crees que has encontrado un error, visitahttp://dev.sourcefabric.org/ e inicia tu sesión, usando la misma cuenta y contraseña que registraste para el foro de Airtime. Crea un reporte de errores al seleccionar Create Issue, luego Airtime y finalmente Bug. Así, el equipo de Airtime team puede darle seguimiento al error y notificarte cuando haya sido corregido. También puedes solicitar mejoras y nuevas funciones para Airtime en este sitio.

Contacto

Finalmente, si ninguno de estos medios ha sido efectivo, escríbenos directamente a contact@sourcefabric.org y trataremos de ayudarte.

Otra ayuda

La publicación de UNESCO, titulada Community Radio - A user's guide to the technology (http://en.flossmanuals.net/airtime-en-2-0/help/booki/airtime-en-2-0/static/CommunityRadioUserGuide.pdf) ofrece una guía comprensiva acerca de cómo construir una estación de radio digital. Esta guía está destinada para las personas que quieren instituir una estación en India, pero incluye muchos consejos prácticos que pueden ser útiles en cualquier país.

Icecast and SHOUTcast

Airtime soporta la conexión a dos populares servidores de transmisión, Icecast (http://www.icecast.org), de código abierto, y el propietario SHOUTcast (http://www.shoutcast.com). Además de la licencia, la diferencia principal entre ambos servidores es que Icecast soporta la transmisión simultánea de MP3 y Ogg Vorbis desde Airtime, mientras que SHOUTcast soporta MP3 pero no Ogg Vorbis. El formato Ogg Vorbis, libre de regalías, tiene la ventaja de mayor calidad de sonido con menores tasas de bits, lo que causa un impacto directo en el ancho de banda que tu estación necesitará para servir al mismo número de oyentes.

La reproducción de Ogg Vorbis se soporta de forma nativa en Mozilla Firefox a partir de la versión 3.5, y funciona con muchos reproductores multimedia individuales. Combinado con jPlayer (http://jplayer.org/), Ogg Vorbis funciona con todas las plataformas populares y los buscadores web HTML5. (Revisa el capítulo Reproductor de transmisiones para tu sitio web para aprender cómo llevar jPlayer a tu audiencia).

No es recomendable que transmitas música MP3 con un bitrato menor de 128kbps porque la pérdida de frecuencias auditivas se reproducen al aire. Una señal MP3 de 96kbps o 64kbps es aceptable para transmisiones de voz si es necesaria la compatibilidad con hardware de reproducción que no soporta las señales Ogg Vorbis.

Dado que Airtime soporta la transmisión en ambos formatos, es posible ofrecer una señal en el sitio web, y otra independiente para la conexión directa del hardware de reproducción. Puedes probar si ambas señales Ogg Vorbis suenan mejor en bitratos más bajos usando el botón LISTEN en el panel principal de Airtime para cambiar entre ambos formatos de señal.

A la vez, puede que tengas una estación musical en la cual deseas transmitir 160kbps o 192kbps para ofrecer una ventaja contra las estaciones que transmiten a 128kbps o menos. Tanto los formatos Ogg Vorbis como los MP3 tienen una escasa compresión, por lo que los oyentes solo percibirán el beneficio de una señal de alto bitrato si los archivos multimendia en el servidor de almacenamiento de Airtime están codificados en un bitrato equivalente o mayor.

Metadatos UTF-8 en señales MP3 de Icecast 

Al enviar metadatos de tu transmisión a un servidor de Icecast con caracteres no latinos, puede que Icecast no pueda mostrarlos correctamente en la señal de MP3, aún si son correctos en la señal Ogg Vorbis. En esta escena, los caracteres rusos aparecen incorrectamente en el campo de pista actual de una transmisión MP3:

La solución es especificar los datos en un punto de montaje MP3 para que se interprete con el código UTF-8. Puedes lograr esto con añadir el siguiente párrafo al archivo  /etc/icecast2/icecast.xml file, donde airtime.mp3 es el nombre del punto de montaje:

  <mount>
       <mount-name>/airtime.mp3</mount-name>
       <charset>UTF-8</charset>
  </mount>

Al salvar el archivo /etc/icecast2/icecast.xml, debes reiniciar el servidor de Icecast:

sudo invoke-rc.d icecast2 restart
Restarting icecast2: Starting icecast2
Detaching from the console
icecast2.

Integrar con Mixxx

Mixxx es una aplicación de plataforma cruzada en Open Source, diseñada para DJs Está disponible en http://www.mixxx.org/

Una vez instalado en tu computadora, Mixxx complementa a tu servidor de Airtime para proveer un sistema completo de transmisión grabada o en vivo. Aunque Mixxx tiene muchas funciones diseñadas para los DJs de música bailable, como la mezcla de ritmos y la extensión de tonos independientes, el programa puede usarse para cualquier transmisión manual, incluyendo programas discursivos como las noticias.

Mixxx funciona con muchas de las plataformas de hardware más populares, las cuáles se conectan a la computadora con un cable USB. La superficie de control puede reemplazar o aumentar un mezclador análogo en tu estudio, dependiendo de tu mezcla en vivo y requerimientos de reproducción.

Si el directorio de tu servidor de almacenamiento para Airtime /srv/airtime/stor/ es accessible desde una computadora de escritorio como sitio de sólo lectura, Mixxx aceptará el sitio como su biblioteca de música predeterminada, cuando inicie por primera vez. (Este sitio puede configurarse después de la instalación, haciendo clic en Options, luego Preferences y luego Library en el menú principal de Mixxx).

 

Puede que necesites ajustar los permisos de archivo y directorio para que el directorio de almacenamiento tenga acceso de lectura al usuario de escritorio. No es recomendable habilitar el acceso de ecritura directamente al servidor de almacenamiento, pues esto permitiría a los usuarios de escritorio eliminar archivos que luego sean necesarios para la reproducción.

Si el destino del sistema de archivos ha sido correctamente configurado, los metadatos de los archivos en el servidor de almacenamiento de Airtime aparecerán en la ventana principal de la interfaz de Mixxx.Los archivos individuales en el servidor de almacenamiento de Airtime pueden agregarse a los reproductores de Mixxx con un clic derecho sobre el nombre de archivo, o usando los botones de hardware indicados en la plataforma de control. Así, es posible administrar el equipo de almacenamiento de manera remota y colaborativa por medio de Airtime, mientras se usa Mixxx como un servicio de reproducción en vivo, en múltiples estudios remotos.

El archivo de almacenamiento en Airtime puede exportarse como cualquier otro archivo compartido. El método implementado depende del sistema operativo en las computadoras de escritorio, y la condición de que estén conectadas con la misma red local o remota que el servidor de Airtime. Por razones de desempeño y redundancia, es recomendable reunir los archivos en cache para un programa particular en la computadora en que se instaló Mixxx. Por ejemplo, para una computadora con GNU/Linux client machine, una descarga nocturna de nuevos archivos con rsync protegería  el equipo de problemas de red a la hora de la reproducción, evitando interrupciones en la transmisión remota.

Los usuarios de Mixxx también pueden grabar un programa, codificarlo y luego cargarlo por medio de la interfaz web de Airtime en un servidor local o remoto para las transmisiones colaborativas o generadas por usuario. Además, Mixxx 1.9.0 y sus versiones psteriores incluyen un agente de transmisión en vivo que, como Airtime, es compatible con el servidor multimedia Icecast.

Máscara de Airtime para Mixxx

Una máscara temática de Airtime para Mixxx, diseñada para los usuarios de transmisión, está disponible para descargas en https://sourceforge.net/projects/airtime/files/.

Esta máscara es una interfaz simplificada para la transmisión en vivo se enfoca en control para el tiempo y el tono, la ecualización, el efecto flanger, la repetición y otras funciones que requieren los DJs de música bailable. A cambio, está enfatizada en crear una interfaz simple y clara que no requiere movimientos mayores para operar los controles más importantes.

Luego de descargar, extrae el archivo zip file y cópialo al directorio skins en la computadora donde instalaste Mixxx. Por ejemplo, en Debian o Ubuntu:

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

Luego, ejecuta Mixxx y selecciona la máscara de Airtime haciendo clic en Options, Preferences y luego Interface en el menú princioal de Mixxx.

 

Personalizar la interfaz

Como aplicación web, la interfaz administradora de Airtime es completamente personalizable por medio de los mismos métodos con que se actualiza una página web, por ejemplo, si deseas incrementar el tamaño de letra o cambiar los colores en la interfaz de Airtime para ayudar a los miembros del equipo que tengan problemas de la vista. Para lograrlo, abre uno de los archivos CSS en el directorio /public/css/ bajo el directorio de Airtime DocumentRoot dentro de un editor como nano:

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

Para cambiar el fondeo de la interfaz administrador a de gris oscuro a blanco, la propiedad background: de la etiqueta del cuerpo debe modificarse a #ffffff como se ve a continuación:

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

Guarda el archivo con Ctrl+O, luego refresca el navegador para ver el cambio de color de la interfaz.

Cualquier cambio personalizado que hagas a la interfaz administradora debe guardarse antes de actualizar Airtime a la siguiente versión, de lo contrario, será eliminado. Si has hecho mejoras que crees que podrían ayudar a otros usuarios de Airtime, contáctanos a Sourcefabric y cuéntanos sobre ellas.

Modificar la interfaz de Icecast

Si tienes instalado Icecast, en el directorio /etc/icecast2/web/ hallarás varios XSLT y otros archivos que se utilizan para generar la interfaz web de Icecast. Si estás familiarizado con HTML, deberías ser capaz de modificar estas páginas, puesto que están bien comentadas. Debes ser muy cuidadoso con la sintaxis, porque algo tan simple como un corchete suelto podría desconfigurar la interfaz web de Icecast.

Por ejemplo, puedes cambiar la página status.xsl:

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

La modificación de la página status.xsl es un buen lugar para empezar, pues es la página predeterinada en que los visitantes del sitio pueden ver el puerto 8000 de tu servidor de Icecast. El cambio más obvio que debe hacerse en estas páginas es el contenido de las etiquetas <title><h2>, para anunciar el nombre de la estación. También puedes modificar el archivo style.css en el directorio para cambiar las opciones de color y diseño. 

Luego de guardar el archivo con Ctrl+O, refresca tu navegador y podrás ver la nueva apariencia.

 

Cuando estés satisfecho con la apriencia de la interfaz web y la calidad de sonido de tus transmisiones, puedes descomentar la sección <directory> en el archivo /etc/icecast2/icecast.xml para que tu nueva estación aparezca instantáneamente en el sitio web de directorio de Icecast http://dir.xiph.org, el cual te ayudará a reunir más seguidores. También puedes colocar un hipervínculo a la página de estado de Icecast en el puerto 8000 de tu página oficial para la estación, de manera que puedas integrar ambos sitios.

Administración de carpetas multimedia

Airtime tiene un archivo de almacenamiento multimedia, que puedes hallar en la carpeta /srv/airtime/stor/ folder de tu servidor. En Manage media folders dentro del menú Configure, puedes cambiar esta ubocación predeterminada, o añadir nuevas carpetas observables para Airtime.

Debes especificar el puerto de red como carpeta multimedia, porque si esta carpeta se desconecta, el monitor de Airtime removerá los archivos faltantes de su base de datos. Si esos archivos están seleccionados para un próximo programa, su transmisión quedará silenciada.

Por la misma razón, si un puerto removible (como una memoria USB o un reproductor MP3) está especificado como carpeta observada, tal puerto debe estar presente y encendido en todo momento. Si tu equipo usa medios removibles para almacenar archivos, es más seguro usar la página Add media de la interfaz administradora de Airtime, o el comando de copia airtime-import para copiar los archivos al servidor central. Ve los capítulos Agregar contenidos y Usar el código de importación de Airtime para conocer más detalles. 

Todos los archivos que agregues a la carpeta /srv/airtime/stor/organize o a una carpeta observada serán automáticamente importados a la base de datos de Airtime. Las carpetas organizadas u observadas pueden exportarse a computadoras en la red local, para habilitar el arrastrado de cargas multimedia usando los administradores de archivo en las computadoras de escritorio de tu estudio.

 

Un archivo que caiga en la carpeta organizada desaparece mientras se leen sus metadatos, y luego llega a su sitio correcto en la jerarquía de almacenamiento, de acuerdo a título y creador. La estructura del directorio y los nombres de archivo en la carpeta de almacenamiento son totalmente leíbles. Esp significa que puedes hallar archivos para descarga y edición con el administrador de archivos de tu servidor, así como la petaña de Search en el Playlist Builder. Esto puede hacerse con un destino de archivo como /srv/airtime/stor/imported/Beck/Midnite Vultures/ en la imagen posterior.

 

Los archivos en una carpeta observada no serán movidos a la carpeta de almacenamiento de Airtime, pero los archivos eliminados de una carpeta observada también se borrarán de la base de datos de Airtime.

 Cambiar la carpeta de almacenamiento

Para cambiar la carpeta de almacenamiento de Airtime, haz clic en la opción Choose folder. En la ventana siguiente, selecciona los nombres de las carpetas que buscas. Haz clic en  Open para accesar esa carpeta.

 

De vuelta en la página de Manage Media Folders, selecciona la opción Set para asegurar la nueva carpeta de almacenamiento. Airtime confirmará si estás seguro de esta acción. Para asegurarla, haz clic en OK.

La página Manage Media Folders ahora mostrará la nueva ubicación del almacenamiento.

La carpeta de almacenamiento no puede ser modificada si Airtime está importando nuevos archivos. Si intentas cambiarla, aparecerá un mensaje de error.


Implementando una carpeta

En la opción Watched folders, haz clic en choose folder , abre la carpeta que buscas, y haz clic en la opción Add . Puedes agregar todas las carpetas que necesites.

Para eliminar una carpeta, haz clic en la x a la derecha de su fila en la lista. Nuevamente, Airtime preguntará si estás seguro de proceder.

Cualquier modificación en tus archivos almacenados será automáticamente registrada por Airtime. Si editas cualquier elemento de la carpeta, como un corte en una pista de audiio, Airtime instantáneamente ajustará la lista de reproducción para mostrar la duración de ese archivo específico.

Administración de usuarios

Debes crear una nueva contraseña administradora inmediatamente, usando la opción Manage Users en el menú de sistema.

A la izquierda de la página Manage Users, haz clic en admin dentro de la lista de usuarios. Los detalles para este usuario aparecerán en la casilla al lado derecho. Hasta ese momento, admin es el único perfil de usuario con contraseña. 

Ingresa una contraseña segura (que esté verificada como práctica) en el espacio designado. La seguridad de esta contraseña es esencial para el óptimo funcionamiento de tu estación, porque facilita el acceso a todas las opciones de calendarización y administración. Puedes agregar otros detalles a tu perfil en esta página, incluyendo tu nombre completo y datos para contactarte. Cuando termines, haz clic en Submit

font-size: 12px; font-weight: normal; letter-spacing: normal; line-height: 17px; ">Para agregar nuevos usuarios al sistema, uno por cada empleado de la estación que necesite ingresar a Airtime, haz clic en la opción New User. Escribe un nombre de usuario, una contraseña y los datos de contacto y luego selecciona el tipo de usuario del menú predeterminado; puedes escoger entre Administrador, Programador, DJ Invitado. La diferencia entre los tipos de usuario es así: 

Los nuevos usuarios aparecerán a la izquierda de la página Manage Users. Si tienes un gran número de usuarios, puedes usar la herramienta de búsqueda que encabeza la lista (tiene un ícono de lupa) para identificar a un usuario específico. Selecciona las opciones en la lista de encabezado para ordenar los resultados de búsqueda por Usuario, Primer nombre, Apellido o Tipo de usuario.

Para editar una cuenta de usuario, haz clic en la fila de ese usuario dentro de la lista. Cambia los detalles del usuario en la casilla ubicada a la derecha y finaliza con un clic en Submit. Para remover una cuenta de usuario, haz clic en el ícono x a la derecha de la fila. No puedes eliminar tu propia cuenta de usuario.

Instalación manual

Generalmente, no es necesario que instales Airtime manualmente, a menos que estés probando una versión en desarrollo del programa. Las versiones de Airtime más recomendables para usos de producción están disponibles para descarga y actualización por medio de secure apt, como lo muestra el capítulo Instalación automática

Instalación completa

El libreto airtime-full-install ha sido probado en servidores Ubuntu GNU/Linux y está diseñado para configurar un servidor por ti, usando las preferencias preestablecidas.

1. En la consola o terminal del servidor, descarga Airtime desde https://sourceforge.net/projects/airtime/files/ con wget. Por ejemplo, para descargar la version 2.0.3, puedes usar el comando:

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

2. Extrae el archivo descargado en tu directorio raíz. Esto creará un subdirectorio llamado  airtime-2.0.3:

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

3. Ejecuta el código airtime-full-install

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

El código de instalación indicará qué archivos están siendo instalados en tu equipo, y los directorios en que están siendo extraídos. Finalmente, ejecutará el código airtime-check-system para confirmar que tu servidor esté funcionando correctamente.

AIRTIME_STATUS_URL             = http://localhost/api/status/format/json/api_key/%%api_key%%
AIRTIME_SERVER_RESPONDING      = OK
KERNEL_VERSION                 = 2.6.32-38-generic
MACHINE_ARCHITECTURE           = x86_64
TOTAL_MEMORY_MBYTES            = 6128220
TOTAL_SWAP_MBYTES              = UNKNOWN
AIRTIME_VERSION                = 2.0.3
OS                             = Ubuntu 10.04.4 LTS x86_64
CPU                            = Dual Core AMD Opteron(tm) Processor 170
WEB_SERVER                     = Apache/2.2.14 (Ubuntu)
PLAYOUT_ENGINE_PROCESS_ID      = 13723
PLAYOUT_ENGINE_RUNNING_SECONDS = 2681
PLAYOUT_ENGINE_MEM_PERC        = 0.2%
PLAYOUT_ENGINE_CPU_PERC        = 0.0%
LIQUIDSOAP_PROCESS_ID          = 13732
LIQUIDSOAP_RUNNING_SECONDS     = 2681
LIQUIDSOAP_MEM_PERC            = 0.4%
LIQUIDSOAP_CPU_PERC            = 24.9%
MEDIA_MONITOR_PROCESS_ID       = 13818
MEDIA_MONITOR_RUNNING_SECONDS  = 2665
MEDIA_MONITOR_MEM_PERC         = 0.2%
MEDIA_MONITOR_CPU_PERC         = 0.0%
RABBITMQ_PROCESS_ID            = 14622
RABBITMQ_RUNNING_SECONDS       = 2553
RABBITMQ_MEM_PERC              = 0.3%
RABBITMQ_CPU_PERC              = 0.0%

-- Your installation of Airtime looks OK!

********************** Install Complete ***********************
Estás listo para proceder al capítulo de Configuración.

Instalación mínima   

El código alternativo airtime-install no configura tu servidor, dándote más opciones para fijar tus requerimientos.

1. En la consola o terminal del servidor, instala la lista de dependencias. Por ejemplo, en Ubuntu 10.04 (Lucid Lynx) LTS puedes ejecutar el comando:

sudo apt-get install apache2 curl ecasound gzip icecast2 lame \
libao-ocaml libapache2-mod-php5 libcamomile-ocaml-data libesd0 \
libmad-ocaml libmp3lame-dev libportaudio2 libpulse0 libsamplerate0 \
libsoundtouch-ocaml libtaglib-ocaml libvorbis-ocaml lsb-release \
monit mpg123 multitail odbc-postgresql patch php-pear php5-curl php5-gd \
php5-pgsql postgresql python2.6 python-virtualenv rabbitmq-server sudo \
tar vorbis-tools

2. Revisa que los módulos del servidor web Apache que usa Airtime estén habilitados: 

$ sudo a2enmod php5 rewrite

El servidor debe responder:

Module php5 already enabled
Module rewrite already enabled

3. Crea un directorio para contener la interfaz web de Airtime:

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

4. Luego, crea un archivo de configuración virtual de Airtime para  Apache:

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

e ingresa la información siguiente, sustituyendo el nombre de tu servidor con airtime.example.com y la dirección de tu administrador con admin@example.com. Asegúrate de fijar los comandos de DocumentRoot y Directory correctamente. Estos deberían coincidir con el directorio público en que el instalador extraerá la interfaz web, que, de forma predeterminada, es el directorio /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>

Presiona Ctrl+O para guardar el archivo, luego Ctrl+X para salir del editor nano.

5. Crea el archivo de configuración PHP /etc/airtime/airtime.ini en nano:

$ sudo nano /etc/airtime/airtime.ini

con los siguientes contenidos: 

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

Guarda y cierra nano. Luego, une este archivo a la configuración PHP del sistema con el comando:

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

6. Habilita la nueva configuración con el comando:

$ sudo a2ensite airtime

El servidor debe responder:

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

Puede que necesites deshabilitar la configuración predeterminada del sitio, porque puede interferir con tu instalación de Airtime:

$ sudo a2dissite default

Como sugiere el comando anterior, vuelve a cargar la configuración del servidor web.

$ sudo /etc/init.d/apache2 reload

El servidor debe responder:

 * Reloading web server config apache2
7. Descarga Airtime de https://sourceforge.net/projects/airtime/files/ con wget. Por ejemplo, para descargar la versión 2.0.3, puedes usar el comando:
$ wget http://downloads.sourceforge.net/project/airtime/2.0.3/airtime-2.0.3.tar.gz

8. Extrae el archivo descargado en el directorio raíz. Esta acción creará un subdirectorio llamado airtime-2.0.3:

$ sudo tar -xvzf airtime-2.0.3.tar.gz -C ~/
9. Monit es una utilidad de Airtime que supervisa la ejecución adecuada del sistema. Habilítala abriendo el archivo /etc/default/monit en el editor nano:  
$ sudo nano /etc/default/monit

Encuentra la línea que comience con startup y cambia el valor a 1:

startup=1

Guarda el archivo con Ctrl+O y cierra nano con Ctrl+X. Ahora copia la configuración Monit del directorio de instalación de Airtime en el directorio /etc/monit/conf.d/

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

Abre el archivo /etc/monit/monitrc en nano:

$ sudo nano /etc/monit/monitrc

Al final del archivo, agrega:

include /etc/monit/conf.d/*
Guarda el archivo con Ctrl+O y cierra con Ctrl+X. Luego, inicia Monit con:
$ sudo invoke-rc.d monit start

Encontrarás más información sobre Monit en el capítulo Usando Monit.

10. En Debian squeeze, asegúrate que el daemon rabbitmq-server halla iniciado:

$ sudo invoke-rc.d rabbitmq-server start

11. Finalmente, ejecuta el código airtime-install:  

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

Una vez el código airtime-check-system confirme que la instalación fue exitosa, puedes proceder al capítulo Configuración.

Instalar opciones de código

De forma predeterminada, el código airtime-install preserva cualquier configuración o instalación existente en el servidor. Sin embargo, también es posible dictar la conducta del código con la opción de comando siguiente: 

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

Desinstalación manual

Para desinstalar manualmente Airtime de tu servidor, ejecuta el código airtime-uninstall en el directorio original de instalación, por ejemplo: 

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

Optionalmente, también puedes eliminar los archivos de almacenamiento y configuración de Airtime. Si tienes copias, no necesitarás esta información dentro de este servidor particular. El comando rm debe usarse con cuidado, pues no hay manera de revertirlo. 

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

Modelos de audio en HD

Proveemos esta lista para asegurar que el parámetro de modelo correcto pase del módulo de kernel ALSA para una tarjeta de sonido Intel HDA, si hay una en el servidor de Airtime. Lee el capítulo Preparar el servidor en este manual para conocer más detalles.

  Nombre del modelo    Descripción
  -----------------    -----------
ALC880
======
  3stack        3-jack in back and a headphone out
  3stack-digout 3-jack in back, a HP out and a SPDIF out
  5stack        5-jack in back, 2-jack in front
  5stack-digout 5-jack in back, 2-jack in front, a SPDIF out
  6stack        6-jack in back, 2-jack in front
  6stack-digout 6-jack with a SPDIF out
  w810          3-jack
  z71v          3-jack (HP shared SPDIF)
  asus          3-jack (ASUS Mobo)
  asus-w1v      ASUS W1V
  asus-dig      ASUS with SPDIF out
  asus-dig2     ASUS with SPDIF out (using GPIO2)
  uniwill       3-jack
  fujitsu       Fujitsu Laptops (Pi1536)
  F1734         2-jack
  lg            LG laptop (m1 express dual)
  lg-lw         LG LW20/LW25 laptop
  tcl           TCL S700
  clevo         Clevo laptops (m520G, m665n)
  medion        Medion Rim 2150
  test          for testing/debugging purpose, almost all controls can be
                adjusted.  Appearing only when compiled with
                $CONFIG_SND_DEBUG=y
  auto          auto-config reading BIOS (default)

ALC260
======
  hp            HP machines
  hp-3013       HP machines (3013-variant)
  hp-dc7600     HP DC7600
  fujitsu       Fujitsu S7020
  acer          Acer TravelMate
  will          Will laptops (PB V7900)
  replacer      Replacer 672V
  favorit100    Maxdata Favorit 100XS
  basic         fixed pin assignment (old default model)
  test          for testing/debugging purpose, almost all controls can
                adjusted.  Appearing only when compiled with
                $CONFIG_SND_DEBUG=y
  auto          auto-config reading BIOS (default)

ALC262
======
  fujitsu       Fujitsu Laptop
  hp-bpc        HP xw4400/6400/8400/9400 laptops
  hp-bpc-d7000  HP BPC D7000
  hp-tc-t5735   HP Thin Client T5735
  hp-rp5700     HP RP5700
  benq          Benq ED8
  benq-t31      Benq T31
  hippo         Hippo (ATI) with jack detection, Sony UX-90s
  hippo_1       Hippo (Benq) with jack detection
  sony-assamd   Sony ASSAMD
  toshiba-s06   Toshiba S06
  toshiba-rx1   Toshiba RX1
  tyan          Tyan Thunder n6650W (S2915-E)
  ultra         Samsung Q1 Ultra Vista model
  lenovo-3000   Lenovo 3000 y410
  nec           NEC Versa S9100
  basic         fixed pin assignment w/o SPDIF
  auto          auto-config reading BIOS (default)

ALC267/268
==========
  quanta-il1    Quanta IL1 mini-notebook
  3stack        3-stack model
  toshiba       Toshiba A205
  acer          Acer laptops
  acer-dmic     Acer laptops with digital-mic
  acer-aspire   Acer Aspire One
  dell          Dell OEM laptops (Vostro 1200)
  zepto         Zepto laptops
  test          for testing/debugging purpose, almost all controls can
                adjusted.  Appearing only when compiled with
                $CONFIG_SND_DEBUG=y
  auto          auto-config reading BIOS (default)

ALC269
======
  basic         Basic preset
  quanta        Quanta FL1
  laptop-amic   Laptops with analog-mic input
  laptop-dmic   Laptops with digital-mic input
  fujitsu       FSC Amilo
  lifebook      Fujitsu Lifebook S6420
  auto          auto-config reading BIOS (default)

ALC662/663/272
==============
  3stack-dig    3-stack (2-channel) with SPDIF
  3stack-6ch     3-stack (6-channel)
  3stack-6ch-dig 3-stack (6-channel) with SPDIF
  5stack-dig     5-stack with SPDIF
  lenovo-101e    Lenovo laptop
  eeepc-p701    ASUS Eeepc P701
  eeepc-ep20    ASUS Eeepc EP20
  ecs           ECS/Foxconn mobo
  m51va         ASUS M51VA
  g71v          ASUS G71V
  h13           ASUS H13
  g50v          ASUS G50V
  asus-mode1    ASUS
  asus-mode2    ASUS
  asus-mode3    ASUS
  asus-mode4    ASUS
  asus-mode5    ASUS
  asus-mode6    ASUS
  asus-mode7    ASUS
  asus-mode8    ASUS
  dell          Dell with ALC272
  dell-zm1      Dell ZM1 with ALC272
  samsung-nc10  Samsung NC10 mini notebook
  auto          auto-config reading BIOS (default)

ALC680
======
  base          Base model (ASUS NX90)
  auto          auto-config reading BIOS (default)

ALC882/883/885/888/889
======================
  3stack-dig    3-jack with SPDIF I/O
  6stack-dig    6-jack digital with SPDIF I/O
  arima         Arima W820Di1
  targa         Targa T8, MSI-1049 T8
  asus-a7j      ASUS A7J
  asus-a7m      ASUS A7M
  macpro        MacPro support
  mb5           Macbook 5,1
  macmini3      Macmini 3,1
  mba21         Macbook Air 2,1
  mbp3          Macbook Pro rev3
  imac24        iMac 24'' with jack detection
  imac91        iMac 9,1
  w2jc          ASUS W2JC
  3stack-2ch-dig        3-jack with SPDIF I/O (ALC883)
  alc883-6stack-dig     6-jack digital with SPDIF I/O (ALC883)
  3stack-6ch    3-jack 6-channel
  3stack-6ch-dig 3-jack 6-channel with SPDIF I/O
  6stack-dig-demo  6-jack digital for Intel demo board
  acer          Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)
  acer-aspire   Acer Aspire 9810
  acer-aspire-4930g Acer Aspire 4930G
  acer-aspire-6530g Acer Aspire 6530G
  acer-aspire-7730g Acer Aspire 7730G
  acer-aspire-8930g Acer Aspire 8930G
  medion        Medion Laptops
  targa-dig     Targa/MSI
  targa-2ch-dig Targa/MSI with 2-channel
  targa-8ch-dig Targa/MSI with 8-channel (MSI GX620)
  laptop-eapd   3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE)
  lenovo-101e   Lenovo 101E
  lenovo-nb0763 Lenovo NB0763
  lenovo-ms7195-dig Lenovo MS7195
  lenovo-sky    Lenovo Sky
  haier-w66     Haier W66
  3stack-hp     HP machines with 3stack (Lucknow, Samba boards)
  6stack-dell   Dell machines with 6stack (Inspiron 530)
  mitac         Mitac 8252D
  clevo-m540r   Clevo M540R (6ch + digital)
  clevo-m720    Clevo M720 laptop series
  fujitsu-pi2515 Fujitsu AMILO Pi2515
  fujitsu-xa3530 Fujitsu AMILO XA3530
  3stack-6ch-intel Intel DG33* boards
  intel-alc889a Intel IbexPeak with ALC889A
  intel-x58     Intel DX58 with ALC889
  asus-p5q      ASUS P5Q-EM boards
  mb31          MacBook 3,1
  sony-vaio-tt  Sony VAIO TT
  auto          auto-config reading BIOS (default)

ALC861/660
==========
  3stack        3-jack
  3stack-dig    3-jack with SPDIF I/O
  6stack-dig    6-jack with SPDIF I/O
  3stack-660    3-jack (for ALC660)
  uniwill-m31   Uniwill M31 laptop
  toshiba       Toshiba laptop support
  asus          Asus laptop support
  asus-laptop   ASUS F2/F3 laptops
  auto          auto-config reading BIOS (default)

ALC861VD/660VD
==============
  3stack        3-jack
  3stack-dig    3-jack with SPDIF OUT
  6stack-dig    6-jack with SPDIF OUT
  3stack-660    3-jack (for ALC660VD)
  3stack-660-digout 3-jack with SPDIF OUT (for ALC660VD)
  lenovo        Lenovo 3000 C200
  dallas        Dallas laptops
  hp            HP TX1000
  asus-v1s      ASUS V1Sn
  auto          auto-config reading BIOS (default)

CMI9880
=======
  minimal       3-jack in back
  min_fp        3-jack in back, 2-jack in front
  full          6-jack in back, 2-jack in front
  full_dig      6-jack in back, 2-jack in front, SPDIF I/O
  allout        5-jack in back, 2-jack in front, SPDIF out
  auto          auto-config reading BIOS (default)

AD1882 / AD1882A
================
  3stack        3-stack mode (default)
  6stack        6-stack mode

AD1884A / AD1883 / AD1984A / AD1984B
====================================
  desktop       3-stack desktop (default)
  laptop        laptop with HP jack sensing
  mobile        mobile devices with HP jack sensing
  thinkpad      Lenovo Thinkpad X300
  touchsmart    HP Touchsmart

AD1884
======
  N/A

AD1981
======
  basic         3-jack (default)
  hp            HP nx6320
  thinkpad      Lenovo Thinkpad T60/X60/Z60
  toshiba       Toshiba U205

AD1983
======
  N/A

AD1984
======
  basic         default configuration
  thinkpad      Lenovo Thinkpad T61/X61
  dell_desktop  Dell T3400

AD1986A
=======
  6stack        6-jack, separate surrounds (default)
  3stack        3-stack, shared surrounds
  laptop        2-channel only (FSC V2060, Samsung M50)
  laptop-eapd   2-channel with EAPD (ASUS A6J)
  laptop-automute 2-channel with EAPD and HP-automute (Lenovo N100)
  ultra         2-channel with EAPD (Samsung Ultra tablet PC)
  samsung       2-channel with EAPD (Samsung R65)
  samsung-p50   2-channel with HP-automute (Samsung P50)

AD1988/AD1988B/AD1989A/AD1989B
==============================
  6stack        6-jack
  6stack-dig    ditto with SPDIF
  3stack        3-jack
  3stack-dig    ditto with SPDIF
  laptop        3-jack with hp-jack automute
  laptop-dig    ditto with SPDIF
  auto          auto-config reading BIOS (default)

Conexant 5045
=============
  laptop-hpsense    Laptop with HP sense (old model laptop)
  laptop-micsense   Laptop with Mic sense (old model fujitsu)
  laptop-hpmicsense Laptop with HP and Mic senses
  benq          Benq R55E
  laptop-hp530  HP 530 laptop
  test          for testing/debugging purpose, almost all controls
                can be adjusted.  Appearing only when compiled with
                $CONFIG_SND_DEBUG=y

Conexant 5047
=============
  laptop        Basic Laptop config
  laptop-hp     Laptop config for some HP models (subdevice 30A5)
  laptop-eapd   Laptop config with EAPD support
  test          for testing/debugging purpose, almost all controls
                can be adjusted.  Appearing only when compiled with
                $CONFIG_SND_DEBUG=y

Conexant 5051
=============
  laptop        Basic Laptop config (default)
  hp            HP Spartan laptop
  hp-dv6736     HP dv6736
  hp-f700       HP Compaq Presario F700
  ideapad       Lenovo IdeaPad laptop
  lenovo-x200   Lenovo X200 laptop
  toshiba       Toshiba Satellite M300

Conexant 5066
=============
  laptop        Basic Laptop config (default)
  hp-laptop     HP laptops, e g G60
  asus          Asus K52JU, Lenovo G560
  dell-laptop   Dell laptops
  dell-vostro   Dell Vostro
  olpc-xo-1_5   OLPC XO 1.5
  ideapad       Lenovo IdeaPad U150
  thinkpad      Lenovo Thinkpad

STAC9200
========
  ref           Reference board
  oqo           OQO Model 2
  dell-d21      Dell (unknown)
  dell-d22      Dell (unknown)
  dell-d23      Dell (unknown)
  dell-m21      Dell Inspiron 630m, Dell Inspiron 640m
  dell-m22      Dell Latitude D620, Dell Latitude D820
  dell-m23      Dell XPS M1710, Dell Precision M90
  dell-m24      Dell Latitude 120L
  dell-m25      Dell Inspiron E1505n
  dell-m26      Dell Inspiron 1501
  dell-m27      Dell Inspiron E1705/9400
  gateway-m4    Gateway laptops with EAPD control
  gateway-m4-2  Gateway laptops with EAPD control
  panasonic     Panasonic CF-74
  auto          BIOS setup (default)

STAC9205/9254
=============
  ref           Reference board
  dell-m42      Dell (unknown)
  dell-m43      Dell Precision
  dell-m44      Dell Inspiron
  eapd          Keep EAPD on (e.g. Gateway T1616)
  auto          BIOS setup (default)

STAC9220/9221
=============
  ref           Reference board
  3stack        D945 3stack
  5stack        D945 5stack + SPDIF
  intel-mac-v1  Intel Mac Type 1
  intel-mac-v2  Intel Mac Type 2
  intel-mac-v3  Intel Mac Type 3
  intel-mac-v4  Intel Mac Type 4
  intel-mac-v5  Intel Mac Type 5
  intel-mac-auto Intel Mac (detect type according to subsystem id)
  macmini       Intel Mac Mini (equivalent with type 3)
  macbook       Intel Mac Book (eq. type 5)
  macbook-pro-v1 Intel Mac Book Pro 1st generation (eq. type 3)
  macbook-pro   Intel Mac Book Pro 2nd generation (eq. type 3)
  imac-intel    Intel iMac (eq. type 2)
  imac-intel-20 Intel iMac (newer version) (eq. type 3)
  ecs202        ECS/PC chips
  dell-d81      Dell (unknown)
  dell-d82      Dell (unknown)
  dell-m81      Dell (unknown)
  dell-m82      Dell XPS M1210
  auto          BIOS setup (default)

STAC9202/9250/9251
==================
  ref           Reference board, base config
  m1            Some Gateway MX series laptops (NX560XL)
  m1-2          Some Gateway MX series laptops (MX6453)
  m2            Some Gateway MX series laptops (M255)
  m2-2          Some Gateway MX series laptops
  m3            Some Gateway MX series laptops
  m5            Some Gateway MX series laptops (MP6954)
  m6            Some Gateway NX series laptops
  auto          BIOS setup (default)

STAC9227/9228/9229/927x
=======================
  ref           Reference board
  ref-no-jd     Reference board without HP/Mic jack detection
  3stack        D965 3stack
  5stack        D965 5stack + SPDIF
  5stack-no-fp  D965 5stack without front panel
  dell-3stack   Dell Dimension E520
  dell-bios     Fixes with Dell BIOS setup
  volknob       Fixes with volume-knob widget 0x24
  auto          BIOS setup (default)

STAC92HD71B*
============
  ref           Reference board
  dell-m4-1     Dell desktops
  dell-m4-2     Dell desktops
  dell-m4-3     Dell desktops
  hp-m4         HP mini 1000
  hp-dv5        HP dv series
  hp-hdx        HP HDX series
  hp-dv4-1222nr HP dv4-1222nr (with LED support)
  auto          BIOS setup (default)

STAC92HD73*
===========
  ref           Reference board
  no-jd         BIOS setup but without jack-detection
  intel         Intel DG45* mobos
  dell-m6-amic  Dell desktops/laptops with analog mics
  dell-m6-dmic  Dell desktops/laptops with digital mics
  dell-m6       Dell desktops/laptops with both type of mics
  dell-eq       Dell desktops/laptops
  alienware     Alienware M17x
  auto          BIOS setup (default)

STAC92HD83*
===========
  ref           Reference board
  mic-ref       Reference board with power management for ports
  dell-s14      Dell laptop
  hp            HP laptops with (inverted) mute-LED
  hp-dv7-4000   HP dv-7 4000
  auto          BIOS setup (default)

STAC9872
========
  vaio          VAIO laptop without SPDIF
  auto          BIOS setup (default)

Cirrus Logic CS4206/4207
========================
  mbp55         MacBook Pro 5,5
  imac27        IMac 27 Inch
  auto          BIOS setup (default)

VIA VT17xx/VT18xx/VT20xx
========================
  auto          BIOS setup (default)

Al aire

Esta página provee dos vistas de las carpetas que reproduce tu estación, las cuáles pueden intercambiarse cambiando entre las opciones Day View y Now View, situadas en la esquina superior derecha de la interfaz administradora.

La forma predeterminada es Now View, donde los archivos ya reproducidos son eliminados de la lista automáticamente. Day View muestra los archivos a reproducir ese día..

Los nombres del programa tienen fondo azul, y los archivos individuales tienen un fondo gris. La fila del archivo en reproducción tiene un fondo anaranjado. Los programas incompletos (aquellos sin contenido suficiente para el tiempo disponible) aparecen con una fila que muestra el vacío temporal en segundos. Este vacío tiene un fondo rojo.

A la izquierda de la página Now Playing, aparecen la fecha, la hora de inicio y final, la duración y el título del archivo a reproducir. 

A la derecha de la vista Now View, aparecen el programa y la lista de reproducción de cada archivo. (La creación de programas y listas de reproducción se discutirá más adelante). 

Si un programa está incompleto, es decir, si su tiempo de reproducción es menor al espacio de transmisión, un ícono de advertencia rojo aparecerá en la columna de Status. Este ícono indica que el archivo en esa fila será cortado abruptamente cuando acabe el programa.

 Un programa en vivo que esté dispuesto para la reproducción aparecerá con un fondo gris oscuro, para indicar que no tiene una lista de reproducción.

La vista Day View es similar a la Now View, excepto que los archivos ya reproducidos se acumulan en el encabezado de la ventana. Puedes seleccionar el horario del día que deseas ver al hacer clic en la casilla de la fecha, justo a la derecha de la opción Day View, y seleccionar un día del calendario emergente.

Cómo crear una lista de reproducción

Esta página de la interfaz de Airtime te permite buscar entre los archivos multimedia, ordenar los resultados de acuerdo a diferentes criterios y arrastrar los resultados individuales a una lista de reproducción abierta. También puedes arreglar la lista de reproducción actual con un arrastrado.

La página de Playlist Builder no es visibe para los usuarios invitados. 

La pestaña de búsqueda

A la izquierda de la página de Playlist Builder , la pestaña de búsqueda lista los archivos sueltos y las listas de reproducción en almacenamiento de Airtime, con diez resultados por página por configuración predeterminada. Haz clic en Show entries en la esquina superior derecha para mostrar 10, 25, 50 o 100 resultados por página, de acuerdo a tu preferencia.

 

Haz clic en los encabezados de columna TitleCreatorAlbumGenreLength o Type para ordenar tus resultados. En la columna Type, alos archivos de audio aparecen con un ícono de bocina, mientras que las listas de reproducción tienen un ícono de documento. 

En el margen inferior de la ventana, haz clic en FirstPreviousNextLast o los números de página individuales para buscar en el archivo de almacenamiento multimedia.

 

Escribe un término de búsqueda en la casilla en la esquina superior izquierda, a la par del ícono de lupa. Puedes buscar un archivo de acuerdo al título, el creador, el álbum, el género o la duración. Por ejemplo, para buscar todos los archivos y listas de reproducción que tengan entre siete y ocho minutos de duración, escribe 00:07 en la casilla de búsqueda. Como sucede en un buscador de Internet, los resultados filtrados van depurándose mientras escribes; no es necesario que presiones Enter.

Al seleccionar una fila de archivo en la pestaña de búsqueda, se abrirá una opción para editar los metadatos de ese archivo, descargarlo a la computadora local para reproducción y edición, o eliminarlo del servidor de almacenamiento de Airtime. La opción de eliminar debe usarse con cuidado, porque no puede revertirse. Por eso, sólo los usuarios administradores pueden eliminar archivos. 

Si seleccionaste la casilla Enable SoundCloud Upload en la página Preferences, thabrá otra opción en el menú emergente: Upload to SoundCloud. Como se mencionó antes, solo puedes subir archivos de audio a SoundCloud con el permiso del autor. 

Al hacer clic derecho en una fila de archivo dentro de los resultados de búsqueda, aparecerán los metadatos de ese archivo en una ventana emergente.

 

Crear una nueva lista de reproducción

Una vez hayas encontrado los archivos que necesitas, puedes crear una nueva lista de reproducción en el lado derecho de la página de Playlist Builder . Haz clic en New para comenzar. 

Al inicio, la nueva lista de reproducción aparecerá con el título Untitled Playlist. Haz clic en el ícono de lápiz para renombrarla.

 

Escribe el nombre que elegiste, y presiona la tecla de retorno en tu teclado para guardarlo. Puedes modificar el nombre nuevamente si haces clic en el ícono de lápiz.

 

Haz clic en View / edit description para expandir la casilla donde puedes incluir la descripción de la lista de reproducción, luego presiona el botón Save. Si fijas metadatos de buena calidad, será más fácil que encuentres la lista en la pestaña de búsqueda, así que debes ser lo más descriptivo posible.

 Ahora, arrastra los archivos de la pestaña de búsqueda a la nueva lista de reproducción a la derecha.

Luego de arrastrar los archivos hacia la nueva lista de repoducción, el tiempo total aparecerá en la esquina superior derecha. La duración de un archivo individual aparece en cada fila de la lista de reproducción con letras blancas, y debajo de esta cifra aparece el tiempo transcurrido desde el inicio de la lista, en una letra gris más pequeña.

Para escuchar una lista de reproducción en tu buscador de Internet, haz clic en el pequeño triángulo blanco play/pause a la izquierda de cada fila. Haz clic en la pequeña x blanca a la derecha de cada fila para eliminar un archivo de la lista. Puedes sostener y arrastrar archivos para reordenarlos.

Haz clic en el botón Fade button (dos fechas horizontales blancas crusando un rectángulo gris), a la derecha de los botones New y Delete, para abrir una barra beige donde puedes fijar el desvanecimiento y crecimiento del sonido en la lista de reproducción.

Haz clic en los botones menores de Fade entre los archivos para abrir otra barra beige que te facilite el desvanecimiento de sonido entre archivos adyacentes dentro de la lista. Estos botones de fade se tornan anaranjados cuando les das clic.

 

Haz clic en cualquier otro de los botones de Crossfade entre las filas de archivo para abrir otra barra beige que permite determinar los tiempos de desvanecimiento entre dos archivos adyacentes en la lista. Los botones de crossfade para archivos adyacentes cambian a un fondo anaranjado cuando les das clic.

Cada archivo en la lista de reproducción también tiene un botón con dos corchetes, el cual permite fijar la entrada y la salida de ese archivo en particular. Como el botón de fade, su fondo cambia a anaranjado cuando le das clic. La duración del archivo en la lista de reproducción se actualiza inmediatamente, pero la duración original también aparece para referencia. 

Cuando tu lista de reproducción esté finalizada, haz clic en New en la esquina superior izquierda para crear una nueva lista, o dirígete a otra página de la interfaz. Si deseas editar los contenidos de la lista o sus metadatos, puedes encontrarla por orden de título, creador o duración en la pestaña de búsqueda en la página de Playlist Builder. Haz clic en la lista de reproducción en los resultados de búsqueda y selecciona  Edit en el menú emergente. Una lista de reproducción que esté ya abierta para edición mostrará la opción Close en el menú contextual. También puedes eliminar una lista en ese menú.

Preferencias

En el menú del Sistema dale clic a Preferences para configurar el nombre de tu estación y el tiempo de desfaz predeterminado para entrelazar los archivos de sonido.

También puedes habilitar el acceso en vivo, sólo para lectura, hacia el calendario Airtime para el sitio público de tu estación con la opción Allow Remote Websites to Access Schedule Info?. (Conoce más acerca de esta opción en el capítulo Exportar la programación, dentro de la sección de Configuración Avanzada de este manual).

Usa el menú desplegable de zona horaria para fijar la hora local en tu estación. Airtime almacena los horarios en formato UTC (Greenwich Mean Time), pero puedes mostrar la hora para la conveniencia de tu equipo. A la vez, puedes fijar el día de la semana en que se programe tu horario, que predeterminadamente inicia el domingo. Luego, haz clic en Save.

Configuración de SoundCloud

Si tu estación tiene una cuenta de SoundCloud (en http://soundcloud.com), puedes subir las grabaciones de programas en vivo a este servicio, de forma automática. Dale clic al pequeño triángulo negro junto a la sección de SoundCloud Settings para encontrar esta opción. Luego de seleccionar el espacio Enable SoundCloud Upload and Automatically Upload Recorded Shows, puede que debas ingresar tu correo electrónico y tu contraseña de SoundCloud, y los metadatos de etiqueta que SoundCloud usará para categorizar las grabaciones de tu programa.

Selecciona la casilla Automatically Mark Files "Downloadable" on SoundCloud si deseas habilitar esta opción. También puedes configurar un género predeterminado y buscar la licencia para derechos de autor, incluyendo dominio público, derechos reservados o una de nuestas licencias de Creative Commons (ve más en http://creativecommons.org). Luego, vuelve a hacer clic en el botón Save.

Recuerda que, al igual que muchos servicios de distribución, SoundCloud exige que tengas los derechos y permisos del los autores para distribuir en Internet los contenidos que cargas.

Preferencias de transmisión

En el menú System, puedes configurar transmisiones directas a Icecast y SHOUTcast así como alimentación para la tarjeta de sonido en la página Stream Settings.

En el encabezado de la página Stream Settings hay una casilla con varias opciones globales como Hardware Audio Output, que habilita la reproducción desde la tarjeta de sonido predeterminada en el servidor, si hay una definida. La función predeterminada Output Type de ALSA en el menú desplegable será útil para la mayoría de servidores con una tarjeta de sonido. Si no, tienes la opción de esciger una de otras interfaces de Liquidsoap disponibles, como OSSPortAudio.Si estás usando la alimentación de audio en el hardware, y no transmitirás directamente a Icecast o SHOUTcast, puedes hacer clic en Save en este punto.

La segunda casilla debajo de Global Settings habilita el envío de metadatos Icecast Vorbis con transmisiones directas. Esta opción es opcional porque algunos reproductores tienen errores que los desconectan de transmisiones Ogg Vorbis cuando un servidor de Icecast notifica el inicio de otra pista.

El botón de radio Stream Label radio button allows you to set the metadata that will be sent with direct streams; Artist and Title, Show, Artist and Title, or Station name and Show name.

 

Puedes configurar hasta tres transmisiones independientes con distintas tasas de bits, y enviarlas a diferentes servidores de Icecast o SHOUTcast. De forma predeterminada, solo la transmisión 1 (Stream 1) está habilitada, enviando la transmisión a Icecast con el mismo servidor en la dirección de IP 127.0.0.1 en localhost. Para habilitar otras transmisiones, haz clic en el nombre de transmisión para expandir la casilla, haz clic en la sección Enabled, a ingresa al menos una dirección de IP para el servidor o un número de dominio con detalles del puerto.


Haz clic en Additional Options para expandir la ventana donde ingresar Nombre de Usuario, Contraseña y metadatos para el servidor de transmisiones. Puedes fijar el Mount Point específico para que los oyentes se conecten. Luego, haz clic en el botón Save en la esquina inferior derecha para actualizar la configuración del servidor de Airtime.

 

Al seleccionar un servidor de SHOUTcast server en el menú expandible de Service Type sólo puedes transmitir en formato MP3, así que la elección del formato Ogg Vorbis está oscurecida en el menú Stream Type.

 

Cualquier problema de conexión entre Liquidsoap y Icecast o SHOUTcast aparece en esta página. Por ejemplo, si ingresas la contraseña incorrecta, verás un mensaje de error. Para arreglarlo, ingresa la contraseña correcta en la casilla Additional Options y haz clic en el botón Save.

 

 

Cómo  preparar el servidor

Las siguientes instrucciones asumen que tienes acceso raíz a un servidor GNU/Linux, y estás familiarizado con las líneas de comando elementales. Los administradores de sistema más experimentados pueden avanzar al capítulo de Instalación experta en el apéndice de este manual, después de preparar el servidor como lo muestran los pasos siguientes.

La plataforma más recomendable para el servidor de Airtime es Ubuntu 10.04 'Lucid Lynx' LTS. Ubuntu 11.04 'Natty Narwhal', 11.10 'Oneiric Ocelot', y Debian 6.0 'squeeze' son excelentes alternativas. Los usuarios de otras distribuciones GNU/Linux pueden adaptar estas instrucciones de acuerdo con sus necesidades.

El servidor debe contar, como mínimo, con un procesador de 1GHz y 512MB de memoria RAM. La instalación de Airtime no usa mucho espacio de disco, pero necesitarás espacio de capacidad para los archivos multimedia. Se recomienda un arreglo de intercambio rápido RAID para el archivo multimedia, en caso de que el disco duro presente fallos. También deberías considerar un UPS u otro sistema de protección para la batería par aprotegerte de fallas a corto plazo.

La interfaz administradora de Airtime está diseñada para funcionar con cualquier buscador, en cualquier computadora de escritorio o portátil con resolución de 1024x768 píxeles. El buscador más recomendado es Mozilla Firefox 3.6 (o posterior). Google Chrome 8 (o posterior) y Apple Safari 4 (o una versión más nueva) también funcionan.

Tarjetas de sonido

Si tu equipo de Airtime solo transmitirá directamente a un servidor de Icecast o SHOUTcast, no necesitarás una tarjeta de sonido instalada en el servidor de Airtime. Esta opción es recomendable para las instalaciones de Airtime en el centro de datos de tu ISP, de manera remota desde cualquier transmisor. Si embargo, no podrás usar la función de grabación en vivo de Airtime.

Si deseas que tu servidor de Airtime tenga una alimentación directa del audio para tu transmisión o cualquier otro decodificador, tu equipo servidor debe tener una tarjeta de sonido instalada en el puerto ALSA. Casi todas las tarjetas de sonido tienen puertos ALSA instalados en el kernel de Linux, por lo que no necesitan instalarse por separado. Si tienes dudas sobre el soporte de puertos para tu tarjeta de sonido, revisa la matriz de tarjetas sonoras ALSA en http://www.alsa-project.org/main/index.php/Matrix:Main.

Si tu equipo de Airtime machine sólo se usará para transmitir a un servidor de Icecast, no necesitarás instalar una tarjeta de sonido en tu servidor. Esta opción es recomendable para instalaciones de Airtime en tu centro de datos ISP, remotas desde cualquier transmisor.

Índice de equipos de audio USB

Algunas tarjetas madre del servidor no tienen un aparato ALSA, porque la tarjeta de sonido USB está protegida del número de índice 0 en la configuración de distribuciones de GNU/Linux. Esta función puede estar en un archivo como /etc/modprobe.d/alsa-base.conf en Ubuntu, que puede editarse con nano: 

sudo nano /etc/modprobe.d/alsa-base.conf

Comenta las líneas que empiecen con options snd-usb- para arreglar el problema:

# Prevent abnormal drivers from grabbing index 0

# options snd-usb-audio index=-2
# options snd-usb-us122l index=-2
# options snd-usb-usx2y index=-2
# options snd-usb-caiaq index=-2

Guarda el archivo con Ctrl+O y cierra nano con Ctrl+X. Luego elimina y reinserta el cable que conecta el aparato de audio de USB. El comando aplay -l debe confirmar que el aparato de audio USB tenga un valor 0:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: MobilePre [MobilePre], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0 

Al usar una tarjeta de sonido USB con ALSA, algunos documentos de instrucciones avocan a la configuración de la opción advocate setting the nrpacks= 1, pero esto no es recomendable para Airtime porque incrementa significativamente la carga sobre el CPU. 

Etiquetas de mezclador Intel HDA

Si tienes una tarjeta de sonido Intel HDA como muchas tarjetas madre contemporáneas, descubrirás que los controles de grabación en alsamixer tienen etiquetas incorrectas. Este problema puede hacer más difícil el ajuste de los níveles del mezclador, excepto por prueba y error. Para arreglar estas etiquetas, puedes pasar un parámetro específico model= al módulo snd-hda-intel del kernel de Linux. En Debian o Ubuntu GNU/Linux, puedes hacer esto al encontrar tu primer modelo, con el comando:

cat /proc/asound/card0/codec* | grep Codec

El servidor debe responder con una línea como:

Codec: Realtek ALC882

Referente al anexo HD Audio Models de este manual, halla el códec y el modelo correspondientes. En este ejemplo, el códec es ALC882 y la tarjeta tiene seis salidas análogas y dos entradas S/PDIF, así que el modelo es 6stack-dig.

ALC882/883/885/888/889
======================
  3stack-dig    3-jack with SPDIF I/O
  6stack-dig    6-jack digital with SPDIF I/O

Edita el archivo /etc/modprobe.d/alsa-base.conf con nano de esta manera:

sudo nano /etc/modprobe.d/alsa-base.conf

Añade una línea apropiada para tu modelo de tarjeta de sonido al final del archivo, como:

# Realtek ALC882
options snd-hda-intel model=6stack-dig
Guarda con Ctrl+O y cierra nano con Ctrl+X. Luego reinicia el servidor. Tras reiniciar, deberás poder ver los controles del mezclador correctamente etiquetados.

Deshabilitar escritorio y otros sonidos

Si estás instalando Airtime en un computador de escritorio, asegúrate de deshabilitar o remover los programas que podrían enviar sonidos indeseables a tu tarjeta de sonido para transmisión. Esto incluye mensajes de alerta sobre el funcionamiento del equipo o inicios de sesión. En Ubuntu, estos sonidos se configuran usando  Sistema -> Preferencias-> Sonido en el menú de escritorio principal. Este diálogo de configuración sólo funciona cuando el servidor de sonido PulsaeAudio está instalado. 

Puedes remoder todos los sonidos del sistema de tu computadora para que no se reproduzcan accidentalmente en la tarjeta de sonido. Por ejemplo, en Ubuntu, puedes eliminar el paqueteubuntu-sounds con el comando:

$ sudo apt-get purge ubuntu-sounds

Eliminar PulseAudio, si está instalado

El servidor de sonido PulseAudio no es compatible con la alimentación de la tarjeta de sonido de Airtime, pero está instalada de forma predeterminada en Ubuntu. Para remover PulseAudio de cualquier equipo Ubuntu, escribe el siguiente comando:

$ sudo apt-get purge pulseaudio

Al remover el paquete pulseaudio en el escritorio, el equipo Ubuntu puede forzar la remoción del metapaquete ubuntu-desktop. Sin embargo, este metapaquete sólo está instalado en el sistema para programar actualizaciones; su eliminación no destruye el escritorio GNOME.

Después de remover PulseAudio, si tu equipo de Airtime tiene escritorio, puedes instalar una aplicación de mezclador para controlar la tarjeta de sonido ALSA directamente, como la gnome-alsamixer:

$ sudo apt-get install gnome-alsamixer

En un servidor con tarjeta de sonido pero si escritorio, puedes controlar los niveles salida y entrada de sonido usando el programa de comando lineal alsamixer

Este programa ya debería estar instalado en un equipo Ubuntu o Debian con tarjeta de sonido. Si no, puedes instalarla con el comando:

$ sudo apt-get install alsa-utils

Eliminar webmin, si está instalado

El panel de control webmin (http://www.webmin.com) se conoce por su capacidad para remover los paquetes  Apache y PHP en equipos Debian o Ubuntu, lo que puede provocar la eliminación del paquete de Airtime. Este problema se revierte fácilmente al reinstalar los paquetes afectados, pero podría afectar tu transmisión repreoducible en Airtime. Webmin generalmente no está instalado en el equipo a menos que el administrador lo programe manualmente. Esto sucede porque webmin fue eliminado de los repositorios en los paquetes oficiales de Debian y Ubuntu hace algunos años.

Nombre de equipo RabbitMQ

RabbitMQ requiere un nombre de equipo fijo y descifrable (ve http://www.rabbitmq.com/ec2.html#issues-hostname), una cualidad normal en un servidor. PAra un equipo pórtatil o de escritorio, donde el nombre de equipo cambie frecuentemente o no es descifrable, este problema no permitira que inicie RabbitMQ. Al usar un equipo de escritorio o portátil con una dirección de IP dinámica, como la dirección de una red inalámbrica, el daemon rabbitmq-server no iniciará antes que el servicio NetworkManager. 

RabbitMQ en Debian 

En Debian 6.0 (Squeeze) el daemon rabbitmq-server no arranca automáticamente después del reinicio. Esto debe arreglarse antes de instalar Airtime, para prevenir problemas durante la reproducción. Si el paquete rabbitmq-server package fue instalado antes del último arranque del equipo, necesitarás ejecutar:

# invoke-rc.d rabbitmq-server start

como el usuario raíz antes de instalar Airtime. Si no está instalado aún, ejecuta el siguiente comando como raíz:

# apt-get install rabbitmq-server

Luego de una instalación fresca rabbitmq-server arrancará automáticamente, por lo que no será necesario ejecutar el comando invoke-rc.d antes mencionado. 

En cualquier caso, debes editar las líneas 13 y 14 del archivo /etc/init.d/rabbitmq-server (as root) para mostrar:

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

y luego ejecutar este comando (como raíz):

# update-rc.d rabbitmq-server defaults

Esto debe asegurar que rabbitmq-server ejecute en el próximo inicio de sesión.

Proceder a instalación   

Ahora, tu servidor debe estar listo para instalar Airtime. Dependiendo de tus requisitos, puedes dirigirte a los capítulos Instalación sencilla, Instalación manual Instalación automática o el anexo de Instalación experta.

Reproductor de transmisiones para tu sitio web

Si estás usando Airtime para transmisiones web, puedes agregar un applet de reproductor a tu página. jPlayer es un applet de código abierto (disponible bajo el GNU GPL de http://jplayer.org/) que usa la función de etiqueta <audio> de HTML5 para reproducir tus transmisiones. Si el buscador de tu oyente no funciona con HTML5, el applet recurre a Adobe Flash. Los buscadores más viejos que usan Flash en ciertas plataformas, como Internet Explorer en Windows, podrían ser incompatibles con transmisiones Ogg Vorbis.

Código de ejemplo

Puedes desacargar el código de ejemplo de este capítulo en:

http://en.flossmanuals.net/airtime-en-2-0/index/_booki/airtime-en-2-0/static/jPlayer_demo2.zip

Extrae la carpeta en tu computadora, luego abre el archivo jplayer-demo.html en tu editor:

nano jplayer-demo.html

Nos enfocaremos en las dos áreas más importantes. Primero, en la etiqueta <head> del documento, donde verás un código similar a este:

$(document).ready(function(){

 $("#jquery_jplayer_1").jPlayer({

  ready: function () {
   $(this).jPlayer("setMedia", {
     oga: "http://localhost:8000/airtime_128"
      }).jPlayer("play");
  },

   ended: function (event) {
    $(this).jPlayer("play");
   },

    swfPath: "js",
    supplied: "oga"

 });

});

Este código carga jPlayer y especifica la fuente de transmisión de Airtime. La locación de transmisiones http://localhost:8000/airtime_128 funciona si estás probando jPlayer directamente en el servidor de Icecast al que se conecta Airtime. Al probar un servidor remoto, debes cambiar esta locación por la dirección de IP o nombre de dominio, número de puerto y punto de montaje del servidor de Icecast que estás usando.

En cuanto termina de cargarse jPlayer, comenzará la reproducción automáticamente. Los parámetros ready, ended, swfPath y supplied  son argumentos que pasan a jPlayer. La lista completa de argumentos constructores está disponible en la jPlayer Developer Guide en http://www.jplayer.org/latest/developer-guide/

Controles de jPlayer

Luego, la etiqueta <body> del archivo jplayer-demo.html define los controles que aparecerán en jPlayer. jPlayer puede tener un simple botón de Reproducir/Pausa, o una interfaz de reproducción completa con lista, barra de progreso y control de volumen. En este código de ejemplo, usamos una de las máscaras más simples disponibles para jPlayer, Blue Monday.

Un botón de pausa o una barra de progreso no son útiles cuando se está transmitiendo continuamente desde Icecast, así que podemos eliminar estas etiquetas del código de ejemplo, así como las etiquetas que especifican el tiempo de reproducción y duración del archivo. El HTML simplificado crea un botón de reproducción/pausa y un botón de silencio, y se ve así:

<div id="jquery_jplayer_1" class="jp-jplayer"></div>

 <div class="jp-audio">
  <div class="jp-type-single">

   <div id="jp_interface_1" class="jp-interface">

    <div class="label">Airtime Radio! 99.9 FM</div>

     <ul class="jp-controls">
      <li><a href="#" class="jp-play" tabindex="1">play</a></li>
      <li><a href="#" class="jp-pause" tabindex="1">pause</a></li>
      <li><a href="#" class="jp-mute" tabindex="1">mute</a></li>
      <li><a href="#" class="jp-unmute" tabindex="1">unmute</a></li>
     </ul>

   </div>

   <div id="jp_playlist_1" class="jp-playlist"></div>

  </div>
 </div>

Cuando abras e archivo HTML jplayer-demo.html en un buscador, tu reproductor aparecerá así:

La versión original de este código de demo y la máscara de diseño están disponibles en http://jplayer.org/download/ para mayor experimentación.

Derechos de autor

Si es la primera vez que incursionas en la conducción y la transmisión radial en línea, este resumen de las reglas de compensación para los derechos de autor puede ahorrarte muchos problemas en el futuro. 

Las estaciones de música independiente por Internet no suelen ser como deberían, debido a las numerosas demandas de SoundExchange en Estados Unidos, y algunas organizaciones afines en otros países. Éstas son sociedades anónimas o autoridades gubernamentales que recaudan fondos de los conductores de radio para pagar los derechos de autoría de diferentes músicos.  Estas sociedades para la recaudación de comisiones exigen que pagues antes de transmitir cualquier pieza musical de un disco comercial- no importa si tienes ganancias o no. Sin importar el porcentaje de la comisión, la cuota anual reduce desproporcionadamente los recursos de las estaciones pequeñas.

Por ejemplo, en el Reino Unido, la Limited Online Music Licence (MCPS-PRS) protege la transmisión musical no comercial siempre y cuando sus ganacias brutas no excedan £12,500 por año. El costo límite ha ascendido hasta a £1,120, más un impuesto del 20% anual, para distribuir hasta  450,000 transmisiones únicas y servir 25,000 archivos. Si tus ganancias traspasan el límite, debes aplicar para una licencia completa de MCPS-PRS. No suena tan mal al inicio, pero 25,000 archivos anuales rinden menos de cuatro descargas por hora en un sitio permanentemente abierto. Esta licencia solo cubre los derechos de publicación, no de grabación, así que debes negociar una licencia adicional de Phonographic Performance Limited para reproducir discos completos.

Generalmente, debes proveer todos los detalles estadísticos de toda la música transmitida o reproducida en tu sitio para la sociedad de comisiones de derechos de autor. Incluso, si tu estación tiene mayormente programas diálogo, existen muchas limitaciones en la letra pequeña de sus licencias musicales. Por ejemplo, no puedes usar música para propósitos promocionales y no puedes transmitir una opera completa sin negociar licencias separadas. Es extraño, pero no tienes permiso para reproducir una pieza musical en un "contexto denigrante" para el autor o los locutores; los chistes de percusión están prohibidos, entonces.

Sin embargo, la mayor desventaja de estas licencias e MCPS-PRS sólo cubren a los oyentes dentro del Reino Unido. Así que, si tu estación en línea reúne a unos varios oyentes en países extranjeros, tendrás que pagar por las licencias musicales correspondientes en esos países. No es sorpresa que muchas estaciones de radio no lucrativas han desaparecido de las ondas virtuales a lo largo de los últimos años, pues al no tener las licencias adecuadas sus operadores podrían ser demandados. Si quieres tomar la ruta de la licencia pagada, y puedes costearla, visita http://www.prsformusic.com y http://www.ppluk.com para los detalles de la licencia en el Reino Unido. En los Estados Unidos, busca http://www.soundexchange.com para apuntarte con una cuota mínima de US$500 anuales para locutores web no comerciales. Esto incluye una cuota de uso correspondiente a la cantidad de horas escuchadas para asegurar el derecho a transmitir música de las disqueras asociadas.

La transmisión de contenido gratuito promete una nueva emergencia para las radios digitales.  Como las sociedades recaudadoras de comisiones, como MCPS-PRS y SoundExchange sólo representan los intereses de sus miembros, quienes no estén afiliados pueden transmitir su contenido original sin pagar licencias. Es decir, si en tu sitio anuncias que tu transmisión tiene material protegido, disponible al público bajo una licencia específica, nadie debería malinterpretar tus intenciones. Incluso podrías convencer a otras personas para que te permitan transmitir sus contenidos, siempre y cuando no tengan una obligación legal conflictiva, como un acuerdo previo con otra sociedad recaudadora en otra parte del mundo. Puedes pedir permiso para transmitir cuando tus visitantes del sitio suban sus propios archivos de música por via HTML, como sucede en SoundCloud. Por otra parte, puedes reunir archivos legales con la apropiada licencia de Creative Commons (http://www.creativecommons.org) o cualquier otra licencia de contenido gratuito.

El permiso explícito para transmitir en un servidor privado siempre será el mejor, así que considera tus propios términos y condiciones antes de aceptar archivos de terceras personas para la difusión. Por ejemplo, ¿cómo sabrás si alguien subió un archivo pirata a tu estación digital? Este tipo de situaciones pueden traerte problemas con las autoridades defensoras de los derechos de autor y sus mismos acreedores.

Cómo fijar la hora del servidor

La fidelidad al horario más preciso es vital para el desempeño de Airtime. Puedes confirmar que la fecha y la hora de tu servidor estén correctas con el comando:

$ date

El servidor debe responder con la fecha, hora, zona horaria y año en un formato similar al siguiente:

Tue Jan 31 14:37:44 GMT 2012

La zona horaria debe corresponder con el continente y la ciudad que muestra el archivo .htaccess de la página Preferences de la interfaz administradora de Airtime, como el GMT en el ejemplo anterior que coincide con Europe/London. Si no es así, ve la sección Ajustar la zona horaria del servidor, más abajo.

Configurar NTP 

Aunque puedes ajustar la fecha y hora del servidor manualmente, no es recomendable porque el reloj del servidor puede cambiar con el tiempo, comprometiendo la precisión de tu horario de transmisión. Si tu servidor de Airtime está conectado permanentemente al Internet, puedes sincronizarlo con un servidor de tiempo con el programa ntp. Si ntp aún no está instlado, puedes introducir este comando en Debian o Ubuntu: 

$ sudo apt-get install ntp

Puedes abrir el archivo de configuración ntp en el editor nano para añadir otros nombre de servidor de tiempo: 

$ sudo nano /etc/ntp.conf 

En Ubuntu GNU/Linux, el servidor de tiempo predeterminado es ntp.ubuntu.com, pero existen muchos otros en el Internet público, incluyendo el grupo de servidores que aparece en http://www.pool.ntp.org/ para cada país. La variedad de servidores NTP situados cerca de tu servidor de Airtime deberá tener resultados más exactos. Por ejemplo, un servidor en el Reino Unido puede usar esta lista: 

# 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

Ingresa los nombres de servidor que necesites, presiona Ctrl+O para escribir en el archivo /etc/ntp.conf file, y luego Ctrl+X para salir del editor nano. Reinicia el servicio ntp con: 

$ sudo invoke-rc.d ntp restart

El servidor debe responder:

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

Luego, usa el comando ntpq -p para confirmar que el ntp funcione. Este comando debe producir una imagen similar a la siguiente:

ntpq -p
     remote           refid     st t when poll reach  delay  offset  jitter
===========================================================================
 europium.canoni 193.79.237.14   2 u   28   64    3  39.571  12.600   3.590
 norb.v4.colo.m. 46.227.200.72   3 u   28   64    3  47.856  -6.908  10.028
 82.113.154.206  193.62.22.82    2 u   29   64    3  11.458  -0.513   2.629
 ntppub.le.ac.uk 158.43.192.66   2 u   91   64    2 122.781  44.864   0.001
 dns0.rmplc.co.u 195.66.241.3    2 u   27   64    3  22.171   1.464   4.242

Ajustar la zona horaria del servidor  

Si tu servidor está configurado con una zona horaria diferente de la la interfaz administradora de Airtime, tu horario de transmisión podría reproducirse en horas incorrectas. El centro de datos de tu servidor de Airtime server puede situarse en cualquier lugar del mundo. Ciertos servidores se configuran con la Hora Universal Coordinada o HUC (similar a la Hora Media de Greenwich o HMG), sin importar su localización. Si esto no le conviene a tu estación, puedes configurar el paquete tzdata (datos de zona horaria) en Debian y Ubuntu con el comando:

$ sudo dpkg-reconfigure tzdata

Este comando abre un menú donde puedes seleccionar el continente que requieres con presionar Enter.

 

Luego debes escoger la ciudad más cercana, nuevamente presionando Enter. La zona horaria apropiada se selecciona de acuerdo con la información que provees.

 

El mensaje de la consola de respuesta al comando dpkg-reconfigure tzdata confirmará la nueva configuración.  

Current default time zone: 'Europe/London'
Local time is now: Tue Jan 31 14:51:32 GMT 2012.
Universal Time is now: Tue Jan 31 14:51:32 UTC 2012.

Trasladar transmisiones

En una configuración típica, la alimentación externa del estudio de transmisiones y la alimentación programada por el archivo de almacenamiento están mezcladas antes de que se envíen más lejos en la cadena de transmisión, a un transmisor o un servidor multimedia en Internet.

Si tu servidor de Airtime se sitúa en un centro de datos remoto, quizás no tengas la opción de trasladar el medio de transmisión de un programa en vivo a uno calendarizado de manera manual, pues no tienes acceso físico para conectarte al mezclador de transmisiones en ese servidor. Por otra parte, puede que tengas un servidor de Airtime en el estudio, conectado a tu mezclador principal, pero quieres que tus transmisiones se trasladen automáticamente a las horas correctas. No es eficiente desconectar la transmisión y comenzar una nueva, pues los reproductores de la audiencia quedarán desconectados si eso sucede.

El servidor de Icecast tiene una función de fallback-mount que puede mover clientes (reproductores multimedia que usa a audiencia) de una fuente a otra, a medida que se abren vacantes. Esto facilita el traslado de alimentación programada desde Airtime hasta un programa en vivo en otra fuente, y se traslada de vuelta a Airtime cuando el programa finaliza. 

Para habilitar la función, edita el archivo de configuración principal de Icecast para definir los puntos de uso, y la relación entre ellos.

$ sudo nano /etc/icecast2/icecast.xml

La sección de ejemplo en <mount> que provee el archivo icecast.xml está descomentada de forma predeterminada. Antes o después de la sección comentada, agrega tres puntos de montaje definidos. El punto de montaje predeterminado usado por Airtime es /airtime_128 que aparece en un archivo /etc/airtime/liquidsoap.cfg. Debes definir un punto de montaje para la fuente en vivo (llamada /live.ogg en este ejemplo) y un punto de montaje para que se conecte el público (llamado /stream.ogg en este ejemplo).

   <mount>
        <mount-name>/airtime_128</mount-name>
        <hidden>0</hidden>
   </mount>

   <mount>
        <mount-name>/live.ogg</mount-name>
        <fallback-mount>/airtime_128</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>

Estos puntos de montaje indicar que el cliente conectado a un URL como http://icecast.example.com:8000/stream.ogg será redirigido al punto de montaje /live.ogg si está disponible. Si no es así, el cliente se dirigirá al punto /airtime_128 calendarizado para la reproducción.

Al fijar el valor de <fallback-override> en 1 (activado) el punto de montaje /live.ogg volverá a estar disponible, y el cliente srá re-conectado al mismo. Si deseas ocultar los puntos /airtime_128 y /live.ogg de la interfaz pública de Icecast, fija el valor de <hidden> de estas definiciones en 1.

Configuración de una fuente en vivo

Para integrar una fuente de transmisión con Airtime, conecta la fuente en vivo al servidor de Icecast con los parámetros definidos en /etc/airtime/liquidsoap.cfg file, excepto por el punto de montaje. Este debe ser el punto que definiste en el archivo /etc/icecast2/icecast.xml file, como /live.ogg en el ejemplo anterior.

Para configurar Mixxx para transmitirle a Icecast, haz clic en Options, Preferences, y luego Live Broadcasting. Para el servidor Type, selecciona el valor predeterminado de Icecast 2 cuando transmitas a servidores Debian o Ubuntu, pues esta es la versión de Icecast provista para distribuciones GNU/Linux.

 

De forma predeterminada, las transmisiones de Icecast están protegidos contra problemas de red, lo que causa latencia para los públicos remotos. Al monitorear la transmisión en un sitio remoto, puede que necesites empezar la transmisión en vivo unos segundos antes de que termine la transmisión anterior, para facilitar una transición fluida.

Configuraciones de soporte

Si no registraste Airtime al momento de la instalación, como lo muestra el capítulo Iniciando,puedes seleccionar Support Settings en el menú de Configure para ver las opciones de retroalimentación automatizada de Airtime's. Selecciona la casilla Send support feedback para enviar detalles técnicos de tu instalación de Airtime a Sourcefabric, por medio de Internet. Estos detalles ayudan a Sourcefabric para diagnosticar cualquier problema que puedas tener con tu sistema automático de transmisión.

Es posible que desees enviar los detalles de tu estación a Sourcefabric, para que puedas promoverla con otros usuarios de Airtime en la página http://www.sourcefabric.org. Esta función también ayuda para que Sourcefabric dirija sus servicios de soporte aplicativo a los países que más lo requieren. Selecciona la casilla Promote my station on Sourcefabric.org e introduce tus datos. Puedes cargar el logo de tu estación desde un archivo de imagen en tu computadora al hacer clic en Browse


Haz clic en Show me what I am sending para que se expanda una ventana con los detalles técnicos que se enviarán a Sourcefabric. Esta información es recolectada de acuerdo a la política de privacidad de Sourcefabric privacy (http://www.sourcefabric.org/en/about/policy/), a la cual deberás acceder antes de enviar tu información.

Solucionar problemas

Si tu servidor de Airtime no funciona correctamente, puedes detener, iniciar, reiniciar o revisar en la consola del servidor los componentes individuales del sistema con el comando invoke-rc.d:

sudo invoke-rc.d airtime-playout        start|stop|restart|status
sudo invoke-rc.d airtime-media-monitor  start|stop|restart|status
sudo invoke-rc.d apache2                start|stop|restart|status
sudo invoke-rc.d rabbitmq-server        start|stop|restart|status
Por ejemplo, para reiniciar el aparato de reproducción de Airtime puedes ingresar el comando:
sudo invoke-rc.d airtime-playout restart

El servidor debe responder:
Restarting Airtime Playout: Done.

 La opción status en airtime-playout y airtime-media-monitor ejecuta el código airtime-check-system para confirmar que todas las dependencias de Airtime estén instaladas y ejecuten correctamente.

Airtime almacena los archivos de registro en el directorio /var/log/airtime/ que puede ser útil para diagnosticar la causa de cualquier problema. Las copias de estos archivos pueden ser requeridas por los ingenieros de Sourcefabric mientras proveen soporte técnico para tu instalación de Airtime. Lee el capítulo El comando de ingreso de Airtime para conocer más detalles.

Cómo actualizar una versión

Las versiones de Airtime 2.0.x soportan la actualización de la versión 1.8.0 y posteriores. Si estás usando un servidor de producción con una versión de Airtime posterior a 1.8.0, debes actualizar a la versión 1.8.0 antes de continuar. 

Antes de actualizar un servidor de producción de Airtime, debes crear copias de repuesto de la base de datos PostgreSQL y el servidor de almacenamiento de Airtime.Esto es especialmente importante si deseas establecer una rutina de repuesto regular. La copia adicional es una medida de seguridad en caso de una pérdida de información accidental durante la actualización, por ejemplo, debido al ingreso de un comando equivocado al mover archivos. Ve el capítulo Crear una copia de seguridad del servidor en este manual para conocer cómo se hacen estas copias.

Si has habilitado Airtime con el método mostrado en el capítulo de Instalación automática, puedes actualizar del mismo modo. Un nuevo paquete de Airtime, disponible en el repositorio de Sourcefabric, puede instalarse con:

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

Si usaste el método que aparece en el capítulo Instalación manual, puedes repetir los pasos de descargar y extraer el código a un directorio de instalación y ejecutar el código airtime-install. Éste último detectará la habilitación de Airtime en uso y copiará los archivos de configuración que encuentre. 

Al terminar la actualización, puede que desees limpiar el cahe de tu navegador antes de ingresar a la nueva versión de la interfaz administradora de Airtime. Si el sistema de reproducción comienza y detecta un programa que debería estar sonando, se adelantará al punto adecuado y comenzará a reproducirlo.

En Airtime 1.9.0 y sus versiones posteriores, el concepto de archivos vinculados fue reemplazado con el concepto de carpetas observadas. Si estás actualizando una versión anterior a Airtime 1.9.0 y tienes archivos vinculados previamente, las carpetas que los contienen no serán observadas hasta que las agregues a la lista de observación. Ve el capítulo Administrar carpetas mutlimedia para conocer más detalles.

Uso de Monit

Monit es una herramienta para administrar procesos del monitor, archivos, directorios y sistemas de archivos en su servidor de Airtime. Se instala automáticamente con Airtime.

Para ver la interfaz web de Monit, abre el puerto 2812 de tu servidor en el navegador, por ejemplo, en el servidor local puedes usar:

http://localhost:2812/

Debes iniciar sesión para ver la interfaz web de Monit. El usuario predeterminado es admin y su contraseña es airtime.

 

Al hacer clic en el nombre de un servicio en la columna Process column, como airtime-playout,se abre otra página con detalles sobre ese servicio.

 

De forma predeterminada, el ingreso guest en Monit está configurado para acceso de solo lectura, por lo que no puedes reiniciar servicios desde la interfaz web. Para ingresar como un usuario administrador, necesitarás la contraseña aleatoria generada por Airtime en el archivo /etc/monit/conf.d/monit-airtime-generic.cfg. Puedes verlo con el comando:

sudo less /etc/monit/conf.d/monit-airtime-generic.cfg

La contraseña aleatoria del usuario administrador debe seguir la línea allow admin: como este ejemplo de LHR32YP7H1:

 set daemon 10 # Poll at 10 second intervals
 set logfile /var/log/monit.log

 set httpd port 2812
    allow admin:LHR32YP7H1
    allow guest:airtime read-only

Al ingresar como usuario administrador, podrás ver los botones para controlar el servicio al final de cada página de servicio:


Monit no tiene un botón para cerrar sesión, así que si ya ingresaste como invitado, debes borrar la sesión activa de tu buscador web antes de ingresar como administrador. En Firefox en Ubuntu, esto se logra con la opción Clear Recent History en el menú Tools

Cerrar el acceso remoto

Para hacer el acceso remoto más seguro, puedes editar el archivo  /etc/monit/conf.d/monit-airtime-generic.cfg con nano

sudo nano /etc/monit/conf.d/monit-airtime-generic.cfg

Si quieres habilitar el acceso únicamente en el servidor local, arega la frase and use address al final de la línea que fija el puerto del servidor: 

 set httpd port 2812 and use address localhost

Para habilitar el acceso de otros servidores, comenta en la parte de la línea use address localhost y luego arega una línea 'allow' con la dirección de IP y el netmask del equipo  Monit con que te conectarás a Monit, como la direción de red local de 10.0.1.2 y el netmask 255.255.255.0:

    allow 10.0.1.2/255.255.255.0

Si habilitas el acceso remoto para el administrador, asegúrate de cambiar la contraseña aleatoria en la línea que inicia allow admin: de manera regular, como lo harías con cualquier contraseña importante. La contraseña para el acceso invitado de solo lectura guest debe permanecer como airtime, porque Airtime usa esta contraseña para reunir información para la página Status en la interfaz administradora. 

 set httpd port 2812 and # use address localhost
    allow localhost
    allow 10.0.1.2/255.255.255.0
    allow admin:LGW12WB9J7
    allow guest:airtime read-only

Presiona Ctrl+O para guardar el archivo, luego, Ctrl+X para salir de nano. Después, reinicia Monit con:

sudo invoke-rc.d monit restart

Enviar alertas por correo electrónico 

Para configurar Monit para que mande mensajes de correo, edita el archivo /etc/monit/monitrcpara no comentar el parámetro set mailserver. Cambia esta línea para mostrar el nombre del servidor SMTP en la red de tu servidor de Airtime como muestra tu administrador del sistema. 

$ sudo nano /etc/monit/monitrc

Al fondo del archivo de configuración, puedes fijar las direcciones De Para a las cuales se destinan los mensajes con los parámetros set mail-format y set alert parameters. Se requiere que descomentes las líneas.

Presiona Ctrl+O para guardar el archivo, y Ctrl+X para salir del editor nano. Reinicia monit con:

$ sudo invoke-rc.d monit restart

 Hallarás más información sobre el uso de Monit en http://mmonit.com/monit/documentation/

Cómo usar el código de importación de Airtime

Si tienes muchos archivos en tu biblioteca, la importación de los mismos a un sistema automatizado de transmisión sería tedioso y retardado. Por eso, Airtime incluye un código que puede importar un directorio completo con un solo comando. Antes de iniciar la importación, debes considerar varios factores.

Calidad de Metadatos

El importación de airtime envía automáticamente todos los metadatos en las etiquetas ID3 de tus archivos. Si estas etiquetas están incorrectas o incompletas, tendrás que editar los metadatos antes de importarlos o sufrir las consecuencias. Por ejemplo, si las etiquetas no tienen género y creador, será imposible buscar, asignar o calendarizar las pistas de acuerdo a esos criterios. 

Hau muchos programas que pueden usarse para corregir errores o información incompleta en las etiquetas ID3. En GNU/Linux, el programa Ex Falso (http://code.google.com/p/quodlibet/) puede fijar y editar múltiples etiquetas ID3 antes de importarlas a tu servidor de Airtime. En un equipo Ubuntu, puedes instalar este programa con el comando:

$ sudo apt-get install exfalso

Después de instalar, puedes ejecutar el programa con el comando:

$ exfalso

La función Etiquetas de Destino es muy útil para ahorrar tiempo cuando tienes muchos archivos sin etiqueta. Algunas veces, erxiste información del creador o del título en el nombre del archivo o la estructura de destino, y se puede convertir a etiqueta ID3 automáticamente.

 

Metadatos en sets de caracteres codificados

Airtime espera que los metadatos de las etiquetas de archivo se almacenen en el juego de caracteres UTF-8. Programas como Ex Falso (descrito aquí arriba) codifican metadatos en UTF-8 de forma predeterminada. Si tienes una carpeta con archivos cuyos metadatos estén codificados en un juego de caracteres, como el Cyrillic que codifica Windows-1251, debes convertir estos archivos antes de importar.

El programa mid3iconv (parte del paquete python-mutagen en Debian y Ubuntu) puede usarse para convertir múltiples archivos con distintos juegos de caracteres en sus metadatos, mediante una línea de comando. Puedes instalar python-mutagen con el comando:

sudo apt-get install python-mutagen

Por ejemplo, para revisar la conversión de etiquetas de caracteres Windows-1251 (CP1251) a UTF-8 para una carpeta llena de archivos MP3, puedes usar el comando:

find . -name "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 -d -p

en el directorio base de la carpeta. La opción -d especifica que la nueva etiqueta debe imprimirse en la consola del servidor (modo debug), y la opción -p especifica una ejecución de prueba. Esta prueba te permitirá confirmar que los metadatos sean leídos y convertidos correctamente antes de escribir las etiquetas.

Para convertir todas las etiquetas y eliminar una etiqueta del set ID3v1 de todos los archivos al mismo tiempo, puedes usar el comando:

find . -name "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 --remove-v1

El nombre del juego de caracteres original sigue la opción -e. Otros juegos de caracteres que mid3icon puede convertir a UTF-8 son:

KOI8-R: Russian
KOI8-U: Ukrainian

GBK: Traditional Chinese
GB2312: Simplified Chinese

EUC-KR: Korean
EUC-JP: Japanese

CP1253: Greek
CP1254: Turkish
CP1255: Hebrew
CP1256: Arabic

Silencio en archivos multimedia

Antes de importar archivos, es bueno practicar paa buscar secciones silenciadas en los archivos multimedia. Aunque Airtime puede compensar el silencio al inicio o al final con el uso de desvanecimiento de sonido en la lista de reproducción, es mejor recortar esos archivos a la extensión necesaria antes de cargarlos. Esto es porque los archivos recortados no requieren una constante configuración para desvanecimientos, y el los archivos en almacenamiento podrían reutilizarse constantemente en diferentes programas. Audacity es un editor de plataforma cruzada, muy útil para recortar archivos de audio, disponible en http://audacity.sourceforge.net/

Las introducciones silenciosas o desvanecimientos demasiado extensos pueden aparentar vacíos en la reproducción transmitida. Algunos CDs de audio tienen una "pista oculta" al final, la cual usa un largo periodo de silencio dentro de la pista anterior, en lugar de agregar una pista nueva. Esto hará que el programa codifique el material oculto y el silencio dentro de la misma pista. Por ejemplo, la pista Debra en el CD Midnite Vultures de Beck incluye material escondido después de siete minutos de silencio, como muestra esta escena de Audacity.

Copiar versus observar

Existen tres opciones en el código de importación de Airtime: Puedes copiar o mover archivos en la carpeta de almacenamiento principal, o puedes observar archivos en otro equipo. Cada opción tiene ventajas y desventajas, así que necesitas pensar cómo le conviene a tu estación organizar sus archivos.

El código de importación de Airtime funciona desde la línea de comando, así que debes ingresar a la consola en el servidor de Airtime. En las versiones más recientes, ya no es necesario que especifiques el destino completo a los archivos que deseas importar. La función de copia se especifica con el subcomando siguiente:

$ airtime-import copy <directory>

donde <directory> es el directorio raíz de los archivos que deseas importar.

Por otro lado, puede que desees eliminar los archivos de la locación original, luego de copiarlos al archivo de almacenamiento. Eso se logra con el subcomando de mover

$ airtime-import move <directory>

Si los nuevos archivos son duplicados de archivos ya importados, el código los detectará.

Los usuarios conectados a la interfaz administradora serán advertidos si hay un importe en desarrollo. Los usuarios con privilegio administrador no deben intentar cambiar el almacenamiento predeterminado de Airtime mientras ocurre una reproducción.

La observación se activa con el subcomando watch add:

$ airtime-import watch add <directory>

El código reportará el nombre del archivo observado, por ejemplo:

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

El código observado aparecerá en la página Manage Media Folders en la interfaz administradora de Airtime. Para obtener una lista de los archivos observados en la consola de servicio, puedes usar el subcomando:

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

Los archivos nuevos que se copien a una carpeta en obsevación (por ejemplo, al usar el administrador de archivos de tu equipo) aparecerán en la base de datos de Airtime, listos para la reproducción. Igualmente, si eliminas un archivo utilizando el administrador de archivos, el mismo archivo será eliminado de la base de datos y las listas de reproducción.

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

Fijar un destino de archivo   

The airtime-import script also enables you to read or write Airtime's storage folder path configuration. You can find out the current setting with the storage-dir get sub-command: 

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

Puedes configurar un nuevo destino de la carpeta con el subcomando storage-dir set:

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

El subcmando storage-dir set sdebe usarse con precaución, porque mover la carpeta de almacenamiento durante la programación regular podría interrumpir la transmisión.