четверг, 29 ноября 2012 г.

Asterisk Realtime sip.conf

Создание базы данных


заходим в базу данных mysql

  mysql -u root -p
 
создаем базу данных с именем 'asteriskrealtime'

 create database if not exists `asteriskrealtime`;
 
изменяем базу данных asteriskrealtime :

 use asteriskrealtime;
 
создадим таблицу sip_buddies в которой будем хранить записи наших пользователей:

вторник, 6 ноября 2012 г.

Web-управление Raspberry Pi GPIO

В данной статье мы рассмотрим управление входами/выходами (GPIO) микрокомпьютера Raspberry Pi через Web-интерфейс. Это дает возможность управлять различными устройствами через интернет.
Особенности данного проекта:
- серверная программа, запущенная на Raspberry Pi для чтения значений GPIO
- использование MySQL базы данных для хранения состояния GPIO
- использование веб-сервера Apache2 для контроля GPIO через веб-браузер
Итак, первое, что вам необходимо установить на Raspberry Pi, это:
- Apache веб-сервер
- PHP5
- MySQL сервер
- phpMyAdmin (есть русская версия)
Т.к. микрокомпьютер Raspberry Pi работает на Linux-системах, то в интернете полно описаний на русском языке как устанавливать все эти пакеты. Поэтому зацикливаться на этом мы не будем. Есть неплохая инструкция применительно к Raspberry Pi, но на английском языке: почитать.
Полноценный root-доступ
Для получения полного root доступа необходимо в терминале набрать команду sudo -i, которая переводит пользователя в сессию под root-ом.

суббота, 3 ноября 2012 г.

Windows эмулятор Raspberry pi

Первая партия «электронной малины» разошлась как горячие пирожки. До сих пор не понятно почему такой спрос не рождает соответствующего предложения, ведь многие готовы купить мини-пк по цене в 1,5-2 раза выше. Успевшие приобрести Raspberry в первых рядах, регулярно вызывают зависть радуют нас своими вариантами применения «малинового пирога». Кто светофор запилит, кто квейк запустит, а кое-кто и суперкомпьютером из 64-х(ага, вот так они и разошлись) Raspberry pi может похвастаться. Нам же остается ждать и надеяться. Ждать придется долго, в официальном магазине обещают доставить мини-пк не ранее через 10 недель после заказа. Потрогать все это хочется уже сейчас, но как?

Первой мыслью было найти эмулятор ARM процессора для разработчиков (хотя что делать с этим дальше представлялось смутно). Но все оказалось гораздо проще, эмулятор Raspberry pi уже готов, с Raspbian-wheezy да еще и для windows. Остается только скачать и запустить.
Установка, если это можно назвать так, очень проста:

среда, 31 октября 2012 г.

Asterisk 1.8 пишем CDR в MySQL базу

Для того чтобы Asterisk мог записывать данные о звонках в базу, должен быть установлен пакет “Asterisk-addons”. Для Asterisk версии ниже 1.8, нужна скачать этот самый пакет с сайта. Для 1.8 все проще, он идет в комплекте с ядром, нужно не забыть его включить. Так же должны быть установлены библиотеки libmysqlclient15-dev, libmysql++-dev, libmysqld-dev если не установлены, ставим


Настраиваем демон-планировщик cron

Bash

 

Настраиваем демон-планировщик cron


Настройка cron обычно производится редактированием файла /etc/crontab.
  1. Минута (может быть от 1 до 59)
  2. час (от 1 до 23)
  3. число (1-31)
  4. месяц (1-12)
  5. день недели (1 – понедельник … … … 0 – воскресенье)
  6. пользователь (имя системного пользователя, от кого команда)
  7. команда (выполняемая команда или скрипт)
Звездочка в минутах, часах, днях и т.д. – означает «каждый», то есть например, «каждую минуу», «каждый день», «каждый месяц» и так далее. Ниже привожу пример команды, которая должна выполняться каждый час от пользователя root:
17 * * * * root Моя_Команда
Расшифровать это очень просто. Выполнение команды будет каждый день недели, каждый месяц, каждое число месяца, каждый час, и на каждой семнадцатой минуте этого часа.

четверг, 11 октября 2012 г.

УСТАНОВКА DEBIAN на RASPBERRY PI



И так для установки debian для начала нужно скачать Win32DiskImager и образ дистрибутива debian  с сайта raspberry pi http://www.raspberrypi.org/downloads  этот дистрибутив рекомендован разработчиками raspberry pi
Разархивируем Win32Disklamer  и архив с образом системы debian6-19-04-2012.zip в папку debian6-19-04-2012
Теперь можно подключить вашу SD флешку в картридер рекомендовано использовать флеш карты class 4 не меньше 4 GB
Запускаем  Win32Disklamer от имени администратора , выберите debian6-19-04-2012.img в окне программы и диск куда будет записываться образ  у меня это диск Е далее нажимаем write ждем  пока запишется образ.  Вынимаем флешку и карт ридера и вставляем в наш raspberry pi
При первой загрузке возможно будут ошибки связанные с NFS просто перезагрузаме платку и видим приглашение ввести логин. Логин по умолчанию  Username: pi Password: raspberry

Что бы измени пароль root делаем следующие : логинимся под пользователем pi вводим команду sudo su -  далее passwd  вводите новый пароль для root и подтверждаете его

понедельник, 20 августа 2012 г.

Trixbox приём факса на электронную почту в формате PDF

Статья описывает настройку возможности принимать  факсовые сообщения на электронную почту в PDF формате.
Поскольку мне больше нравится приложение ReceiveFAX для приёма факсов, то будем использовать его. Обращаю внимание, что данное приложение требует наличия в системе библиотеки spandsp, но в trixbox-2.8.0.4, на базе которого построен этот пример, эта библиотека есть, как и приложение ReceiveFAX.
P.S. Я буду использовать названия меню от английской версии интерфейса, мне так привычнее.
Для начала внесём изменения в файл /etc/asterisk/extensions.conf в контексте [macro-faxreceive]

[macro-faxreceive]
exten => s,1,Set(FAXFILE=${ASTSPOOLDIR}/fax/${UNIQUEID}.tif)
exten => s,2,Set(EMAILADDR=${FAX_RX_EMAIL})
;exten => s,3,rxfax(${FAXFILE}) ; <== эту строчку удаляем или "комментируем"
exten => s,3,ReceiveFAX(${FAXFILE}) ; <== эту строчку добавляем
exten => s,103,Set(EMAILADDR=${FAX_RX_EMAIL})
exten => s,104,Goto(3)

Затем идём в PBX/PBX Settings/tools/Custom Destination, создаём новое направление следующего содержания:

Custom Destination: ext-fax,s,1
Description: new_fax2mail

Сохраняем и применяем изменения в системе.
Далее идём в PBX/PBX Settings/Inbound Routes и создаём новый маршрут. DID и CID указываем такие, по которым вы сможете «отловить» звонок. Нас интересует пункт Fax Handling. он должен быть следующего содержания:

Fax Extension: System
Fax Email: fax@yourdomain.ru
Fax Detection: NVFax
Pause After Answer: 3 (пауза перед ответом факса)

Последний штрих, ниже отыскиваем секцию настроек Set Destination. Там ставим флаг напротив секции Custom Destinations: и выбираем наш, «самодельный», маршрут new_fax2mail. Применяем настройки и пробуем принять факс и получить его на почтовый адрес fax@yourdomain.ru.

Далее идем в PBX/PBX Settings/trunks в транке от вашего sip провайдера обязательно указываем поддержку факса по протоколу Т38

t38pt_udptl=yes

статья взята с http://zemlyakovmp.ru/?p=68

пятница, 20 июля 2012 г.

Делаем из Raspberry pi домашнюю мультимедийную систему HTPC


Делаем из  Raspberry Pi  домашнюю мультимедийную систему  HTPC  в качестве софта будет использоваться небольшой дистрибутив linux OpenELEC.
Установка OpenELEC на Raspberry Pi.  Процесс установки очень прост как для опытного пользователя так и для новичка в linux системах
Для  установки нам потребуется
Компьютер с любой установленной linux системой

воскресенье, 15 июля 2012 г.

Русифицируем консоль Linux


Бывает, нужно русифицировать консоль на только что установленном или уже работающем сервере. Делается это, на самом деле, очень просто.
Для начала переконфигурируем локали. Для этого в консоли напечатайте команду
dpkg-reconfigure locales
После этого появится вот такое окошко, где нужно найти и отметить локали ru_RU.CP1251, ru_RU.KOI8-R, ru_RU.UTF-8 — на выбор. Если у вас putty, то koi-8r, чтобы не менять кодировку в настройках программы, если вы заходите на сервер с linux сервера, то можете выбрать utf-8.

суббота, 14 июля 2012 г.

Отключить и удалить X Windows

Допустим у вас есть веб сервер на базе CentOS, и приключении сервера он
начинает загрузку графического интерфейса пользователя (Gnome, KDE, и
т.д.) И нету никаких оснований для запуска X Windows на веб-сервере
Apache. Нужно только SSH. Как отключить X Windows без переустановки
операционной системы для повышения безопасности и производительности?

CentOS / RHEL 5.x / Fedora Linux поставляется с системой X Windows,
которая называется X.org. Для управлением веб-сервером Apache хватит
удалённой текстовой консоли.

пятница, 13 июля 2012 г.

Статусы звонков в Asterisk

Имя переменной где лежит значение -${DIALSTATUS}

//Ответ на звонок получен. Удачный дозвон.
ANSWER

//Сигнал занято. При наборе номера возвращено сообщение о занятости абонента.
BUSY

//Нет ответа. Дозвон произошел, но абонент не ответил за определенное время
NOANSWER

//Звонок отменен. Дозвонились, но повесили трубку либо Вы ли с другой стороны
CANCEL

//Неизвестен адресат. Номер не определен.
CONGESTION

//Канал для звонков недоступен. Скорее всего удаленный пир не зарегистрирован.
CHANUNAVAIL

//Приватный режим, типа "Не беспокоить"
DONTCALL

//Приватный режим, все входящие звонки отправляются на некий сервис, который их обслужит
TORTURE

//Ошибка, неверно набранный номер (добавлено в Asterisk 1.4.1, SVN r53135-53136)
INVALIDARGS

пятница, 6 июля 2012 г.

Основные Linux команды


 Системная информация:
arch или uname -m — отобразить архитектуру компьютера
uname -r — отобразить используемую версию ядра
dmidecode -q — показать аппаратные системные компоненты — (SMBIOS / DMI)
hdparm -i /dev/hda — вывести характеристики жесткого диска
hdparm -tT /dev/sda — протестировать производительность чтения данных с жесткого диска
cat /proc/cpuinfo — отобразить информацию о процессоре
cat /proc/interrupts — показать прерывания
cat /proc/meminfo — проверить использование памяти
cat /proc/swaps — показать файл(ы) подкачки
cat /proc/version — вывести версию ядра
cat /proc/net/dev — показать сетевые интерфейсы и статистику по ним
cat /proc/mounts — отобразить смонтированные файловые системы
lspci -tv — показать в виде дерева PCI устройства
lsusb -tv — показать в виде дерева USB устройства
date — вывести системную дату
cal 2007 — вывести таблицу-календарь 2007-го года
date 041217002007.00* — установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)
clock -w — сохранить системное время в BIOS

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

sipp — утилита для генерации нагрузки на ASTERISK

sipp — мощная утилита для генерации нагрузки на SIP оборудование. Обычно sipp используется для проверки отказоустойчивости систем IP-телефонии, выявления максимально-допустимой нагрузки или ddos-а конкурентов :) Сценарий сессии в sipp описывается в XML файле. Можно воспользоваться одним из множества сценариев распространяемых в комплекте с sipp или создать свой.
Кроме тестирования сигнализации (SIP) sipp способен тестировать и медиа нагрузку. Для этого существуют два модуля: PCAP play и RTP echo. PCAP play — проигрывает заранее записанный сетевым анализатором (например wireshark) медиа файл. RTP echo — позволяет sipp отсылать обратно все полученные RTP потоки.

Регулярное удаление старых файлов с помощью cron и find

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

find /var/spool/asterisk/monitor -mtime +90 -exec rm {} \;
 
find выполнит команду указанную в параметре exec, для каждого файла чье содержимое не менялось последние mtime суток. Т.е. в данном примере файлы записанные более 90 суток назад — будут удалены. Добавляем эту строку в crontab
 
12 2 * * * root find /var/spool/asterisk/monitor -mtime +90 -exec rm {} \;
 
И теперь старые файлы будут удаляться каждую ночь автоматически — cron-ом.

воскресенье, 3 июня 2012 г.

взлом asterisk с помощью sipvicious-0.2.7

sipvicious. Это SIP сканер, который может быть использован для сканирования SIP серверов, таких как Asterisk, FreePBX, Trixbox и тому подобные.
Скачиваем sipvicious распаковываем содержимое архива и делаем исполняемыми файлы

среда, 11 апреля 2012 г.

установка asterisk на DIR-620 с нуля

Опишу свой способ прошивки роутера D-Link DIR-620 прошивкой от DD-WRT установки флешки в качестве диска, MC и ASTERISK 1.4
Скачиваем прошивку uboot описание тут далее ставим прошивку DD-WRT с модулями для файловых систем ext3

Подготовка флешки или жесткого диска к подключению в DD-WRT

Необходимо создать на носителей разделы. Их количество, типы файловых систем и размеры надо выставлять смотря какие задачи вы хотите реализовать.
DD-WRT в большинстве случаев поддерживает следующие файловые системы.

Типы файловых систем в DD-WRT

ext3 — журналируемая файловая система, родная для linux-based систем. В случае с DD-WRT она нужна в обязательном порядке для установки различных пакетов (программ). Максимальный размер файла зависит от ядра linux вашей прошивки и составляет не менее 2Tb, что вряд ли как то ограничит Вас
fat32 — всё более устаревающая файловая система, родная для Windows. В DD-WRT пригодна лишь для хранения пользовательский файлов, на неё нельзя установить пакеты. Максимальный размер файла составляет около 4гб, что по современным меркам не фантан. Еще бывают проблемы с длинными именами файлов. Пригодна лишь для использования как раздел под хранения небольших файлов, например документов.
В принципе не советую использовать fat32 вообще никому, все рано или поздно от неё отказываются всё-равно.
swap — это даже не файловая система, это раздел подкачки. Если кроме ftp планируете еще что-то устанавливать, то настоятельно рекомендую создать такой раздел размером 32-64мб. Больше врядли кому пригодится.
Другие файловые системы (ntfs, ext2, ext4 и т.д.) без хитрых манипуляций не подмонтировать, не будем на этом заострять внимание. По крайней мере пока.

Разметка флешки/диска

Раздел 1 / тип ext3 / размер 16 гб — раздел для установки пакетов (optware)

Настройка роутера

Идем на вкладку СлужбыUSB (СервисUSB),
1) Включаем поддержку USB
2) На старых прошивках выбираем USB 2.0, на новых этот пункт убрали, но поддержка осталась и включается автоматически.
3) Включаем поддержку USB-дисков (USB Storage Support)

Включение поддержки USB-дисков в DD-WRT
Включать автомонтирование не стоит, так как монтируются в этом случае диски без флага noatime, то есть при обращении к файлам и папкам обновляется информация о последнем доступе к ним.
Роутеры итак медленными процессорами обладают, так что для нас это недопустимая роскошь.

Подключение диска

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

Далее выполняем команду
root@DD-WRT:~# dmesg|grep lun
/dev/scsi/host0/bus0/target0/lun0: p1
Строка /dev/scsi/host0/bus0/target0/lun0: p1 говорит нам о том, что наш носитель подключен p1  раздел для установки пакетов (optware).

Монтирование USB-диска

Сначала монтируем первый раздел, который предназначен для optware. Монтировать будем в уже существующую, но пустую папку /opt (в линуксе нет понятия о локальных дисках, все они так или иначе подключены в качестве каталога).
Для этого вводим команду:
root@DD-WRT:~# mount -o noatime /dev/discs/disc0/part1 /opt
Где /dev/discs/disc0 — наша флешка, part1 — первый раздел на ней.
mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /opt
И проверяем смонтировалось или нет:
root@DD-WRT:~# df -h
 
Filesystem Size Used Available Use% Mounted on
/dev/root 2.9M 2.9M 0 100% /
/dev/scsi/host0/bus0/target0/lun0/part1
14.9G 234.5M 13.9G 2% /opt


Если флешка не монтируется в DD-WRT

В новых прошивках поддержка файловых систем зачастую автоматически не подключается.
В этом случае необходимо посмотреть, какие файловые системы поддерживаются:
root@DD-WRT:~# cat /proc/filesystems
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev tmpfs
nodev pipefs
nodev ramfs
nodev devfs
      squashfs
nodev usbdevfs
nodev usbfs
 
и какие модули подключены:
root@DD-WRT:~# lsmod
Module                 Size   Used by
ip_nat_pptp            2560   0 (unused)
ip_conntrack_pptp      3036   1
ip_nat_proto_gre       1664   0 (unused)
ip_conntrack_proto_gre 2584   0 [ip_nat_pptp ip_conntrack_pptp]
usb-storage            40344  0 (unused)
sd_mod                 13092  0 (unused)
scsi_mod               101584 2 [usb-storage sd_mod]
usb-ohci               20352  0 (unused)
ehci-hcd               22060  0 (unused)
usbcore                84576  1 [usb-storage usb-ohci ehci-hcd]
switch-robo            6108   0 (unused)
switch-core            5888   0 [switch-robo]
 
Ага. Нашей ext3 не видно. Как впрочем и модуля jbd, отвечающего за поддержку журналирования в файловых системах.
Пробуем подгрузить вручную этим модули, причем сначала jbd.o, без него ext3.o не загрузится:
Для прошивки с ядром 2.6 и выше:
root@DD-WRT:~# insmod /lib/modules/$(uname -r)/kernel/fs/mbcache.ko 
root@DD-WRT:~# insmod /lib/modules/$(uname -r)/kernel/fs/jbd/jbd.ko
root@DD-WRT:~# insmod /lib/modules/$(uname -r)/kernel/fs/ext3/ext3.ko
 
И проверяем знает ли наше ядро теперь ext3:
root@DD-WRT:~# cat /proc/filesystems
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev tmpfs
nodev pipefs
nodev ramfs
nodev devfs
      squashfs
nodev usbdevfs
nodev usbfs
      ext3

Автоматизируем процесс подключения дисков в DD-WRT

Для автоматизации команд надо занести в скрипт включения.
Для этого в веб-интерфейсе перейдите в раздел Administration — Commands
И в верхнее окно введите команды в нужном порядке, только если у вас уже есть стартовый скрипт, то необходимо их объединить.
В моем случае он выглядит так:

switch reg w 90 10007f7f  (включает wan порт при загрузке роутера)

insmod /lib/modules/$(uname -r)/kernel/fs/mbcache.ko (загружает модуль mbcache.ko)
insmod /lib/modules/$(uname -r)/kernel/fs/jbd/jbd.ko (загружает модуль bd.ko)
insmod /lib/modules/$(uname -r)/kernel/fs/ext3/ext3.ko (загружает модуль поддержки ext3)

mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /opt (монтирует флешку)
 
 
далее скачиваем установочный скрипт

wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d "\r" > /tmp/optware-install.sh
 
  
 
 и запускаем его

sh /tmp/optware-install.sh  

 
у меня скрипт выдавал ошибку на стадии проверки, открываем скрипт

vi /tmp/optware-install.sh 

и удаляем блок, отвечающий за проверку конфигурации:

_check_config() 
{ 
echo "Checking system config ..." 
GATEWAY=$(netstat -rn | 
sed -n 's/^0.0.0.0[ \t]\{1,\}\([0-9.]\{8,\}\).*/\1/p' ) 
if [ -n "${GATEWAY}" ]; then 
echo "Using ${GATEWAY} as default gateway." 
else 
echo "Error: No default gateway set!" 
exit 2 
fi 
if [ -s /etc/resolv.conf ]; then 
echo "Using the following nameserver(s):" 
if grep nameserver /etc/resolv.conf ; then 
GATEWAY_SUBNET=$(echo "${GATEWAY}" | 
sed 's/\.[0-9]\{1,3\}\.[0-9]\{1,3\}$//') 
if [ "${GATEWAY_SUBNET}" = "192.168" ]; then 
if grep -q ${GATEWAY} /etc/resolv.conf ; then 
echo "Gateway ${GATEWAY} is also nameserver." 
else 
echo "Warning: local nameserver is different than gateway!" 
echo "Check config or enter:" 
if test -L /etc/resolv.conf ; then 
echo " sed -i s/192.168.*/${GATEWAY}/ /tmp/resolv.conf" 
else 
echo " sed -i s/192.168.*/${GATEWAY}/ /etc/resolv.conf" 
fi 
echo "and try again." 
fi 
fi 
else 
echo "Error: No nameserver specified in /etc/resolv.conf" 
exit 5 
fi 
else 
echo "Error: Empty or nonexistent /etc/resolv.conf" 
exit 3 
fi 
if mount | grep -q /opt ; then 
[ -d /opt/etc ] && echo "Warning: /opt partition not empty!" 
else 
echo "Error: /opt partition not mounted." 
echo "Enter" 
echo " mkdir /jffs/opt" 
echo " mount -o bind /jffs/opt /opt" 
echo "to correct this." 
exit 4 
fi 
} 

далее ставим мс

 
ipkg-opt install mc 
 
и asterisk


ipkg-opt install asterisk14

информация взята с:
http://www.dd-wrt.com/wiki/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Samba_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%81_DD-WRT

http://ne-ne-ne.ru/dd-wrt/dd-wrt-mount-usb-flash-usb-hdd.html

http://ajc.su/telefoniya/asterisk-na-routere-ili-byudzhetnyj-voip-gsm-shlyuz/






среда, 4 апреля 2012 г.

Linux в браузере

 в интернете запустился проект jslinux (эмулятор PC с Linux на javascript в браузере) от уважаемого мужчины по имени Фабрис Беллар. Эмулятор для запуска Linux полностью написан на JavaScript. При входе на страницу отображается консоль, на которой начинается загрузка Linux с нуля до момента отображения рутовой консоли. В консоли работает куча стандартных команд, вплоть до компилятора TCC. И всё это работает прямо в браузере. Крутизна необыкновенная.

E1 RJ45 Pin-outs

Понадобилось по работе тут подключить E1 на разъём RJ-45. Быстро найти распиновку (да ещё и на русском) не удалось,- выкладываю, чтобы не забылось:
На джеке контакты считаются по порядку слева направо, держа разъём контактными площадками к себе, кабель подводится снизу (как на рисунке).

В табличном виде:
pin назначение
1 Rx RING
2 Rx TIP
3 -
4 Tx RING
5 Tx TIP
6 -
7 -
8 -

Подключенное устройство принимает (Rx) на 1-2 контактах (оранжевая пара). Передача (Tx) ведётся по паре на 4-5 контакте (синяя пара), Остальные контакты не используются.
Понятия TIP и RING здесь условные, обычно современное оборудование умеет определять полярность на парах и корректно использовать. Но, на всякий случай,- почитайте документацию (или проконсультируйтесь с технической поддержкой) перед подключением.

вторник, 20 марта 2012 г.

VoIP-GSM шлюз для Asterisk на USB модеме HUAWEI E1550

Памятка по настройке VOIP-шлюза на IP ATC Asterisk с модемом Huawei E1550 от МТС.
Есть различные типы модемов, с которыми работает Asterisk, посмотреть их настройку а также совместимость можете тут: http://nagg.ru/2011/08/nastroyka-3g-modemov/
Для начала, хочу отметить, что есть важные замечания к железу и ПО, на котором предполагается размещать подобную систему:
1. Рекомендованное ядро Linux 2.6.33+
(оно может быть и выше, но никак не ниже. достоверно известно, что версия ядра в CentOS 5.6 Final – 2.6.18 не подходит для этой роли, голос слышен с сильными искажениями).
2. Версия Asterisk 1.6.+
3. Порты USB 2.0
(некоторые модемы работают и на USB1.1, но E1550 во время звонка отваливается, по нехватке питания)
4. Актуальная прошивка 3G модема: для МТС 11.608.12.00.143 и 11.608.14.15.311 гарантированно рабочие

понедельник, 19 марта 2012 г.

Защита Asterisk или элементарные правила безопасности VoIP

Сейчас все пишут про большое количество атак на Asterisk и прочих PBX. Хочу рассказать, что недавно произошло с одним из наших клиентов. У товарищей хакеров из КНДР не получилось пробраться на Asterisk, стоящий за простеньким роутером ASUS, почему напишу далее, но зато у них отлично получилось ломануть, а вернее подобрать пароли к IP телефонам Yealink SIP T-22. Сделать это было не сложно, так как клиент не удосужился поменять стандартные admin/admin. И от сюда...

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

пятница, 2 марта 2012 г.

Ad-hoc сеть средствами Windows

Многие частенько задумываются, как быстро связать два устройства на базе Windows (типичный пример - два ноутбука) по Wi-Fi. Бывает, что сходу и не вспомнишь/не угадаешь в галочках в настройках и свойствах.
Делаю шпаргалку..

Итак.. Вся разница только в том, что Ad-hoc в отличие от инфраструктуры - не клиент-серверная архитектура (клиент-сервер, конечно, немного не из этой оперы, однако суть та же). Это точка-точка. Соответственно нужно настроить на обоих концах wifi-адаптеры и должно заработать. Microsoft нас обрадовала тем, что можно сделать ad-hoc соединение проще, а именно:
- настроить на одном устройстве подключение;
- найти его другим устройством (если конечно включено вещание SSID);
- вбить необходимые настройка на втором адаптере.
То есть та же схема, что и при работе с точками доступа.

Сейчас настроим первое устройство. Для этого по большому счёту нужно просто добавить беспроводную сеть на первом устройстве, указать, что это точка-точка. Адаптер заработает сразу.

среда, 29 февраля 2012 г.

солянка о VOIP

Какие типы КОДЕКОВ существуют?

Кодек преобразовывает аналоговый сигнал в цифровой для передачи данных по сети. В настоящее время используются следующие типы кодеков
  • GSM - 13 кбит/с (полная скорость), длительность кадра 20 мс;
  • iLBC – 15 кбит/с, длительность кадра 20 мс: 3,3 кбит/с, длительность кадра 30 мс;
  • ITU G.711 - 64 кбит/с, основан на выборке. Также известен как alaw/ulaw;
  • ITU G.722 - 48/56/64 кбит/с;
  • ITU G.723.1 - 5.3/6.3 кбит/с, длительность кадра 30 мс;
  • ITU G.726 - 16/24/32 кбит/с;
  • ITU G.728 - 16 кбит/с;
  • ITU G.729 - 8 кбит/с, длительность кадра 10 мс;
  • Скорость – 2,15 – 44,2 кбит/с;
  • LPC10 – 2,5 кбит/с;
  • DoD CELP – 4,8 кбит/с. 

воскресенье, 26 февраля 2012 г.

Настройка cisco ip phone 7942 и asterisk

И так для настройки на потребуется
1. TFTP сервер  скачать
2. прошивка для работы по протоколу sip скачать
3. Asterisk версия не имеет значения
4. Cisco IP Phone 7942G

Первое что нам понадобиться сделать — это установить tftp сервер процесс установки описывать не буду.
Итак, нам нужно скачать прошивку извлечь все файлы находящиеся в архиве cmterm-7942_7962-sip.8-5-4.zip в папку с где установлен TFTP сервер.
Запускаем TFTP сервер, подключаем пачкорд в сетевую карты компьютера и в разъем 10/100 SW телефона, в настройках сетевой карты выставляем ip адрес и маску подсети (основной шлюз указывать не надо) на телефонном аппарате нажимаем клавишу # и включаем питание, телефон начнет мигать светодиодами далее набираем 1234567890*0# телефон перегрузится в режиме прошивки в логе TFTP сервера в закладке Log viewer, а так же на телефонном аппарате мы должны увидеть процесс загрузки файлов если все прошло успешно телефон загрузится в обычном режиме. Заходим в меню телефона выбираем в пункт 5 model information далее находим пункт 3 Load File у нас должен быть SIP42.8-5-4S

Теперь перейдем непосредственно к файлу конфигурации. Файл должен называться SEP<MAC-адрес Cisco-телефона>.cnf.xml

пример приведен ниже

$asterisk
$login
$password
подставьте свои значения
Внимание, не используйте copy-paste , т.к. это не экранировка в xml формате!!!

вторник, 21 февраля 2012 г.

Asterisk настройка FAX от Digium по T.38

FAX for Asterisk (Digium)

Fax Digium's For Asterisk является коммерческим продуктом и решением для приёма и отправки факса. Факс для Asterisk обеспечивает низкую скорость (14400bps) PSTN факсов через DAHDI-совместимых телефонных плат, а также VoIP для факсов T.38-совместимых конечных точек SIP и Провайдеров услуг. Лицензия устанавливается на каждый канал в отдельности, Факс Digium's For Asterisk предоставляет полное, экономически эффективное, коммерческое решения для факса в Asterisk-е.
Факс для Asterisk предоставляет два компонента: resfax и resfaxdigium. Resfax является модулем для Asterisk и внедряет в функционал и диалплан Asteriska новые возможности для приема и передачи факсов . Resfaxdigium предоставляет основные функции обработки факсов в виде нескольких поддерживаемых модемов факс - V.21, V.27ter, V.29 и V.17 - которые могут достичь скорости до 14400bps.
Факс для Asterisk предоставляет функции для отправки и получения факсов в / из TDM и IP каналов - для этого может быть использованы TDM каналы (Платы Digium) аудио каналы (G.711 codec) а также T.38 инкапсуляцию. Передача и получение факсов в Asterisk начинаются и заканчиваются в виде файлов TIFF изображений. TIFF файлы могут быть легко преобразованы в другие форматы (PDF,JPEG,...) используя стандартные команды Linux и утилиты.
Клиенты могут приобрести лицензионные ключи для Fax for Asterisk от Digium в офф. представ pbxware.ru . Каждый канал Факс для Asterisk даёт возможность только одной сессии (прием или отправка).
Также Digium предлагает лицензию на 1 канал бесплатно , для всех пользователей Asterisk. Лицензию можно приобрети на сайте www.digium.com (только зарегистрированным пользователем ) .
Установка и настройка Fax for Asterisk
в настоящее время Факс для Asterisk поддерживается на:
Open Source Asterisk версий 1.4> = 1.4.22 ,1.6.0> = 1.6.0.14 , 1.6.1> = 1.6.1.5
После того как вы приобрели лицензионный ключ для Fax for Asterisk, существует ряд задач которых надо выполнять чтобы установить Fax for Asterisk.

понедельник, 20 февраля 2012 г.

asterisknow установка g729 кодека

Сам кодек скачиваем от сюда, подбираем по версии Asterisk и по Вашему железу (у меня asterisk-1,4 pentium 3)
wget http://asterisk.hosting.lv/bin/codec_g729-ast14-gcc4-glibc-pentium3.so
переименовываем в codec_g729.so

mv  codec_g729-ast14-gcc4-glibc-pentium3.so codec_g729.so
и копируем в папку /usr/lib/asterisk/modules/
устанавливаем права на файл
# chmod 755 codec_g729.so
перезагружаем asterisk и смотрим загрузился ли кодек
#asterisk -r
CLI>restart now
#asterisk -r
CLI>show translation
          Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

           g723   gsm  ulaw  alaw g726aal2 adpcm  slin lpc10  g729 speex  ilbc  g726  g722 siren7 siren14 slin16
     g723     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
      gsm     -     -     2     2     4001     2     1     2 12001 20003     -     2  4002      -       -   4003
     ulaw     -  4001     -     1     4001     2     1     2 12001 20003     -     2  4002      -       -   4003
     alaw     -  4001     1     -     4001     2     1     2 12001 20003     -     2  4002      -       -   4003
 g726aal2     -  4001     2     2        -     2     1     2 12001 20003     -     2  4002      -       -   4003
    adpcm     -  4001     2     2     4001     -     1     2 12001 20003     -     2  4002      -       -   4003
     slin     -  4000     1     1     4000     1     -     1 12000 20002     -     1  4001      -       -   4002
    lpc10     -  8000  4001  4001     8000  4001  4000     - 16000 24002     -  4001  8001      -       -   8002
     g729     -  4001     2     2     4001     2     1     2     - 20003     -     2  4002      -       -   4003
    speex     -  8000  4001  4001     8000  4001  4000  4001 16000     -     -  4001  8001      -       -   8002
     ilbc     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
     g726     -  4001     2     2     4001     2     1     2 12001 20003     -     -  4002      -       -   4003
     g722     -  8000  4001  4001     8000  4001  4000  4001 16000 24002     -  4001     -      -       -      1
   siren7     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
  siren14     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
   slin16     -  8001  4002  4002     8001  4002  4001  4002 16001 24003     -  4002     1      -       -      -

Видим, что кодек успешно подгрузился. Что бы при каждой перезагрузке asterisk’a модуль подгружался автоматом, добавляем такую строчку в файл modules.conf (добавляем в том случае, если в этом же файле стоит autoload=no, иначе – можно не добавлять)
load => codec_g729.so

 добавляем новый peer в sip.conf


[111]
type=friend
host=dynamic
port=5060

dtmfmode=auto
context=default
secret=pAsswOrD
disallow=all
allow=g729



[222]
type=friend
host=dynamic
port=5060

dtmfmode=auto
context=default
secret=pAsswOrD
disallow=all
allow=g729



в extensions.conf
[default]
exten => _X.,1Dial(SIP/${EXTEN})

устанавливаем софтфон с поддержкой кодека g729 или настраиваем голосовой шлюз и выставляем кодек g729
для тестирования я скачал триальную версию на 15 дней softphone PortGo

четверг, 16 февраля 2012 г.

PuTTY: делаем Windows полезным

В данной статье будет описано как строить SSH-туннели с помощью PuTTY.

1. Локальный проброс порта

Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера адрес 192.168.0.2, доступ во внешний мир полностью закрыт (то есть никакого NAT-а, proxy и т.п.). Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH-доступ на один из серверов с маршрутизируемым IP-адресом, который доступен из Интернет. Внутренний адрес этого сервера, пусть будет для примера 192.168.0.3. Структура сети изображена на рисунке:
Предположим, что нам очень нужно подключиться, к примеру, по SSH на некоторый удалённый сервер с IP-адресом 212.212.212.212 где-то далеко в Интернет. Для этого запускаем PuTTY, создаём SSH-подключение к серверу 192.168.0.3 (далее по тексту SSH-сессия 1), идем в пункт Tunnels:

среда, 15 февраля 2012 г.

Об nmap для начинающих

Когда-нибудь задавались вопросом, откуда взломщики узнают о том, какие порты открыты в системе и какие службы доступны на этих портах? Как они это делают, не задавая вопросов администратору сервера? Это и гораздо больше можно делать при помощи маленькой утилиты под названием nmap. nmap — это сокращение от «Network Mapper», по-русски можно назвать «построитель карты сети». Nmap — поистине огромный набор инструментов «в одном флаконе» для сканирования сетей. Он может использоваться для поиска и определения запущенных в сети сервисов, определения типа используемой операционной системы, типа файрвола или же просто для быстрого определения хостов, находящихся в сети. Короче говоря, уметь пользоваться этой штуковиной лишним не будет. Nmap очень известная утилита в буквальном смысле. Когда вы с ней познакомитесь, вы можете узнать её в некоторых эпизодах кинофильмов. В этой заметке я покажу вам базовые приёмы работы с Nmap и покажу несколько примеров, как его использовать.





пятница, 3 февраля 2012 г.

Установка Apache, MySQL, PHP с использованием YUM


# yum install httpd
проверим успешность установки Apache:
# rpm -qa | grep -i httpd

httpd-2.2.3-31.el5.centos.2
Далее зададим автоматическую загрузку при старте системы для сервера Apache с помощью chkonfig:
# chkconfig httpd on
запустим Apache:
# service httpd start
Starting httpd:                   [  OK  ]

Еще один момент. Необходимо открыть в нашем файрволе доступ по 80 порту к серверу. Для этого можно использовать текстовую утилиту настройки, набрав в терминале:
 
 
 
 
 
 
 
 
 
# system-config-securitylevel-tui
 

Права доступа к файлам и папкам в Linux

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

четверг, 2 февраля 2012 г.

установка joomla на LAMP

Установка Joomla.

Убедитесь что LAMP сервер включен и настроен подробно о настройке тут

Давайте скачаем joomla с официального сайта. качать архив необходимо в формате tar.gz.
перейдем в директорию var/www
1. cd /var/www
создадим папку joomla
2. mkdir joomla
скачаем архив с сайт (ссылка приведена для примера)
3. wget http://joomlaportal.ru/downloads/joomla/Joomla_1.7.3-Stable-Full_Package.tar.gz
распакуем архив
4. sudo tar -zxvf Joomla_1.7.3-Stable-Full_Package.tar.gz
А теперь наберите в браузере http://localhost/joomla/
далее идет стандартная установка joomla через веб интерфейс

вторник, 31 января 2012 г.

создание call файлов в Asterisk

Многие сталкивались со звонками от крупных компаний, когда происходит звонок и зачитывается автоматическое сообщение, рекламное или уведомление о просроченой оплате. Такую систему можно сделать на астериске с помощью внешнего скрипта.
Исходящий звонок Asterisk может выполнять при размещении специального файла в директории /var/spool/asterisk/outgoing.

Файл должен выглядеть так:

Channel: SIP/prov1/8067xxxxxxx
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: auto-dialout
Extension: 800 
Priority: 1

В этом файле. первая строка – канал через который будет осуществляться звонок и номер телефона на который будет исходить звонок. MaxRetries – здесь описывается число повторных звонков, пока система не дозвонится абоненту. RetryTime – время через которое осуществится повторный звонок. WaitTime – время ожидания ответа вызываемого абонента, то есть попросту через сколько секунд система положит трубку не дождавшись того, что вызываемая сторона снимет трубку. Context – контекст в котором определена последовательность действий при дозвоне. Extension – в указанном контексте, определен в extensions.conf. И Priority – строка обработки описанного экстеншена в указанном контексте.

Контекст должен быть определен так(в примере мы просто проиграем файл tariff.wav):
[auto-dialout]
exten => 800,1,Playback(/home/menu/tariff)
 
Для автоматических исходящих звонков голосовое меню можно создавать точно такое же как и для обычного IVR, отличий нет. Единственное – не абонент звонит нам, а мы звоним абоненту и предлагаем ему вступить в диалог с нашей системой.

у меня ен получилось реализовать именно это схему звонок приходит в контекст default. поэтому в контексте default прописал
exten => s,1,Playback(/home/menu/tariff)

Настройка AddPac AP1100 для работы с Asterisk

Китайская компания AddPac начала свою историю клонируя оборудование фирмы Cisco – так называемые «АТАшки». С тех пор утекло много воды и теперь, большая часть линейки устройств – собственные разработки AddPac. От старых времён остался синтаксис конфигурационного файла, который очень похож на синтаксис Cisco. Благодаря этому, большинству опытных пользователей IP-телефонии не составит труда настроить телефонный шлюз AddPac AP1100 для работы с Asterisk. Тем же, кто не совсем понимает о чём речь – посвящается эта статья.
Подключиться к устройству можно двумя способами: telnet или последовательный порт (com порт / serial / rs-232 и т.д.). Для того что бы подключиться к устройству по telnet необходимо знать IP адрес устройства, логин и пароль. Если вы не знаете IP-адрес, или он не установлен, вам придётся подключиться к устройству с помощью последовательного порта. Параметры COM порта для подключения к AddPac: Speed – 9600 Baud, Data bits – 8, Stop bits – 1, Parity – None. Логин и пароль по умолчанию – root и router соответственно. Устройство AddPac подразумевает два режима – режим управления и режим настройки. При подключении у устрйоству AddPac, вы попадаете в режим управления. Для перехода в режим настройки необходимо ввести команду:

Соединение офисных мини-АТС при помощи AddPac

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

Addpac, детекция сигнала отбоя

Довольно распространенная проблема - АТС генерирует короткие гудки, дабы человек понял, что разговор окончен, но вот техника это не воспринимает. У шлюзов addpac есть специальная настройка для детекции сигнала отбоя - Clear-down-tone cadence.
Итак, заходим на шлюз:
AP1005# conf
  Enter configuration commands, one per line. End with CNTL/Z
AP1005(config)# deb
AP1005(config)# end
AP1005# debug rta voice

Далее звоним через шлюз и кладем трубку со стороны АТС. В момент коротких гудков снимаем нечто вроде:

AP1005# 60 60 60 60 60 60 60 60 60 60 60 60 60 23 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 50 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 22 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 50 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 22 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 1616 16 16 16 17 50 60 60 60 60 60 60 60 60 60 60 60 60

Считаем:
сигналов ~=-16 * 35. Умножаем на 35, если кодек g711 или g729 - на 10. У меня последний вариант, так что получаем 350. Это у нас active power, а число зовется Active Time Duration.
сигналов ~=-60 * 34. Здесь тоже самое - получаем 340. Это idle power, число - Idle Time Duration.
Получаем:

voice class clear-down-cadence 1 -16 350 340 3 11

Здесь
1 - число необходимого повторения данно последовательности, у меня (1);
2 - уровень тона, те active power (-16);
3 - ActiveTimeDuration (350);
4 - Idle Time Duration (340);
5 - Active Power Variance - отклонения уровня, у нас не отклоняется, но все равно ставим 3 - на всякий;
6 - Idle Power Variance - отклонения уровня паузы, ставим 11.
Применяем:

AP1005# conf
Enter configuration commands, one per line. End with CNTL/Z
AP1005(config)# voice class clear-down-cadence 1 -16 350 340 3 11

Это собственно все описано в мануале от Addpac, ссылку не припомню, но на английском. Работает метод замечательно.

понедельник, 30 января 2012 г.

Установка LAMP в 1 команду для Ubuntu

LAMP (Linux, Apache, MySQL и PHP) платформа для веб-разработки с открытым исходным кодом, которая используется в ОС Linux. Apache как веб-сервер, MySQL как система управления реляционными базами данных и PHP как объектно-ориентированный язык сценариев. В этом посте показано как установить LAMP в Ubuntu с помощью tasksel. Это программное обеспечение является неотъемлемой частью программы установки Debian, которое работает под Ubuntu. Он группирует некоторые пакеты по задачам и предлагает пользователям легкий способ их установки.

В Maverick эта команда не встроена по умолчанию, по этому для установки LAMP мы должны ее установить.

Открываем терминал вводим команду:
sudo apt-get install tasksel

Теперь устанавливаем LAMP вводим taskel команду в терминал:
sudo tasksel

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

настройка asterisk и мультифон от мегафона

Сразу оговорюсь услуга только для абонентов Мегафон-Москва

1. сим карта мегафон Москва
2. Asterisk
Идем на сайт : https://sm.megafon.ru/sm/register советую при регистрации создавать аккаунт вида <ваш номер телефона>@multifon.ru пароль одновременно должен содержать 3 типа символов: маленькие латинские, большие латинские, цифры MyPass123. После регистрации активируем услугу на вашем телефоне для этого набираем *137#  посыл вызова.  Из списка выбираем нужный режим работы
1. на телефон (Только на мобильный)
2. в Мультифон (Только в МультиФон)
3. Мультифон+телефон  (Ваш asterisk и мобильный телефон зазвонят одновременно)
4. пароль
5. отключить

понедельник, 23 января 2012 г.

Установка и настройка VPN Server в CentOS 5

Устанавливаем репозиторий содержащий pptpd

# rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm



Далее ставим сам пакет vpn сервера

# yum -y install pptpd



В файле /etc/pptpd.conf прописываем локальный IP адрес сервера и диапозон для раздачи адресов VPN клиентам

localip 192.168.1.2
remoteip 192.168.1.3-99