Wednesday, April 09, 2008

Asterisk with Diva 4-BRI ISDN Card

Asterisk-г Diva 4-BRI ISDN карттай хэрхэн ажиллуулах вэ?

Opensource software PBX-үүдийн дотроос хамгийн өргөн хэрэглэгдэх болсон нь Asterisk болвуу. Asterisk-г суулгах, тохируулах талаар зөндөө сайхан гарын авлагууд байгаа болохоор тэр талаар нуршилгүй, Diva 4-BRI ISDN Card-г Asterisk-тай хэрхэн ажиллуулах талаар товчхон зааврыг өгье.

1. AsteriskNow-н талаар товчхон
2. Asterisk-г суулгах
3. Diva 4-BRI ISDN Card
4. Chan_capi module
5. Asterisk Dialing Plan

1. AsteriskNow-ын талаар товчхон

AsteriskNow нь Asterisk-г GUI-н хамт, тусгайлан үүсгэсэн кернелтэй бэлэн CD болгосон хувилбар юм. Линукс суулгаж байгаатай адилаар partition-уудаа үүсгэхээс бусад нь автоматаар сууна. mISDN зэрэг модулиудыг GUI-гээс удирдаж болох болсон, мөн командын мөрнөөс ажиллаж чадахгүй хүмүүст ойр зуурын system administration хийх боломжтой зэргээс өөрөөр Asterisk-г татаж аваад суулгаснаас ялгаагүй санагдсан.

AsteriskNow-д ямар ч package manager байхгүй, мөн developer library-нууд ихэнх нь байхгүй болохоор нэмэж package/module суулгахад асуудалтай. Бодвол AsteriskNow-г сайжруулж байгаад бүтээгдэхүүн болгон борлуулах бодолтой байгаа бололтой.

Уг нь бэлэн юм ашиглачихвал амар байсан боловч Diva 4-BRI Card-ны driver-ууд AsteriskNow-д суугаагүй ирсэн тул driver-г тусад нь суулгах хэрэгтэй боллоо. Diva 4-BRI driver-г суулгахад kernel source file-ууд хэрэгтэй болсон, мөн дээр нь AsteriskNow-д ямар ч package manager байхгүй зэргээс Asterisk-г аль нэг линукс тархац дээр татаж авч суулгахаар шийдлээ.


2. Asterisk-г суулгах

Asterisk-г линуксийн нилээд олон тархац дээр хэрхэн суулгах талаар хангалттай сайн гарын авлагууд олсны ачаар цаг алдалгүй, амархан суулгаж чадлаа. Хагас өдрийн ажил болж байна.

http://www.asteriskguru.com/tutorials/ AsteriskGURU дээрээс нилээд сайн гарын авлага олсон.

Asterisk-г суулгахдаа:

- libpri (1.2.7)
- zaptel (1.4.9.2)
- asterisk (1.4.19)
- asterisk-gui (you need CVS)

гэсэн дарааллаар суулгах хэрэгтэй(хаалтан дотор хамгийн сүүлийн хувилбаруудыг харуулав). Package-уудаа DigiumFTP site-с татаж аваарай.


Бүх зүйл зөв хийгдсэн бол http://IPAddress:8088/asterisk/static/config/setup/install.html хаягаар өөрийн Asterisk серверийг веб интерфэйсээр тохируулах боломжтой болсон байх ёстой. Мөн зөв суулгасан эсэхээ шалгахдаа, тушаалын мөрнөөс дараах тушаалыг өгөөрэй:

# /usr/sbin/asterisk –vvvgc

За ингээд ямар ч алдаа гараагүй бол(хэрэв алдаа байгаа бол улаан фонтоор мэдээлэл гарч ирнэ, эсвэл системийн log-д бичигдэх болно), танд баяр хүргэе. Таны анхны Asterisk сервер ажиллаж эхэллээ...

Одоо та дотоод сүлжээндээ VoIP утасны аппарат залгаад, эсвэл PC дээрээсээ softphone ашиглан байгууллага дотроо, хоорондоо ярих боломжтой боллоо...


3. Diva 4-BRI ISDN Card

Яагаад энэ картыг сонгосон бэ гэвэл ямар ч шалтгаан байхгүй. Манай компанийн нэгэн ахлах хэзээ ч юм худалдаж аваад таг мартсан хэрэг. Тэгээд нэгэнт байгаа картаа ашиглах болсон хэрэг...

Линукс систем дээр Diva картыг ашиглахын тулд Diva4Linux багцийг суулгах хэрэгтэй. Бэлэн *.rpm, *.deb багцуудыг хэрэглэж болно. Энд эхээс хэрхэн үүсгэхийг тайлбарлая. өн Dialogic-н Quick Installation Guideүзнэ үү.)

Шаардлагатай эх багцийг Dialogicзохих веб хуудаснаас татаж аваарай. Хамгийн сүүлийн хувилбар нь DivaServer4Linux_installer_8.3-107-83.bin гэсэн файл байгаа.

# chmod 744 DivaServer4Linux_installer_8.3-107-83.bin
# ./DivaServer4Linux_installer_8.3-107-83.bin


Diva серверийг эхээс үүсгэхэд kernel source хэрэгтэй болох тул өөрийн кернелийн хувилбарт тохирсон эх багцийг урьдаас суулгаж бэлдээрэй. Хэрэв kernel source чинь default байрлалаасаа өөр газар суусан бол түүнийг /usr/src/linux директорруу дараах байдлаар холбоорой:

# ln -s /usr/src/kernels/2.6.18-xxx /usr/src/linux


Дээрх хоёртын файлыг ажиллуулсны дараа шаардлагатай эх файлууд /usr/lib/eicon/divas директор дотор бэлэн болно. Одоо эхээс үүсгэх/build хийх хэрэгтэй.

# cd /usr/lib/eicon/divas/src; ./Build

За ингээд бүх зүйл ном ёсоороо болбол, таныг одоо Diva серверийнхээ тохируулгыг хийхийг сануулна. Тохируулгыг тушаалын мөрнөөс

# /usr/lib/eicon/divas/Config

тушаалыг өгөн, эсвэл веб интерфэйсээр дамжуулан хийж болно. Веб интерфэйсийг ашиглахын тулд:

1-рт xinetd суусан, мөн ажиллаж байх хэрэгтэй.
2-рт /usr/lib/eicon/divas/httpd/login/login файлын эхний мөрөнд веб интерфэйсийн нууц өгийг оруулсан байх хэрэгтэй.

Дээрх хоёр нөхцөл бүрдсэн бол http://IPAdress:10005/ хаягаар Diva серверээ тохируулах боломжтой болно.


Diva серверийг тохируулахад анхаарах тохируулгууд:

- Interface mode (TE/NT) -> Terminal Equipment (TE) mode (default)
- D-channel protocol-г тухайн улсынхаа стандартад тохируулах. Японы хувьд "JAPAN - Japan, National (INS-64)"-г сонгоно.
- NT-2 (Direct Dial In, Direct Inward Dialing) mode -> No

Бусад тохируулгуудыг default утгаар нь авахад буруудахгүй...
Тохиргоог хийсний дараа серверээ ажиллуулж, зогсоож нэг үзээрэй.

# /usr/lib/eicon/divas/Start
# /usr/lib/eicon/divas/Stop


Diva BRI карт чинь ажиллаж байгаа эсэхийг гадагшаа дуудлага хийж, мөн дуудлага хүлээн авч шалгах боломжтой.

Гадагшаа дуудлага хийхдээ:

Японы гар утасруу:
$ /usr/lib/eicon/divas/acopy2 -s1 -num -n09012345678

NTT-н гарц(010)-р гадагшаа дуудлага хийхдээ:
$ /usr/lib/eicon/divas/acopy2 -s1 -num -n01097611300000
Note: -n болон дугаараа залгуулж бичих ёстойг анхаарна уу.


Гаднаас дуудлага хүлээн авахдаа: 2 терминалийн нэгийг сервер, нөгөөг харилцагч/client маягаар ашиглана. Сервер болох терминал дээр:

# /usr/lib/eicon/divas/acopy2 –serve

тушаалыг өгөн сервер төлөвт ажиллуулна. Гаднаас ирэх дуудлагууд энэ цонхонд харагдах болно. Харилцагч болох терминал дээр:

# /usr/lib/eicon/divas/acopy2 –num –n

гэсэн тушаалыг өгөн өөрийн дугаарлуу дуудлага хийнэ. Хийсэн дуудлага чинь сервер талын цонхон дээр гарч ирэх ёстойг анхаараарай. Хэрэв дуудлага хийх боломжгүй бол алдааны мэдээллийг сайтар унших хэрэгтэй.


4. Chan_capi module

Asterisk суучихсан, ISDN картныхаа driver-уудыг таниулчихлаа, одоо дахин нэг нэмэлт модуль суулгах хэрэгтэй. Asterisk ямар нэг дундын модульгүйгээр ISDN карттай одоохондоо шууд ажиллах боломжгүй байгаа юм. Энэ дундын модуль BRI картан дээр ирсэн дуудлагыг Asterisk-д дамжуулах, Asterisk-г утасны channel/сувагтай ажиллах боломжийг олгоно.

Ямар картанд ямар модуль тохирох талаар дэлгэрэнгүй мэдээллийг AsteriskGURU-гийн энэ хуудаснаас үзээрэй. Diva 4-BRI картын хувьд Chan_capi module-г суулгах хэрэгтэй. CAPI 2.0-н талаар дэлгэрэнгүйг Asterisk CAPI Channel хуудаснаас олж үзээрэй.


Chan_capi-г суулгахад isdn4k-utils-devel багц хэрэгтэй болох тул түүнийг эхлээд суулгасан байх шаардлагатай. (энэ багцаас capi20.h файлыг хэрэглэх юм). *.rpm, эсвэл *.deb багцаар суулгаж болно, эсвэл yum ашиглан дараах байдлаар суулгаж болно.

# yum install isdn4k-utils-devel

chan_capi-г дараах байдлаар суулгана:

$ wget ftp://ftp.chan-capi.org/chan-capi/chan_capi-1.0.2.tar.gz
$ tar -zxvf chan_capi-1.0.2.tar.gz
$ cd chan_capi-1.0.2
# make
# make install
# make install_config

Суулгах үйл явц харьцангуй хялбар тул асуудалгүйгээр сууна. (Asterisk-г эхлээд суулгасан байх ёстойг анхаарна уу) Харин тохируулах үйл явцад нилээд анхаарлаа хандуулаарай...


chan_capi-гийн хэрэглэдэг ганц тохиргооны файл бол capi.conf юм. (Зарим нэг гарын авлага дээр modules.conf дотор тохиргоо хийх хэрэгтэй гэж бичсэн байгаа түүнийг анхаарах хэрэггүй!)

Энэ файл chan_capiсуулгах явцад автоматаар Asterisk-н тохиргооны файлуудын хамт /etc/asterisk директор дотор суух болно. capi.conf -н талаар гарын авлага харьцангуй хомс тул бүгдийг эхлээд default-р аваад, ганц нэгээр туршиж үзэх байдлаар тохируулсан тул тохиргооны талаар нарийн тайлбар өгч чадахгүй нь... capi.conf файл доторх коментууд нилээд мэдээлэл өгч чадна.

Default-р capi.conf ганцхан [general] гэсэн section/хэсэгтэйгээр, дараах байдалтай ирнэ.

[general]
nationalprefix = 0
internationalprefix = 00
rxgain = 0.8
txgain = 0.8

Үүн дээр хэрэв Европ/Америкт байгаа бол:

alaw=yes;

Хэрэв Японд байгаа бол:

ulaw=yes;

гэсэн мөрийг нэмэж бичих хэрэгтэй. Хэрэв энэ мөрийг нэмэж өгөхгүй бол, яриа дундуур цангинах, мөн яриа тасалдах, ойлгомжгүй байх, хол сонсогдох зэрэг ярианы чанартай холбоотой асуудлууд тулгарч болзошгүй.


Үүний дараа ISDN картныхаа утасны шугам залгаатай порт болгоны тоогоор section/хэсэг нэмэж бичих хэрэгтэй. Бидний хувьд NTT-с 2 line/шугам түрээслэн авсан тул 4 section нэмэж бичих хэрэгтэй болсон. Үүнийг товчхон тайлбарлавал, BRI шугамын хувьд:

1 line/шугам = 2B channel/суваг + 1D channel/суваг

үүнд:
B суваг = дуу, өгөгдөл дамжуулах хэрэглэгчийн суваг
D суваг = контрол сигнал дамжуулах суваг

Ингэхээр бидний тохиолдолд (2B channel x 2 = 4 subcriber channel) болж байна.
За ингээд capi.conf дотор дараах хэсгийг 4 удаа давтан бичиж өгнө.

[4BRI-1]
isdnmode = msn
incomingmsn = *
controller = 1
group = 1
softdtmf = on
relaxdtmf = on
faxdetect = off
accountcode =
context = capi-in
echocancelold = yes
devices = 2

жишээ capi.conf файлыг эндээс үзнэ үү.

За ингээд бүх юм болчихлоо гэвэл арай үгүй :). Dialing Plan зохиохгүй бол яриа хийж хараахан чадахгүй...


5. Dialing Plan

Asterisk-н dialing plan-ууд extensions.conf файл дотор байрлана. План зохиоход хялбар байх үүднээс extensions.conf дотор хангалттай жишээнүүд байгаа. Планууд бүгд тодорхой section/хэсэгт байрлах тул [default] хэсэгт include хийхээс нааш идэвхжихгүй.

Дэлгэрэнгүй зааврыг Asterisk DialPlan Planning хуудаснаас үзнэ үү.

Жишээ dialing plan дараах байдалтай байна:

[default]
exten = s,1,Ringing
exten = s,2,Wait(2)
include = voicemenu-welcome
include = emergency
include = domestic
include = tollfree
include = international
exten = 1500,1,VoiceMailMain
exten = 1600,1,Goto(voicemenu-custom-1|s|1)
exten = 2000,1,Goto(voicemenu-custom-2|s|1)

[voicemenu-welcome]
exten = s,n,Answer
exten = s,n,Wait(1)
exten = s,n,Background(/var/lib/asterisk/sounds/record/welcome)
exten = s,n,Wait(1)
exten = s,n,Goto(default|1000|1)
exten = 0,1,Goto(default|1000|1)

[emergency]
exten = _ZXX,1,Dial(CAPI/g1/${EXTEN}) ;for NTT and Emergency

[domestic]
exten = _0ZXXXXXXXXX,1,Dial(CAPI/g1/${EXTEN})
exten = _0ZXXXXXXXX,1,Dial(CAPI/g1/${EXTEN})
exten = _03ZXXXXXXX,1,Dial(CAPI/g1/${EXTEN})
exten = _ZXXXXXXX,1,Dial(CAPI/g1/${EXTEN})

[tollfree]
exten = _0120XXXXXX,1,Dial(CAPI/g1/${EXTEN})
exten = _00ZXXXXX,1,Dial(CAPI/g1/${EXTEN})
exten = _0053XXXXXXX,1,Dial(CAPI/g1/${EXTEN})
exten = _0066XXXXXXXX,1,Dial(CAPI/g1/${EXTEN})

[international]
exten = _0101NXXNXXXXXX,1,Dial(CAPI/g1/${EXTEN}) ; for USA,Russia 1+3+7=11
exten = _010ZXXZXXXXXXX,1,Dial(CAPI/g1/${EXTEN}) ; for Mongolia 3+2+6=11
exten = _010ZXXZXXXXXXXX,1,Dial(CAPI/g1/${EXTEN}) ; for Tanzania 3+3+6=12
exten = _010ZXZXXZXXXXXXX,1,Dial(CAPI/g1/${EXTEN}) ; China mobile 2+3+8=13
exten = _010ZXZXZXXXXXXX,1,Dial(CAPI/g1/${EXTEN}) ; for China landline 2+2+8=12
exten = _010ZXZXXXXXXXXX,1,Dial(CAPI/g1/${EXTEN}) ; for UK mobile, Turkey mobile 2+3+7=12

red => custom extension number(can be any digit).
1000 -> reception
1500 -> voice message
1600,2000 -> test voice menu.

blue => voice file for welcome voicemenu.


Links


Asterisk homepage - http://www.asterisk.org/
AsteriskNow homepage - http://www.asterisknow.org/
AsteriskGURU - http://www.asteriskguru.com/tutorials/
Digium homepage – http://www.digium.com/
Digium FTP site - http://ftp.digium.com/pub/
Dialogic - http://www.dialogic.com/
Dialogic, Quick Installation Guide - http://www.dialogic.com/pubs/22725202.html
CAPI channel - http://voip-info.tr3ss.com/wiki/view/Asterisk+CAPI+channels-2.html
Asterisk DialPlan Planning- http://voip-info.tr3ss.com/wiki/view/Asterisk+Dialplan+Planning.html

Tuesday, April 08, 2008

How to get CPAN account? How to contribute to CPAN library?

CPAN дээр яаж данс нээлгэх вэ? Эсвэл өөрийн бичсэн багцийг яаж CPAN-д оруулах вэ?

... гэсэн асуултуудтай тулгарч явсан хүмүүс байвал наашаа суугаарай.

CPAN дээр байрлах бүх perl module-ууд PAUSE буюу Perl Authors Upload Server дээр байрлана. Тэгэхээр өөрийн бичсэн модулийг CPAN-д нийлүүлнэ гэдэг нь угтаа энэ сервер дээр данстай болж өөрийн модулийг upload хийнэ гэсэн үг юм.

Хүсэлт гаргаснаас хойш 3 долоо хоногийн дотор танд нууц үгийг чинь илгээх болно гэж бичсэн байсан боловч миний хувьд долоо хоногийн дараа нууц үгээ хүлээн авсан. :).


To request PAUSE(Perl Authors Upload Server) account:
please visit Request PAUSE Account

About PAUSE:
please visit PAUSE Docs