إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

HowTo : Ser Voip-Engine

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • HowTo : Ser Voip-Engine

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

    لنبدأ أوﻻ ًمن عنوان الموضوع " HowTo : Voip-Ser " فى البداية قد ﻻ يعلم الكثير عن تقنية نقل الصوت عبر بروتوكول الإنترنت أو 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 ﻻ يتعدى كونه وجود جهاز حاسب لديك مع بعض البرامج مفتوحة المصدر والمجانية أى دون مقابل مالى ، كذلك البنية التحتية للتقنية موجودة فعلا وﻻ نحتاج إلى موارد إضافية.


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


    ندخل الآن فى صلب الموضوع ماذا نحتاج لكى نتمكن من إستخدام تلك التقنية ؟

    أوﻻ ًبشكل أو بآخر قد تكون مستخدم لتلك التقنية وأنت ﻻ تشعر ! نعم فبرامج المحادثة الصوتية والكتابية مثل kopete ، pidgin ، amsn yahoo messenger وغيرها من تلك البرامج والتى تعتمد فى طريقة عمل المحادثات الصوتية الخاصة بها على تقنية voip .

    لذا ماهو الجديد فى موضوعنا ؟ سؤال يستحق الإجابة فعلا !

    الجديد فى الموضوع أنك ستتمكن بنفسك من عمل خادم فويب أو voip-server خاص بك دون الحاجة إلى الآخرين والفائدة التى ستعود عليك من ذلك أنه سيكون لديك عدة ميزات هائلة منها :

    1- سيكون لديك مقسم هاتف داخلى مُعتمداً على بروتوكول الإنترنت أو فيما يعرف ب IP PBX
    2- تستطيع ربط خادم الفويب الخاص بك بشبكة الهاتف العادى أو PSTN
    3- تستطيع عمل محادثات صوت وصورة بين المشتركين فى السيرفر الخاص بك
    4- تستطيع عمل المحادثات الكتابية إلى جانب إستخدام خدمة البريد الصوتى

    تلك كانت بعض الميزات القليلة والتى سوف تتمكن من الحصول عليها فى حالة إمتلاكك لخادم فويب خاص . وقد يفرض سؤاﻻ ً آخراً نفسه ما هى المتطلبات اللازمة لعمل خادم الفويب ؟

    كل ما تحتاجه لتنفيذ الأمور التى نحن بصدد الحديث عنها فى موضوعنا هو مجرد وجود جهاز حاسب وبعض البرامج التى سوف نقوم بتحميلها من على الإنترنت ، ويفضل أن يكون الحاسب لديك ذو إمكانيات معقولة ليست بالكبيرة التى تكلفك المال الكثير وﻻ بالقليلة والتى قد تسبب لك شللاً نصفيا نتيجة البطىء فى التعامل مع الجهاز !

    ملحوظة : الشركات الكبيرة ليست بحاجة إلى تغيير السنترال الموجود لديها والبنية التحتية لهذا السنترال, بوجود IP PBX الشركات الكبيرة ممكن أن تتحتفظ حتى بالأرقام الداخلية للتحويلات , بهذه الطريقة الـ IP PBX سيحول المكالمات الداخلية من خلال الشبكة داخل الشركات الكبيرة وتسمح للمستخدمين لمشاركة نفس التحويلات الداخلية القديمة بالشركة مع الخطوط الخارجية.
    خطة العمل :

    لنناقش سويا خطة العمل والتى سوف نقوم بتنفيذها والمطلوب منك إنجازه وسأقوم بسرد عدة نقاط رئيسية :

    أوﻻ : هل لديك شبكة حاسب داخلية وتود الربط بين تلك الأجهزة لكى تستطيع عمل مكالمات داخلية (مثال سنترال داخلى)؟

    ثانيا : هل يوجد لدين نطاق أو Domain خاص بك وتريد عمل خادم فويب لكى تقوم بالربط بين مجموعة من المشتركين ؟

    ثالثا : هل تنوى الربط مع شبكات الهاتف العادى أو ال PTSN لكى تتمكن من الإتصال بالهواتف العادية سواء كانت داخل نطاق البلد أو سواء كانت على نطاق عدة دول ؟


    فى البداية لكل خطة ذكرتها سابقاً الإعدادات الخاصة بها ولكن سيوجد قاسم مشترك فى الإعدادات بين تلك الخطط فمثلاً الخطة الأولى ستتمكن من خلالها إذا كنت تعمل فى شركة تحتوى على عدد من الموظفين وهؤﻻء الموظفين يعملون على حواسيب مرتبطة بشبكة أن تمتلك مقسم هاتف داخلى مماثل تماما للجهاز الذى يوجد داخل الشركة الخاصة بك وسيمكنك الآن أن تخبر رئيسك فى العمل أنكم بعد اليوم لن تحتاجوا إلى ذلك الجهاز ( مكانه فى ال Trash ) .

    ملحوظة :

    الشركات الكبيرة ليست بحاجة إلى تغيير السنترال الموجود لديها والبنية التحتية لهذا السنترال, بوجود IP PBX الشركات الكبيرة ممكن أن تحتفظ حتى بالأرقام الداخلية للتحويلات, وبإستخدام ال IP PBX سيتم تحويل المكالمات الداخلية من خلال الشبكة داخل الشركة وتسمح للمستخدمين بمشاركة نفس التحويلات الداخلية القديمة بالشركة مع الخطوط الخارجية.

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

    أما أخيراً وبالنسبة للخطة الثالثة وهى الربط مع شبكات الهاتف العادى فحينها ستحتاج إلى بعض العتاد الإضافى ، وأعنى بالعتاد الإضافى أن تمتلك PSTN Gateway لكن تتمكن من الربط مع ال PSTN . وهذه الخطة وجزء من الخطة الثانية صراحة أنا أعمل عليها حالياً الآن ولدىّ بعض المشاكل فيهما ولكن حينما أنتهى من ضبط الإعدادات الخاصة بهما سأوافيكم بآخر المستجدات .


    برامج خادمات الفويب كثيرة جداً منها ماهو تجارى وبمبالغ مالية ومنها ماهو مجانى مفتوح المصدر ، أشهر خادمات الفويب المجانية والمفتوحة المصدر هو Asterisk يليها خادم إسمه SER وهو إختصار ل Sip Express Router ، وإن شاء الله سيكون محور حديثنا هو SER خلال السطور القادمة وكما ذكرت سيكون الكلام عملى أكثر منه نظرى نظراً لأن الموضوع متشعب وكل مصطلح يحتاج إلى فقرات لشرحه ، وبالتالى نريد عمل خادم الفويب خطوة بخطوة كى يتمكن الفرد العادى من إنشاء خادم يخصه سواء داخل LAN أو على مستوى النطاقات العامة أو Public Domains .
    شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
    | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

  • #2
    تثبيت SER على توزيعة Debian Gnu/Linux

    بعض الأمور أفترضها :

    * توجد لديك توزيعة Debian Gnu/Linux مثبتة بالفعل وعملية الشرح ستكون عليها .

    * معرفة كيفية التعامل مع الحزم من إضافة وتثبيت على التوزيعة ، وأود الإشارة إلى أنه فى حالة قيام أى شخص بتنفيذ الشرح على أى توزيعة أخرى وحدثت معه مشاكل فأنا غير ملزم بذلك سواء كانت هذه المشاكل هى عدم توافر حزمة معينة أو حدوث مشكلة أثناء تنفيذ إحدى الخطوات فى عملية ال compiling إلخ .

    السطور السابقة تناولنا فيها مقدمة بسيطة عن الفويب (voip) وشرحنا فى تلك المقدمة ما معنى كلمة voip وما الفائدة التى قد تعود علينا من إستخدام تلك التنقبية إلى آخره من تلك المفاهيم ، فى هذا الجزء إن شاء الله سنبدأ فى تثبيت خادم الفويب SER وستكون عملية التثبيت على توزيعة Debian ومن أراد تثبيت SER على أى توزيعة أخرى فسأذكر بعض النقاط الرئيسية والتى تمكنه من تثبيت الخادم بدون أى مشاكل إن شاء الله .

    متطلبات الثبيت (هذه تخص كل التوزيعات ) :

    كود:
    - gcc
    - bison 
    - flex
    - GNU make 
    - sed and tr (used in the makefiles)
    - GNU tar 
    - GNU install
    - libmysqlclient
    ملحوظة : متطلبات التثبيت هذه تكفى فقط بوجود دعم لتوثيق المستخدمين على SER بإستخدام MySQL ، توجد متطلبات أخرى إذا كنت تريد إضافة مهام أكثر ليقوم بها SER ، وجدير بالذكر أن أسماء الحزم السابقة هى أسماء الحزم بشكل عام .

    كما أننى أفترض أنك على قمت بتعديل ملف ال sources.list الخاص بك على التوزيعة ، وإذا لم تكن قد فعلت فا هى الطريقة :


    فى البداية قم بفتح محاكى الطرفية لديك أو Terminal ، بعد ذلك قم بالدخول بحساب المستخدم الجذر ونفذ الأمر التالى :


    كود PHP:
     nano /e tc/apt/sources.list 
    بعد ذلك قم بإضافة المصادر التالية إذا لم تكن موجودة عندك :

    كود:
    deb [url]http://http.us.debian.org/debian[/url] etch main
    deb-src [url]http://http.us.debian.org/debian[/url] etch main
    deb [url]http://ftp.uk.debian.org/debian[/url] etch main
    deb [url]http://ftp.de.debian.org/debian[/url] etch main
    deb-src [url]http://ftp.de.debian.org/debian[/url] etch main
    deb [url]http://mirrors.kernel.org/debian[/url] etch main
    deb [url]http://ftp.de.debian.org/debian[/url] etch main non-free
    ملحوظة : من الممكن أن تستخدم أى مُحرر نصوص آخر بدلا ًمن nano ، البعض يُفضل vi أو Vim اختر ما يناسبك أو ما تستطيع إستخدامه .

    بعد ذلك قم بتنفيذ الأمر التالى لتحديث ملف المصادر sources.list لديك بالشكل التالى :

    كود PHP:
    apt-get update 
    الآن سنقوم بتثبيت الحزم التى ذكرناها سابقا من خلال apt-get بالشكل التالى :

    كود PHP:
    apt-get install build-essential libmysqlclient15-dev mysql-client mysql-server bison flex tar sed coreutils 
    ملحوظة : قد توجد لديك بعض من تلك الحزم السابقة ولكنى أفترض أن تلك الحزم غير موجودة ، وبالتالى إذا وُجدت الحزم فعلاً وكانت هناك إصدارات حديثة منها سيتم عمل ترقية لتلك الحزم ، والتى لم تكن موجودة سيتم تثبيتها .

    بعد التأكد من تثبيت الحزم السابقة على التوزيعة سنقوم الآن بتحميل SER من على الإنترنت ثم نقوم بتثبيته ونبدأ بخطوة التحميل أوﻻً :

    نقوم بالولوج إلى المسار usr/src/ ، ثم نقوم بتنزيل الملف بالشكل التالى :

    كود PHP:
    debian:~# c d /usr/src/; w get -c http://ftp.iptel.org/pub/ser/0.9.6/src/ser-0.9.6_src.tar.gz 
    عد ذلك نقوم بفك الضغط عن الملف :

    كود PHP:
    debian:/usr/src# tar -zxf ser-0.9.6_src.tar.gz 

    ثم نقوم بحذف الملف المصدر لأنه لم يعد له قيمة (الخيار متروك لك) :

    كود PHP:
    debian:/usr/src# rm ser-0.9.6_src.tar.gz 

    الآن نقوم بالولوج إلى المجلد الذى يحتوى الشفرة المصدرية ل SER :

    كود PHP:
    debian:/usr/src# cd ser-0.9.6/ 

    بعد ذلك سنبدأ فى تجميع الشفرة المصدرية الخاصة ب SER أو فيما تُسمى ب SER Compiling :

    كود PHP:
    debian:/usr/src# make && make modules 

    ستستغرق هذه العملية بضع دقائق ، بعد ذلك سنقوم بتثبيت الملفات الخاصة ب SER والتى من ضمنها ملفات ضبط الإعدادت الخاصة ب SER على المسار /usr/local/:

    كود PHP:
    make prefix=/usr/local install 
    انتهت عملية التثبيت بنجاح وأصبح لديك خادم الفويب SER على التوزيعة ، إن شاء الله فى الجزء التالى سنقوم سوياً بضبط إعدادات السيرفر .
    شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
    | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

    تعليق


    • #3
      ضبط إعدادات SER

      بعد أن تناولنا فى الجزء السابق كيفية تثبيت SER سنبدأ الآن فى الإنطلاق إلى التعريف ببعض الأمور الأخرى ، وسنبدأ أوﻻ فى تنزيل ملف الشرح الخاص بضبط إعدادات SER من على الرابط التالى :

      كود PHP:
      w get -c http://siprouter.onsip.org/doc/SER-GettingStarted.pdf 
      ملف الشرح الخاص بضبط إعدادات SER ﻻ يحتوى على تفاصيل فرعية خاصة بالخادم ، بمعنى أن الملف سيقوم بشرح عدة مراحل متتالية لكن تقوم ببناء خادم فويب كامل بداية من الأسهل ثم الأصعب فاﻷصعب وهكذا وبالتالى إذا كنت تريد معرفة الكثير عن SER فا أنت تريد تعلم SIP !!

      نعم !! Sip ؟!! أعلم أن الموضوع ﻻ يحتمل إضافة مصطلحات جديدة لذا ذكرت فى بداية كلامى أن الموضوع سيكون عملى أكثر منه نظرى وبالتالى إذا أردت معرفة الكثير عن SIP أو بروتوكول بدء الجلسة والذى هو اختصار ل Session Initiation Protocol عليك بأحد الكتب التالية :

      كود PHP:
      http://www.iptel.org/files/sip_tutorial.pdf

      http://www.cs.columbia.edu/sip/papers.html

      SIP Demystified

      Understanding Sip Protocol 
      الكتب الأخيرة كتب ممنوع تداولها داخل المنتدى فلتبحث عنها إذا كنت تريد فهم البروتوكول الذى تم بناء SER عليه أﻻ وهو بروتوكول SIP .


      وبالتالى ملف شرح الخاص بضبط الإعدادات سيكون مهمته الكبرى هى بناء خادم فويب كامل بخدمات متنوعة تبدأ من إستخدام MySQL ومرواً بعدة مراحل منها بناء الخادم وإستخدامه للوصول إلى المستخدمين خلف ال Nated-Device ووصوﻻً بالربط مع شبكة الهاتف العادى أو PSTN ، وما سنتطرق إلى كيفية عمله إن شاء الله فى هذا الجزء هو إستخدام MySQL لتوثيق المستخدمين وعدم السماح لأى شخص بتسجيل نفسه على الخادم بدون إسم مستخدم وكلمة مرور .

      نقطة أخرى أود أن أشير إليها بخصوص SER وهى إعتماده على مبدأ " واحد للكل والكل لواحد " !!

      أعتقد أن البعض قد بدأ يفكر هل جننت ؟؟ !! ، ﻻ ليس بعد D: ، ما أقصده من العبارة السابقة نقطة مهمة تخص خادم الفويب SER وهى كيف تم إنشاء SER ليعمل خادماً للفويب ، بمعنى SER فى حد ذاته كحزمة أو برنامج ﻻ تتعدى مساحته كأكواد برمجية حاجز ال 500 كيلو بايت !! معقول ؟ لكن هل ذلك البرنامج أو الحزمة تستطيع عمل كل الوظائف التى ذكرتها سابقاً ؟ بالقطع ﻻ !

      خادم الفويب SER كحزمة ﻻ يستطيع فعل أى شىء على الإطلاق ، لكن الفكرة العبقرية هنا والتى هى جزء من سبب انتشاره هى اعتماده على نماذج خارجية أو External Modules تقوم بالربط بين SER والبرامج المختلفة ، فعلى سبيل المثال نريد أن نستخدم SER مع نظام إدارة قواعد البيانات MySQL هنا يأتى دور النموذج mysql.so والذى تكون مهمته الرئيسية عمل الإتصالات اللازمة مع MySQL وهكذا قيس الأمر على نفس هذا المنوال حينما تريد مثلا أن تقوم بربط برنامج خارجى مع SER تقوم ببناء Module يقوم بدور الوسيط بين ذلك البرنامج وبين SER .

      ملحوظة : بعض ال External Modules تكون معتمدة على بعضها البعض بشكل أو بآخر فتنبه لتلك النقطة لأننا سوف نحتاج إليها لاحقاً .


      إذا السؤال الذى يفرض نفسه علينا الآن كيف نقوم مثلا بإضافة نموذج خارجى جديد أو New External Module لخادم الفويب SER أو قد نطرح السؤال بشكل آخر هل يوجد ل SER ملف معين يتم التعديل من خلاله على خصائص SER لإضافة أو حذف External Module معين ؟

      نعم ، لدى SER ملف ضبط الإعدادات الخاصة ويدعى ser.cfg وهذا الملف هو الملف الرئيسى أو المكون الرئيسى ل SER وبدونه SER ﻻ يساوى شيئاً ، فمثلاً عند تشغيل SER يقوم أوﻻ بفحص ملف الإعدادات ser.cfg ليتأكد من صحة وضع الإعدادات بشكل سليم ، كما يتأكد من النماذج الخارجية المُضافة ليقوم بتحميلها أو ﻻ ، وبالتالى نستطيع القول بأن SER بدون ser.cfg يكون عديم القيمة وﻻ فائدة منه .

      الآن نبدأ سويا فى معرفة كيفية ضبط إعدادات SER عن طريق الملف ser.cfg والذى يكون موجود داخل المسار التالى :

      كود PHP:
      debian:~# c d /usr/local/e tc/ser/ 
      ثم نقوم بإستعراض الملفات الموجودة داخل المجلد ser بإستخدام الأمر ls :

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

      كود PHP:
      #
      # $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $
      #
      # simple quick-start config script
      #

      # ----------- global configuration parameters ------------------------

      #debug=3         # debug level (cmd line: -dddddddddd)
      #fork=yes
      #log_stderror=no        # (cmd line: -E)

      /* Uncomment these lines to enter debugging mode
      fork=no
      log_stderror=yes
      */

      check_via=no    # (cmd. line: -v)
      dns=no           # (cmd. line: -r)
      rev_dns=no      # (cmd. line: -R)
      #port=5060
      #children=4
      fifo="/tmp/ser_fifo"

      # ------------------ module loading ----------------------------------

      # Uncomment this if you want to use SQL database
      #loadmodule "/usr/local/lib/ser/modules/mysql.so"

      loadmodule "/usr/local/lib/ser/modules/sl.so"
      loadmodule "/usr/local/lib/ser/modules/tm.so"
      loadmodule "/usr/local/lib/ser/modules/rr.so"
      loadmodule "/usr/local/lib/ser/modules/maxfwd.so" 
      المرحلة الأولى من تشغيل SER

      الملف ser.cfg يتم إنشاؤه بشكل إفتراضى بعد الإنتهاء من تثبيت SER وقبل الشروع فى التعديل على الملف سنقوم ببعض الخطوات الإضافية لكى نستعمل SER ونبدأ أوﻻ بتعريف SIP_DOMAIN للجهاز الذى سوف تم تثبيت SER عليه كما يلى :

      كود PHP:
      debian:~# export SIP_DOMAIN='localhost' 
      ملحوظة : فى كل مرة سوف نحتاج إلى عمل export لل SIP_DOMAIN فى حال إعادة تشغيل الجهاز ولذا سوف نقوم بإضافة الأمر export داخل ملف bashrc. والذى يكون داخل مجلد ال home directory بإسم المستخدم الخاص بك وتستطيع الوصول إليه بالشكل التالى :

      كود PHP:
      debian:~# nano ~/.bashrc 
      بعد ذلك قم بإضافة هذا السطر فى آخر الملف :

      كود PHP:
      export SIP_DOMAIN='localhost or mydomain.domain.com' 
      أو تستطيع عمل ذلك مباشرة بإستخدام echo بالشكل التالى :

      كود PHP:
      echo "export SIP_DOMAIN='localhost' 
      >> ~/.bashrc 
      ثم قم بحفظ الملف وبعدها لن نحتاج إلى عمل export لل SIP_DOMAIN مرة أخرى .

      نبدأ الآن فى تشغيل السيرفر SER وعملية التشغيل تتم بإحدى طريقتين :

      كود PHP:
      debian:~# /usr/local/sbin/serctl start

      Starting SER started pid(8301
      أو
      كود PHP:
      debian:~# /usr/local/sbin/ser -E -P /var/run/ser.pid 

      Listening on
                   udp
      127.0.0.1 [127.0.0.1]:5060
                   udp
      10.0.0.30 [10.0.0.30]:5060
                   tcp
      127.0.0.1 [127.0.0.1]:5060
                   tcp
      10.0.0.30 [10.0.0.30]:5060
      Aliases
      :
                   
      tcpdebian.local:5060
                   tcp
      debian:5060
                   tcp
      localhost:5060
                   udp
      debian.local:5060
                   udp
      debian:5060
                   udp
      localhost:5060

      stateless 
      initializing
       0
      (0Maxfwd moduleinitializing
      textops 
      initializing
       1
      (0WARNINGno fifo_db_url given fifo DB commands disabled!

      debian:~
      إذا ظهرت إحدى الرسالتين السابقتين فكل شىء على ما يرام ، ,وللعلم تستطيع الآن إستخدام السيرفر بشكل كامل ولكن لن تتمكن من عمل توثيق للمستخدمين ومنعهم من التسجيل على السيرفر الخاص بك .
      شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
      | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

      تعليق


      • #4
        المرحلة الثانية : SER with MySQL Support


        الآن سنبدأ فى تجهيز MySQL للعمل مع SER وذلك بإنشاء قاعدة بيانات خاصة ب SER وسيكون ذلك من خلال السكريبت ser_mysql.sh ونقوم على الفور بتنفيذ الأمر التالى فى الطرفية :


        كود PHP:
        debian:/home/muhammad# /usr/local/sbin/ser_mysql.sh create

        MySql password for root:
        Domain (realm) for the default user 'admin':'localhost or xxx.domain.com'

        creating database ser ... 
        لابد أن تنفذ السكريبت السابق عن طريق حساب المستخدم الجذر أو root وإﻻ سوف تظهر رسالة خطأ بالشكل التالى :

        كود PHP:
        "/usr/local/sbin/ser_mysql.sh : line 160: gen_ha1 command not
        found HA1 calculation failed." 
        ملحوظة : كلمة السر السابقة التى سوف تقوم بإدخالها هى كلمة السر للمستخدم الجذر الخاصة بخادم MySQL ولمعرفة المزيد عن MySQL قم بتحميل الكتيب التالى :

        الآن سنتأكد من إنشاء القاعدة وذلك بالدخول إلى خادم MySQL بالشكل التالى :

        كود PHP:
        debian:~# mysql -u root -p
        Enter password:

        Welcome to the MySQL monitor.  Commands end with ; or \g.
        Your MySQL connection id is 98
        Server version
        5.0.32-Debian_7etch5-log Debian etch distribution

        Type 
        'help;' or '\h' for helpType '\c' to clear the buffer.

        mysql
        بعد ذلك سنقوم بإستعراض قواعد البيانات الموجودة داخل الخادم بالشكل التالى :


        كود PHP:
        mysqlshow databases;

        +--------------------+
        Database           |
        +--------------------+
        information_schema |
        mysql              |
        ser                |
        +--------------------+

        3 rows in set (0.02 sec
        بالفعل تم إنشاء قاعدة البيانات بشكل صحيح ، وهنا لن أتطرق إلى كيفية التعامل مع قاعدة البيانات لأنه أنت من سيقوم بتلك المهمة ، ولذا فلتراجع الكتيب لتتعلم المزيد عن MySQL .

        الآن سنقوم بتغيير ملف ser.cfg وتجهيزه للعمل مع MySQL عن طريق إضافة ال modules المناسبة لكى تتعامل مع خادم MySQL بشكل صحيح ومنها mysql.so و auth.so و auth_db.so ، لكن يوجد ملف مُهيأ مسبقاً وتوجد به الإعدادات التى نُريدها ولذا سنقوم بتحميل الملف مباشرة داخل المسار الذى يحتوى على ملف إعدادات SER كما يلى :

        كود PHP:
        debian:~# c d /usr/local/e tc/ser/; w get ftp://siprouter.onsip.org/pub/gettingstarted/configs/auth-mysql.cfg 
        بعد ذلك قم بإعادة تسمية الملف auth-mysql.cfg إلى إسم الملف الأصلى ser.cfg بالشكل التالى :

        كود PHP:
        debian:/usr/local/e tc/ser# cp auth-mysql.cfg ser.cfg 
        أصبح الآن ملف الإعدادات الجديد داخل المسار المطلوب ، وسنبدأ فى عمل بعض التعديلات عليه وفورا قم بإستخدام محرر النصوص لديك وحرر الملف :

        كود PHP:
        debian:/usr/local/e tc/ser# nano ser.cfg 
        الملف كبير نوعا ما ، لكن سنحتاج بعض الإشياء لإجراء تعديلات عليها وستكون بالشكل التالى :

        أوﻻ : السطر الذى توجد به كلمة fork قم بتغييره من no إلى yes لتصبح بالشكل التالى :

        كود PHP:
        fork=yes 
        ثانيا : السطر الذى توجد به كلمة listen قم بتغيير الأيبى 192.0.2.13 إلى الأيبى الذى سوف تستخدمه وكمثال قمت بإستبدال ذلك الرقم برقم جهازى داخل الشبكة (local network) :

        كود PHP:
        listen=10.0.0.36 
        بعد ذلك إنزل إلى منتصف الملف تقريبا إو إلى قرب نهايته لتجد ذلك القسم الخاص بعملية تسجيل الأجهزة على الخادم :

        كود PHP:
         # -----------------------------------------------------------------
                # REGISTER Message Handler
                # ----------------------------------------------------------------
                
        sl_send_reply("100""Trying");

                if (!
        www_authorize("localhost","subscriber")) {
                        
        www_challenge("localhost","0");
                        break;
                }; 
        إذا كنت داخل شبكة محلية قم بتسمية النطاق localhost أما إذا كنت تمتلك public domain فقم بوضعه مكان localhost ، ونظراً لإستخدام SER داخل الشبكة المحلية قمت بوضع النطاق localhost .

        ملحوظة : إذا كنت تريد ماذا تعنى تلك السطور وما فائد القيم سواء كانت ب yes أو ب no فقم بمراجعة ملف شرح الإعدادات getting started .

        الآن نتأكد من عمل export للمتغير SIP_DOMAIN بإستخدام الأمر echo كما يلى :


        كود PHP:
        debian:~# echo $SIP_DOMAIN

        localhost 
        فعلا قيمة المتغير SIP_DOMAIN موجودة ، بعد ذلك سنقوم بتشغيل SER عن طريق إحدى الطريقتين التى قمنا بذكرهما سابقاً إما بإستخدام الأمر ser أو إستخدام أداة التحكم فى SER وهى serctl بالشكل التالى :

        كود PHP:
        debian:~# serctl start 

        أو الطريقة الأخرى :


        كود PHP:
        debian:~# ser -E -P /var/run/ser.pid 

        وإذا لم تظهر أية أخطاء عند تنفيذ أى من الطريقتين السابقتين فكل شىء أصبح على ما يرام .


        المرحلة الثالثة : توثيق المستخدمين (Users's Authorization)


        قبل أن نكمل مسيرتنا مع SER أود لفت النظر إلى شىء هام أﻻ وهو أننى لم ولن أقوم بشرح التفاصيل أبداً ، لذا أنت من سيقوم بذلك وستعتمد على نفسك فى فهم طبيعة عمل البروتوكول وطبيعة عمل SER وعلى وجه الخصوص ملف الإعدادات ser.cfg وذلك حتى تعتمد على نفسك فى حل المشاكل وبالتالى بالنسبة للإستفسارات الخاصة بالموضوع لن أقوم بالإجابة على أى استفسار أراه بسيطاً وتستطيع حله عن طريق google ، ﻷنه لن يقوم بتطبيق الموضوع إﻻ من يريد فهم طبيعة عمل خادمات الفويب .


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


        المثال التالى يوضح ما أريده (بالعامية للتوضيح اكثر عذراً لغتى العربية !!):


        دلوقتى إنت جوا شبكة ومعاك ناس على الشبكة وطبعا قارفينك أحلى قرف ، منهم اللى بيعمل داونلود طول النهار ومش بيرحم الخط ، واللى شغال بال netcut الله ينور وغيره وغيره من المشاكل دى ، وطبعا انت كل شوية تقوم رافع سماعة التليفون وتتصل باللى عنده الروتر تقوله افصل الروتر وشغله تانى أو تقوله إذا كنت بتعمل دانلود بطل شوية على ما تخلص شغلك .......... طيب أبوك طبعا شايفك كل يوم هارى التيلفون على الناس دى والفاتورة آخر الشهر ما شاء الله قد كدددددددددددده ميات ميات وأبوك طبعا مش عاوز يتكلم علشان لو اتكلم معاك هيفتحها على البحرى وماحدش هيرده ايه العمل يا ريس ؟؟؟

        أنا : العمل تفوض أمرك لربنا .....

        إنت : طيب ما أنا سايبها لله إمال سايبها ليك .

        أنا : طيب إيه رأيك أنا هرحمك من المكالمات اللى بتعملها مع أصحابك جوا الشبكة بموضوع الفويب ده (بس ب 500 جنيه P

        إنت : ياعم خد اللى انت عاوزه بس ارحمنى من أبويا .

        أنا : ياعم أنا بهزر مش هاخد منك حاجة بس طبعا إنت بتستخدم جنو /لينوكس .

        إنت : طبعا وكمان Debian .

        أنا : حبيبى ده المطلوب ، تعرف لو كنت بتستخدم حاجة تانية غير Debian مكنتش هعملك حاجة !!! (فردة بقى P .

        إنت : ماشى ياعم خلصنى بقى إعمل ايه

        أنا : طبعا إنت هتنفذ اللى أنا شرحته كله وبعد ما تخلص قراية فى ال Getting Started وكتيب MySQL وكمان تظبطلى شوية فى ال SIP كل اللى هتحتاجه شوية softphones واحد عندك وترمى الباقى عند باقى الإنفار فى الشبكة وكله هيبقى تمام .

        إنت : طيب وضح أكتر مش فاهم .

        أنا : ماشى ياعم بص دلوقتى إنت عندك ديبيان صح ؟؟ وكمان نزلت عليه SER ونزلت MySQL وعملت كل اللى إحنا قلنا عليه وشغلت ال SER واتطمنت إنه مافيش أى حاجة غلط فل ؟

        إنت : فل ياعم !!

        أنا : طيب حلو قوى ، دلوقتى إنت بعد ما خلاص شغلت ال SER محتاج تضيف كام يوزر جوا ال MySQL وبالتحديد جوا قاعدة البيانات اللى اسمها ser وتحديدا بقى جوا الجدول اللى اسمه subscriber فل ؟

        إنت : فل انجز بقى ...

        أنا : ماشى بالراحة بس عليا ، زى ما قلتلك أن مش هعملك إزاى تستخدم جمل ال SQL أنا عرفتك إنت هتضيف فى أنهى قاعدة بيانات وفى أنهى جدول ، وبرده علشان ما تزعلش هتضيف فى العواميد اللى اسمها phplib_id و username و password وطبعا مش هوصيك إنت هتضيف كل ده ك strings وهتخليهم أرقام علشان يبقى سهل تتعامل معاهم وطبعا انت فاهم أنا بقول ايه ، وبرده هنتاية (مؤنث hint) كده ليك خلى اليوزر زى الباسورد علشان يبقى الموضوع سهل أما عمود ال phplib_id خليه يبدأ من 1 , 2 , 3 وهكذا ..

        إنت : ماشى وبعدين لما أضيف المستخدمين أعمل ايه ؟!

        أنا : عظيم جدا دلوقتى يا ريس شغلك كله جاهز ، كل اللى هتحتاجه زى ما قلنا شوية softphones ، على ديبيان هتلاقى واحد عندك إسمه ekiga ليه مميزات وعيوب أنا جربته بس الصوت فيه ومعقول ، وفيه واحد تانى إسمه twinkle ده ممتاز وبيدعم خاصية conference ياعنى ممكن تلاتة يتكلموا فى نفس الوقت وتقدر تسطبه من خلال الأمر ده :

        كود PHP:
        debian:~# apt-get install twinkle 
        دلوقتى إنت هتروح على الإعدادات مثلا بتاعت ekiga وتظبطها بالشكل ده (Edit => Accounts => Add):

        كود:
        [COLOR="Blue"]AccountName[/COLOR]= اى إسم 
        [COLOR="Blue"]Rigstrar[/COLOR] = ده رقم ايبى السيرفر بتاعك واللى كان فى موضوعنا [COLOR="Blue"]10.0.0.36[/COLOR]
        [COLOR="Blue"]user[/COLOR] = اليوزر اللى انت ضفته فى الماى سكول 
        [COLOR="Blue"]pass[/COLOR] = نفس النظام كلمة السر اللى انت ضفتها لليوزر ده
        
        More Options 
        
        [COLOR="Blue"]Authentication Login[/COLOR] = نفس رقم اليوزر 
        
        [COLOR="Blue"]Realm/Domain[/COLOR] = localhost المثال بتاعنا كان
        وبعد ما تحط الإعدادات دى اضغط على ok وبعدين هيظهر عندك إسم الاكونت اللى انت دخلته وقدامه مربع ، المربع ده حط فيه صح وبكده البرنامج بتاعك هيبدأ يسجل نفسه على السيرفر لو قالك registered يبقى كله تمام لو قال registration failed يبقى راجع الكلام اللى انت دخلته تانى .

        إنت : إنت هتحكيلى قصة حياتك !!

        أنا : ياعم أنا الحق عليا إنى بعرفك خطوة خطوة !!

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

        أنا : بص يا ريس لو كانوا بيستخدموا جنو/لينوكس يبقى هيعملو نفس الحوار ده هيظبطوا بس إعدادات ال ekiga وبدل اليوزر اللى انت حطيته هياخدوا يوزر تانى انت سامح بيه فى MySQL أما لو كانوا بيستخدموا المنيل على عنيه ويندوز يبقى عليهم وعلى اللينك ده :


        على فكرة البرنامج ده من غير فلوس !! علشان ما يجيش واحد من الإداريين ويحذف اللينك (أنا قلتلكو أهو P ، بعد ما ينزلوا البرنامج يا ريس أكيد هيسطبوه ويدخلوا فيه الكلام اللى احنا قلنا عليه قبل كده اليوزر والباس وغيره ..........

        إنت : ياعنى كده بس كل الموضوع وﻻ فيه حاجة تانية ؟؟؟

        أنا : لا فيه حاجات ادفانسد اكتر من كده وانا زى ما قلت لسه بحل فيها وإن شاء الله لما أظبطها واخلصها هبقى اعرفهالك !! ودلوقتى تقدر تتكلم مع أى حد فيهم طبعا بالرقم بتاعه وهو كمان يتكلم معاك (لينوكس اتكلم من القلب قصدى من السوفت فون !!)

        إنت : ألف ألف شكر يا ريس هجرب واردلك خبر .

        أنا : وهو كذلك يا زعيم .

        Call Released Teet Teet Teet


        ده كان السيناريو اللى هيحصل جوا الشبكة وطبعا ممكن جوا شركة او مصنع مربوط بشبكة داخلية او أى مكان تانى فيه شبكة لوكال .

        أتمنى يكون الموضوع عجبكم وزى ما قلتلكم أنا تعمدت إنى أخفى حاجات وموضحش بتتعمل ازاى علشان الناس تشتغل وتعلم نفسها بنفسها وعلشان كده مش هرد على أى مشكلة زى ما قلت انا شايف انها سهلة وممكن تتحل من خلال شوية بحث عاوزين نطور نفسنا بقى !!!

        وإن شاء الله زى ما قلت برده فى السيناريو الحاجات والإعدادات الادفانسد مجرد ما أخلص من تظبيطها هبقى أضيفها واحدة ورا التانية وادعولى بقى انها تخلص على طول ربنا كريم .


        ومش عاوز انبه على نقل الموضوع لأنه مش هتلاقى الموضوع فى أى مكان تانى علشان كده أى واحد هياخد الموضوع وينقله أى منتدى تانى ﻻزم يذكر المصدر وهو " مجتمع لينوكس العربى " أنا ما يهمنيش إذا كان هيقول مين اللى عمل أو غيره المهم إسم الموقع موجود .


        إن أصبت فمن الله وإن أخطأت فمن نفسى والشيطان وأتمنى واحد يدعيلى بس كده دعوه بصدق تكون من قلبه بظاهر الغيب .


        السلام عليكم ورحمة الله وبركاته
        شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
        | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

        تعليق


        • #5
          ياخي انت يابو عبد الرحمن " نكبه " << هههه يعني ولد كويس .. وسوف اقوم بجمع جميع المواضيع وترتيبها وتنسيقهاا فى كتب " pdf "


          يعطيك العافيه مقداماً ...
          :argeeleh:
          Twitter
          : @Linux4SA

          تعليق


          • #6
            شرح رائع أخوي أبوعبدالرحمن
            الله يعطيك ألف عافية وبانتظار تتمة الموضوع...
            ورأيي مثل ماقال بدر اجعل المواضيع مثل هذه على
            شكل كتب pdf ... كل الود.. عبدو.

            تعليق


            • #7
              ابو عبدالرحمن .. انت صعب :D
              الموضوع في غاية الجمال ,,, يحتاج القراءه اكثر من مره
              الله يزيدك علم فوق علمك

              و لاا انسى اخوي بدر من الشكر و بنتظار مشاركته الكريمه "ملف pdf" لأن الموضوع راااائع

              تعليق


              • #8
                مشكورين إخوانى على الموضوع ما تقلقوش انا مظبط الموضوع بحيث ماحدش هيستفيد منه فعليا إﻻ لما يطبق بنفسه علشان اكيد هتحصل معاه مشاكل وانا عارف كده D:

                أنبه بس على شىء الأمر c d والمسار e tc/ مكتبوين فى الموضوع كده علشان فيه مشكلة تخص الحماية على المنتدى بس طبعا مافيش فيهم مسافات

                بدووور ناطرينك خيييووو وناطرين الpdfs
                شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
                | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

                تعليق


                • #9
                  المشاركة الأصلية بواسطة أبو عبدالرحمن مشاهدة المشاركة
                  بدووور ناطرينك خيييووو وناطرين الpdfs
                  انتظرني الى ان اخلص اختبارات الترقيه ويصير خير
                  :argeeleh:
                  Twitter
                  : @Linux4SA

                  تعليق


                  • #10
                    يبدو أن الموضوع رائع جدا... سأنتظر فرصة مناسبة لتطبيقه

                    شكرا جزيلا لك.

                    سؤالي: هل يمكن أن يعمل على الشبكة العالمية أم أنه فقط يعمل في الشبكات المحلية ؟
                    قيل
                    إن قطرة الماء الوحيدة تجف، أما إذا تجمعت مع غيرها، فعندها سيتشكل سيل جارف، وقد يصبح شلالا يولد نورا يضيء دروب المتعبين. كما أن الماء الراكد سرعان ما يتطرق إليه الفساد !

                    تعليق


                    • #11
                      المشاركة الأصلية بواسطة uae مشاهدة المشاركة
                      يبدو أن الموضوع رائع جدا... سأنتظر فرصة مناسبة لتطبيقه

                      شكرا جزيلا لك.

                      سؤالي: هل يمكن أن يعمل على الشبكة العالمية أم أنه فقط يعمل في الشبكات المحلية ؟
                      لو قريت مقدمة الموضوع كويس يا uae هتعرف الإجابة لانى ذكرتها فى الموضوع وهى إمكانية تطبيق الموضوع بحيث إنه يكون شغال فى ال public domain بدون اى مشاكل بس ﻻزم يكون عندك bandwidth كفاية علشان تقدر تقدم خدمة كويسة انا شغال على السيرفر بتاعى 34 ميجا وساعات بتكون جودة الصوت مش كويسة وطبعا الموضوع بالنسبة لليوزر هيفرق كل ما كان الbandwidth عنده اعلى كل ما كانت جودة الصوت احسن
                      شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير
                      | قناة المجتمع التعليمية | قناة المجتمع للفيديوهات | ويكي مجتمع لينوكس العربي | البريد الألكتروني (eMail) |

                      تعليق


                      • #12
                        المشاركة الأصلية بواسطة أبو عبدالرحمن مشاهدة المشاركة
                        لو قريت مقدمة الموضوع كويس يا uae هتعرف الإجابة لانى ذكرتها فى الموضوع وهى إمكانية تطبيق الموضوع بحيث إنه يكون شغال فى ال public domain بدون اى مشاكل بس ﻻزم يكون عندك bandwidth كفاية علشان تقدر تقدم خدمة كويسة انا شغال على السيرفر بتاعى 34 ميجا وساعات بتكون جودة الصوت مش كويسة وطبعا الموضوع بالنسبة لليوزر هيفرق كل ما كان الbandwidth عنده اعلى كل ما كانت جودة الصوت احسن
                        شكرا على التوضيح، وأرجو المعذرة على السؤال لأني قرأت الموضوع سريعا فاختلط الأمر علي.
                        قيل
                        إن قطرة الماء الوحيدة تجف، أما إذا تجمعت مع غيرها، فعندها سيتشكل سيل جارف، وقد يصبح شلالا يولد نورا يضيء دروب المتعبين. كما أن الماء الراكد سرعان ما يتطرق إليه الفساد !

                        تعليق


                        • #13
                          ممـــيز كالعاده في مواضيعك " ابو عبد الرحمــن " ,وان شاء الله هكمـل قريته في وقت تاني

                          تعليق


                          • #14
                            شكرا ابو عبد الرحمن
                            و لنا عودة بعد الفاصل ...................
                            سبحانك ربي لا اله الا انت خلقتني و انا عبدك و انا علي عهدك و وعدك ما استطعت اعوذ بك من شر ما صنعت ابؤ لك بنعمتك علي و ابؤ بذنبي فاغفر لي انة لا يغفر الذنوب الا انت

                            تعليق


                            • #15
                              موضوع جميل جدا جدا وانا مجربتوش بس والله قريته كله علشان عجبني وان شاء الله وعد هحاول جاهد اني اطبقه بس انا عندي سؤال صغير بس هل في ارب ام علشان يبقي اسهل استخدمه علي توزيعه فيدورا او ريدهات او سنتوس

                              تعليق

                              يعمل...
                              X
                              😀
                              🥰
                              🤢
                              😎
                              😡
                              👍
                              👎