вторник, 24 июля 2012 г.

SIP телефония

Решил поискать замену почившему Skype и наткнулся на такую вещь как SIP телефония.

Попытка использовать бесплатных провайдеров вроде Ekiga к успеху не привела и тогда было решено посмотреть что предлагают за деньги.

Первое что попалось http://zadarma.com?ref=c4674753433996a11b74bd0c7293f2ea . Мне повезло и первый же эксперимент с платными услугами оказался удачным. Теперь надо привыкнуть к использованию программного телефона для звонков за пределы области.

Скажем звонки на мобильники по России, где то 6 центов, и это выгодно если абонент находится в другой области.

Кроме провайдера конечно необходим ещё и телефон. Я в качестве телефона решил использовать свой нетбук с Fedora 17 на борту и программным телефоном SFLphone. К сожалению RPM пакетов пока нет, по этому собираю из исходников по этой инструкции http://blog.randell.ph/2012/04/09/how-to-install-sflphone-on-fedora-16/ . Правда она немного устарела.

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

среда, 18 июля 2012 г.

Squid и splash_page

Постановка задачи:

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

Решение:

В сети уже использовался прозрачный прокси Squid и в нём был интересующий меня функционал. Версия сквида 3.1.10, самая свежая из стабильных. Настройка производилась по этому мануалу http://wiki.squid-cache.org/ConfigExamples/Portal/Splash.

При проверке примера столкнулся с проблемой: сайт указанный в директиве deny_info, не открывался как я этого ожидал, а постоянно редиректился сам на себя. Природу этой проблемы я так и не выяснил, но возможно позже разберусь и дополню. 

В противоположность внешним сайтам, страницы ,сохранённые  на прокси локально открывались как и обещано в мануале. Из этого родился костыль, в локальную страницу помещался однострочник на яваскрипт, перенаправляющий пользователей на необходимый ресурс.
setTimeout(location.replace("http://exempl.ru"),1000);
как вариант  можно ещё так, этот вариант лучше воспринимается iУстройствами
<meta http-equiv="refresh" content="1;URL='http://exampl.ru/'"> 
Можно заметить что указан таймаут в 1 секунду. Это то же от не знания как решить проблему. По идее задержка должна регулироваться в дерективе
external_acl_type splash_page ipv4 ttl=6 concurrency=200 %SRC /usr/lib64/squid/squid_session -t 7200
а именно  ttl=0, но даже при значении 0 пользователь вынужден ждать минимум секунду, всё это время происходит постоянный редирект, то есть страница постоянно обновляется. Выглядит это не красиво и рас уж нельзя отказаться от ожидания, пусть лучше пользователь видит пустую страницу.