Архив за месяц: Май 2012

Настройка GSMopen и FreeSWITCH в теории

freeswitch gsmopen e1550

Согласно заверениям разработчиков — требования к ресурсам системы минимальны. Модуль mod_GSMopen настолько мало требователен к тактовой частоте процессора, что Читать далее

Linux, парсинг files.mail.ru и скрипт скачивания в консоли

Файлообменник от mail.ruНа днях пришлось пользоваться файлообменником  files.mail.ru. Захотелось не просто скачать файлы в браузере, а написать скрипт для bash в linux. Как всегда мой выбор пал на wget. Кто-то может спросить — почему я пользуюсь wget, а не беру в основу своих скриптов более мощный curl. Все дело в том, что мне хватает функционала wget, если же что-то не смогу реализовать во wget, то обязательно воспользуюсь curl. Еще дело в том, что wget по-умолчанию присутствует в большем количестве linux систем.

Было решено, что скрипту для удобства и универсальности в качестве параметра командной строки будет передаваться или ссылка в полном формате (http://files.mail.ru/XXXXX), или же в сокращенном виде — только идентификатор файла на сервере (XXXXX). Для приема пользовательского ввода в bash скрипте применена следующая инструкция интерпретатору (иногда можно и по выпендриваться в выражениях :) ) uuid=`echo $1 | sed «s/http:\/\/files.mail.ru\///g»` В этой строке кода мы не только присваиваем переменной uuid значение пользовательского ввода, но и  убираем из него «http://files.mail.ru/». Таким образом в переменной у нас будет храниться идентификатор файла на сервере.

Далее используем переменную uuid в парсинге прямой ссылки на файл. Для этого я применяю свою излюбленную утилиту grep. Первый раз я отсеиваю строку содержащую «linkcode» — там содержалась мешающая в дальнейшем ссылка внутри html исходника страницы (которую как видно мы скачали с помощью wget). Далее мы вытаскиваем с помощью того же grep строчки начинающиеся с http, содержащие «download», «uuid» и все оставшееся до символа двойной кавычки. На выходе получилось три одинаковых ссылки, которые мы встретили в теле документа. Далее стандартный вывод принимает на себя утилита uniq, которая выводит уникальные значения. А из трех одинаковых ссылок — она и вывела одну уникальную :) Далее эту ссылку мы передаем wget’у с параметром докачки. Закачивать с докачкой с помощью wget еще приятнее :)

Ниже привожу скрипт полностью. Его можно использовать передавая всего лишь идентификатор файла на сервере.


#!/bin/bash
#
#Made by Evginey Buchnev http://blog.buchnev.ru
#Simple script to download files
#from http://files.mail.ru
#
uuid=`echo $1 | sed "s/http:\/\/files.mail.ru\///g"`
url=`wget -qO - http://files.mail.ru/$uuid | grep -v "linkcode" | grep -Po "http.+download.+$uuid[^\"]+" | uniq`
wget -c $url

Кстати, удобно было бы  сделать php обертку для него или же оформить cgi и не заходя на сервер по ssh закачивать файлы на свой дедик по http.

А пока писал пост, пришла мысль попробовать создать скрипт для загрузки файлов на files.mail.ru. Буду думать. :)

Запись разговоров в FreeSWITCH в деталях

voice recordings freeswitch

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

FreeSWITCH и запись разговоров

freeswitch voice recordingsОдним из многих требований к современной телефонной системе является запись разговоров. Хочу немного рассказать о том как реализована запись разговоров в FreeSWITCH. Читать далее