23 ноября 2011 г.

Asterisk, LG ipLDK, OOH323

Итак, у нас есть астериск с базовыми настройками, и у нас есть несколько АТС LG - LDK100, LDK300, LDK60.
У каждой АТС свой план нумерации. Находятся.. Можно сказать, что находятся в одной локальной сети (есть несколько филиалов, объединенных провайдером прозрачно в одну сеть).
АТС объединены по VOIP посредством H323. Настраивал не я, но вижу, как минимум, одну причину, почему именно H323, а не SIP - плата VOIB на LDK100, которая, насколько я знаю, не умеет SIP. Кстати, насчет плат. Вот что говорит bs:
LDK100 - 11 VOIB 4.3A 43 INS
LDK300 - 7 VOIB 2.2A 22 INS (на самом деле, это VOIBE)
LDK60 - 10 VOIB 2.3B 23 INS

Посредством PGM 324 настроена маршрутизация между АТС, в зависимости от набираемого номера. Все работает без проблем.
Сразу скажу, я далеко не специалист в области телефонии в целом, и ip-телефонии в частности.  
Так вот, необходимо объединить абонентов Asterisk с абонентами остальных АТС. Asterisk умеет общаться по H.232. Для этого есть несколько различных H323-драйверов  для Asterisk:
  1. chan_oh323 - исторически первый H323-драйвер для Asterisk. При работе использует RTP-стек библиотеки OpenH323, со всеми вытекающими отсюда последствиями (поддерживаемые кодеки, стабильность, совместимость). Поддерживается компанией inAccess Networks [2].
  2. chan_h323 - отличительной особенностью данного драйвера является более тесная интеграция с Asterisk (используется Asterisk-реализация протокола RTP), что позволяет достичь большей производительности по сравнению с chan_oh323. Платой же за это является несколько меньшая функциональность. Так, например, chan_h323 не имеет собственного буфера дрожания (jitter buffer) [3], а также не поддерживает некоторые кодеки.
  3. chan_ooh323c - драйвер компании Objective Systems Inc [4], основанный на их открытом H323 стеке - Objective Open H.323 for C.
  4. chan_woomera - драйвер, позволяющий связать Asterisk с сервером Woomera. На данный момент через woomera можно совершать только H323-звонки, хотя в будущем разработчики обещают обеспечить поддержку универсального уровня абстракции OPAL.
Вообще, вот здесь хорошо написано про различия этих драйверов.

21 ноября 2011 г.

Настройка связи между АТС LG LDK и подключение ip-телефонов

Давно это валялось в черновиках, доводить до состояния "хауту" лениво, но некоторые моменты освещу, чтобы самому не забыть.
Имеется несколько АТС LG, в данном случае LDK100 и LDK300.
В LDK100 установлена плата VOIB (прошивка 4.3A), с модулем расширения. Итого 6 линий.
В LDK300 установлена плата VOIBE (прошивка 2.2A), 12 линий.
Необходимо обеспечить связь между АТС и подключить 6 ip-телефонов. 

14 ноября 2011 г.

Ubuntu 10.04 & Asterisk 1.8

И все таки, готовые сборки с прикрученными графическими инструментами для управления Asterisk - это не очень хорошо. В том плане, что если ты не понимаешь логику функционирования asterisk, то с помощью ГУИ ты, конечно, настроишь то, что тебе надо. Но как только понадобиться лезть куда-то глубже.. ГУИ будут только мешать.
И опять же, зачастую готовые сборки идут на базе CentOS. Не спорю, возможно весьма хороший дистрибутив линукса. Но к RedHad подобным системам я не привык. Debian (Ubuntu) - как то ближе. Есть, кстати, хороший (наверное) дистрибутив на базе Gentoo - AstPBX (http://asteriskpbx.ru). Без всяких графических инструментов, только конфиги.
Ну так вот, решил я поставить ubuntu-server с длительным сроком поддержки, а на него asterisk, также с длительным сроком поддержки.
Писать очередную хау-тушку об установке и настройке астериска особо не хочется, так, для себя, черкну немного.
Про установку ubuntu server 10.04 рассказывать ничего не буду, ибо нечего =)
Ставим asterisk. Конечно, рекомендуется собирать из исходных кодов, но лениво =)
В стандартных репозиториях убунты есть версия (на ноябрь 2011 года) asterisk 1.6.
Подключаем официальный репозиторий астериска и ставим необходимые пакеты из него.

sudo apt-get install python-software-properties
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 175E41DF
sudo add-apt-repository "deb http://packages.asterisk.org/deb `lsb_release -cs` main"
sudo add-apt-repository "deb-src http://packages.asterisk.org/deb `lsb_release -cs` main"
sudo apt-get update
sudo apt-get install asterisk-1.8

После этого можно приступить к настройкам астериска. Как минимум, создать несколько sip-аккаунтов, которые могли бы звонить друг другу.
Сделаем бэкап файла sip.conf
mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf_sample
Начнем с редактирования файла /etc/asterisk/sip.conf.

[general]
context=default
allowguest=no
bindport=5060
bindaddr=0.0.0.0

[320]
type=friend
context=phones
host=dynamic
secret=user1_password

[321]
type=friend
context=phones
host=dynamic
secret=user2_password 

Поскольку мы хотим как направлять вызовы в программный телефон, так и обеспечить клиенту возможность размещать вызовы, параметр type (тип) был определен как friend (друг). Существует еще два параметра: user (пользователь) и peer (равноправный участник сети). С точки зрения Asterisk user задается для входящих вызовов, а peer – для исходящих звонков (через приложение Dial()). friend – это просто краткая запись, определяющая и пользователя, и равноправного участника. Если есть сомнения, задавайте тип friend. Опция host (хост) используется для определения местонахождения клиента в сети, когда Asterisk необходимо направить ему вызов. Это значение может быть задано статически, например host=192.168.1.100, или, если клиент имеет динамический IP-адрес, задается host=dynamic. Если для опции host задано значение dynamic и клиент сконфигурирован для автоматической регистрации, Asterisk получит от конечной точки (то есть от телефонного аппарата или программного телефона) пакет REGISTER, из которого Asterisk сможет узнать, какой IP-адрес использует равноправный SIP-участник. Если вы не доверяете своей сети, вероятно, следует задать пароль. Для этого в описание устройства добавляется следующая строка. Это один из тех параметров, которые не являются обязательными, но желательны:
secret=user1_password
Сделаем бэкап файла extensions.conf
mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf_sample
После этого можно создать заново данный файл с примерно следующим содержанием:
[globals]

[general]
autofallthrough=yes

[phones]
exten => _3XX,1,Dial(SIP/${EXTEN})
exten => _3XX,n,Hangup()

После внесения изменений в этот файл, необходимо делать dialplan reload.
И почему то все это заработало только после core restart now.
После этого звонить друг другу должно получаться без проблем.
Помогли следующие источники:



1 ноября 2011 г.

Отмена перехода на зимнее время средствами системного реестра и GPO




Уже давно не секрет, что в октябре 2011 года уже никто в России не будет переводить свои часы на зимнее время. Для России уже вышло обновление, благодаря которому из диалогового окна«Выбор часового пояса» убирается флажок«Автоматический переход на летнее время и обратно», а также меняется часовой пояс, на примере с Москвой, с «GMT +3:00» на «GMT +4:00».
Многие пользователи, мягко говоря, не совсем любят обновлять свои операционные системы, и данное обновление может просто не быть установлено на компьютере и в ночь с последней субботы на воскресенье октября часы автоматически переведутся на час вперед. Также, поскольку уже прекращена поддержка операционной системыWindows 2000, а в просторах Рунета можно найти большое количество компаний – владельцев данной операционной системы, для таких пользователей следует ожидать такой же участи.
Перед тем как рассказать о реализации возможности, повторяющей действия указанного выше обновления, мне хотелось бы рассказать, что же делает с операционной системой этот патч. Данное обновление изменяет несколько параметров в системном реестре, которые отвечают за настройки часового пояса. Новые значения для параметров вносятся в следующих разделах реестра:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones – база данных часовых поясов;
  •  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation– сведения о выбранном часовом поясе.