33
www.cytco.net www.iranvoipshop.com آموزش برنامهسی نوی درتریسک اس به زبانDIAL PLAN ویسنده ن: دری مسعود حی

DIAL PLAN نابز هب - rmalekghasemi.ir · .ذضات یٔ Asterisknow-TrixBox-Elastix شیظ٘ ٖآ ت ... شیص تسٛغ ٝت etc/asterisk/extension_custom.conf شیسٔ سد

Embed Size (px)

Citation preview

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:

[email protected]

[email protected]