Репа

Поиск по блогу

Пользовательского поиска

суббота, 27 февраля 2010 г.

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

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












вторник, 23 февраля 2010 г.

Установка asterisk на Ubuntu 9.10

Asterisk будем устанавливать вручную из тарбола. Но перед установкой asterisk надо установить некоторые пакеты, поэтому(из-под рута):

apt-get install subversion g++ libncurses-dev libxml2-dev
Пакет subversion нам пока не нужен, но он понадобится мне для установки chan_datacard, поэтому я его поставлю, а вы как хотите.
Я буду ставить asterisk 1.6.2.0 и буду его ставить в директорию /usr/src.
Для этого перейду в эту директорию:
cd /usr/src
И скачаю asterisk с сайта Digium
wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-1.6.2.0.tar.gz
Если вы хотите скачать и установить другую версию asterisk, то выберите нужную по адресу http://downloads.asterisk.org/pub/telephony/asterisk/
Теперь выполняем:
tar zxvf asterisk-1.6.2.0.tar.gz
Рапаковался архив. Переходим в распакованную папку:
cd asterisk-1.6.2.0
Выполняем:
./configure
Когда configure закончится, мы увидим знак asterisk и улыбнемся!
Затем выполним:
make
Это будет выполняться гораздо дольше configure, поэтому я пойду покурю.
Чаю можно попить было..
Ага! Выполнилось!
Теперь:
make install
Это быстро. Теперь:
make samples
Ну и :
make config

Ну вот - asterisk установлен. Производим первый запуск:
/usr/sbin/asterisk -vvvcd

Запустилось? Ну и ОК!

Дальше asterisk будет запускаться при загрузке системы сам. Чтобы войти в консоль asterisk, нужно будет выполнить:
asterisk -r

Установка астериск на Убунту закончена успешно.

Я пока не буду устанавливать asterisk-addons, установлю как-нибудь потом.

воскресенье, 21 февраля 2010 г.

Настройка+asterisk+comtube.ru

Вот вечно так: сразу не запишешь, а потом - записывать нечего. Ну хотя бы вектор...
Настроить asterisk на работу c sip-провайдером comtube.ru просто:
[comtube]
type=user
username=xxxxxx;Ваш номер в comtube
fromuser=xxxxxx;Ваш номер в comtube
secret=xxxxxxxx;Ваш пароль в comtube
host=comtube.ru
context=from-comtube
insecure=Invite,port
disallow=all
allow=ulaw
allow=alaw
allow=g723
allow=ilbc
allow=speex
allow=g726
allow=g729

Стоить заметить, что comtube за месяц использования ни разу не нагадил в консоль, в отличие от сипнет и писител.

А вот прием звонка с московского номера(который предоставляет comtube) на свой sip-account был проблемой. Точнее, сам звонок приходил, а вот слышимость была одностороняя.
Проблема былы в том, что comtube, по всей вероятности, использует приоритетно g729, да еще шлет пакеты comfort noise
При звонке на московский с добавочным в CLI вылезало что-то типа этого
Comfort noise support incomplete in Asterisk RFC 3389
Please turn off on client IP

Что делалось (по памяти):
1. Установка dahdi(мне нужен был dahdi_dummy, так как астерискового железа я не использую)
2. В asterisk.conf раскомментируем параметр internal_timing=yes
3. Установка кодека g729

Вот как-то так...Может, это не все , что я делал, чтобы "победить" эту проблемку.
Еще вот что. В качестве клиента я использую Twinkle, а в нем g729 нет, заработало с кодеком gsm. Звук немного "жеваный", правда, но это лучше, чем ничего. Саппорт comtube говорит, что отключить comfort noise для желающих не может.

пятница, 19 февраля 2010 г.

Без callback.

Появился еще один оператор IP пин-код телефонии - intellin.ru. Особенностью является то, что в качестве телефона дозвона дается номер вида 8-800.... То есть можно звонить как с городского, так и мобильного на номер доступа бесплатно. Нужно лишь "забить" номер с пином в телефон. Я думаю, это удобно. Особенно для мобильного использования.

пятница, 12 февраля 2010 г.

DISA - доступ к asterisk извне

Всегда хотелось сделать это. Позвонил на какой-то номер и получил доступ к ресурсам своего asterisk. Гуляешь, допустим, с собакой, достаешь мобильник, дозваниваешься на номер доступа asterisk, донабираешь номер междугороднего абонента и разговариваешь. Круто!
Когда купил 3G-модем и поставил chan_datacard , такое стало возможным посредством команды DISA.
Когда дозваниваюсь на chan_datacard, нажимамаю кнопочку "8" на мобиле и вхожу в DISA, донабираю номер нужного абонента и ... готово!
Все настраиваеся в extensions.conf.
К контексту входящих звонков на chan_datacard добавляем что-то типа такого:
exten => 8,1,Authenticate(5656)
exten => 8,n,DISA(no-password,disa)так не рекомендуется вообще-то :)
exten => 8,n,Hangup
Cоздаем контекст [disa]
[disa]
exten => _8X.,1,Dial(SIP/имя_транка_вашего_провайдера_sip.conf/${EXTEN:1})
На примере выглядит так
exten => _8X.,1,Dial(SIP/sipnet/${EXTEN:1})
Собственно, все. Звоним на datacard, нажимаем "8", вводим "5656", вводим 87903ххххххх - пошел звонок!
Почитать, чтобы сделать правильно, а не как у меня, можно здесь :))

суббота, 6 февраля 2010 г.

Домашний сервер asterisk.

Зачем нужен сервер asterisk на домашнем компе?
1.Это "многоучеточный" софтфон, причем все "учетки" работают одновременно! Разные sip-провайдеры предлагают разные услуги по разной цене. Например, sipnet предоставляет возможность абонентам skype бесплатно звонить на сипнетовский сип-номер. Интересно? Да, интересно! В то же время, за звонок с московского телефона доступа в свою сеть, тот же сипнет хочет денежку. А comtube за это денежку не берет(во всяком случае, пока не берет), но у comtube нет skype-канала. Но asterisk будет оновременно подключаться и к sipnet, и к comtube, и к sipmarket, и ...., а выводится это на один единственный softphone!
2.К asterisk можно "прицепить" домашнюю телефонную линию(посредством FXO-девайса или voip-шлюза с FXO), можно sim-карту(посредством GSM-шлюза или 3G-модема и chan_datacard) и настроить на asterisk интерактивный IVR(автосекретарь), как в крупных компаниях.
3.Свой домашний сервер asterisk можно использовать и вне дома. Например, если на работе Вы сидите за компом, подключенным к интернет, то можно софтфоном подключиться к домашнему серверу и получать звонки, идущие на домашний сервер (sip-звонки, городские звонки(FXO), мобильные звонки(chan_datacard) )? ну и совершать, само собой, исходящие звонки со всех ресурсов Вашего asterisk.
4.Если на работе у Вас нет компьютера или интернет, тоже не беда. Можно подключиться к домашнему asterisk c мобильного телефона, правда не с любого, желателен смарт Nokia E-series
5.Если у Вас нет такого смарта или мобильный оператор не поддерживает 3G, но Ваш asterisk подключен к городской или мобильной линии, то Вы опять-таки можете получить доступ к ресурсам своего asterisk, используя DISA.

Клонирование жестких дисков.

Когда долго настраиваешь свой linux, в какое-то время в голову приходит кошмарная мысль:"А если хард навернется? Опять месяц все настраивать?" Брррр! Мурашки по коже... Особенно, если там крутится несколько серверов. Это наверное каждому знакомо.
У меня валялся старый HDD, и возникла мысль сделать полностью заменяемый диск. Типа, накрылся один HDD, ты вставил вместо него другой, и сразу работаешь.
Кому-то, может, про это все давно известно, а я с такой необходимостью не сталкивался, так как "админю" только свои домашние компы.
Стал искать в интернет решения, желательно бесплатные. И нашел. Программа называется HDclone. HDclone бывает платная и бесплатная. Платная отличается от бесплатной только скоростью копирования. HDclone годится для клонирования линуксов, так как понимает ext2 и ext3. Во всяком случае, версия 3.8.
И все просто: скачал HDclone 3.8, нарезал на болванку, настроил bios на зугрузку с cd, вставил диск в сидюк и перезагрузил комп. Ну а дальше работаем с интерфейсом HDclone. Там все понятно. Так я клонировал свой линукс и избавился от мандража. Нервы надо беречь :)

четверг, 4 февраля 2010 г.

Как отключить иксы на Ubuntu 9.10

Раньше я пользовался Debian и CentOS. Для отключения иксов при загрузке шел в /etc/inittab и изменял ранлевел с 5 на 3. Когда в связи с установкой chan_datacard и chan_mobile перешел на Ubuntu 9.10, то в /etc я не нашел inittab, и немного "подвис". Потом нагуглил решение.
Идем в /etc/init/gdm.conf
Находим строчку start on и комментим ее. У меня это выглядит так:
#start on (filesystem
# and started hal
# and tty-device-added KERNEL=tty7
# and (graphics-device-added or stopped udevtrigger))
stop on runlevel [016]
Теперь иксы при старте системы не грузятся! Запустить иксы, когда они вам понадобятся, можно командой startx.
 
pre { background:#efefef; border:1px solid #A6B0BF; font-size:120%; line-height:100%; overflow:auto; padding:10px; color:#000000 } pre:hover { border:1px solid #efefef; } code { font-size:120%; text-align:left; margin:0;padding:0; color: #000000;} .clear { clear:both; overflow:hidden; }