الفصل الأول : مقدمة عن بروتوكول بدء الجلسة SIP


بسم الله الرحمن الرحيم 

السلام عليكم ورحمة الله وبركاته



  كيفية عمل فويب سيرفر فى خطوات مبسطة ، لكن لأن المجلة لا تحتمل أن يكون الموضوع مفصل بالشكل المطلوب ،لذا فقمت بوضع الخطوات الرئيسية فى صورة عملية ، لكن الجديد فى هذا الموضوع أنه سيكون إن شاء الله نواة لكتاب يتحدث بالقدر الكافى عن ماهية خادمات الفويب طرق التركيب ، ضبط الخادمات ، معرفة الخدمات المطلوب أن يقدمها مزود لخدمة الفويب ، الإنتباه إلى بعض الأمور الأمنية ، فأرجو الله العلى القدير وأسأله الإعانة والتوفيق فى إتمام ما بدأته إنه ولى ذلك والقادر عليه
سيكون فهرس الكتاب مقسم على عدة فصول إن شاء الله كالتالى :
1- الفصل الأول : مقدمة عن بروتوكول بدء الجلسة SIP
2- الفصل الثانى : ماهو OpenSER
3- الفصل الثالث : تثبيت OpenSER من الشفرة المصدرية
4- الفصل الرابع : ضبط اعدادت الخادم
5- الفصل الخامس : استخدام محرك قواعد البيانات MySQL مع OpenSER
6- الفصل السادس : إدارة الخادم OpenSER باستخدام تطبيق ذو واجهة رسومية (serMyAdmin)
الفصول السابق ذكرها قمت بكتابة أجزاء منها وإن شاء الله يتم المتابعة للكتابة لحين الإنتهاء منها وضبط كافة الأمور لتكون تلك الفصول نواة الجزء الأول من الكتاب .
لنبدأ أوﻻ ًمن عنوان الموضوع " أنشىء خادم فويب مع OpenSER" فى البداية قد ﻻ يعلم الكثير عن تقنية نقل الصوت عبر بروتوكول الإنترنت أو Voice Over Internet Protocol ولذلك سأقوم بذكر مقدمة بسيطة عن ال Voip ولماذا نحتاج إلى إستخدام تلك التقنية .
الكل يعلم أن إيقاع الحياة يتسم بالسرعة يوماً بعد يوم نتيجة للنقلة الحضارية والهائلة فى مجالات الإتصالات سواء كانت على صعيد الإتصالات الهاتفية أو الإتصالات الخلوية أو حتى الإتصالات عبر شبكات الإنترنت ، ونتيجة لتلك النقلة ظهرت العديد من التطبيقات والتقنيات العظيمة المنفعة فى مجال الإتصالات عبر شبكات الإنترنت وأهمها وهذه وجهة نظرى " تقنية نقل الصوت عبر بروتوكول الإنترنت أو فيما يعرف ب Voip " .
تقنية الفويب هكذا تُنطق (voyp) تعنى نقل المحادثات الصوتية بإستخدام شبكة الإنترنت عن طريق توجيه تلك المحادثات الصوتية شأنها شأن الحزم العادية أو ال Packets وبالتالى ﻻ يقتصر الأمر على شبكات الإنترنت أو Internet Networks بل يمكن إستخدام تلك التقنية داخل أى شبكة تستخدم بروتوكول الإنترنت والتى تعرف ب IP-Based Networks ، وبالتالى يتم التعامل مع المحادثات الصوتية على أنها حزم يتم نقلها بإحدى بروتوكولات النقل الشهيرة وأشهرها TCP و UDP وحينها ﻻ تستطيع طبقات الشبكة المختلفة أو Network Layers التفرقة بين حزم البيانات و الحزم الصوتية .
ولكن قد يستغرب البعض ما الفائدة التى تعود علينا من تقنية ال voip ؟
للإجابة على ذلك التساؤل ومعذرة قد تكون الإجابة غير واضحة المعالم لمن ليست لهم دراية بالإتصالات الهاتفية ، تخيل معى السيناريو الإفتراضى لشبكات الهاتف العامة أو فيما تعرف بال PSTN فحينما يريد مستخدم ما على تلك الشبكة الإتصال بمستخدم آخر يحدث التالى :
فى البداية حينما يريد المستخدم A أن يهاتف المستخدم B بإستخدام ال PSTN تقوم شبكة الهاتف أوﻻ ًبعمل إنشاء للإتصال قبل بدء المحادثة ثم بعد ذلك تقوم الشبكة بحجز مسار محدد لكل من المستخدم A و B لإجراء المكالمة ، وبالتالى كلما أراد المستخدم A محادثة المستخدم B أو العكس ستقوم شبكة الهاتف بحجز نفس المسار لكى تتم عملية الإتصال بشكل سليم وبذلك دائماً يتم حجز ذلك المسار بنفس السعة والموارد للمستخدم A حتى فى حالة عدم احتياجه لذلك المسار فى وقت ما ، فمثلا ًقد يحتاج المستخدم A ذلك المسار بالنهار فقط وﻻ يقوم بإستخدامه بالليل وبالتالى يتم حجز الموارد الخاصة بالمستخدم A له فقط وﻻ يتم الإستفادة منها فى حالة عدم إستخدامها ، شبكات الهاتف هذه تسمى علمياً ب Circuit-Switched Networks .
أما شبكات الإنترنت المُسماه ب Packet-Switched Networks فالأمر مختلف بمعنى أن موارد الشبكة والمسارات المختلفة لها تكون مشتركة بين المستخدمين أو Shared Network Resources
 
 
ويعنى ذلك أنه فى حالة عدم وجود أى من المستخدمين لتلك الموارد يستطيع مستخدم آخر على نفس الشبكة إستخدام تلك الموارد فى حالة عدم إسخدامها من قِبل مستخدمين آخرين .
أضرب مثالاً عملياً على ذلك :
نفترض أنه يوجد لديك حيز اتساع أو Bandwidth مثلا واحد ميجا ، ولديك عشرة مستخدمين فكيف يمكن تقسيم ذلك الحيز الإتساعى على كل من المستخدمين فى شبكات الهاتف العادى أو PSTN وشبكات الإنترنت ؟
أوﻻ ً: بالنسبة لشبكات الهاتف العادى أو ال PSTN سنقوم بتقسمة ذلك الحيز الترددى وهو 1 ميجا على العشرة مستخدمين وبالتالى يكون نصيب الفرد الواحد من مورد الشبكة هو 100 كليو وتكون تلك ال 100 كيلو هى نصيب الفرد على الدوام ﻻ يستطيع أن يأخد أكثر أو أقل منها ، وإحتمال إستخدام العشرة مستخدمين لمواردهم المحجوزة لهم فى وقت واحد صعب جدا ولنفترض أن واحدا من هؤﻻء العشرة هو المستخدم لموارده فقط وباقى المستخدمين غير موجودين ؟ معنى ذلك أن نسبة 90% من موارد الشبكة محجوزة بدون فائدة وﻻ يمكن إستخدامها .
ثانيا : شبكات الإنترنت أو أى شبكة تستخدم بروتوكول الإنترنت إذا كان الحيز الإتساع 1 ميجا فيتم مشاركة تلك الواحد ميجا بين المستخدمين العشرة وذلك أن إحتمال دخول المستخدمين العشرة فى نفس الوقت صعب جداً ويصل إلى نسبة ضئيلة أيضاً ، ولنفترض أنه يوجد مستخدم واحد من العشرة موجود online فسيكون بإمكانه التمتع بالحيز الإتساعى أو ال Bandwidth بالكامل فى حال عدم إستخدامه من قِبل المستخدمين الآخرين وذلك أن شبكات الإنترنت تعمل بمدأ المورد عند الطلب أو Resources on Demand .
طبعا المقارنة البسيطة التى قمت بسردها فى السطور السابقة ما هى إﻻ مجرد نقطة فى بحر من المقارنات التى تتم بين كل من مؤيدى شبكات الإتصال الهاتفية أو Circuit-Switched Networks وبين شبكات الإنترنت أو Packet-Switched Networks .
وبالتالى نظراً لأن تقنية الفويب تعمد فى طبيعة عملها على إستخدام الشبكات التى تعمل ببروتوكول الإنترنت فإنها تتمع بنفس ميزة المورد عند الطلب أو Resource on Demand ، وهنا نستيطع إستخدام الحيز الإتساعى بشكل فعال وأكثر كفاءة من شبكات الهاتف العادى أو ال PSTN .
كما تتميز تقنية الفويب أيضا بخاصية مهمة جدا ًوهى رخص التكلفة ! نعم فتخيل كل ما تحتاجه مثلا لعمل voip-server ﻻ يتعدى كونه وجود جهاز حاسب لديك مع بعض البرامج مفتوحة المصدر والمجانية أى دون مقابل مالى ، كذلك البنية التحتية للتقنية موجودة فعلا وﻻ نحتاج إلى موارد إضافية.
أعلم أن تلك المقدمة بسيطة جداً فى التعريف بمفاهيم كثيرة ذكرتها ولكن فعلاً إعذرونى فكل مصطلح قد يحتاج إلى موضوع كامل وسنخرج عن صلب الموضوع فأرجو المعذرة منكم .
ندخل الآن فى صلب الموضوع ماذا نحتاج لكى نتمكن من إستخدام تلك التقنية ؟
أوﻻ ًبشكل أو بآخر قد تكون مستخدم لتلك التقنية وأنت ﻻ تشعر ! نعم فبرامج المحادثة الصوتية والكتابية مثل msn messenger , skype , yahoo وغيرها من تلك البرامج والتى تعتمد فى طريقة عمل المحادثات الصوتية الخاصة بها على تقنية voip لكن مع أختلاف البروتوكولات المستخدمة .
لذا ماهو الجديد فى موضوعنا ؟ سؤال يستحق الإجابة فعلا !
الجديد فى الموضوع أنك ستتمكن بنفسك من عمل خادم فويب أو voip-server خاص بك دون الحاجة إلى الآخرين والفائدة التى ستعود عليك من ذلك أنه سيكون لديك عدة ميزات هائلة منها :
1- سيكون لديك مقسم هاتف داخلى مُعتمداً على بروتوكول الإنترنت أو فيما يعرف ب IP PBX
2- تستطيع ربط خادم الفويب الخاص بك بشبكة الهاتف العادى أو PSTN
3- تستطيع عمل محادثات صوت وصورة بين المشتركين فى الخادم الخاص بك
4- تستطيع عمل المحادثات الكتابية إلى جانب إستخدام خدمة البريد الصوتى , خدمة الإجتماعات أو conference , خدمة الأعلانات أو Announcements ....
ملحوظة : بعض من الخدمات السابقة تحتاج إلى أكثر من تطبيق لكن تحصل عليها ، فوجود OpenSER فقط لا يكفى لتزويد تلك الخدمات .
تلك كانت بعض الميزات القليلة والتى سوف تتمكن من الحصول عليها فى حالة إمتلاكك لخادم فويب خاص . وقد يفرض سؤاﻻ ً آخراً نفسه ما هى المتطلبات اللازمة لعمل خادم الفويب ؟
كل ما تحتاجه لتنفيذ الأمور التى نحن بصدد الحديث عنها فى موضوعنا هو مجرد وجود جهاز حاسب وبعض البرامج التى سوف نقوم بتحميلها من على الإنترنت ، ويفضل أن يكون الحاسب لديك ذو إمكانيات معقولة ليست بالكبيرة التى تكلفك المال الكثير وﻻ بالقليلة والتى قد تسبب لك شللاً نصفيا نتيجة البطىء فى التعامل مع الجهاز !
خطة العمل :

لنناقش سويا خطة العمل والتى سوف نقوم بتنفيذها والمطلوب منك إنجازه وسأقوم بسرد عدة نقاط رئيسية :
أوﻻ : هل لديك شبكة حاسب داخلية وتود الربط بين تلك الأجهزة لكى تستطيع عمل مكالمات داخلية (مثال سنترال داخلى)؟
ثانيا : هل يوجد لدين نطاق أو Domain خاص بك وتريد عمل خادم فويب لكى تقوم بالربط بين مجموعة من المشتركين ؟
ثالثا : هل تنوى الربط مع شبكات الهاتف العادى أو ال PTSN لكى تتمكن من الإتصال بالهواتف العادية سواء كانت داخل نطاق البلد أو سواء كانت على نطاق عدة دول ؟
فى البداية لكل خطة ذكرتها سابقاً الإعدادات الخاصة بها ولكن سيوجد قاسم مشترك فى الإعدادات بين تلك الخطط فمثلاً الخطة الأولى ستتمكن من خلالها إذا كنت تعمل فى شركة تحتوى على عدد من الموظفين وهؤﻻء الموظفين يعملون على حواسيب مرتبطة بشبكة أن تمتلك مقسم هاتف داخلى مماثل تماما للجهاز الذى يوجد داخل الشركة الخاصة بك وسيمكنك الآن أن تخبر رئيسك فى العمل أنكم بعد اليوم لن تحتاجوا إلى ذلك الجهاز ( مكانه فى ال Trash ) .
ملحوظة :
الشركات الكبيرة ليست بحاجة إلى تغيير السنترال الموجود لديها والبنية التحتية لهذا السنترال, بوجود IP PBX الشركات الكبيرة ممكن أن تحتفظ حتى بالأرقام الداخلية للتحويلات, وبإستخدام ال IP PBX سيتم تحويل المكالمات الداخلية من خلال الشبكة داخل الشركة وتسمح للمستخدمين بمشاركة نفس التحويلات الداخلية القديمة بالشركة مع الخطوط الخارجية.
فى الخطة الثانية إذا كنت تمتلك domain خاص بك وتريد توسعة الأمر لربط عدة مستخدمين داخل عدة دول مختلفة فحينها ستحتاج بعض الإعدادات الإضافية وبعض الأمور والتى ستقوم بوضعها فى الحسبان نتيجة قدومك على ذلك الأمر .
أما أخيراً وبالنسبة للخطة الثالثة وهى الربط مع شبكات الهاتف العادى فحينها ستحتاج إلى بعض العتاد الإضافى ، وأعنى بالعتاد الإضافى أن تمتلك PSTN Gateway لكن تتمكن من الربط مع ال PSTN .
لذا سيكون محور الحديث فى موضوعنا عن كيفية تنفيذ الخطة الأولى والثانية والتى قد يكون كثير منا يمتلك المقومات الخاصة بها أما الخطة الثالثة فنظرا لكونها تتطلب بعض التكلفة لن نتطرق إليها .

Pages