Июн 14 2009

Fallback mount в Icecast2

Когда я писал о настройке Icecast 2 я обошел вниманием настройку fallback mount. Так вот заполним этот пробел. Fallback-mount нужен для того, что бы в случае выхода из строя основного источника, подключить «запасной», точнее переадресовать всех слушателей основного потока на «запасной».
Мне приходилось применять эту настройку для одного радио, что бы реализовать схему, когда в основной поток время от времени вещают диджеи, ставя свою музыку, объявляя песни и ведя там всякие разговоры, а потом диджей уходит с канала и всех переадресовывает на «запасной» канал реализованный с помощью ices и проигрывающий музыку из определенной директории. Для того что бы реализовать эту схему необходимо в файл настроек /usr/local/etc/icecast.xml добавить настройки основной точки монтирования и файл настроек теперь будет выглядеть так:

<icecast>
<limits>
<!-- Максимальное количество подключений к серверу -->
<clients>500</clients>
<!-- Количество источников   -->
<sources>7</sources>
<!--Количеество подпроцессов обслуживающих клиентов   -->
<threadpool>12</threadpool>
<!-- Размер очереди вещания    -->
<queue-size>1572864</queue-size>
<!-- Время ожидания ответа от клиента (судя по документации не используется   -->
<client-timeout>30</client-timeout>
<!-- Время ожидания запроса от клиента     -->
<header-timeout>15</header-timeout>
<!-- Время ожидания данных от источника сигнала, при
 превышении интервала, источник будет отключен    --> 
<source-timeout>600</source-timeout>
<!-- Режим при котором, подключившийся клиент получит данные для заполнения локального буфера проигрывателя   --> 
<burst-on-connect>1</burst-on-connect>
<!-- Размер буфера отправляемого клиенту    -->     
<burst-size>262140</burst-size>
</limits>
<!-- Секция отвечающая за авторизацию   -->
<authentication>
<!--С этим паролем должны подключаться источники сигнала    -->  
<source-password>source-pass</source-password>
<!--Пароль для релаев(мы не используем в нашей задаче)    -->
<relay-password>relay-pass</relay-password>
<!--Логин и пароль администратора    --> 
<admin-user>admin</admin-user>
<admin-password>admin-pass</admin-password>
</authentication>
<!-- Эта секция описания основной точки монтирования -->    
<mount>
<mount-name>/test</mount-name>
<max-listeners>500</max-listeners>
<burst-size>65536</burst-size>
<!-- Вот эта секция и есть описание запасной точки монтирования --> 
<fallback-mount>/testnonstop</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
</mount>
<!-- Имя хоста   -->  
<hostname>hilik.org.ua</hostname>
<!--IP адрес и порт на котором будет слушать сервер    -->
<listen-socket>
<port>8000</port>
<bind-address>89.251.34.107</bind-address>
</listen-socket>
<!-- Использовать ссылки в виде статических файлов    -->
<fileserve>1</fileserve>
<!-- Пути   --> 
<paths>
<basedir>/usr/local/share/icecast</basedir>
<logdir>/var/log/icecast</logdir>
<webroot>/usr/local/share/icecast/web</webroot>
<adminroot>/usr/local/share/icecast/admin</adminroot>
<alias source="/" dest="/status.xsl"/>
</paths>
<!-- В какие файлы писать события    --> 
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>4</loglevel>
<logsize>10000</logsize>
</logging>
<!-- Секция безопасности    --> 
<security>
<chroot>0</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>
</icecast>

За основу был взять конфиг из статьи IceCast2 и Ices0 — строим интернет радио.


Украинская Баннерная Сеть