نظام أستريسك يتكون من العديد من الملفات التي بمساعدتها يتم التحكم به. كل واحد له وظيفه معينه سيتم شرحها تدريجيا من خلال الدروس.
الملف الرئيسي الذي سوف نكتب به برامجنا هو ملف extensions.conf . طبعا البرمجه هنا نصيه يعني لا يوجد مترجم كمبايلر بل ستنفذ فورا مثل
لغات البرمجه النصيه الاخري ب ه ب و بيرل. وهذا الملف يحتوي على العديد من التقسيمات او الاجزاء وتسمى هنا Context .فيكون بعضها لاجراء الاتصالات
او استقبالها او لتوجيه الاتصال الى اي جهه اخرى .ومنها تستطيع تحديد صلاحيات كل خط على سبيل المثال هل مسموح له بالاتصال الخارجي ام فقط
داخلي او تجبره على الاتصال مع رقم محدد.
اجزاء خارطه الاتصال:
وتتكون من اربعه اجزاء :
الاول هو Context ومعناه الجزء او الحاله.
الثاني هو Extension ومعناه هنا في هذه اللغه وصله .
الثالث هو Priority اي الاولويه.
الرابع اسم التطبيق الذي سوف نقوم بتنفيذه مثلا الاجابه او اعطاء اشاره مشغول.وسيتم شرحها بالتفصيل بالخطوه التاليه.
:Context-1
وهو عباره عن مجموعه من Extensions (وصلات) وتاتي مرتبه حسب رقم الوصله ورقم الاولويه. المثال التالي:
كود: تحديد الكل
[InComming]
exten => 1001,1,Answer()
exten => 1001,2,Playback(hello-world)
exten => 1001,3,Hangup()
1-يتكون الاسم من احرف وارقام ويكون داخل [] يكون متصل لايسمح بالفراغ بالاسم ويسمح باشاره الطرح .
2- ويتكون من عده وصلات كما ترون في المثال .
3-ينتهي هذ ال Context عند بدايه Context اخر.
4-يمكن ان يكون فارغا.
5-ممكن ان يحتوي على Context اخر وذالك باستعمال الامر include .
شرح المثال:
InComming هو اسم الجزء و يتكون من ثلاث وصلات ويتم تنفيذها تباعا على حسب رقم الاولويه,والبدايه تكون من رقم واحد.
<=exten ياتي في بدايه كل وصله.
1001 رقم الوصله التي سوف نتصل عليها.
1و2و3 ارقام الاولويه ويبدأ دائما من رقم واحد .
Answer تطبيق الاجابه.
Playback تطبيق تشغيل ملف صوتي.
Hangup انهاء المكالمه.
هنا في هذا المثال تم التحكم في مجرى المحادثه, عندما يتصل احد على الرقم 1001 ننتقل الى وصله ذات الاولويه رقم واحد فيتم الاجابه
ثم ننتقل الى رقم الاولويه اثنين حيث تم تشغيل الملف الصوتي وفي هذه اللحظه يسمع المتصل كلمه Hello World او او اي كلمه ترحيب اخرى من النظام وبعد الانتهاء من الملف الصوتي,
ينتقل الى الوصله الثالثه التي تحتوي على الامر انهاء المكالمه Hangup وبه ينقطع الاتصال.
كما قلت هنا يتم معالجه مسار المكالمه وتصل هنا عن طريق ملف اخر حيث يستقبلها ويحولها الى هذا ال context وفي ذالك الملف يتم فيه تعريف القناه وهي انواع سنذكرها.
Extension-2
كما قلنا سابقا كل context يحتوي على مجموعه من Extensions الوصلات بتعبيرنا هنا والتي تحتوي على اوامر يقوم استريسك بقرائتها الواحده تلوه الاخرى حسب رقم الاولويه
ثم يقوم بتنفيذها ,ويتم ذالك على الاتصال الحالي الذي جاء عن طريق قناه خارجيه او قناه داخليه,وبما ان الوصلات تتحكم في مسير الاتصال بامكاننا عمل الكثير,مثلا نوصله مع شخص اخر حتى يتكلم معه اوتشغيل ملف صوتي حتى يسمعه اوتخزين الرقم في قاعده البيانات وكذالك بامكاننا عمل العكس البحث في قاعده الييانات عن المتصل ومعرفته واشياء اخرى كثيره جدا.
قواعد كتابه الوصلات Extensions :
1-تكون الصيغه كمايلي:
كود: تحديد الكل
exten=> Extension number,Priority,Application
(Extension number(or name رقم الوصله او اسمها.
Application:اسم التطبيق المراد تنفيذه.
ويتم الفصل مابين هذه المكونات الثلاث بفاصله.
مثال:
كود: تحديد الكل
exten=>100,1,Answer()
3-للتعليق على الوصله اوكتابه معلومات عنها يجب وضع فاصله منقوطه ثم تكتب ماتشاء.
مثال:
كود: تحديد الكل
exten=>100,1,Answer();I make this method to answer the call
كما في المثال السابق
كود: تحديد الكل
exten=>100,1,Answer()
exten=>100,2,Play(Hello)
exten=>100,3,Hangup()
5-اسم الوصله ممكن ان يتكون من احرف او ارقام او كليهما وكذالك ممكن ان يتكون من نماذج (باترن) تصلح لمطابقه مجموعه من الارقام وهذه النماذج لهاكما تلاحظ في في الوصله الاولى فلقد كان اسم اورقم الوصله يساوي 100وكان رقم الاولويه يساوي 1 واسم التطبيق Answer
وبا اننا نريد أستريسك ان يطبق هذه الوصلات الثلاث مره واحده فيجب ان يكون اسم الوصله فيها واحد بينهم.
وهو كذالك في مثالنا فانت ترى في الوصله الثانيه بقي اسم الوصله كما هو ولكن ازداد رقم الاولويه فاصبح 2
فوائد عظيمه وكذالك يوجد شروط لكتابتها سيتم شرحها لاحقا.
انواع الوصلات:
1-وصلات قادمه عن طريق المستخدم اي انه عندما يقوم مستخدم بالاتصال برقم فيجب ان يمر من هنا وكذالك في استقبال اتصال خارجي فيمر هنا وهذا هو غالب استعمال الوصلات.
2-وصلات قادمه عن طريق خدمه DTMF وهذه الخدمه عباره عن الاصوات التي تحدث عندما تكون تتكلم مع شخص ما وفي حال ضغطك على لوحه المفاتيح يصدر صوت وهو يختلف من مفتاح الى اخر,يستطيع استريسك التمييز بينهم ونقلك وصلك مع الوصله المطابقه.
3-وصلات من نوع خاص وتاتي من النظام مباشره او عند تنفيذنا Macro او عند وقت ما.
Priorities-3
كما قلنا فحتى يقوم استريك بالقيام بعده عمليات اوتطبيقات على اتصال ما فيجب ان يكون اسم الوصله واحدا ويتغير رقم الاولويه دائما بازدياد المثال:
كود: تحديد الكل
exten=>100,1,Answer()
exten=>100,2,Play(Merhaba)
exten=>100,3,Hangup()
قواعد كتابه ارقام الاولويه:
1-يجب ان تبدأ برقم واحد.
2-الزياده تكون دائما بواحد.
3-يمكنك استخدام الحرف n عوضا عن الزياده التي يجب ان تعملها دائما فيصبح المثال السابق كالتالي:
كود: تحديد الكل
exten=>100,1,Answer()
exten=>100,n,Play(Merhaba)
exten=>100,n,Hangup()
كود: تحديد الكل
exten => 300,1,GotoIfTime(9:00-17:00|mon-fri|*|*?300,open)
exten => 300,n, MP3Player (CallUsTommorrow)
exten => 300,n(open),answer()
exten => 300,n(open), MP3Player (wellcome)
5-ليس شرطا ان تاتي ارقام الاولويه مرتبه.اي ان المثال التالي سوف يعمل كما في الامثله السابقه:اذا اتصل احدهم في اوقات الدوام وهي هنا من الساعه 9 وحتى 17 (الخامسه مساءا) فسوف نجيب على المتصل ونرحب به,
واذا كان خارج اوقات الدوام فسوف نسمعه رساله صوتيه تفيده بان عليه الاتصال غدا.
كود: تحديد الكل
exten=>100,2,Play(Merhaba)
exten=>100,1,Answer()
exten=>100,3,Hangup()
ولكن من الافضل ان يكون مرتبا حتى يساعدك على الفهم وتحصل على النتيجه التي تريدها.
Application-3
وهي التطبيقات التي بامكاننا استعمالها في خارطه الاتصال.
لقد رايت في الامثله السابقه بعص هذه التطبيقات فهي متنوعه وكثيره فبعضها يتم تنفيذه مباشره ليس بحاجه الى متغيرات مثل Answer و Hangup .وكذالك توجد تطبيقات بحاجه الى متغير واحد او اكثر لكي تعمل مثلا Dial.
جميع الحقوق محفوظة لموقع أستريسك للعرب