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

Asterisk покоряет МИР

Asterisk покоряет МИР в месте с командой myAsterisk!





Бесплатный курс

Asterisk – Open Source телефонная платформа нового поколения.

Астериск заменяет традиционные системы связи и мини-АТС. Астериск работает на операционной системе Linux, обладает расширенным функционалом и открывает массу новых возможностей для роста и развития Вашего бизнеса!

Введите Ваше имя, e-mail и нажмите кнопку "ПОЛУЧИТЬ!"


 

 



пятница, 25 февраля 2011 г.

Лучше один раз увидеть, чем 100 раз прочитать!
А еще лучше БЕСПЛАТНО попробовать в действии систему 1С + Asterisk!
Заказать тестирование убойной системы 1С+Asterisk IP PBX можно на нашем сайте http://myAsterisk.ru

пятница, 18 февраля 2011 г.

NAT, SIP и Asterisk

Asterisk (PBX)Image via Wikipedia

Трансляция сетевых адресов (NAT) является обычной практикой в сети и нередко мешает прохождению голосовых пакетов и инициализации соединений. Решение этой проблемы требует понимания принципов работы NAT и VoIP. В этой статье рассматривается протокол SIP и Asterisk, но проблемы и решения применимы и к большинству других приложений и протоколов.
NAT используется, чтобы скрыть многочисленные локальные адреса, за каким-то внешним узлом, обеспечивая безопасность и структуризацию сети.
Когда пакет проходит шлюз (gateway), IP-адрес локального источника заменяется на внешний IP-адрес. При ответе шлюз направляет пакет на исходный локальный адрес. Также шлюз блокирует внешние запросы не имеющие явных внутренних источников, но возможно пробросить пакеты пришедшие на определенные порты, на заранее заданные IP адреса внутри сети.

Reinvite

Первый абонент запрашивает соединение у второго , сообщая свой IP адрес. Второй отвечает, сообщая свой IP. Голосовые пакеты направляются напрямую абонентам, минуя SIP сервер. Передача голосовых пакетов напрямую абонентам, минуя Asterisk, называется RE-INVITE или Native Bridge.
NAT может вызвать проблемы в нескольких местах.

  • Если одна из АТС находится за NAT, другая АТС не сможет связаться с ней, без проброса портов.
  • Если телефон находится за NAT, голосовые пакеты могут быть направлены на немаршрутизируемый адрес в сети, что приведет к потере звука.

Клиент за NAT

В простейшей ситуации SIP клиент находясь за NAT, обращается к внешнему интерфейсу Asterisk. SIP клиент при регистрации на сервере создает запись в таблице трансляций, которая сохраняется, пока проходит хотя бы один пакет в минуту. В файле sip.conf требуется определить параметры сети и свойства удаленного пира.


[general]
localnet=192.168.0.0/255.255.255.0 ; локальная сеть
externip=x.x.x.x                   ; внешний ip адрес

[sip_phone]             
nat=yes
qualify=300                    ; проверять соединение каждые 300 мс.
При такой конфигурации Asterisk использует внешний IP адрес externip для вызовов клиентов с параметром nat=yes . Дополнительно параметр qualify=yes поддерживает соединение, не позволяя удалять запись из таблицы трансляций.

SIP клиенты и Asterisk за NAT

Все усложняется если и Asterisk, и клиенты, находятся за NAT. Клиенты с внешней стороны не смогут получать SIP сообщения и принимать звонки. Или в SIP сообщении будет указан локальный IP адрес телефона, что приведет к потере звука.
Чтобы избежать потери звука запретите re-invite в файле sip.conf
[general]
canreinvite => no
Но клиенты находящиеся за NAT, все равно не смогут инициировать соединение с Asterisk и направить голосовые пакеты RTP на требуемый екстеншен. Для того чтобы это работало, надо пробросить требуемые порты через брандмауер на Asterisk. Диапазон RTP портов используемых Asterisk, назначается в файле rtp.conf.
[general]
rtpstart=10000 
rtpend=10100                  
По умолчанию задан диапазон от 10000 до 20000. Измените диапазон в соответсвии с вашими потребностями (по два порта на каждый конкурирующий вызов).
Для нормальной работы за NAT, потребуется пробросить диапазон RTP портов в соответсвии с настройками в файле rtp.conf и порт SIP(обычно 5060). В iptables это будет выглядеть так:
iptables -t nat -A PREROUTING -i eth0 -p udp \
-m udp --dport 10000:10100 -j DNAT \
--to-destination 192.168.1.10
iptables -t nat -A PREROUTING -i eth0 -p udp \
-m udp --dport 5060 -j DNAT \
--to-destination 192.168.1.10
Где eth0 - внешний интерфейс, а 192.168.1.10 - IP адрес Asterisk.

Основные параметры конфигурации NAT для Asterisk

 

sip.conf

port= Порт используемый SIP протоколом для сигнализации (default=5060)
bindaddr= IP адрес Asterisk, если указано 0.0.0.0, то любой адрес.
externip= Этот параметр задается в секции [general] файла sip.conf и указывает внешний IP адрес, или имя хоста на вашем устройстве NAT.
externip=123.123.123.123
Этот адрес будет использован для общения с устройствами с установленным параметром nat=yes.
localnet= Этот параметр задается в секции [general] файла sip.conf и указывает на локальную сеть и используется для обращения к устройствам с параметром nat=no.
localnet=192.168.0.0/255.255.255.0
nat= Этот параметр определяет тип настройки для пользователей, пытающихся подключиться к серверу Asterisk.
Возможные значения:
NAT= yes, no, never, route
NAT=route
Asterisk будет отправлять голосовые пакеты на порт и IP адрес с которого их получает а не указанные в SIP и SDP сообщениях.
Это будет работать только, если телефоны за NAT будут использовать для одинаковый порт для голосовых пакетов RTP и одинаковый (но отличный от голосового) для сигнализации RTCP.
qualify= Эта опция имеет два назначения.Первое - поддерживать запись в таблице трансляций NAT и контролировать регистрацию телефона.
Возможные значения:
qualify=yes 
Этот параметр задает проверку по умолчанию каждые 2 секунды.
qualify=no
Это выключает проверку.
qualify=300
Включает проверку через заданное время в 300 ms.

rtp.conf

rtpstart=10000
Задает первый порт диапазона для приема и оправки голосовых пакетов RTP.
rtpend=10100
Задает последний порт диапазона для приема и оправки голосовых пакетов RTP.
FreePBX за NAT

Видео и Asterisk

Некоторые каналы сервера Asterisk имеют поддержку передачи видео:


  • SIP
  • IAX2

Каналы H323 (chan_h323, chan_oh323, chan_ooh323) не позволяют в данный момент совершать вызовы с поддержкой видео.

Поддерживаемые видео кодеки:

  • H.261
  • H.263
  • H.263p (Начиная с Asterisk, версии 1.4)
  • H.264 (Начиная с Asterisk, версии 1.4)

Стоит отметить, что поддержка видео в Asterisk версии 1.4 до сих пор в зачаточном состоянии (см. главу: основные моменты, ниже). Суммируя нижеизложенное, получаем:
  • Asterisk 1.4 имеет проблемы, связанные с согласованием видеокодеков.
  • Сервер Asterisk не обменивается и не распознает расширенные атрибуты для видеопотоков, такие как: profile/level (H.263+, MPEG4, H.264), полоса пропускания, standard annexes, частота кадров и размеры изображения.
  • Сервер Asterisk не предоставляет возможностей по проигрыванию файлов в классических видеоформатах, таких как: .mov, MP4 или файлов в формате 3gp.
  • Сервер Asterisk не предоставляет функционала по перекодировке из одного видеокодека в другой.

Для включения возможности совершать вызовы с поддержкой видео (для протокола SIP), отредактируйте файл sip.conf и добавьте параметр:

[general]
videosupport=yes


Для каждого SIP пользователя, Вам нужно указать поддерживаемые видеокодеки (см. примеры на этой странице). Если Вы не хотите полагаться на согласование видокодеков, которое существует в непропатченном сервере Asterisk версии 1.4.x (и не всегда корректно работает), убедитесь, что вы разрешили только один кодек для видео в Вашем файле sip.conf. Для решения этой проблемы, можно воспользоваться патчем, который описан ниже. И конечно, видеокодеки должны поддерживаться SIP телефонами, которые подключены к серверу Asterisk. Asterisk может работать только в прозрачном режиме при передаче видеопотоков.

Видеоконверторы для Asterisk

  • FFasterisk: Утилита для создания видео контекста для Asterisk. Она позволяет конвертировать MOV файлы в пару файлов .H.263 (для видео) и .wav (для звука), с которыми может работать сервер Asterisk.

Программное обеспечение для создания видеоконференций в Asterisk.

  • 1videoConference: VVoIP Решение с открытыми исходными кодами от Adiance.
  • Mediamixer от Sergio Murillo.
  • app_conference: имеет ограниченную поддержку видео.
  • Confiance.

Некоторые основные моменты, относительно использования видео в Asterisk


В сервере asterisk версии 1.4, выбор видеокодека содержит дефекты в алгоритме (также смотри данный bug report). Для решения это проблемы IVèS предложил патч, но он не был принят. Кроме того, другая независимая разработка с названием Asterisk videocaps, позволяет надлежащим образом согласовывать fmtp атрибуты, связанные с передачей видеопотоков, в SDP. Это решение было включено в trunk и может быть появится в Asterisk 1.6.

В asterisk 1.6 запланирована глобальная перестройка поддержки видео для различных каналов, но никаких технических условий по реализации не было опубликовано. Кто-то просто хочет включить поддержку videocaps и остановиться на этом. Некоторые имеют более амбициозные планы на этот счет. Рекомендуется ознакомиться со списком рассылки: Asterisk video.

Другая проблема, связана с форматом файлов, которые содержат видео приветствия и подсказки. На данный момент, Asterisk записывает содержимое RTP пакетов, включая некоторую информацию, связанную с таймингом, в файлы с расширением .h263, ph263p, .h264. Sergio Murillo разработал приложение MP4 asterisk apps, которое может проигрывать и записывать файлы в формате MPEG4. Но проблемы, связанные с патентами, не дают возможность компании Digium интегрировать это приложение в состав сервера Asterisk.

Поддержка перекодирования из одного видеокодека в другой (транскодинг) также не поддерживается и, вероятно, не будет поддерживаться в сервере Asterisk. Использование библиотеки ffmpeg для этих целей опять создаст проблемы с лицензированием и патентами. Транскодирование видеокодеков в Asterisk также создает проблемы связанные с уменьшением производительности сервера в целом. Однако, Sergio предложил приложение, которое может выполнять некоторые ограниченные функции, связанные с транскодированием видеокодеков, оно базируется на библиотеке ffmpeg и называется - app_transcoder. Приложение имеет ограничения в текущей версии, но может быть легко расширено по функциональности теми, кто имеет опыт программирования с использованием библиотеки ffmpeg.

Последний момент, представляющий интерес, это возможность обработки ISDN/3G видеовызовов с помощью Asterisk, используя разработки от Sergio. Для дополнительной информации по этому вопросу, смотри: эту страницу.

Следующее клиенты имеют поддержку видео, которая работает совместно с сервером Asterisk:

  • Ekiga: SIP H323 Video- H261. MPEG4/H263 в SVN
  • AuPix: видеотелефон с поддержкой протоколов SIP и H.323
  • Call Image Videotel: аппаратный видеотелефон с поддержкой протокола SIP
  • iFon: для PocketPC PDA
  • Linphone для ОС Linux - может и не поддерживать видео
  • Microsoft Windows Messenger: для ОС Windows
  • Wooksung: WVP-2000 SIP (аппаратный телефон)
  • Xten eyeBeam: для ОС Windows и OSX
  • Видеотелефон Leadtek BVP 8882 SIP.
  • Huawei ViewPoint 8220
  • Kapanga: Видеотелефон с поддержкой протокола SIP
  • GXV-3000: SIP видеотелефон с поддержкой видеокодеков h264 и h263, работающий по протоколу SIP (аппаратный)
  • Milliphone: многоплатформенный программный телефон с открытым исходным кодом
  • Yealink VP2009 - лучший ip видео телефон

Смотри: Видеотелефоны с поддержкой SIP протокола.

There is also some information how to make an 3G-H.324M (UMTS Video) - SIP gateway with asterisk: Asterisk H324M

Некоторые моменты, касающиеся голосовой почты и поддержки видео.


Когда Вы записываете сообщение для голосовой почты, Asterisk также может записывать видео... Единственная проблема, которая при этом возникает, это плохое качество в начале записи, связанное с отсутствием Intra-frame (первого кадра) при записи сообщения приветствия...

Call Image Videotel - содержит специальные возможности для создания нормальной записи, без каких-либо модификаций самого сервера asterisk (Замечание: на данный момент линк битый. Или videotel изменил имя страницы или прекратил поддержку данного продукта).

Обратите внимание: Когда Вы записываете сообщение, используется соответствующий кодек (для примера, пускай будет - H.264) и, если при проигрывании этого сообщения абоненту будет выбран другой видеокодек, тогда видео часть сообщения не будет отдана, т.к. asterisk не поддерживает транскодинг видеокодеков.

Настройка Windows Messenger для работы с сервером Asterisk (по протоколу SIP)


Пример настройки файла sip.conf:
[general]
videosupport=yes

[video2]
type=friend
username=video2
secret=hidden
host=dynamic
context=from-camera
callerid=Video 2 <1222>
canreinvite=no
disallow=all ; Windows Messenger выбирает неправильные кодеки, если указать: allow=all
allow=ulaw
allow=alaw
allow=speex
allow=gsm
allow=h261
allow=h263
allow=h263p

Настройка FXO шлюзов IP-телефонии GRANDSTREAM GXW-4104 и GXW-4108

Эту статью я хочу посвятить настройке FXO-шлюзов IP-телефонии GRANDSTREAM GXW-4104 и GXW-4108. Т.к. единственное отличие у них только в количестве FXO-портов.
При настройке я столкнулся с множеством проблем: начиная от обновления прошивки и закачивая определением busy tone на линии. Но не беспокойтесь я приведу для Вас пример полностью рабочей конфигурации для российских линий.
Материал для наглядности буду излагать в картинках, предполагая что Вы уже обновились до последней прошивки.
Итак, я пройдусь по практически всем меню панели управления.


STATUS

BASIC SETTINGS я пропускаю, т.к. у большинства он нормально настроен и по-умолчанию.


ADVANCED SETTINGS



FXO LINES

Очень важный момент настройки: CHANNELS. Тут мы будем избавлятся от того, что шлюз не определяет busy tone на российских линиях. Точнее будет сказать при стандартных параметрах.


CHANNELS



DIAL-PLAN



PROFILE 1


Вот собственно и все. Никаких проблем с эхо, с тем, что не определяется busy tone и т.д. у вас быть не должно.

Источник http://blog.911.in.ua/2010/08/fxo-ip-grandstream-gxw-4104-gxw-4108.html

четверг, 3 февраля 2011 г.

Настройка D-link DVG 7111S + asterisk

Наконец, привезли D-link DVG 7111S. И, наконец, в моем домашнем asterisk будет FXO и FXS. И, наконец, можно будет звонить не через софтфон + гарнитура, а через обычный телефон.
Однако, и страшновато было. Ни разу не настраивал ничего подобного. В сетях я - полный ноль.
Ну начнем, помолясь!
 Имеем такую сеть:
 DSL-модем > пятипортовый switch> два компа(один с linux, другой с Windows)
Linux Ubuntu 9.10 имеет прямое подключение к интернет через DSL.

Требуется подключить 7111S так, что бы сохранить status quo.
Ну начнем, помолясь, настраивать 7111S  связке с домашним сервером asterisk.
Соединяем кабель DSL-модема с портом WAN шлюза D-link, а  порт LAN соединяем со свитчем локалки.
Теперь нам нужно попасть в Web-интерфейс Dlink DVG 7111S.
В инструкции написано, что попасть туда можно, набрав в броузере http://192.168.8.254. Но чтобы эта ссылочка открылась, надо изменить статический адрес своего компа (с которого собираемся конфигурировать voip-шлюз) на 192.168.8.1
Пароль там пустой - жмем кнопку login.
Сначала я пробовал, конечно, через Setup Wisard все настроить. Но с первого раза, естественно, ничего не завелось, и дальше я все настраивал через меню слева.
Главным камнем преткновения для меня был internet setup. Я хотел, чтобы voip-шлюз 7111S был у меня в локалке и общался с voip-провайдерами сугубо через астериск. Но, поскольку во всех инструкциях настройка сего девайса начинается с internet setup, то я и сэтапил интернет. А он у меня pppoe. И сэтапил, и сэтапил... Только ничего путного не насэтапил.
Фишка в том, что в internet setup  это устройство как раз и настраивается на астериск по локалке! И даже если у вас интернет pppoe, все равно для работы с asterisk надо настраивать static ip
 
Где 192.168.1.4 - новый адрес voip-шлюза, а 192.168.1.2 - адрес компьтера а астериск. В качестве  DNS тоже выбран 192.168.1.2 Кстати, нужно не забыть поменять обратно адрес 192.168.8.1 на компьютере, с которого заходили в web-интерфейс шлюза. Жмем Apply.
Далее lan setup.
 
Там нужно выбрать bridge и больше ничего не менять. Жмем Apply.
Теперь, пусть и не по порядку, voip setup
 
  
 Далее нужно перейти во вкладку Advanced.
1)Advanced>Voip>Codec - выставить нужный вам кодек в приоритет. Apply
2)Advaced>Codec>DTMF&PULS - отмечаем "птичкой"

Enable Out-of-Band DTMF Жмем Apply
 3)Advanced>Voip>Hot Line
Секцию Phone1-FXS не трогаем. Жмем Apply
В секции Phone2-FXO опять отмечаем "птичкой"
Hot Line . В поле Hot Line № : вписываем номер 701
Еще ставим "галку"
Detect FXO Line Presence. Жмем Apply
4)Advanced>Voip>Line
Находим строчки FXS impedance и FXO impedance - выбираем из выпадающих менюх Russia 600 ohm, а также убираем "птичку" с Enable FXO/Trunk extensions number. Apply.
5) Advanced>Voip>Sip Advanced
Здесь убираем галку с Enable Non-Sip Inbox Call. Жмем Apply.
Вроде все.
Нет.
6) Advanced>Voip>PSTN control>Trunk Dial Out Verify
В одном из трех пустых полей ставим циферу. Это будет префикс выхода на городскую линию. Apply?
Теперь во вкладку MAINTENANCE - менять пароль.
И ВАЖНО! MAINTENANCE>Backup and Restore>System--Save and Reboot>Save all settings>Reboot
Все. Может, чего и забыл:)))

Как пишут, отличительной особенностью FXO данного шлюза, является то, что для него создается обычный peer.
Поэтому в sip.conf надо создать 2 пира
[701]
type=friend
host=dynamic
context=ваш_контекст
secret=ваш_пароль

и
[555555]
type=friend
host=dynamic
context=ваш_контекст
secret=ваш_пароль

Ну и в extensions.conf
exten => 701,1,Answer
exten => 701,n,Dial(SIP/${EXTEN},60)
exten => 701,n,Hangup

exten =>555555,1,Answer
exten =>555555,n,Dial(SIP/701,60)
exten =>555555,n,Hangup
Автор:http://blog.911.in.ua/2010/09/voip-d-link-dvg-7111s-asterisk.html

Настройка DVG-7111S и Asterisk

DVG-7111S представляет собой недорогой голосовой шлюз с одним портом FXS и одним портом FXO. Давайте настроим его для работы с *. Я буду описывать только те параметры, которые отличаются от дефолтных.
В FreePBX создадим SIP trunk для FXO, пусть в него будет воткнута линия с номером 5499057:
Maximum channels: 1
Dial Rules: .
Trunk Name: 5499057
PEER Details:
host=dynamic
type=friend
username=5499057
secret=fxo_password
qualify=yes
context=from-trunk
USER Details оставляем пустым.
Еще сразу создадим SIP extension для FXS с номером 777:
User Extension: 777
Dislpay Name: FXS
secret: fxs_password
Подключаем LAN порт шлюза в сеть, заходим с рабочей станции на WEB интерфейс управления: http://192.168.8.254, логин admin, пароль пустой.
Идем в Internet Setup и настраиваем WAN порт. Далее идем в VoIP Setup и редактируем запись под номером 1. Наш * имеет доменное имя pbx.spnet.ru.
Ставим галку Enable Support of SIP Proxy Server / Soft Switch, ITSP Name : «pbx.spnet.ru».
Phone 1 FXS:
Number: «777″, cтавим галки Register и Invite with ID / Account.
User ID / Account : «777″
Password : «fxs_password»
Confirm Password : «fxs_password»
Phone 2 FXO:
Number: «5499057″, cтавим галки Register и Invite with ID / Account.
User ID / Account :
«5499057″,
Password : «fxo_password»
Confirm Password : «fxo_password»
Proxy Server IP / Domain : «pbx.spnet.ru»
Жмем Apply, идем на вкладку Advanced.
VoIP -> Codec
Preferred Codec Type : «G.711 u-law»
VoIP -> DTMF & PULSE
Ставим галку Enable Out-of-Band DTMF
VoIP -> Hot Line
Phone 2 – FXO
Ставим галку Hot Line и вписываем в поле Hot Line No. : номер *, на который будет попадать звонок, пришедший на порт FXO
Снимаем галку Enable FXO / Trunk Extension Number
VoIP -> Line
FXS Impedance и FXO Impedance ставим в «Russia 600 Ohm», снимаем галку Enable IVR Option
VoIP -> SIP Advanced
Снимаем галку Enable Non-SIP Inbox Call
Вот и все, не забудьте установить пароли администратора и пользователя. Если шлюз не будет определять сингал занято, нужно проанализировать сигнал занято, получаемый от АТС и настроить его в VoIP -> CPT / Cadence. Методика анализа подробно описана на сайте nsgate.ru в документе «Процедура анализа нестандартных disconnect-тонов«.
Бывает, что данный шлюз ведет себя странно с входящими вызовами – hotline начинает звонит в течении 2-5 секунд, а затем происходит завершение вызова. В этом случае нужно установить «PSTN Ring OFF Length :» в 20000, это позволяет хотя бы как-то решить данную проблему.
Обратите внимание, что данный шлюз не дружит с Mozilla – «PSTN Ring OFF Length :» мне удалось изменить только в IE
Взято с http://blog.911.in.ua/2010/09/dvg-7111s-asterisk.html