خرداد, 1398 بدون نظر VOIP, آموزش

تغییر اساسی در هسته ی برنامه به خودی خود یک کار پیچیده ای است، اگر این برنامه نزدیک به یک و نیم میلیون خط کد و بیش از 15 سال سابقه در بازار راه هم داشته باشد امری تقریبا غیر ممکن است. اما این دقیقا کاری است که تیم برنامه نویسی استریسک پس از انتشار استریسک 12 به آن روی آورده اند. حرکت به سمت نسل جدید سیپ تحت عنوان   pjsip تصمیمی است که استریسکی ها به اندازه ی کافی دلایلش را دارند.

استریسک سه سال از زمان فعالیتش می گذشت که پروتکل سیپ معرفی شد و توسعه دهندگان این ابر برنامه تصمیم به استفاده از این پروتکل در برنامه ی خود کردند. اگر آنروزها به هریک از توسعه دهندگان سیپ و استریسک موفقیت چشم گیر 10 ساله شان را برایشان به تصویر می کشیدیم شاید به سختی می توانستند باور کنند اما حالا با گذشت بیش از یک دهه هر دو پروژه جزو بهترین ها به حساب می آیند.

استریسک در فایل chan_sip شروع به استفاده از پروتکل SIP کرد و در طی این سالها با توسعه ی این فایل امکانات محدود تری از سیپ را برای استفاده در نظر گرفت. استریسک کلیه امورات سیپ اعم از پیغام های سیپ. ثبت نام و ارتباط با هسته را در همین فایل گنجاند و همین کار به خودی خود تغییرات ساختاری را بسیار سخت تر می کرد، چرا که با هر تغییری ایرادات ناخواسته زیادی متحمل سیستم می شد.

هرچند از زبان خود برنامه نویسان استریسک شنیده ایم که فایل chan_sip  انرژِی خیلی زیادی را از توسعه دهندگان استریسک می گیرد و اگر این انرژی ذخیره شود می توانند برروی توسعه ی سایر بخش ها تلاش کنند.

در دنیای ویپ کسانی که ایراد‌های استریسک را تحت نظر دارند آماری را ارایه کرده اند که در نوع خود بسیار جالب است . این آمار نشان می‌دهد که حدود ۳۰درصد از کل‌ ایراد‌های سیستم به همین فایل بر‌می‌گرد

با تکیه بر واقعیت‌ها تیم استریسک دو راه در مقابل خود برای حل این مشکل داشت. اولی تغییرات ساختاری در فایل chan_sip بود که از مزایای این روش آشنایی سایر کدنویسان با نحوه‌ی کدهای این فایل و در نتیجه استفاده از امکانات این سیستم بود و دومی ایجاد یک فایل جدید که شانس تجدید بنا با معماری همگون و مناسب عصر امروز را می داد. استریسکی ها گزینه دوم را انتخاب کردند و در استریسک ۱۲ نشان دادند که به همین سمت حرکت کرده اند.

دو دلیل عمده ای که می توانیم برای این تصمیم تیم استریسک در نظر بگیریم را در اینجا بررسی می کنیم. اولی ساختار یکپارچه کانال سیپ است که هر تغییر جدیدی را بسیار سخت و تا حدی غیر ممکن کرده بود و دلیل عمده دوم برای شروع پروژه جدید، توانایی ایجاد درایور جدید در کنار درایور سیپ و موازی با آن است با اینکار بدون تحمیل هزینه‌ی تغییر یکباره کل درایور، تست‌های خود را براحتی برای پیشبرد اهداف مشخص برروی درایور جدید اعمال می کنند.

در ورژن ۱۲ با بهره گیری از pjsip استریسکی ها توانستند درایوری را راه اندازی کنند که در آن کلیه ی امورات سیپ به صورت جداگانه در فایل‌های جداگانه نگه داری می شود. به عنوان مثال ایجاد داخلی سیپ و رجیستری سیپ هریک در فایلی جداگانه کد نویسی شده اند و بنابراین برای هرگونه تغییری دست کد نویس کاملا باز است و تغییرات برروی فرایند هریک از این مراحل به فرایند دیگری تاثیر گذار نخواهد بود.

در این ورژن هر یک از درایور ها با کمترین تاثیر بررروی یکدیگر در نظر گرفته شده اند و از بابت نگهداری نیز همین بس که فایل chan_sip دارای ۳۵ هزار خط کد و فایل chan_pjsip تنها حاوی ۲۰۰۰ خط کد است.

اگر تا کنون از این پروتکل استفاده کرده اید نظرات خود را با دیگران به اشتراک بگذارید.

برچسب ها

ارسال نظر شما

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *