این کد ها هر کدام یک کار مشخص در سیستم تلفنی می کنند و به صورت پیش فرض بر روی سیستم تلفنی ایزابل Issabel فعال هستند.
عنوان | کدها | عملکرد | توضیحات |
این کد ها هر کدام یک کار مشخص در سیستم تلفنی می کنند و به صورت پیش فرض بر روی سیستم تلفنی ایزابل Issabel فعال هستند.
عنوان | کدها | عملکرد | توضیحات |
در سیستم های تلفنی استریسکی همچون ایزابل Issabel، الستیکس Elastix و فری پی بی اکس Freepbx ، حجم اشغال شده هارد دیسک به تدریج افزایش یافته تا بظرفیت به پایان برسد و البته پس از آن متوقف شدن سرویس تلفنی و گاها خرابی سیستم تلفنی رخ خواهد داد.
با اسکریپت زیر می توان فایل های ضبط شده مکالمات مربوطه به 30 روز گذشته به قبل را...
برای موارد زیادی در تحلیل پروتکل و یا پیدا کردن مشکل نیاز است که بسته ای پروتکل سیپ SIP برری شوند. ابزار زیاد هستند که تحت شبکه این بررسی را انجام میدهند همانند نرم افزار پر قدرت Wireshark، اما بررسی بسته های ارسالی و دریافتی بر روی سرور ویپ ایزابل Issabel نیاز به خواندن بسته ها بر روی سرور است.
این کار در استریسک با...
در سیستم تلفنی استریسک Asterisk که قبل تلفنی ایزابل Issabel است مکانیز های مختلفی همچون Dialplan، AGI, AMI و البته ARI برای برنامه نویسی و ساخت سیستم تلفنی هوشمند وجود دارد.
برای درک AGI در ابتدا باید با مفهوم Dialplan باید آشنا بشویم.
دیال پلن Dialplan چیست؟
تمامی اتفاقات در استریسک به صورت اسکریپت که به آن Dialplan می گویند پیاده سازی شده است، به طور...
پروتکل SIP زبان رایج بین سیستم های و دستگاه های ارتباطی مبتنی بر آی پی هست، اما این پروتکل دارای ضعف های ساختاری است که باعث شده برخی شرکت ها با اضافه کردن بخش های سعی بر بهتر کردن آن کنند.
استریسک Asterisk از نسخه 13 خود با پشتیبانی از پروژه PJSIPسعی کرد با استفاده از این پروژه این ضعف ها را برطرف سازد و...
TLS چیست؟
در واقع TLS کامل کننده پروتکل امن SSL است و برای انتقال امن داده ها ما بین دو دستگاه در شبکه استفاده می شود. محل قرار گیری TLS بر اساس استاندار OSI لایه Application است.
در پروتکل TLS احراز هویت با استفاده از Certificate صورت می گیرد که به دو روش یک طرفه و دوطرفه انجام می شود.
در حالت یکطرفه سرور تنها...
تغییر اساسی در هسته ی برنامه به خودی خود یک کار پیچیده ای است، اگر این برنامه نزدیک به یک و نیم میلیون خط کد و بیش از 15 سال سابقه در بازار راه هم داشته باشد امری تقریبا غیر ممکن است. اما این دقیقا کاری است که تیم برنامه نویسی استریسک پس از انتشار استریسک 12 به آن روی آورده اند. حرکت به سمت...
یکی از قابلیتهای بینظیر سیستم تلفنی استریسک بخش صندوق صوتی آن است که احتمالا تاکنون بخش کوچکی از امکانات آنرا استفاده کرده اید. در این مقاله در تلاش هستیم تا به معرفی این بخش از سیستم استریسک بپردازیم.
سیستم صندوق صوتی در استریسک به صورت بالقوه دارای قابلیتهای زیر است :
خوشآمدگویی به ۳ روش مختلف:
...استریسک سیستم پیچیده و بزرگی است، هر زیر قسمت از این سیستم بزرگ با برخی فایل ها سرو کار دارد، این فایل ها ممکن است فایل های صوتی، پیکربندی، ذخیره سازی و یا با موارد استفاده دیگر باشند، به هر حال اگر می خواهید یک Asterisk باشید باید جای این فایل ها و کاربرد آنها را بدانید، در ادامه به سراغ یکسری از پوشه های...
وارد قلب استریسک می شویم، یکی از جذاب ترین قسمت های استریسک جایی که جریان تماس ساخته می شود، هر تماسی که بر قرار می شود و به هر قسمتی که می خواهد برود باید در DialPlan دارای مسیر تعیین شده باشد. DialPlan ساختاری گام به گام دارد که در ادامه با آن آشنا خواهیم شد.
یادگیری ساختار DialPlan برای شما که می خواهید الستیکس...
فایل extension.conf به بخش هایی به نام context تقسیم بندی می شود و در دل این contextها است که کدهای DialPlan ما نوشته می شود. مهمترین خصوصیت contextها این است که کامل ایزوله هستند و به همدیگر دسترسی ندارند مگر آنکه خودمان لینک ارتباطی را بین آنها برقرار کنیم، برای درک بهتر context می توانیم بگوییم که آنها برای گروه بندی ساخته می...
وقتی بر روی Elastix می خواهید Dialplan نویسی کنید باید یکسری نکات را بدانیم، ما در این بخش یاد خواهیم گرفت که کجا وچگونه Dialplan نویسی کنیم.
همانطور که در بخش های قبلی عرض کردم برنامه Freepbx اجازه اعمال تغییر در فایل extension.conf را نمی دهد، اما برای نوشتن Dialplan یک فایل دیگری برای دیگران در نظر گرفته به نام extension_custom.conf که از این به...
Dialplan خط به خط اجرا می شود و در هر خط یک کاری انجام می پذیرد، به هر یک یا چند خط از Dialplan که دارای نام یکسان هستند extension گفته می شود، یک context می تواند شامل یک یا چند extension باشد. همانطور که می بینید مفهوم extension در asterisk بسیار جامع تر از آن چیزی است که قبلا در منوی PBX Configuration دیده...
چگونه یک Extension بنویسیم، در ابتدا با ساختار نوشتن آن آشنا می شویم.
exten => extension_name, priority, application
خوب در ابتدای خط exten => را می بینیم که همیشه به همین شکل تکرار می شود ! خوب پس یعنی خیلی نکته مهمی در خصوص این بخش نداریم البته در قسمت های بعمی میبینیم می توانید همین را هم یکم خلاصه تر کنیم، اما می رسیم...
مثال 1:
exten => 123,1,Answer()
ساده ترین مثال، در اینجا یک Extension یک خطی داریم و همانطور که می بینید شماره آن یا بهتر است بگویم نام آن 123 است، همانطور که قبلا گفتم priority نیز با عدد 1 شروع می شود که البته اینجا یک خط بیشتر نداریم، همچنین Application به کار رفته Answer() نام دارد که وظیفه پاسخگویی به کانال را دارد.
...مثال2:
exten => 123,1,Answer()
exten => 123,2,Hangup()
در اینجا یک Extension 2 خطی داریم، همانطور که می بینید priority خط دوم تبدیل به عدد 2 شد و همچنین نام Extension در خط بعدی نیز تکرار شده است.
...مثال3:
exten => 123,1,Answer()
exten => 123,2,App1()
exten => 123,3,App2()
exten => 123,4,App2()
...این نوع متغییر ها یکجا تعریف و مقدار دهی می شوند و در هر کجا از Dialplan قابل دسترس هستند، می توان از آنها به عنوان یک متغییر اشتراکی و قابل دسترس در تمامی نقاط Dialplan استفاده نمود، این متغییر ها در 2 جا ممکن است تعریف شوند اول در فایل globals_custom.conf که برای تعریف همین متغییر ها ساخته شده و یا در فایل Dialplan...
این متغییر ها در بین کد های ما تعریف می شوند و فقط در همان Contexی که تعریف شده اند قابل دسترس و استفاده هستند پس امنیت پایداری بالاتری نسبت به global دارند ولی دسترسی به آنها محدود تر است، برای تعریف آنها از دستور Set() استفاده می شود.
مثال:
File: extension_custom.conf
include => variable-channel
[variable-channel]
...این نوع متغییر ها به طور پیش فرض تعریف شده اند و وقتی شما یک کانال را در اختیار می گیرید برخی از این متغییر ها دارای مقدار و برخی دیگر خالی هستند، مقادیر برخی از این متغییر ها توسط شما نیز قابل تغییر است. برخی از مهمترین این متغییر ها عبارت اند از:
${CALLERID(all)}: The current Caller ID name and number .
کالر...
برخی از متغییر های سیستمی پر کاربرد:
${CDR(accountcode)} * - Account code (if specified)
${BLINDTRANSFER} - The name of the channel on the other side of a blind transfer
${BRIDGEPEER} - Bridged peer
${BRIDGEPVTCALLID} - Bridged peer PVT call ID (SIP Call ID if a SIP call)${CALLERID(ani)} * - Caller ANI (PRI channels)
...جواب دادن به یک کانال در حال زنگ خوردن
Answer([delay])
اگر کانال ارسالی در حال زنگ خوردن باشد به آن جواب می دهد در غیر این صورت کار خاصی انجام نمی دهد، به طور کلی توصیه می شود که قبل از اجرای هر کدام از Application ها کانال را Amswer کنید. اکثر Application ها احتیاج دارند که قبل از اجرا ، کانال Answer شده...
پخش یک فایل صوتی برای تماس گیرنده
Playback(filename[,options])
پخش فایل صوتی که نام آن را در قسمت filename نوشته اید و همچنین این فایل می بایست در مسیر /var/lib/asterisk/sounds قرار داشته باشد، اسم فایل نیاز به پسوند ندارد در صورتی که 2 فایل همنام اما با پسوند های متفاوت وجود داشته باشند Asterisk به صورت خودکار بهترین کیفیت را برای پخش در نظر می گیرد....
قطع کانال فعال
Hangup()
این دستور کانال جاری و فعال را قطع می کند. معمولا در انتهای یک Extension از آن استفاده می شود.
مثال:
...چاپ یک متن
NoOp(text)
در واقع این برنامه فقط می تواند برای شما متن یا متغییری که در داخل پرانتز قرار می گیرد را بر روی Asterisk CLI چاپ کند، این می تواند به شما برای خطا یابی و یا بررسی کدی که نوشتید بسیار کمک کند.
نکته: برای اینکه بتوانید چیزی را که این دستور در کنسول استریسک چاپ می کند، ببینید باید حداقل...
بیان به ترتیب اعداد برای تماس گیرنده
SayDigits(digits)
بوسیله این Application می توانید یکسری ارقام را به ترتیب بیان کنید به عبارت دیگر بیان یک عدد به صورت رقم به رقم، به عنوان مثال درصورت استفاده ازاین تابع به صورتsaydigits(123) استریسک مقدارزیر را برای مخاطب می خواند:
One,Two,Three
...بیان عدد برای تماس گیرنده
SayNumber(number[,gender])
بوسیله این Application می تونید یک عدد را بر روی کانال بیان کنید، البته همانطور که می دانید بیان اعداد در زبان های مختلف متفاوت است، Asterisk بر اساس زبان تعیین شده برای کانال و همچنین الگوریتم بیان اعداد در زبان های مختلف که می توانید آن را در فایل /etc/asterisk/say.conf پیدا کنید، اعداد را بیان می کند.
$1v ...
گرفتن DTMF (عدد وارد شده) از تماس گیرنده و قرار دادن آن در یک متغییر
Read(variable[,filename[,maxDigits[,option[,attempts[,timeout]]]]])
گرفتن DTMF به صورت ترتیبی از تماس گیرنده و اتمام دریافت آن با کاراکتر # ، این Application کامل ترین راه برای دریافت یک عدد از تماس گیرنده است.
پارامترها:
...پخش یک پیام صوتی بر روی کانال در حالی که تماس گیرنده می تواند عددی را نیز وارد کند.
Background(soundfile1[&soundfile2...][,options[,language]])
از این تابع به منظور پخش فایل صوتی با امکان کنترل آن استفاده می شود. مشابه app Playback می باشد با این تفاوت که در هنگام پخش فایل صوتی، کاربر امکان فشردن کلید و یا وارد کردن DTMF را دارد. این تابع بسیار پر کاربرد...
انتظار برای دریافت شماره داخلی از نماس گیرنده و تماس با آن
WaitExten([seconds][,options])
همانطور که می بینید تا حدودی عملکرد آن شبیه دستورBackground است، شاید بهتر است بگویید این 2 دستور همدیگر را کامل می کنند ما در دستور WaitExten دیگر فایلی برای پخش کردن نداریم اما در عوض می توانید مدت ثانیه ای که تماس گیرنده فرصت دارد تا عدد را وارد نماید...
ارتباط کانال جاری به یک یا چند کانال دیگر
Dial(technology/resource,timeout,options,URL)
Dial(technology1/resource1[&tech2/resource2[&...]],timeout,options,URL)
به نظر من این دستور و دستور بعدی (original) را چندین بار بخوانید. این 2 از دستورات مهم Dialplan می باشد که با آنها کار های جالب و بسیار پر کاربردی می توانید انجام بدهید. دستور Dial برای اتصال کانال جاری به یک یا چند کانال دیگر استفاده می شود مثلا وقتی...
آغاز یک تماس
Originate(technology/resource,type,arg1[,arg2[,arg3]])
یک دستور جالب تر از Dial ! این دستور از استریسک 1.6.2 به بعد در لیست Applitaion ها قرار گرفته و در اصل یک دستور مخصوص AMI می باشد و نه Dialplan، وظیفه این دستور برقرای تماس بین یک resource با یک Application در استریسک و یا برقراری تماس بین 2 resource می باشد، به عبارت دیگر شما با این...
ضبط مکالمات کانال جاری و در قالب یک فایل
Record(basename[.format[,maxSilence[,maxDuration[,options]]]])
این دستور امکان ضبط پیام صوتی را به شماس می دهد. هنگام اجرای این دستور بعد از شنیدن صدای بوق (پخش فایل beep) ضبط صدا شروع و تا زمانی که کاربر کلید # را وارد کند، ادامه خواهد یافت. با توجه به syntax ، کاربر در این دستور امکان ایجاد محدودیت در زمان ضبط،...
ضبط کانال جاری در 2 فایل مجزا
Monitor([format[,fileprefix[,options]]])
از این Application برای ضبط مکالمات و یا ذقیق تر بگویم ضبط هر اتفاقی که روی کانال میافتد استفاده می شود، بسته های صوتی ورودی و خروجی در 2 فایل مجزا بر روی هارد دیسک ذخیره می گردند. همچنین برای پایان دادن به کار ضبط می توان یا از دستور StopMonito() استفاده نمود و یا کانال را...
به پوشه /tmp می رویم و Call فایل های زیر را آنجا می سازیم، پس از ساخت هر کدام می توانید با دستور mv آنها را به پوشه /var/spool/asterisk/outgoing ببرید تا اجرا شوند.
مثال یک: فایل با نام file1.call و با محتوای
Channel: SIP/100 or (Channel: Local/100@from-internal)
Application: Playback
Data: hello-world
...به پوشه /tmp می رویم و Call فایل های زیر را آنجا می سازیم، پس از ساخت هر کدام می توانید با دستور mv آنها را به پوشه /var/spool/asterisk/outgoing ببرید تا اجرا شوند.
مثال دو: فایل با نام file2.call و با محتوای
Channel: DAHDI/g0/09372693697
MaxRetries: 2
RetryTime: 15
...به پوشه /tmp می رویم و Call فایل های زیر را آنجا می سازیم، پس از ساخت هر کدام می توانید با دستور mv آنها را به پوشه /var/spool/asterisk/outgoing ببرید تا اجرا شوند.
$1 مثال سه: فایل با نام file3.call و با محتوای
Channel: SIP/218
Callerid: 99999999999
MaxRetries: 10
...همانطور که می دانید لاگ فایل استریسک در مسیر /var/log/asterisk و به نام full قرار دارد، به ظور پیش فرض استریسک تمامی جزئیات را در این فایل قرار می دهد و اگر سیستم تلفنی بزرگی دارید حجم این فایل می تواند برای شما دردسر ساز شود، حال یاد خواهیم گرفت چگونه میزان درج جزئیات در این فایل را تغییر دهیم.
همان طور که گفتم، مسیر...
بحث های مرتبط به جیتر بافر در سیستم متن باز استریسک برای مدت های زیادی است که مطرح شده است اما احتمالا این موضوع و نحوه ی استفاده از موارد مقابله با جیتر همچنان برای بسیاری از دوستداران مباحث ویپ به حالت مبهم باقیمانده است.
جیتر بافر چیست؟
در همین ابتدی مقاله می خواهم عبارت تقدم و تاخر را جایگزین کلمه جیتر کنم. منظور از تقدم...
10 قابلیتی که در مورد استریسک نمی دانید.
استریسک (Asterisk) یک موتور تلفنی بسیار قدرتمند و بی رقیب است اما به دلیل نداشتن محیط گرافیکی بیشتر متخصصین ویپ با استفاده از ایزو های آماده از قدرت آن بهره می برند، الستیکس (Elastix) یکی از بهترین ایزو های موجود برای استریسک است، اما اگر شما الستیکس کار حرفه ای هم باشید شاید ندانید قلب الستیکس شما...
در این مقاله قصد داریم از طریق قابلیت مجازی سازی بر روی روتربرد میکروتیک، اقدام به نصب استریسک نماییم اما در ابتدا به دو پرسش پاسخ دهیم.
- میکروتیک چیست؟
- استریسک چیست؟
احتمالا تا به حال به بسیاری از افراد برخورده اید که سیستم تلفنی استریسکی آنها هک شده است و مجبور به پرداخت میلیون ها تومان به مخابرات شده اند و یا حتی شاید خودتان قربانی این حملات بوده اید، یک سرور ویپ همانند هر سرور دیگری نیاز به امن شدن دارد با این تفاوت که سرور های ویپ با توجه به ارزش بسیار بالای ترافیک...
28 اکتبر 2014 تیم تولید استریسک، نسخه 13 محبوب ترین محصول کدباز ارتباطی تلفنی را ارائه کرد، این نسخه از این لینک قابل دریافت است. همانطور که می دانید نسخه های زوج استریسک برای تولید کنندگان و توسعه دهدگان و نسخه های فرد نسخه های پایدار برای استفاده در سیستم های اجرایی است، بعد از حدود 2 سال ارائه نسخه 12 هم اکنون...
با توجه در درخواست دوستان روند نصب سیستم تلفنی استریسک را در مقاله ای کوتاه توضیح خواهم داد، نصب استریسک روند ساده ای دارد، فقط دقت داشته باشید در برخی از این مراحل نیاز به بستر اینترنت برای دریافت بسته های برنامه می باشد.
...آیا تا به حال به لیست امکانات محبوبترین سیستم تلفنی کدباز دنیا نگاه کرده اید؟
تا چه میزان از این امکانات را برای استفاده آشنایید؟
...چگونه می توانیم سرویس کال بک CallBack را بر روی استریسک (الستیکس) راه اندازی کنیم، البته این سرویس برای ارتباط بین داخلی ها است.
بعد از شماره گیری یک داخلی، اگر شماره مقصد اشغال باشد تماس گیرنده در صورت تمایل می تواند تماس را callback کند. یعنی به طور اتوماتیک بعد از آزاد شدن مقصد، تماس برقرار شود. به این ویژگی completion گفته می شود.
Call...
Ip pbx , Asterisk (سانترال Ip) ، منبع باز (Open source) به دلیل هزینه کم ، انعطاف پذیری بالا و ویژگی های قدرتمند ، بسیار محبوب شده است.در لیست زیر هشت Addons برتر رایگان Asteerisk معرفی شده است ، فراموش نکنید که Asterisk –addons ، Package است شامل پشتیبانی Mysql برای CDR(call detail Records) ، CDR اطلاعات مربوط به تماس ها ، شامل تماس گیرنده...
استریسک سیستم پیچیده و بزرگی است، هر زیر قسمت از این سیستم بزرگ با برخی فایل ها سرو کار دارد، این فایل ها ممکن است فایل های صوتی، پیکربندی، ذخیره سازی و یا با موارد استفاده دیگر باشند، به هر حال اگر می خواهید یک Asterisk باشید باید جای این فایل ها و کاربرد آنها را بدانید، در ادامه به سراغ یکسری از پوشه های...
با توجه در درخواست دوستان روند نصب سیستم تلفنی استریسک را در مقاله ای کوتاه توضیح خواهم داد، نصب استریسک روند ساده ای دارد، فقط دقت داشته باشید در برخی از این مراحل نیاز به بستر اینترنت برای دریافت بسته های برنامه می باشد.
روند نصب استریسک ۱٫۸ :
۱ –-نصب بسته های نرم افزاری پیشنیاز بر روی سیستم عامل
۲ - دانلود و نصب بسته نرم...
اطلاعاتی که بین PBX شما و تلفن IP منتقل میشوند از قالب خاصی تبعیت میکنند. این قالب که مشخص کنندهی پهنای باند، نوع و میزان فشده سازی صدا میباشد Codec نامیده میشود. باید توجه داشته باشید که Codec های انتخاب شده برای هردوطرف تماس باید دقیقاً برابر باشند. در غیر این صورت به احتمال بالا هریک از دو طرف قادر به دریافت اطلاعات درست نخواهند...
استریسک محبوب ترین سیستم تلفنی ویپ کد باز در دنیا است، در حال حاضر بسیاری از IPPBX های موجود بر مبنای آن تولید شده اند.
معرفی
استریسک در سال 1999 توسط مارک اسپنسر مدير عامل شرکت ديجيوم در قالب GNU/GPL پايه گذاري شده. استريسک گامی است در جهت عموميت بخشيدن به روشهای گوناگون ارتباطی مبتنی بر شبکه های کامپيوتری و محيطی برای ارتباطات...