الدرس السابع:ماكرو Macro

هنا سيتم شرح نظام أستريسك نظريا عن طريق سلسله من الدروس ان شاء الله تعالى.
أضف رد جديد
albalawi
مدير الموقع
مشاركات: 234
اشترك في: 11 مايو 2010, 19:53
مكان: Germany
اتصال:

الدرس السابع:ماكرو Macro

مشاركة بواسطة albalawi »

السلام عليكم ورحمة الله وبركاته.
الماكرو عباره عن مجموعه من العمليات او التطبيقات التي يمكننا ان نعيد استخدامها اكثر من مره ,وكذالك هنا في أستريسك ينطبق هذا الكلام.وباستخدامها نوفر كثيرا من كتابه نفس الشئ اكثر من مره.
الصيغه:

كود: تحديد الكل

Macro(savestatus,arg1,arg2...)
[macro-savestatus]
كما تلاحظون الصيغه تتكون من تطبيق الماكرو واسم الماكرو الذي سوف ينفذه بالاضافه للمتغيرات التي بامكاننا ان نرسلها للماكرو. وكذلك كماتلاحظون فان جزء الماكرو يتكون من الكلمه macro ثم اشاره _.وعند طلب الماكرو فانه يتم القفز داخله الى الوصله S ذات رقم الاولويه واحد.
المثال التالي:

كود: تحديد الكل

[outCall]
exten => _X.,1,Dial(SIP/Trunk1/${EXTEN})
exten => _X.,2,Macro(HalDialStatus,${DIALSTATUS})

[macro-HalDialStatus]
exten => s,1,NoOp(DIALSTATUS:{${ARG1})
فانه يتم الاتصال برقم ما من خلال الوصله ذات رقم الالويه واحد وعند الانتهاء من تنفيذoutCall عند استخدام الجزء
الوصله الاولى يتم الانتقال للوصله الثانيه ومنها ينتقل الى تنفيذ الماكرو الذي يطبع لنا نتيجه الاتصال.
استخدام المتغيرات:
كما لاحظتم في المثال السابق باننا استعملنا متغير واحد داخل الماكرو,بل نستطي استعمال اكثر من متغير فيصبح المثال السابق كالتالي:

كود: تحديد الكل

[outCall]
exten => _X.,1,Dial(SIP/Trunk1/${EXTEN})
exten => _X.,2,Macro(HalDialStatus,${DIALSTATUS},${EXTEN})

[macro-HalDialStatus]
exten => s,1,NoOp(DIALSTATUS:{${ARG1})
exten => s,2,NoOp(Exten:{${ARG2})
متغيرات الماكرو الخاصه:
العديد من الدوال عند تنفيذها تقوم باعطائنا متغيرات خاصه بها ,لذالك عند استعمالنا للماكرو فانه يعطينا المتغيرات الخاصه به التاليه:
MACRO_CONTEXT اسم الجزء القادم منه
MACRO_EXTEN اسم الوصله القادم منه
MACRO_PRIORITY اسم رقم الاولويه القادم منه

المثال التالي يوضح ذالك:

كود: تحديد الكل

[MacroTest]
exten =>100,1,Macro(doTest)

[macro-doTest]
exten=>s,1,NoOp(MACRO_CONTEXT:${MACRO_CONTEXT})
exten=>s,2,NoOp(MACRO_EXTEN :${MACRO_EXTEN})
exten=>s,3,NoOp(MACRO_PRIORITY:${MACRO_PRIORITY})
exten=>s,4,hangup()
النتيجه:
lesson7Bild1.png

الماكرو المتداخله:
اكبر عدد مسموح به هو 7. اي انه اذا اردت الحصول على النتيجه المطلوبه لا تستعمل ماكرو يطلب ماكرو ثم يطلب اخر اكثر من 7 مرات.
استخدام التطبيق WaitExten داخل ماكرو لن يعمل كما هو مرجو منه,لذالك استعمل الاقتران Read لقراءه ال DTMF من القناه الحاليه المستخدمه لل ماكرو.

جميع الحقوق محفوظة لموقع أستريسك للعرب
ليس لديك الصلاحية لمشاهدة المرفقات
albalawi
مدير الموقع
مشاركات: 234
اشترك في: 11 مايو 2010, 19:53
مكان: Germany
اتصال:

Re: الدرس السابع:ماكرو Macro

مشاركة بواسطة albalawi »

ءءء
elmadysm
مشاركات: 27
اشترك في: 09 فبراير 2011, 21:16

Re: الدرس السابع:ماكرو Macro

مشاركة بواسطة elmadysm »

مجهود رائع
بارك الله فيك
أضف رد جديد

العودة إلى ”الجزء الاول:المقدمه والدروس Introduction and lessons“