DIAL PLAN نابز هب - rmalekghasemi.ir · .ذضات یٔ Asterisknow-TrixBox-Elastix شیظ٘...
-
Upload
nguyenkhanh -
Category
Documents
-
view
229 -
download
2
Transcript of DIAL PLAN نابز هب - rmalekghasemi.ir · .ذضات یٔ Asterisknow-TrixBox-Elastix شیظ٘...
www.cytco.net www.iranvoipshop.com
استریسک در نویسی برنامه آموزش
DIAL PLAN زبان به
مسعود حیدری: نویسنده
www.cytco.net www.iranvoipshop.com
dial plan زبان به استریسک نویسی برنامه
مقدمه
تحالت اخیشدسحص خاتشات خای خت یشی آ ت ست ایداد تسؼ سیست ای استثاعی تحت ضثى تاثیشات
اشص ضثى ای تفی ثتی تشسئیچی ذاسی ت . تسضایی تش سیست ای تفی سذ پیطشفت آا داضت است
دس ای یا ساىاسای تسیاسی تسظ ضشوت ای ختف . ستذIPBaseسشػتذس حا خایضیی تا ضثى ای تفی
. یىی اص ؼشفتشی آا ضشوت دیدی ی تاضذ و ساىاس ت تاص استشیسه سا ؼشفی د است. اسائ ضذ است
اغس و یذایذ استشیسه یىی اص لذستذتشی حثب تشی سافت سییچ ای ت تاص خد دس دیای خاتشات
ITیىی اص ػذ تشی دالی حثتیت آ اىا تشا یسی ت صتا ای ختف تش سی ای سافت سییچ . ی تاضذ
. ی تاضذAsterisknow-TrixBox-Elastixسخ ای تفات آ ظیش
صیشا اىا . ساصا ای ختف لشاسشفت استITتا تخ ت ای لاتیت، استشیسه دس ساای اخیش سد تخ ذیشا
. ذیشیت ضخػی ساصی سیست تفی آ ساصا تا استفاد اص تشا یسی فشا ی تاضذ
ی پشداصی تا دس ظش داضت ای ىت و دسای صتا تشا یسی اص تؼذاد صیادی dialplanدس ای ما ت تشا یسی
application function استفاد ی ضد سؼی تش آ است و ت غست خاغ ختػش ت ؼشفی آا پشداخت تا روش
. ثا ای تؼذد ت عس واستشدی اص ای تاتغ استفاد ایی
Dialplan
Dialplanاستشیسه ای صتا سا دس لاة فشت ت ػا صتا اغی تشا یسی لة استشیسه ضاخت ضذ استtext
. ؼشفی یایذو ضا لست ای صیش ی تاضذ
Context
Dial Plan ا ت تخص ای تفاتی تمسی ی ضذ و ش تخصContextایذ ی ضد .
. حسب ی ضذContext تخطی اص آ contextتای دستساؼ ای ضت ضذ تؼذ اص تؼشیف ش
. لشاسداد ی ضذ[]ا داسای اسای حع ت فشد ی تاضذ و ای اسای تی ػالت contextش یه اص
context ات د غست[globals] , [general]تؼشیف ی ضذ .
. [out-00][incoming]: .تؼا ثا. ی تاذ ػذد، حشف یا تشویثی اص آا تاضذ contextا ش
اص ا زاسی : ىتcontext ا ت غست [general], [default], [globals] خدداسی ویذ.
دس : ىتcontext ا ی تایذ تا دستسinclude ،Goto،...contextای دیش سا فشاخای ویذ .
www.cytco.net www.iranvoipshop.com
. سا اص مغ ضشع طا یذذdialplanا دس channel configuration contextضى صیش استثاط تی
اص تشی پاساتشای سد یاص دس تؼشیفchannel extensionواتىس ا ی تاضذ .
Extensions
Extensions:الص تزوشست و .دس استشیسه ؼال ت یه ضاس یا ضاس اضاس ی ایذextension یىیاص تشی
. ا استفاد دextentionsی تا ت تؼذاد سد یاص اص context دسش .ا حسب ی ضدcontextتخص ای
: آ ت غست صیش است syntaxا ت س تخص تمسی ی ضذ Extensionsت عس وی
exten =>extension_name, priority, application
: ثا
exten => 123,1,Answer()
: دس ادا ت ؼشفی شیه اص ای لست ا ی پشداصی. تاضذ. .. حشف، یتاذ ػذدExtensionsا
extension_name : ضاس ای است و ی تاذ ػذد یا حشف تاضذ، و ؼال ت غست ػذد تیا ی ضد اذ ضاس
. تف
Extension “s” : ت ؼیstart ای و ضاس ای اص عشف .ی تاضذ (اص ع حشف) اص پشواستشدتشی ع ضاس ا
ت ػا . دسیافت طد لات استفاد ی تاضذextensions numberتاس یشذ شفت طد یا تسظ استشیسه ضاس
. اغیسیشدی ی ضدivrصایى تاس ت :ثا
Extension “h” : ت ؼیhangupیثاضذ ای ضاسای و تاس یشذ تاس سا لغغ یىذ فشاخای ی ضد .
www.cytco.net www.iranvoipshop.com
Extension “t”: ت ؼیtimeout ای و.یثاضذcontext، timeout یطد واستش ضاس ای اسد ىذ ای
. ضاس فشاخای ی ضد
Extension “i”: ت ؼیinvalidیثاضذ صای و واستش ضاس اضتثا اسد یىذفشاخای ی شدد .
Priority
ی تاضذصایى واتىس ا تسظ استشیه فشاخای ی ضذؼال contextت ؼای ایت دس اخشای شاح یه
یثاضذpriority :1ای خظ تشا داسای
exten => 123,1,Answer()
exten => 123,2,Hangup()
Priority”n”: ت ؼای next ی تاضذ تشای اخشای خظ ت خظ تشا ت غست incrementalاستفاد ی ضد .
exten => 123,1,Answer()
exten => 123,n,do something
exten => 123,n,do something else
exten => 123,n,do one last thing
exten => 123,n,Hangup()
استفاد ایی same ی تای اص دستس contextت ظس ساد تش ضذ یه
exten => 123,1,Answer()
same =>n,do something
same =>n,do something else
same =>n,do one last thing
same =>n,Hangup()
Priority labels
تؼیی وشد دس غست ض دس حی تشا یسی ادا وذ سا ت آ lable یهتشای شایتcontextی تا دس ش
. طخع اسخاع دادlableایت خاظ تا
: ثا
exten => 123,n(label),application()
تؼیی: ىتlable تشای یه priorityت غست صیش ادسست خاذ تد .
www.cytco.net www.iranvoipshop.com
exten => 123,n,(label),application()
Application
.ا استفاد یىی applicationا functionاص dialplanطات تا صتا ای تشا یسی دس
applications ا ای لاتیت سا داسا ستذ وشػ خاغی سا دسchannel اخشا ایذ .
dial دس استشیسه ؼشفی د دس تشا یسیapplication function 400 ای 300ت عس وی ی تا حذد
planدس ادا تاروش ثا ت ؼشفی پشواستشدتشی ای تاتغ ی پشداصی. اص اا استفاد وشد.
Answer
Syntax: Answer ([delay])
ی تا تشای ای تاتغ تشحسة یی ثای تاخیش . استAnswer لات اػا ی تاضذ تاتغchannelای تظیاتی و تشای ش یىی اص
.دس ظش شفت ضد
Playback
Syntax: Playback(filename1[&filename2...][,options])
. ای تاتغ غشفا اىا پخص فای ای غتی اص پیص ضثظ ضذ سا ت ا ی دذ
. ت عس پیص فشؼ سیش فای ای غتی دس سیش صیش ی تاضذ
/var/lib/asterisk/sounds/
Playback(filename) Playback(custom/filename)
اش فای غتی دس سیش خاغی تاضذ ی تایست تشای فشاخای آ فای ت غست صیش اص ای تاتغ استفاد وشد: ىت.
Playback(/home/masoud/sounds/filename)
. دلت ویذ یاصی ت تؼیی پسذ فای غتی یثاضذ
. استشیسىث غست اتاتیه تتشی ویفیت سا تشای پخص فای غتی اتخاب ی ایذ
. فای غتی سا ت اتا سساذ خظ تؼذی تشا سا اخشا د#ی تایذ دس حی پخص فای غتی تا فطشد ویذ
Hangup
Syntax: Hangup()
اص ای تاتغ . سا تش ی شداذ 1-ی وذ، دسای حات ػذد Hang up سا لغغ وشد یا ت اغغالح آ سا channelای تاتغ
.ؼال دس اتای تشا ا استفاد ی ضد
www.cytco.net www.iranvoipshop.com
ىت:
تا تخ ت حثتیت استیىس واستشی آسا ای ش افضاس تسیاسی اص واستشا یض ای سخ سااتخاب د تشای سفاسضی
الص ت روش است دسا تشا یسی ی . ساصی سیست تفی خدالذا ت تشا یسی تش سی استشیسه ی وذ
: تایست ىات صیش سا اس دس ظش داضت تاضیذ
. دس سیش ای صیش ایداد ی ضذاdialplanاس -
etc/asterisk/extensions.conf
تظیات اغی ای ضا
extensions_additional.conf:
freepbx ا تغیشای ایداد ضذ تسظ Dialplan ضا
تاتشای ش تغییش دستی دس ای فای . ی ضدoverwrite ای فای freePBXالص است تذای تؼذ اص ش تغییش دس
. غمی ی تاضذ
ایداد ویذ ی تایست تخطی سا و تغییش داد ایذ دس ای فای free pbx تشای آى تتایذ تغییشات دستی دس
extension_freepbxoverrideییذ وپی ا.
extensions_custom.conf
ضا Dialplan ایداد ضذ تسظ واستش
. خد سا ت عس ػی پیاد ساصی ی ویdialplanتا روش ثا ساد ای
. ت غست صیش پیاد ساصی ی ویetc/asterisk/extension_custom.conf خد سا دس سیش Contextدس اتتذا -1
Include=>test
[test]
exten =>100,1,Answer()
same =>n,Playback(hello-world)
same =>n,Hangup()
. یىیreloadسا تا استفاد اص واذ صیشdialplanسپس فای سا رخیش ی ایی لث اص تست، -2
Asterisk -rx “dialplan reload”
فق سا پاسخ فت فای غتی app answer() ،channel. سا ضاس یشی یىی100ضاس dial planتشای تست ای -3
hello-word سا و دس سیش پیص فشؼ لشاس داسدplayback یا پخص ی وذ ایتا channelلغغ ی شدد.
Record
Record(filename:format|silence[|maxduration][|option])
www.cytco.net www.iranvoipshop.com
پخص فای )ا اخشای ای دستس تؼذ اص ضیذ غذای تق .ای دستس اىا ضثظ فای غتی سا ت واستش خاذ داد
beep ) تا تخ ت . سا تفطاسد ادا خاذ یافت#ضثظ غذا ضشع تا صای و واستش ویذsyntax واستش دس ای دستس ،
اىا ایداد حذدیت دس صا ضثظ، تؼیی فشت فای غتی، ا فای ضثظ ضذ چی تؼیی ىا رخیش ساصی
. فای ضثظ ضذ سا خذ داضت
. ت ثا صیش تخ ویذ
exten => 6597,1,Answer(5)
same =>n,Record(en/custom-menu.gsm)
same =>n,Wait(1)
same =>n,Playback(custom-menu)
same =>n,Hangup()
ىث #تا فطاس داد ویذ . رخیش یطدgsm فشت custom-menu تا ا enدس ای ثا فای غتی دس صیش ضاخ
. ثای فای غتی رخیش ضذ دذدا پخص ی ضد1ت ذت
Goto
Syntax: Goto([[context|]extension|]priority)
. اص ای دستس تشای اضاس وشد یا پشش ت تخص ای ختف یه تشا استفاد ی ضد
: ثا
exten => 201,1,Goto(TestMenu,start,1)
.. [TestMenu]
exten => start,1,Answer()
Background
Syntax:
Background(filename1[&filename2...][|options[|langoverride][|context]])
ی تاضذ تا ای تفات app Playbackطات . اص ای تاتغ ت ظس پخص فای غتی تا اىا وتش آ استفاد ی ضد
ای تاتغ تسیاس پش واستشد تد دس . سا داسدDTMFو دس ا پخص فای غتی، واستش اىا فطشد ویذ یا اسد وشد
. اص آ استفاد ی ضدIVRتیطتش اسد تشای ایداد
: ثا
[TestMenu]
www.cytco.net www.iranvoipshop.com
exten => start,1,Answer()
same =>n,Background(main-menu)
WaitExten()
. سا داسدdtmf واستش اىا اسد وشد backgroundتا ای دستس اذ
دس الغ طخع وذ ذت صای است و تؼذ اص . یطد استفادivrتشایساختbackgroundاص ای دستس ؼالتشا
. اصعشف واستش ی ضدDTMFاتا فای غتی استشیسه تظش اسد وشد
[TestMenu]
exten => start,1,Answer()
same =>n,Background(main-menu)
same =>n,WaitExten(5)
exten => 1,1,Playback(digits/1)
exten => 2,1,Playback(digits/2)
. خد سا ی ساصیivrحا تا روش یه ثا ػی ای
: extension_custom.confدس
Include=> Testivr
[Testivr]
exten =>333 ,1,Answer()
same =>n,Background(main-menu)
same =>n,WaitExten(5)
exten => 1,1,Playback(digits/1)
same =>n,Goto(Testivr,333t,1)
exten => 2,1,Playback(digits/2)
same =>n,Goto(Testivr,333,1)
exten => i,1,Playback(pbx-invalid)
same =>n,Goto(Testivr,start,1)
exten => t,1,Playback(vm-goodbye)
www.cytco.net www.iranvoipshop.com
same =>n,Hangup()
اسد ضد ػذد خاذ 2 یا 1دس غستی و ػذد فای غتی پخص ی شدد 333دس ثا فق تؼذ اص ضاس یشی ػذد
دس غستی و واستش ػذدی اضتثا اسد وذ تاس ت . دذدا اخشا خاذ ضذ Go toضذ تشا تا استفاد اص دستس
i(invalid number)اش واستشدس حی پخص فای یا تؼذ اص آ ت ذت . سیشدی ی ضد پیغا خغا پخص ی شدد
t(timeout)تشا تشای ثای تاس سا ت سیشی و دس10 ثای ػذدی سا اسد ىذ استشیسه ت عس پیص فشؼ تؼذ اص 5
. تؼشیف ضذ است ی فشستذ
Read Application
Read(variable[|filename][|maxdigits][|option][|attempts][|timeout])
واستشلادس خاذ تد دس applicationتا استفاد اص ای . ی تاضذBackground تسیاس ضثی ت تاتغ applicationsای
. اسد ایذ dtmfحی پخص فای غتی
ی تا تا پاساتش :ىتmaxdigits واستش سا دس تؼذاد اسد وشد ضاس حذد وشد .
. ت ثا صیش تخ ویذ
exten=>6123,1,Read(Digits,enter-ext-of-person)
exten=>6123,n,Playback(you-entered)
exten=>6123,n,SayNumber(${Digits})
Dial
Syntax: Dial(type/identifier, timeout, options, URL)
Dial یىی اص تشی پشواستشدتشیapplicationا تشای ضاس یشی اتػا تاس یشذا ت یىذیش ی تاضذ .
. ای آ سا سد تشسسی لشاس ی دی Argumentت دی ایت صیاد ای تاتغ تای
Argument 1: Destination
ای مػذ ت د تخص تمسی ی شدد و تا . طخع وذ ی مػذی است و لػذ تاس تا آ سا داسیargumentای
تخص ا آ ع واای است و ی خای تا آ تاس تیشی تخص د ضاس یا ضاس . اص خذا ی ضذ/ ػالت
. ی تاضذ channelآ
Destination:type/identifier<<<<<<--------------------->>>>>مػذ :ع واا/ضاس یا ضاس
ىت :
. تاضذ.... ,DAHDI,SIP ,IAX... ع واا ی تاذ -
.تاضذ.....ضاس یا ضاس ی تاذ ضاس واا یا ضاس داخی، ضاس ضشی یا -
www.cytco.net www.iranvoipshop.com
: ثا
[custom-Dial] exten=>502,1,Dial(SIP/502)
exten=>503,1,Dial(IAX/503)
exten=>504,1,Dial(DAHDI/1)
exten=>505,1,Dial(DAHDI/g0/88209229)
طا داد ضذ FXS یا داخی اص ع Sip, IAX: دس ثا فق عشیم ضاس یشی استثاط تا داخی ای تفات ظیش
. اسائ شدیذ استE1 یا FXOػال تش آ دس اخشی ثا چی استثاط تا ضاس خغط ضشی اص عشیك تشاه . است
. ی تایذ ضا تا ماغذ ختف تاس حاغ ویذ&الص تزوشست تا استفاد اص ػالت
exten => 100,1,Dial(DAHDI/1&SIP/0004F2001122&IAX2/Softphone)
. ضشع ت ص خسد یىذringall ت عس ضا تا استشاتژیDestination تای 100تا ضاس یشی
یطد فسا ص خسد تمی bridgeوشد است answerسا channel دس ای حات تاس سدی تا ای مػذی
. داخی ا تلف ی شدد
Argument 2: Timeout
.ذت صا اتظاس تشای ص خسد ی تاضذ argumentف ای
: ثا
exten => 201,1,Dial(DAHDI/1,10) same => n,Playback(vm-nobodyavail)
same => n,Hangup()
. تاس تشلشاس وذ 1دس واا FXS تا داخی آاي201دس ثا فق تاس یشذ سؼی داسد تا شفت ضاس
دس غیش ای .خاذ ضذ استثاط تا داخی سد ظش تشلشاس ی ضد bridge ضد واا answer ثای تاس 10اش لث اص
. پخص ی شدد واا لغغ ی ضد playback ثای پیغا 10غست تؼذ اص
. ادا خاذ یافتringing وشد واا، ػیات hangupوشد یا answer تظی طد تا صا timeoutاش تغیش
no answer, busyپاسخ ثاضذ یا ضؼیت آا یىی اص حات ای (destination )ای و داخی ای مػذ
unavailable....تاضذ استشیسه تغیش DIALSTATUS سا فشاخی یىذ تشا تا حفظ ایت(priority ) ادا ی
. آضا خایذ ضذ تیطتشDIALSTATUSدس آیذ تا تغیش . یاتذ
Argument 3: Option
www.cytco.net www.iranvoipshop.com
دس ادا ت اختػاس ت ؼشفی دسد اص پشواستشدتشی ای . است و داسای پاساتشای صیادی ی تاضذstringای تغیش اص ع
. پاساتشا ی پشداصی
: m ،تا استفاد اص ای پاساتش تاس یشذ اص اتتذای ضاس یشی تدای ضیذ غذای تقmusic on hold سا ی
. ضد
exten => 201,1,Dial(DAHDI/1,10,m) same => n,Playback(vm-nobodyavail)
same => n,Hangup()
L(x[:y][:z]) :تشای حذد وشد ذت صا ىا تاس یشذ اص ای پاساتش استفاد ی ضد .
Xاحذ آ تشحسة یی ثای ی . ذت صا داص تشای ىا است تؼذ اص زضت ای ذت صا تاس لغغ ی شدد
.تاضذ
Yاحذ آ یض تشحسة . ذت صا تالی اذ ت پایا ىا است و ت ظس اػال طذاس لغغ اص آ استفاد ی شدد
. یی ثای ی تاضذ
Z پیغا طذاس لغغ ش Z یی ثای لث اص لغغ اس تىشاس ی ضد .
exten => 100,1,Answer
exten => 100,n,Dial(sip/201,30,L(30000[:10000][:4000]))
exten => 100,n,Hangup
Argument 4: URI
url.وذ supportسا urlا لاتیت دسیافت endpointدس غستی و .ای آسا ت ذست سد استفاد لشاس ییشد
. خاذ ضذpopup دسغفح واپیتشsoft phoneا استفاد اص
:ثا
[TestMenu]
exten => start,1,Answer()
same =>n,Background(main-menu)
same =>n,WaitExten(5)
exten => 1,1,Dial(SIP/222,10) ;
same =>n,Playback(vm-nobodyavail)
www.cytco.net www.iranvoipshop.com
same =>n,Hangup()
exten => 2,1,Dial(SIP/333,10) ;
same =>n,Playback(vm-nobodyavail)
same =>n,Hangup()
exten => i,1,Playback(pbx-invalid)
same =>n,Goto(TestMenu,start,1)
exten => t,1,Playback(vm-goodbye)
same =>n,Hangup()
ىت :
. فمظ استفاد اص ای تغیش سد یاص است دس غست استفاد ىشد اص آسا ا خای آ سا خای تزاسیذ
exten => 1,1,Dial(DAHDI/1,,m)
(Variables)متغیرها
. اص تغیش ا تشای تثد تخطیذ تشا استفاد یىیdialplanاذ ش صتا تشا یسی دس -
. آا ت غست ست س ی تاضذSyntax.تغیشا داسای ا حػش ت فشد ی تاضذ و اعالػات سا دس خد رخیش یىذ-
${Name}
.تا حشف وچه تضسي ضت ی ضذdialplanتغیش ا دس -
: ت عس وی ت چذ ش تمسی ی ضذ-
(Global)متغیرهای اصلی-1
.تؼشیف ی ضذ[global] ت غستىاتىسglobals_custom.conf یا extensions.confای ع تغیشا دس فای
. دس ش تخطی اص تشا ی تاذ فشاخای ضذdialplanتغیشای اغی دس
[globals]
gexten=SIP/222
(Channel)متغیرهای کانال - 2
www.cytco.net www.iranvoipshop.com
ای ش تغیشایی ستذ و غشفا شتط ت یه تاس خاظ ی تاضذ فمظ تا صای و آ تاس تشلشاس یثاضذ ی
.... CALLERIDاذ .تا اص آ ا استفادآا سا فشاخی د
. تاؼىس تغیشای اغی سا ی تا دس ش ىای فشاخای وشد
. اعالػات واا خاسی سا دس خد رخیش ی وذ”()Set”ای ع تغیشا تا استفاد اص واذ
exten => 301,1,Set(masoud=SIP/100)
same =>n,Dial(${masoud})
. ت غستاص پیص تؼشیف ضذ خد ی تاضذchannelتؼذاد صیادی اص تغیشای
ت ای ع تغیشا و ت غست . فشاخی ایذdialplanاستشیسه ی تاذتؼضی اص تغیشای اص پیص تؼشیف ضذ سا دس
دس ادا ت چذ اص ای ).حػش ت فشد فمظ تا استفاد اصحشف تضسي سصس ضذ اذ تغیشایسیستی یضفتیطد
(. تغیشا اضاس ضذ است
}$ CALLERID(all)}, ${CALLERID(name)}, ${CALLERID(num)}, ${CHANNEL},
${CONTEXT}, ${EPOCH}, ${EXTEN}, ${SIPUSERAGENT}, and ${UNIQUEID{
: دس صیش یستی وا اص تغیشای سیستی ایص داد ضذ است
${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)
${CALLERID(ani2)} * - ANI2 (Info digits) also called Originating line information or
OLI
${CALLERID(all)} * - Caller ID
${CALLERID(dnid)} * - Dialed Number Identifier
${CALLERID(name)} * - Caller ID Name only
${CALLERID(num)} * - Caller ID Number only
${CALLERID(rdnis)} * - Redirected Dial Number ID Service
${CALLINGANI2} * - Caller ANI2 (PRI channels)
${CALLINGPRES} * - Caller ID presentation for incoming calls (PRI channels)
www.cytco.net www.iranvoipshop.com
${CALLINGTNS} * - Transit Network Selector (PRI channels)
${CALLINGTON} * - Caller Type of Number (PRI channels)
${CHANNEL} * - Current channel name
${CONTEXT} * - Current context
${DATETIME} * - Current date time in the format: DDMMYYYY-HH:MM:SS
(Deprecated; use ${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)})
${DB_RESULT} - Result value of DB_EXISTS() dial plan function
${EPOCH} * - Current unix style epoch
${EXTEN} * - Current extension
${ENV(VAR)} - Environmental variable VAR
${GOTO_ON_BLINDXFR} - Transfer to the specified context/extension/priority after a
blind transfer (use ^ characters in place of | to separate context/extension/priority when
setting this variable from the dialplan)
${HANGUPCAUSE} * - Asterisk cause of hangup (inbound/outbound)
${HINT} * - Channel hints for this extension
${HINTNAME} * - Suggested Caller*ID name for this extension
${INVALID_EXTEN} - The invalid called extension (used in the "i" extension)
${LANGUAGE} * - Current language (Deprecated; use ${LANGUAGE()})
${LEN(VAR)} - String length of VAR (integer)
${PRIORITY} * - Current priority in the dialplan
${PRIREDIRECTREASON} - Reason for redirect on PRI, if a call was directed
${TIMESTAMP} * - Current date time in the format: YYYYMMDD-HHMMSS
(Deprecated; use ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
${TRANSFER_CONTEXT} - Context for transferred calls
${FORWARD_CONTEXT} - Context for forwarded calls
${DYNAMIC_PEERNAME} - The name of the channel on the other side when a dynamic
feature is used.
${DYNAMIC_FEATURENAME} The name of the last triggered dynamic feature.
${UNIQUEID} * - Current call unique identifier
www.cytco.net www.iranvoipshop.com
${SYSTEMNAME} * - value of the systemname option of asterisk.conf
${ENTITYID} * - Global Entity ID set automatically, or from asterisk.conf
:طاذ خای وشد dial planتا روش ثا واستشد استفاد اص تغیشاسا دس
:ت غست صیش تؼشیف ی ویextensions.confتشای تؼشیف تغیش ای اغی ا عس و فت ضذ دس فای
[globals]
masoud=SIP/100
ali=SIP/200
reza=DAHDI/1
. استفاد وشدSetGlobalVarع تشا تشای تؼشیف تغیشای اغی اصدستسس چی ی تا د
[internal]
exten => 123,1,SetGlobalVar(masoud=SIP/100)
[lab]
exten => 4000,1,Answer
exten => 4000,n,Wait(1)
exten => 4000,n,Set(TIMEOUT(digit)=3)
exten => 4000,n,Set(TIMEOUT(response)=10)
exten => 4000,n,Background(custom/mainivr)
exten => 4000,n,WaitExten(,)
exten => 1,1,Goto(ext-603,s,1)
exten => 2,1,Goto(day-audio,s,1)
exten => 3,1,Goto(ext-doble,s,1)
exten => i,1,Playback(invalid)
exten =>i,n,Hangup()
exten => t,1,Hangup()
exten => hang,1,Playback(vm-goodbye)
exten =>hang,n,Hangup
[ext-603]
exten => s,1,Dial(${masoud},,r)
exten =>s,n,Hangup()
[day-audio]
exten => s,1,Playback(custom/day)
exten =>s,n,Hangup()
www.cytco.net www.iranvoipshop.com
[ext-doble]
exten => s,1,Dial(${ali}&${reza},10)
exten =>s,n,Hangup()
SayDigits()
ىا خاذ ضذ یه ػذد طخع تشای تاس یشذ ت غست سل ت سل فشا ی اapplicationای از تا استفاد
.ضد
: استشیسه مذاسصیش سا تشای خاعة ی خاذ saydigits(123)ت ػا ثا دسغست استفاد اصای تاتغ ت غست
One, Two, Three
SayNumber()
ىا خاذ اػذاد تشای تاس یشذا
. ای اىا فشا ی ضد و اػذاد طخػی تشای تاس یشذ خاذ ضدapplicationتا استفاد اصای
استشیسه مذاس صیش سا تشایخاعة ی saynumber(123): ت ای غستapplicationت ػا ثا تؼذ اصاستفاد اصای
:خاذ
"one hundred twenty three".
SayAlpha()
. اىاخاذ یه سضت اص حشفشا تشایتاسیشذ فشا ی وذapplicationای
: ت ػا ثا
SayAlpha(hello)
. سا تشای تاس یشذ پخص ی وذ"hello"صای و تشا ت خظ فق ی سسذ، استشیسه و
( )SayPhonetic: ای applicationتیا وذ و ت غست خفف ی تاضذ .
. خاذ یطدHotel Echo Lima Lima Oscar" و SayPhonetic(hello): ثا
الگوهای شماره گیری
دس . ای ضاس یشی دس استشیسه آضایی داسیpatternتا تخ ت حائضایت تد اای ضاس یشی، حتا تا ای)
(.ادا ت یادآسی تؼذادی اص تشی آا ی پشداصی
X : سا ضا ی ضد9 تا0 ش ػذدی تی .
Z : سا دس ضا ی ضد9 تا 1ش ػذدی تی .
www.cytco.net www.iranvoipshop.com
N : یثاضذ9تا2ش ػذدی تی .
. استفاد ی ضد.(_) underscoreوشد ا ا اص matchیسی تشای dialplanدس
:ت عس ثا
_NXX
_ X.
_.
سا دس اتتذای ای ( _ )الص تزوشست و اش: ىتpatternفشاش وی ، استشیسه آ سا ت ػا یه extension
nameای سد یىی اص اضتثاات سایح دس اتتذای واس تا . دسیافت ی وذdialplanیسی ی تاضذ .
: ثا
exten => _NXX,1,Playback(auth-thankyou)
تاضذ سا ضاس یشی وذ پیغا 9 تا 0 د سل تؼذی آ اص 9 تا 2 سلی و سل ا آ اص 3دس غستی و واستش ػذدی
auth-thankyouتاضذ999 تا 200دس الغ ای ػذد ی تاذ ػذدی تی . پخص خاذ ضذ .
. وشد پیذا وذ، تاس سا ت ای ضثی تش دلیك تش سیشدی ی ایذmatchاش استشیسه د ای طات سا تشای -
. وذ دستس د اخشا خاذ ضذdial سا 5551212دس ثا صیش اش واستش ضاس
exten => _555XXXX,1,Playback(silence/1&digits/1)
exten => _55512XX,1,Playback(silence/1&digits/2)
(channel variable)متغیرهای کانال
فت extensionsدس حمیمت ت ضاس شفت ضذ یا . اص خ تغیش ای پش واستشد واا ی تاضذ{EXTEN}$تغیش
. ی ضد
: ت ثا صیش تخ ویذ
exten => _XXX,1,Answer()
same =>n,SayDigits(${EXTEN})
. تشای واستش ی خاذdigitآ سا ت غست SayDigits سلی تاتغ 3تؼذ اص شفت ش ضاس
${EXTEN:x} : اص ایsyntax ای و تخای ػذدی سا خذا وی استفاد ی ضد .
exten => _XXX,1,Answer()
www.cytco.net www.iranvoipshop.com
same =>n,SayDigits(${EXTEN:1})
. تیا ی ضد digit سل آخش ت غستشل سل یا دس اغغالح 2دس ای ثا سل ا حزف
exten => _XXX,1,SayDigits(${EXTEN:-1))
. ی ضدdigti سل ا حزف فمظ سل آخش ت غست 2دس ثا تاال
${EXTEN:x:y} : دس ایsyntax، X تؼذاد اسلای است و ی خای اص ػذد خذا ضد y تؼذاد اسلا اتخاب ضذ
.ی تاضذ
. ی تاضذ416 خشخی {EXTEN:1:3}$ 94169671111ت عس ثا دس ػذد
: ثا
[outbound-local]
exten => _9NXXXXXX,1,Dial(DAHDI/g0/${EXTEN:1})
exten => _9NXXXXXX,2,Congestion( )
( )GotoIfپرش شرطی
GotoIf(expression?destination1:destination2)
سذ واس ت ای غست است . اصای تاتغ تشای پشش تی خظ ای ختف تشا تا دس ظش شفت ضشط خاظ استفاد ی ضد
destination2 دسغیشای غست تاس تdestination1 دسست تاضذ تاس ت expressionوچاچ ضشط یا ا
. سیش دی ی ضد
: ی تاذ یىی اص اسد صیش تاضذ destinationsمػذ یا
-Priority Label : اذtest
-Priority Label, extension: اذtest,456
-context, extension, and priority label : اذincoming,test,456
: ثا
exten => 345,1,Set(TEST=1)
same =>n,GotoIf($[${TEST} = 1]?true:false)
same =>n(true),Playback(hello-word)
same =>n,Hangup()
same =>n(false),Playback(goodbye) same =>n,Hangup()
www.cytco.net www.iranvoipshop.com
exten => 345,1,Set(TEST=1)
same =>n,GotoIf($[${TEST} = 1]?:false)
same =>n,Playback(hello-word)
same =>n,Hangup()
same =>n(false),Playback(goodbye) same =>n,Hangup()
exten => 123,1,Set(COUNT=10)
same => n(start),GotoIf($[${COUNT} > 0]?:goodbye)
same =>n,SayNumber(${COUNT})
same =>n,Set(COUNT=$[${COUNT} - 1])
same =>n,Goto(start)
same => n(goodbye),Hangup()
exten => 123,1,GotoIf($[${CALLERID(num)} = 8885551212]?reject:allow)
same => n(allow),Dial(DAHDI/4)
same =>n,Hangup()
same => n(reject),Playback(abandon-all-hope)
same =>n,Hangup()exten => 123,1,GotoIf($[${CALLERID(num)} =
8885551212]?reject:allow)
same => n(allow),Dial(DAHDI/4)
same =>n,Hangup()
same => n(reject),Playback(abandon-all-hope)
same =>n,Hangup()
GotoIfTime
ای است و تا استفاد اص آ ی تا پیا ای خش آذیی تفاتی سا دس تاص ای applicationتشی واستشد ای
. صای ختف تشای تاس یشذا پخص د
Syntax ایapplicationت غست ستش ی تاضذ .
GotoIfTime(times,days_of_week,days_of_month,months?label)
غاتمت داضت تاضذ، سیست applicationت عس وی دس غستی و صا تاسیخ فؼی تا تاص صای طخع ضذ دس ای
. تاس سا ت ست یه یث ؼی سیشدی ی ایذ
(time)زمان
: ثا ی صیapplicationدس ادا چی تظی یه تاص صای دس یه ضثا سص سا تشای ای
www.cytco.net www.iranvoipshop.com
: تؼذاصظش تاضذ، ی تایست ت غست صیش ضت ضد5 غثح تا 9اش تاص صای سد ظش ا تی
-17:00, ....)09:00GotoifTime(
. خت ی ضد23:59 ضشع ت 0:00یه ضثا سص اصحذد صای : ىت
(day of week)روزهای هفته
سصای فت تایذ ت غست. دس ادا ت ظسآصش تؼیی یه تاص طخع تشای سصای فت چذ ثا آسد ضذ است
mon, tue, wed, thu, fri, sat, sunت ػا ثا اش ی خای حذد ای تی سص دضث تا خؼ . ضت ضذ
: سا طخع ایی تایذ ت غست صیش تیا ضد
GotoifTime(...,mon-fri,...)
days-of-month))روزهای ماه
. دس غستی و لػذ داسیذحذد ای اص سصای خاظ دسش ا سا تؼیی اییذ ی تایست اص ضاس آ سصا استفاد اییذ
اش ی خایذ ای تاص 1-31ت ػا ثا اش ی خایذ ای حذد تا سصای ا سا ضا ضد تایذ تیسسیذ
. 15&30سص پاضد سی ا یه ا سا ضا ضد تایذ تیسیذ
Months))ماه ها
: دس ای لست تایذ ا ا ای سد ظش ت غست صیش ضت ضد
jan, feb, mar, apr, and so on.
: ثا
exten => s,1,GotoIfTime(*,*,4,jul?closed,s,1)
. فشستاد ی ضدopenای ت ا contextدس ساػات واسی تاس ت
same =>n,GotoIfTime(09:00-17:59,mon-fri,*,*?open,s,1)
same =>n,GotoIfTime(09:00-11:59,sat,*,*?open,s,1)
. فشستاد ی ضدclosedای ت ا contextدس ساػات غیشواسی و دػ تؼغی ی تاضذ تاس ت
same =>n,Goto(closed,s,1)
Voicemail(صندوق صوتی)
یثاضذوذسادا Voice mailیىی اص خزاب تشی یژی ای سیست تفی تحت استشیسه غذق غتی یا ا
. ای آ اضاسطذاستfeaturesتثشخی اص
اىا تؼشیف غذق غتی ت تؼذاد احذد تشای واتشا -
. ت غست پیست ت آدسس اییvoicemail، اسسا voice2mailلاتیت -
voicemail busy, voicemail unavailable: تشای حات ای ختف واتش()voicemailتؼشیف -
www.cytco.net www.iranvoipshop.com
ی تاضذ و داسای تغیشای ختفی ی تاضذ، و دس etc/asterisk/voicemail.confدس سیش voicemailتظیات
. آیذ ت عس وی تشسسی ی ضذ
. یسی اص آ استفاد ی ضد اضاس ی ویdialplan و دس context voicemailدس ای تخص ت
ایی و اص mailbox ای اىا تشای ا فشا ی ضد و تظیات ختفی تش سی context voicemailت سی
.یىذیش ستم ستذ ادا دی
Mailboxesساخت
. استفاد ی ضد mailboxes صیش تشای تؼشیف Syntaxاص :
mailbox=>password,name[,email[,pager_email[,options]]]
Mailbox
. ی تاضذextension numberای ضاس ؼال ا ضاس داخی یا . است mailboxا ضاس
Password
ت اصای تغییش پسسد تسظ واستش ت سص voicemail.confفای .پسسد سد یاص تشای دستشسی ت غذق غتی ی تاضذ
. ی ضد
Email . ی تاضذ Voicemail آدسس ایی تشای دسیافت
pager_email . ت آدسس اییی خاظ اسسا ایذvoicemailاستشیسه ی تاذ پیغای ثی تش آا ساصی واستش اص دسیافت
Options ,time zone attach,serveremail, tz, saycid, review, operator, callbackیه سشی تظیات اضافی تشای
dialout, and exitcontext ی تاضذ و دس فایvoicemail.confخد است .
: ثا[default]
101 => 1234,JohnDoe,[email protected],[email protected]
102 => 4444,JaneDoe,[email protected],[email protected]
Voicemail -Dialplan . سیشدی ضدvoicemail پاسخی تاس ثدذ تاس ت john,janeحاتی سا دس ظش تیشیذ و تخای اش داخی
: استفاد یىیvoicemail(mailbox@context)دس ای حات اص دستس [internal]
www.cytco.net www.iranvoipshop.com
exten => 101,1,Dial(${ali},,r)
exten => 101,102,VoiceMail(b101@default)
b: حشفb لث اص voicemail سا تشای تاس یشذ پخص ی ایذ". داخی سد ظش اضغا یثاضذ"پیغا .(busy)
u: حشفuلث اصvoicemail ساپخص ی ایذ".داخیسد ظش دسدستشس یثاضذ"پیغا.(unavailable)
. اخشا ی ضد voicemail ثای خاب ذذ دستس 10دس ثا صیش دس غستی و واستش پس اص [internal] exten => 101,1,Dial(${ali},10,r)
exten => 101,2,VoiceMail(u101@default)
Voicemailدسترسی به
. استفاد ی اییdialplan دس ( )VoiceMailMainتشای دستشسی ت پیغا ای غذق غتی اص دستس
تا استفاد اص دستس صیش دس ثا تاال ت غذق غتی واستشا .ىت خاة تخ ای است و ای دستسآسا ذاسد
. دستشسی خای داضت
exten => 500,1,VoiceMailMain( )
Macros
. ا اص اوشا استفاد ی ضدdialplanدساستشیسه تشای خیشی اص تىشاس
.روش ضذ سا دذدا یادآسی ی ویVoicemailثای و دس لست
exten => 101,1,Dial(${JOHN},10)
same =>n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
same => n(unavail),VoiceMail(101@default,u)
same =>n,Hangup()
same => n(busy),VoiceMail(101@default,b)
same =>n,Hangup()
سا dialplanدس ای حات تایذ تاسا ای . تساصیvoicemail واستش100حا صای سا دس ظش ی یشی و ی خای تشای
ای واس غمی ت ظش ی آیذ صیشا ػال تشای و حد تشا صیاد ی ضد، ت اصای شتغییشدستشا احتا . وپی وی
. خغا یض افضایص ی یاتذ
تذی غست و تؼذ اص تؼشیف یه اوش تای داخی ا سا ت آ سیشدی ی . دسای الغ اوشا ت ا وه یىذ
.وی
. استفاد ی ایی()Macro اص دستسdialplanتشای فشاخای اوشا دس
Macroا تا استفاد اص . ا داسای تغیشای یژ ی تاضذmacro- دس اتتذای اوش آ سا اص context ای ؼی تایض
. ی ایی
. استفاد دsایextensionدساوشای تایستاص
www.cytco.net www.iranvoipshop.com
${MACRO_CONTEXT}
.دس حمیمت واتىسی است و اوش دس آ فشاخای ضذ است
${MACRO_EXTEN}
Extensionایاست و اوش دس آ فشاخای ضذ است .
${MACRO_PRIORITY}
.ای ضی ا ایت ای است و اوش دس آ فشاخای ضذ است
${ARG n }
تؼذ دی ${ARG1}ای آسا : ت ػا ثا. ای سد آسای است و ت اوش پاس داد ی ضد
${ARG2}
.یثاضذvoicemailثا صیش تؼشیف اغی اص اوش
[macro-voicemail]
exten => s,1,Dial(${ARG1},10)
same =>n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
same => n(unavail),VoiceMail(${MACRO_EXTEN}@default,u)
same =>n,Hangup()
same => n(busy),VoiceMail(${MACRO_EXTEN}@default,b)
same =>n,Hangup()
. فشاخای ویdialplanحاال ا ی تای اوش ساخت ضذ سا دس
exten => 101,1,Macro(voicemail,${JOHN})
exten => 102,1,Macro(voicemail,${JANE})
exten => 103,1,Macro(voicemail,${JACK})
: ثا
[macro-voicemail]
exten => s,1,Dial(${ARG1},20)
same =>n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,VoiceMail(${MACRO_EXTEN},u)
www.cytco.net www.iranvoipshop.com
same =>n,Goto(incoming,s,1)
exten => s-BUSY,1,VoiceMail(${MACRO_EXTEN},b)
same =>n,Goto(incoming,s,1)
exten => _s-.,1,Goto(s-NOANSWER,1)
GoSub()
dialplan اص تاتغ blockی تاضذ ای اىا سافشا ی وذ و تاس سات یه Macro تسیاس ضثی applicationای
. اتما دی ب استفاد اص یه تغیش طخع خظ تشا سا ت مغ ضشع تاصشداذ
. ػ ی وذ تا دس یاد داضت ای ىت و تاس اص ودا آذ است ()GOto اذ ()GOsubدس حمیمت
Local Channels
ی تاضذ و داسای یژی ای خزاتی ی local channels استفاد اص()Dialیىی اص سش ای ضاس یشی دس دستس
. تاضذ
. دس ادا تا روش ثا ت تضیح ای دستس پش واستشد ی پشداصی
[LocalSets]
exten => 107,1,Verbose(2,Dialing multiple locations simultaneously)
same => n,Dial(SIP/0000FFFF0001&DAHDI/g0/14165551212&SIP/MyITSP/12565551212,30)
same =>n,Hangup()
ثای ص یخسذ،تاس سدی ت ای مػذی و سشیؼتش 30دس ای ثا تای ماغذ ت عس ضا ت ذت
channel ساanswer وشد است سیش دی ی ضد تالفاغ ص خسد تمی داخی ا تلف ی شدد.
حا ا ی خای تی ضاس یشی ا تاخیشایداد وی پس اص زضت ذت صا طخع ص خسد ش داخی
. استفاد ی ویLocal Channelتذی ظس اص . ساتلف ایی
Local Channelsت ثا صیش تخ ویذ . اىا وتش ش واا سا ت ا خاذ داد
[LocalSets]
exten => 107,1,Verbose(2,Dialing multiple locations with time delay)
same =>n,Dial(Local/channel_1@TimeDelay&Local/channel_2@TimeDelay
&Local/channel_3@TimeDelay,40)
same =>n,Hangup()
www.cytco.net www.iranvoipshop.com
[TimeDelay]
exten => channel_1,1,Verbose(2,Dialing the first channel)
same =>n,Dial(SIP/0000FFFF0001,20)
same =>n,Hangup()
exten => channel_2,1,Verbose(2,Dialing the second channel with a delay)
same =>n,Wait(10)
same =>n,Dial(DAHDI/g0/14165551212)
exten => channel_3,1,Verbose(2,Dialing the third channel with a delay)
same =>n,Wait(15)
same =>n,Dial(SIP/MyITSP/12565551212,15)
same =>n,Hangup ()
ضاس time delay واتىسماغذی ستذ و اص عشیكchannel_1, channel_2, and channel_3دس ای ثا
. تا فاغ صای طخع اص ضاس یشی ی ضذchannelsتا اخشای ای واتىس س . یشی ی ضذ
. ثای یثاضذ40ا channel تشای و timeoutذت صا
دسی حی دس ثای . ی ضدtime out ثای ص خسد،20پس اصزضت channel_1سذ واس تذی غست است و.
15چی پس اص . ادا خاذ یافتtimeout ثای شتط ت 40آغاص ی ضد تا پایا channel_2، ضاس یشی10
. ثای ادا خاذ یافت25 ضشع ت ضاس یشیی ایذ ت ذت channel_3ثای اصتاس ا
The Verbose and NoOp Applications
www.cytco.net www.iranvoipshop.com
پشواستشد applicationsت ظس ایص اعالػات ت غست حظ ای دسحیظ واذی استشیسه، ی تا اص ای د
. ا سد استفاد لشاس ی یشدdialplan وشد debug ؼال تشای applicationای د.استفاد د
Verbose ()ای پاساتشآ ت غست ػذدی یثاضذ شچ ای ػذد تیطتش تاضذ خضییات تیطتشی . داسای د پاساتشاست
. استاعالػات شتط ت تغیشای واا خاسی سا طا ی دذtextدی پاساتش و ت غست . ایص داد ی ضد
NoOp یض ت ف No Operationاغة ت ظس. یثاضذdebugىت ایداست و واستشد .وشد اص آ استفاد ی ضد
verboseتیطتش است .
:ثا
exten=>6123,1,Verbose(2,The channel name is ${CHANNEL})
exten=>6123,n,Verbose(2,The unique id is ${UNIQUEID})
Looping in the Dialplan
. یسی تشای خیشی اصتىشاسخغط تشا سد استفاد لشاس ی یشذ dial planدس(LOOP)حم ا
[IteratingLoop]
exten => start,1,Verbose(2,Looping through an action five times.)
same =>n,Set(X=1)
same =>n,Verbose(2,Starting the loop)
same =>n,While($[${X} <= 5])
same =>n,Verbose(2,Current value of X is: ${X})
same =>n,Set(X=${INC(X)})
same =>n,EndWhile()
same =>n,Verbose(2,End of the loop)
same =>n,Hangup()
: دس آ آسد ضذ استLoopآسد ضذ است و ثای وا واتشدی اص چی واستشد دستسivrدس ادا یه
[AutomaticAttendantDemo]
exten => _X.,1,Answer ; Answer inbound calls with 2 or
; more digits extensions
exten => _X.,n,Wait(2) ; Perform a simple 2 seconds delay
exten => _X.,n,Playback(welcome)
exten => _X.,n,Set(Loop=0)
exten => _X.,n,While($[${Loop} < 3])
exten => _X.,n,Background(menu)
exten => _X.,n,WaitExten(5) ; Wait 5 seconds for user to enter input
exten => _X.,n,Set(Loop=$[${Loop}+1])
exten => _X.,n(LoopEnd),EndWhile()
www.cytco.net www.iranvoipshop.com
exten => _X.,n,Hangup() ; No input from user, so hangup
exten => 1,1,Playback(msg1)
exten => 1,n,Dial(SIP/300,60,rg)
exten => 1,n,Hangup()
exten => 2,1,Playback(msg2)
exten => 2,n,Dial(SIP/301,60,rg)
exten => 2,n,Hangup()
exten => 3,1,Playback(msg3)
exten => 3,n,Dial(SIP/302,60,rg)
exten => 3,n,Hangup()
exten => 9,n,Hangup()
exten => i,1,Set(Loop=$[${Loop}+1])
exten =>i,n,Goto(LoopEnd)
exten => t,1,Set(Loop=$[${Loop}+1])
exten =>t,n,Goto(LoopEnd)
Authenticating Callers
. احشاص یت تاس یشذا ی تاذ ت ػا یىی اص یژی ای یه سیست تفی حسب ضد
Syntax ای applicationت غست صیش ی تاضذ :
Authenticate(password[|options]) اص یه ت ساد ت ػا پسسد استفاد اییذ: ىت .
Authenticate(/passwordfile|[|options])
تذی ؼاست و تشا ی تاذ آسای سا ت ػا ا یه فای تپزیشد و ضا یستی اص پسسد "/"استفاد اص واساوتش
.ا تاضذAuthenticate(/dbfamily/key|d) ;
. رخیش ی شددdatabaseای پسسدا ی تاذدس
[Authentication]
exten => start,1,Verbose(2,Simple Authenicate application example)
same =>n,Playback(silence/1)
same =>n,Authenticate(1234)
same =>n,Hangup()
دس تید صای و پسسد سا اسد ی . است4 آ maxdigitsدس ایدا سخ ای اغالح ضذ خد ی تاضذ و مذاس
اییذ
www.cytco.net www.iranvoipshop.com
. ی تاضذ# یاصی ت فطشد [Authentication]
exten => start,1,Verbose(2,Simple Authenicate application example)
same =>n,Playback(silence/1)
same =>n,Authenticate(1234,,4)
same =>n,Hangup() . ضشع ضذ تاضذا ی تای اص یه فای خاسخی ت ػا ثؼی اص پسسد ا استفاد ایی(/ )اش فیذ پسسد تا ػالت
[Authentication]
exten => start,1,Verbose(2,Simple Authenicate application example)
same =>n,Playback(silence/1)
same =>n,Authenticate(/etc/asterisk/authenticate/passwd_list.txt)
same =>n,Hangup()
[Authentication]
exten => start,1,Verbose(2,Simple Authenicate application example)
same =>n,Playback(silence/1)
same =>n,Authenticate(/authenticate/password,d)
same =>n,Hangup() .ا ی تای پسسدایی سا و دس دیتاتیس استشیسه سد استفاد لشاس ی یشذ، اغالح دس دیتاتیس اسد ایی
Creating Call Limits Using Groups
Originating a Call
ضایذ تشای ضا ای سا پیص آذ تاضذ و آیا ی تا تذ استفاد اص adminت ػا یه
Softphone,ipphone,….تاس تشلشاس وشد ، .
. دس ادا ت اسائ چذ سا حیپشداصی. ت ضا ت عشق ختف ی تایذ ای واس سا ادا دیذ
chan_oss.so moduleتا استفاد اص
. اخشا ویذputtyدستسات صیش سا دس
[root@elastixopt]# asterisk -r
elastix*CLI> module load chan_oss.so
== Parsing '/etc/asterisk/oss.conf': Found
== Registered channel type 'Console' (OSS Console Channel Driver)
Loaded chan_oss.so => (OSS Console Channel Driver)
elastix*CLI> console dial 100
elastix*CLI> console transfer 103@from-internal
www.cytco.net www.iranvoipshop.com
تػ ی ضد 103 ضاس یشی ی ضد ت داخی 100داخی
استریسک CLI و محیط channel originateتا استفاد اص
*CLI>channel originate SIP/myphoneapplication Playback demo-congrats
*CLI>channel originate SIP/myphoneextension 1234@DialplanContext
Originating a Call و محیط Dial plan
.یىی تشسسیdialplanسادسorginateاصدستس عشصاستفاد
. ت د سش ی تا اص ای دستس استفاد وشد
. ضدoriginate خاظ application یه channelتاس تی یه (1
originate<tech/data> application <appname> [appdata]
(ثا
exten => s,1,Originate(SIP/100,app,Playback,welcome)
. یطدplayback تشای داخی welcome، پیغا 100دس ای ثا تؼذ اص تشلشای تاس تا داخی
. ضدoriginate خاظ extension یه channelتاس تی یه (2
originate<tech/data> extension [<exten>@][<context>]
(ثا
exten => s,1,Originate(SIP/100,exten,default,s,1)
. سیشدی ی ضدpriority=1 تا contrext s=,extension [ default] ت100داخی
[globals]
PHONES_TO_PAGE=SIP/phoneA&SIP/phoneB&SIP/phoneC
[paging]
exten => 500,1,Answer()
same =>n,Record(/tmp/page.wav)
same =>n,Originate(Local/pageplayback@paging,exten,paging,page,1)
same =>n,Hangup()
exten => page,1,Answer()
same =>n,Page(${PHONES_TO_PAGE})
same =>n,Hangup()
www.cytco.net www.iranvoipshop.com
exten => pageplayback,1,Answer()
same => Playback(/tmp/page.wav)
Call File
. ا تاس ا سا ت غست تشا سیضی ضذ ستمی ت خاسج اص سیست ذایت وذ call fileاستشیسه ی تاذ ت وه
Call file ا تا پسذcall . ضشع ی ضد تشای اخشا ی تایست ت سیشvar/spool/asterisk/outgoing اتما
. داد ی ضذ
. آ سا اخشا یىذcallfileاستشیسه ش حظ ای سیش سا ایتس ی وذ دس غست خد
Call fileا داسای پاساتش ای ا ی ی تاضذ و ت تضیح آ ی پشداصی .
Channel: <channel> . تشای تشلشاسی یه تاس استفاد ی ضد تد ()dialای پاساتشضثی ت پاساتش
: استفاد ی ضدorginiatingت عسوی ت د سش اص . استثاط داد ضد اص پاساتش ای صیش استفاد ی ویdialplan خد دسextension ت channelت ظس ایى یه .1
Context: <context>
Extension: <exten>
Priority: <priority> 2 .channel ستمی ت یهapplicationsسیشدی ی ضد .
Application:<application>
Data: <data>
MaxRetries: <number>
ضد ثال fail اش تاس ت ش دیی . اوضی تؼذاد دفؼا ت تالش تشای تىشاس ضاس یشی دس غست ػذ تشلشاسی تاس
. ضاس یشی دذدا ادا ی یشد.... واا ا اضغا تاضذ
RetryTime: <number>
. ثای ی تاضذ300ت عس پیص فشؼ ای مذاس . فاغ صای تی ش تالش تشحسة ثای است
WaitTime: <number>
. ثای ی تاضذ45ت غست پیص فشؼ ای صا .ذت صا اتظاساضخسد و تش حسة ثای ی تاضذ
Callerid: <callerid>
ػثاست است اص واش آیذی استفاد ضذ تشای تشلشاسی تاس
Account: <account>
www.cytco.net www.iranvoipshop.com
. ایص داد ی ضدCDRدس غست مذاسدی ای پاساتش دس خذ
Setvar: <var=value>
. سا ی دذ channel variable اىا تظی یه یا چذ
Archive: <yes|no>
ضد دس سیش setا سا اص سیش فق پان یىذ دس غستی و ای پاساتشcallfileت عس ؼ پس اص اخشا، استشیسه
var/spool/asterisk/outgoing_done فای ای اخشا ضذ وپی ی ضد یه خظ و تیاش ضؼیت تاس ی تاضذ
Status: <Expired|Completed|Failed.ا اضاف ی ضد و ت غست صیش ی تاضذCallfileدس اتای
(ثاNote: move *.call to /var/spool/asterisk/outgoing/ 1.call
Channel: SIP/100 or (Channel: Local/100@from-internal)
Application: Playback Data: hello-world
2.call
Channel: DAHDI/g0/09372693697
MaxRetries: 0
RetryTime: 15
WaitTime: 15 Application: AGI Data: test.php
3.call
Channel: SIP/218
Callerid: 99999999999
MaxRetries: 10
RetryTime: 5
WaitTime: 20 Context: pa-call-file Extension: 100 Add the following options to etc/asterisk/extension_custom.conf
[pa-call-file] exten => 100,1,Answer()
exten => 100,n,Wait(1)
exten => 100,n,Playback(pa-message)
exten => 100,n,Wait(1)
exten => 100,n,Hangup()
www.cytco.net www.iranvoipshop.com
در استریسک Callbackسرویس
callbackتؼذ اص ضاس یشی یه داخی، اش ضاس مػذ اضغا تاضذ تاس یشذ دس غست تای ی تاذتاس سا
. فت ی ضدcompletionت ای یژی .یؼی ت عس اتاتیه تؼذ اص آصاد ضذ مػذ، تاس تشلشاس ضد. وذ
Call Completion و ت عسوی خفف Call Completion Supplementary Services (CCSS) ی تاضذ ت
دس تؼشیف option ت ػا یه freepbx ؼشفی ضذ استدس آخشی تصیغ asterisk 1.8ػا یه لاتییت خذیذ دس
. داخی سد استفاد لشاس ی یشد
completion دس تؼضی اص ipphone ثyealink ت ػا یه لاتیت feature تؼشیف ضذ است ی تا آ سا
. فؼا وشد
. یسی ای لاتیت سا فؼا ویذdialplanاا ضا یض ی تایذ تا
. خظ صیش سا اضاف ی وی2 تشای داخی etc/asterisk/sip_custom.confدس سیش (1
[100]
...
cc_agent_policy = generic
cc_monitor_policy = generic
[200]
...
cc_agent_policy = generic
cc_monitor_policy = generic
ثای تاس 20 یا ػذ پاسخیی پس اص 200 یا 100 صیش دس غست اضغا تد داخی contextت عس ثا دس (2
hangup ی ضد حا ی تا تشای دس خاست فؼا ساصی سشیس completion استفاد وی30* اص وذ .
[phones]
exten => 7101,1,Dial(SIP/100,20)
same =>n,Hangup()
exten => 7102,1,Dial(SIP/200,20)
same =>n,Hangup()
www.cytco.net www.iranvoipshop.com
exten => *30,1,CallCompletionRequest() same =>n,playback(callbackisactive )
same =>n,Hangup()
;
; Dial *31 to cancel a call completion request.
;
exten => *31,1,CallCompletionCancel()
same =>n,playback(callbackisdeactive )
same =>n,Hangup()
email: