Архив

Статии по ключова дума: ‘Asterisk’

Asterisk като sip клиент

4 декември, 2007

   Вчера реших да дам на VoiceLink 3 лева, за да ми дадат реален телефонен номер. Абонамента е месечен и се плаща месец за месец. След като от десетия опит най-после Epay решиха, че вече нямат проблем в комуникацията с VoiceLink приеха плащането и след 5 минути си имах постоянен реален номер, който се избира с код за София.
   Дойде момента да науча Asterisk-а да препраща входящите обаждания постъпващи на новия ми номер към моя вътрешен номер. Останах леко разочарован като разбрах, че записа в sip.conf не е достатъчно коректен, за да мога да избирам телефон чрез акаунта във VoiceLink през Asterisk, Открих, че за да работи правилно трябва да добавя още един ред в секцията а именно:

fromuser=USERNAME

и секцията да придобие следния вид:

[voicelink]
type=friend
fromuser=USERNAME
username=USERNAME
realm=voicelink
canreinvite=yes
md5secret=7a92b9ac81361f47c336aeb854727034
insecure=very
host=sip.voicelink.biz
disallow=all
allow=ilbc
allow=ulaw
allow=alaw
qualify=yes
outbound=proxy=sip.voicelink.biz

   След добавения ред вече можех да избирам номера извън вътрешната мрежа чрез VoiceLink акаунта, използвайки Asterisk като sip клиент. Остана да го науча и да приема обаждания. За да е възможно, трябва Asterisk-а да се регистрира към VoiceLink при стартирането си. Това става с добавяне на следния запис в секцията [general] на sip.conf

register => USERNAME:SECRET@sip.voicelink.biz:5060/EXT

   В примера USERNAME се замества с потребителското име, което се използва, за VoIP услугата на доставчика.
SECRET е паролата а EXT e разширението, което ще обработва „заявките“ постъпили за този номер.

   Във файла extensions.conf, добавяме нов контекст (аз съм си го кръстил [incoming]), който съдържа следното:

[incoming]
exten => EXT,1,Dial(SIP/NUMBER,25,Ttr)
exten => EXT,2,Hangup

   Тук EXТ е името на разширението, написано в реда започващ с register => в sip.conf, a NUMBER, е вътрешния номер, към който да бъде пренасочено постъпилото обаждане. 25 указва, че ако до 25 секунди на обаждането не бъде отговорено то ще премине към Hangup. За да заработи всичко описано до тук трябва да присвоим и контекста [incoming] от фаила extensions.conf на канала [voicelink] от файла sip.conf, като добавим още един ред в съответната секция, а именно:

context=incoming

   В крайна сметка канала [voicelink] придоби следния вид:

[voicelink]
type=friend
fromuser=USERNAME
username=USERNAME
realm=voicelink
canreinvite=yes
md5secret=7a92b9ac81361f47c336aeb854727034
insecure=very
host=sip.voicelink.biz
disallow=all
allow=ilbc
allow=ulaw
allow=alaw
qualify=yes
outbound=proxy=sip.voicelink.biz
context=incoming

   Заради всичко описано по-горе се наложи да се занимавам и с кодеци и по-точно с добавянето на G729 поддръжка на Asterisk-a, който по принцип има лиценз, но има и open source версия (повече информация тук). Друг е въпроса доколко е удачно използването на кодек като G729, който може да работи на по-слаба връзка, но за сметка на това консумира повече ресурси заради компресията (въпроса е какво предпочиташ, да си платиш за по-висока интернет скорост или да си купиш до-добър процесор ;-) ), но приятелите от VoiceLink имат проблем с използването на кодеци като G711 и „горещо“ препоръчват G729.

   Ако нещо от написаното по-горе е неясно или няма връзка с останалото, то причината е, че вече има тема за Asterisk, в която информацията е сходна и нещата се застъпват. Ето препратка. Друга причина може да е обема на написаното по-горе и липсата на каквото и да желание от моя страна да го прочета отново и евентуално да поправя неточностите ;-)

ebasi Без категория

Asterisk

29 октомври, 2007

   Днес успешно подкарах Asterisk централа. От доста време се каня, но тия дни Wops отново повдигна въпроса и се запалих. Като погледнах документацията малко ме домързя (pdf файл 376 страници), но след два дни настройване психически реших да ги подхвана. След малко четене по диагоналната система, ровене из форума на Asterisk и Google постигнах всичко, което исках. Имах малко трудности докато свикна че канал (channel) викат на „абонат“ на централата, че контекст (context) всъщност е съвкупността от правила, който могат да се присвояват на даден канал и т.н.
   В крайна сметка всичко работи. Имам си разговори във вътрешната мрежа, разговори към всякакви мрежи (стационарни, GSM и т.н.) по света, и то, разрешени само за определена част от абонатите на Asterisk централата. Видях и как могат да се ограничават отделните абонати, кой от какъв адрес може да ползва централата, като забраната или разрешението могат да стават както по IP адрес, така и по маска. Падна голямо търсене докато открия как да закача Asterisk-a към моя VoIP акаунт. Както винаги се оказа, че не е някаква философия. Понеже никъде не намерих цялата информация по въпроса на едно място ще я напиша тук.

Използвам VoIP услугата на VoiceLink, за това в примера ще използвам тях, Предполагам, че за всички които предлагат тази услуга ще е аналогично.

в sip.conf

[voicelink]
type=friend
username=USERNAME
realm=voicelink
canreinvite=yes
md5secret=7a92b9ac81361f47c336aeb854727034
insecure=very
host=sip.voicelink.biz
disallow=all
allow=ilbc
allow=ulaw
allow=alaw
qualify=yes
outbound=proxy=sip.voicelink.biz

   В примера USERNAME се замества с потребителското име, което се използва, за VoIP услугата на доставчика.
md5secret се генерира от realm, USERNAME и secert (паролата за достъпо до услугата). Аз го правя през конзола с команда. В случая командата ще изглежда така

echo -n "USERNAME:voicelink:secret" | md5sum

Получената md5sum се пише на реда след md5secret=

   В extensions.conf имам следния ред, който казва по какъв начин да се използва канала voicelink.

exten => _0.,1,Dial(SIP/voicelink/${EXTEN})

Което означава, че всички набрани номера, започващи с 0 ще „излизат“ през него.

ebasi Без категория

rbhome