نصب Asterisk
برای نصب Asterisk شما باید با کاربر اصلی لینوکس که root نام دارد وارد شوید. سپس پکیج حاوی Asterisk را که از سایت http://www.asterisk.org دانلود کرده اید را در دایرکتوری /usr/src/ کپی کنید. حال شما نیاز به بازکردن آن دارید برای این کار کنسول Linux را باز کنید و دستورهای زیر را وارد کنید:
برای تغییر مکان به دایرکتوری حاوی پکیچ Asterisk
برای باز کردن پکیج
tar zxvf asterisk-1.4-current.tar.gz
توجه داشته با شید که برای باز کردن پکیج نام آن را درست وارد کرده باشید در نمونه بالا نام پکیج asterisk-1.4-current.tar.gz است.
حال نوبت به نصب Asterisk می رسد. برای این کار دستورات زیر را در کنسول Linux وارد کنید.
برای ورود به دارکتوری حاوی Asterisk
کد PHP:
cd /usr/src/ asterisk-1.4.11
make clean
./configure
make menuselect
make install
برای ایجاد فایل های نمونه:
make samples
در صورتی که سیستم شما دارای دارکتوری /etc/rc.d/init.d یا /etc/init.d باشد با اجرای دستور زیر به شما این امکان داده می شود تا بتوانید Asterisk را در زمان بوت شدن سیستم و بدون نیاز به وارد کردن نام کاربری و رمز عبور اجرا نمایید.
make config
حال Asterisk بر روی رایانه شما نصب شده است و فقط کافی است سیستم خود را مجدد راه اندازی کنید.
تنظیم Asterisk برای استفاده
نرم افزار Asterisk دارای واسط گرافیکی با GUI نیست به همین دلیل برای انجام تنظیمات شما باید به صورت TEXT کارکنید. به طور کلی Asterisk هنگام نصب چند دایرکتوری که حاوی تنظیمات پیش فرض هستند برای شما ایجاد می کند که مهم ترین آنها تنظیماتی هستند که با پسوند .conf در دایرکتوری /etc/asterisk قرار دارند. برای تنظیمات اولیه شما نیاز به تغییر دادن همه ی این فایل ها ندارید بلکه فقط چند فایل اصلی را تغییر دهید.
Sip.conf
کد PHP:
vi /etc/asterisk/sip.conf
این فایل حاوی کاربرهای SIP و تنظیمات مربوط به آنها می باشد. هنگام نصب Asterisk چند کاربر با تنظیمات مربوط به آنها در این فایل ایجاد شده است. این فایل از نظر محتوایی دارای چند قسمت مختلف است که نام آنها درون علامت [ ] قرار می گیرند. قسمت اول مربوت به تنظیمات کلی SIP است که بعد از تگ [general] قرار می گیرند و تنظیمات آن بر همه ی کاربرها اجرا می شود. قسمت بعدی مربوط به کاربرها است که شما می توانید کاربر جدید تعریف کنید نام هر کاربر نیز درون یک تگ قرار می گیرد. به نمونه زیر توجه کنید.
تگ جنرال
[general]
talloverlap=no
canreinvite=no
غیر فعال کردن همه کدک ها
disallow=all
فعال کردن کدک دلخواه (ulaw)
allow=ulaw
تگ کاربر 3000
[3000]
نوع کاربر
type=friend
نام کاربری
username=test
رمز عبور کاربر
secret=1234
نام گروه
context=internal
نوع میزبان
host=dynamic
همان طور که در مثال بالا مشاهده کردید ما با نوشتن این مشخصات در فایل Sip.conf یک کاربر تعریف کردیم. نوع کاربر در مثال فوق friend بود که می توان از user و peer نیز استفاده کرد نوع peer مخصوص تماس خارج به داخل است و نوع user مخصوص تماس داخل به خارج است و نوع friend هر دو مورد را شامل می شود و کاربر می تواند هم تماس بگیرد و هم تماسی که به او می شود پاسخ دهد. نام کاربری و رمز عبور می توانند عدد یا حرف باشند که باید برای رجیستر شدن کاربر در سرور وارد شوند.
Iax.conf
کد PHP:
vi /etc/asterisk/iax.conf
این فایل نیز همانند Sip.conf حاوی کاربرهای iax و تنظیمات مربوط به آنها است. iax مخفف سه کلمه Inter Asterisk eXchange است و به شما این قابلیت را می دهد تا بتوانید دو یا چند سرور Asterisk را با یکدیگر مرتبط سازید یا از تلفن هایی که از این قابلیت پشتیبانی می کنند استفاده کنید. به طور مثال شرکتی را فرض کنید که دارای دو دفتر در دو کشور مختلف است که هر کدام از آنها دارای یک سرور Asterisk به همراه کاربران داخلی خود هستند و شرکت KavaA نیاز به ارتباط با کارمندان شرکتKavaB و برعکس دارند. بهترین راه حل برای این مسئله استفاده از iax است به طوری که سرور KavaA خود را در سرور KavaB رجیستر می کند و به کارمندان شرکت KavaB امکان ارتباط با کارمندان شرکت KavaA را می دهد همین کار را نیز سرور KavaB انجام می دهد تا امکان برقرای تماس شرکت KavaA را با خود فراهم کند. به نمونه زیر توجه کنید:
این تنظیمات مربوط به فایل Iax.conf سرور KavaA با آدرس IP 192.168.0.1 است:
تگ جنرال
[general]
autokill=yes
رجیستر کردن سرور KavaA در سرورKavaB
register=>KavaA:1234@192.168.0.2
نام کاربر برای رجیستر شدن سرور KavaB
[KavaB]
نوع کاربر
type=firend
host=dynamic
trunk=yes
رمز عبور
secret=1234
نام گروه
context=internal
deny=0.0.0.0/0.0.0.0
اجازه ارتباط سرور KavaB با آدرس 192.168.0.2
permit=192.168.0.2/255.255.255.0
این تنظیمات مربوط به فایل Iax.conf سرور KavaB با آدرس IP 192.168.0.2 است:
تگ جنرال
[general]
رجیستر کردن سرور KavaB در سرورKavaA
register=>KavaB:1234@192.168.0.1
نام کاربر برای رجیستر شدن سرور KavaA
[KavaA]
نوع کاربر
type=firend
host=dynamic
trunk=yes
رمز عبور
secret=1234
نام گروه
context=internal
deny=0.0.0.0/0.0.0.0
اجازه ارتباط سرور KavaA با آدرس 192.168.0.1
permit=192.168.0.1/255.255.255.0
حال در صورت برقراری ارتباط دو سرور هر کدام در دیگری رجیستر می شوند.
extensions.conf
کد PHP:
vi /etc/asterisk/extensions.conf
این فایل مهم ترین فایل Asterisk است و حاوی تمام تنظیمات و فرامین مربوط به تماس ها است و در آن می توان از انواع ریزبرنامه ها و دستورات استفاده کرد. تمام دستورات وارد شده با exten=> شروع شده و پس از آن نام آن extension قرار می گیرد ترتیب اجرا نیز پس از آن قرار می گیرد که با علامت , از آن جدا می گردد ریزبرنامه یا دستوری که باید اجرا شود در آخر قرار می گیرد. توجه داشته باشید که برای هر برنامه تماسی شما باید ترتیب اولویت 1 را داشته باشید اما داشتن اولویت های بعدی نیاز نیست و می توان از n استفاده کرد که در این صورت دستورها به ترتیب قرار گیری از بالا به پایین اجرا می شوند که به ما این امکان را می دهد تا بتوانیم دستورات را بدون تغییر دادن اولویت آنها جابه جا یا تغییر دهیم در نمونه زیر ما قصد داریم تا یک شبکه تلفن داخلی با شماره های سه رقمی ایجاد کنیم به طوری که با گرفتن هر شماره سه رقمی تماس به کاربری که به نام همان شماره ثبت شده متصل شود در ضمن تمام کاربران از قبل در فایل sip.conf به نام شماره خود ثبت شده اند.
[general]
static=yes
writeprotect=no
calerglobalvars=no
نام گروه مربوط
[internal]
با این دستور سرور به درخواست کاربر پاسخ می دهد
کد PHP:
exten=>_xxx,1,answer()
با این دستور با وارد کردن هر شماره سه رقمی کاربر SIP متناظر با همان شماره شماره گیری می شود
کد PHP:
exten=>_xxx,n,dial(sip/${EXTEN})
این دستور در صورت برقرار نشدن تماس ارتباط را قطع می کند
کد PHP:
exten=>_xxx,n,hangup()
همان طور که در مثال بالا مشاهده کردید ما برای گرفتن شماره از متغیر استفاده کردیم به طوری که شماره گرفته شده در متغیر xxx جایگذاری می شود سپس برای برقراری تماس شماره جایگذاری شده در xxx خوانده می شود و کاربر SIP به همان نام شماره گیری می شود. در صورتی که شما علامت _ را قبل از عددی قرار دهید Asterisk در صورت در یافت شماره ای که با آن عدد شروع شود برنامه شما را اجرا خواهد کرد.