خادمات الفويب (برمجيات حرة )




خادمات الفويب (برمجيات حرة )

برامج خادمات الفويب كثيرة جداً منها ماهو تجارى وبمبالغ مالية ومنها ماهو مجانى مفتوح المصدر ، أشهر خادمات الفويب المجانية والمفتوحة المصدر هو Asterisk يليها خادم إسمه OpenSER ، وإن شاء الله سيكون محور حديثنا هو OpenSER خلال السطور القادمة وكما ذكرت سيكون الكلام عملى أكثر منه نظرى نظراً لأن الموضوع متشعب وكل مصطلح يحتاج إلى فقرات لشرحه ، وبالتالى نريد عمل خادم الفويب خطوة بخطوة كى يتمكن الفرد العادى من إنشاء خادم يخصه سواء داخل LAN أو على مستوى النطاقات العامة أو Public Domains .
لكن قد يتسائل البعض ماهى أوجه الإختلاف بين خادمات الفويب مثلا OpenSER وبين Asterisk ؟
فى الحقيقة بالنسبة للمستخدم العادى قد لا يشكل الفرق عاملا مهما بالنسبة لديه ، أما على صعيد مزودى خدمة الفويب فسيكون الفارق كبير جدا ومهم فى نفس الوقت ، لان متطلبات الخدمة وتنفيذها ستتوقف على عدة عوامل منها :
1- عدد المستخدمين الذين سوف نقوم بتزوديدهم الخدمة .
2- الخدمات المطلوب توفيرها للمستخدمين .
3- نوعية البروتوكولات المستخدمة (سأتحدث عن بعضها لاحقاً)
هذه العوامل الثلاث هى الركائز الأساسية التى ينبغى وضعها فى عين الاعتبار عند اختيار خادم الفويب ، لذا ينبغى عدم اهمال اين منها حتى لا تحدث مشاكل بعد ذلك قد تؤدى إلى فشل الخدمة من الأساس .

وكما ذكرت سابقاً توجد العديد من البرمجيات الحرة التى تقدم خدمة الفويب بأشكال عديدة اخترت منها OpenSER لعدة عوامل هى :
1- كفاءة البرنامج فى تغطية عدد مهول من المستخدمين دون القلق بشأن الأداء .
2- مرونة البرنامج فى استخدامه فى عمل اشكال عديدة للخدمات حيث تستطيع استخدامه ك xmpp server ، presence server بجانب توفيره لخدمات الفويب المطلوبة دون أى مشكلة .
3-سهولة تثبيت البرنامج على اكثر من نظام تشغيل مختلف نظرا لكون الشفرة المصدرية للبرنامج مبرمجة بلغة C .
4- سهولة إنشاء تطبيقات مختلفة لتكون مكملة لعمل البرنامج بأى لغة برمجة أخرى عن طريق عمل modules لها ، مثل java , perl .
5- اعتماد OpenSER فى طريقة عمله على بروتوكل بدء الجلسة (SIP) والذى يعتبر فى وقتنا الحالى أهم البروتوكولات المستخدمة لتوفير خدمات نقل الصوت .
هذه كانت بعض ميزات OpenSER التى ستحصل عليها باستخدامك له ، وحينما تستخدمه بشكل فعلى ستكتشف المزيد من الأسرار التى لا تتوقعها جعلت من OpenSER محل اهتمام كبرى شركات الشبكات (Cisco) ليعمل على احدى منصات خادمات الفويب لديها وهى سلسلة Cisco Service Node for Linksys one .
بروتوكول بدء الجلسة SIP :


حينما يتبادر إلى الأذهان كلمة بروتوكول فالبعض يشعر بالاشمئزاز نتيجة لسماع تلك الكلمة ، فأصعب ما يمكن فهمه حينما نعتمد فى عملنا على بروتوكول معين هو فهم طبيعة البروتوكول وكيف يعمل ، قد يكون الأمر فى البداية صحيحا لكن مع التعود على فهم البروتوكول وكيفية عمله سندرك أن الأمر بسيط جدا ولا يعدو كونه لغة تخاطب بين حاسبين على الشبكة كل ما عليك حينها هو فهم تلك اللغة واتقانها كى تتمكن انت من الحديث بها أيضا !!
كما ذكرنا سابقا أن بروتوكول بدء الجلسة (SIP) هو احد البروتوكولات المسيطرة حاليا على سوق تقنية الفويب ، حيث يعمل البروتوكول بشكل فعلى داخل العديد من التطبيقات التى تستخدمه سواء كانت خادمات أو مستخدمين (clients) ، وبالتالى يستقطت البروتوكول شريحة واسعة من قطاع مزودى خدمة الفويب أو على مستوى المستخدمين على حد سواء .
ترمز كلمة SIP إلى الكلمات الإنجليزية الثلات Session Initiation Protocol أى بروتوكول بدء الجلسة ، تم تطويره من قبل منظمة IETF ، تم توصيفه فى عدة مستندات مختلفة ، المستند الرئيسى يحمل الرقم RFC3261 والذى يمثل الإصدار رقم اثنان من البروتوكول أو SIP/2.0 . بروتوكول بدء الجلسة SIP يعمل بشكل أساسى فى طبقة التطبيقات فى نموذج الشبكات TCP/IP أو التى تعرف ب Layer 1 والتى تحمل الإسم Application Layer ، وظيفة البروتوكول ببساطة هى إنشاء وتعديل وإنهاء الجلسات أو المكالمات الصوتية .
الجلسات (Sessions) قد تكون عبارة عن خدمة اجتماعات (Conference) , تعليم إلكترونى (E-Learning) أو محادثات كتابية (Instant Messaging) .
طريقة عمل بروتوكول بدء الجلسة SIP تشبه فى طريقة عمل بروتوكول HTTP ، اى يعتمد بشكل أساسى فى بدء الجلسة أو إنهائها فى صورة رسائل نصية .
يستطيع بروتوكول بدء الجلسة SIP توفير خمس خصائص أساسية لإنشاء وإنهاء المكالمات الصوتية وهى :
1- أماكن المستخدمين (User Locations) : حيث يستطيع البروتوكول تحديد أماكن المستخدمين بشكل فعال وتحديد ماهية أماكنهم بالضبط عن طريق عناوين الإنترنت الخاصة (Internet Addresses) إلى جانب المنافذ التى يستخدمونها (Ports) .
2- متغيرات المستخدمين (User Parameters Negotiation) : وهى تعبر عن عدد من المتغيرات تستخدم لتوصيف جلسة المكالمة كمثلا نوع الكوديك المُستخدم لتقسيم الصوت التماثلى إلى بيانات رقمية .

3- تواجد المستخدمين (User Availability): امكانية تحديد وجود المستخدمين (online) من عدمه لبدء المكالمة .
4- إنشاء المكالمات Call Establishment: هذه الخاصية تعبر عن المتغيرات اللازمة والمطلوبة لإنشاء وبدء المكالمة لكل من المُتصِل والمتصل به لإعلام كلا منهما أن المكالمة فى طريقها للبدء (كمثال رنين الهاتف لدى المتصل به(Ringing) , رنين الهاتف لدى المتصل (Ringback)).
5- ادارة المكالمة Call Management: تعبر هذه الخاصية عن عمل العديد من الخصائص أثناء إنشاء المكالة وكمثال على ذلك تحويل المكالمة إلى رقم آخر (Call Transfer) , رفض المكالمة (Call Rejection) أو إنهاء المكالمة .
تم تطوير بروتوكول بدء الجلسة SIP بجانب مجموعة من البروتوكولات الأساسية التى تمثل الهيكل الأساسى لتقنيات الوسائط المتعددة(Multimedia Architecture) ، من ضمن تلك البروتوكولات RVSP, RTP , RTSP وفى الأخير بروتوكول توصيف الجلسة SDP أو الذى يرمز إلى Session Description Protocol ، لكن على الرغم من ضرورة تواجد احدى تلك البروتوكولات فى مرحلة ما أثناء إنشاء المكالمة إلا أن بروتوكول بدء الجلسة SIP لا يعتمد على أين منها لكل يعمل .

هذه كانت نبذة بسيطة عن البروتوكول ،لكن إن أحيانا الله قد أتطرق فى القريب إلى بعض الأساسيات المهمة التى يجب أن نفهمها ونعيها جدا بخصوص البروتوكول .
الآن سنبدأ فى تطبيق الجانب العملى من الموضوع وسيكون مقسم على عدة مراحل :

1- تثبيت OpenSER من الشفرة المصدرية على توزيعة ديبيان جنو/لينوكس الإصدار الرابع اتش (Debian Gnu/Linux etch 4.0) .
2- ضبط OpenSER للعمل مع محرك قواع البيانات MySQL .
3- تثبيت تطبيق serMyAdmin لإدارة المستخدمين من خلال واجهة رسومية .

Pages