این مقاله؛ در خصوص استریسک به سمت PJSIPمیباشد. برای آگاهی بیشتر از این موضوع، همراه وبوآپ باشید. “همچنین میتوانید، برای کسب اطلاعات بیشتر از صفحه “خط تلفن ثابت آسیاتک” استفاده کنید.”
پیاده سازی PJSIP
تغییرات اساسی در برنامه؛ کار پیچیده ای است. اگر این برنامه نزدیک به یک و نیم میلیون خط کد و بیش از 15 سال سابقه در بازار راه هم داشته باشد. تقریبا غیر ممکن است. اما این، دقیقا همان کاری بوده. که تیم برنامه نویسی استریسک پس از انتشار استریسک 12 به آن روی آورده اند. حرکت به سمت نسل جدید سیپ تحت عنوانPJSIP تصمیمی بود. که استریسکی ها به اندازه ی کافی دلایلش را دارند. استریسک سه سال از زمان فعالیتش میگذشت که پروتکل سیپ معرفی شد. و توسعه دهندگان این ابر برنامه تصمیم به استفاده از این پروتکل در برنامه خود کردند.
استریسک در فایل chan_sip شروع به استفاده از پروتکل SIP کرد. و در طی این سال ها با توسعه ی این فایل امکانات محدود تری از سیپ را برای استفاده در نظر گرفت. استریسک کلیه امورات سیپ اعم از پیغام های سیپ. ثبت نام و ارتباط با هسته را در همین فایل گنجاند و همین کار به خودی خود تغییرات ساختاری را بسیار سخت تر می کرد. چراکه با هر تغییری ایرادات ناخواسته زیادی متحمل سیستم می شد.
فایل chan_sip انرژی خیلی زیادی را از توسعه دهندگان استریسک می گیرد. و اگر این انرژی ذخیره شود. میتوانند، برروی توسعه ی سایر بخش ها تلاش کنند. در دنیای ویپ کسانی که ایرادهای استریسک را تحت نظر دارند، آماری را ارایه کرده اند. که در نوع خود بسیار جالب است. این آمار نشان میدهد. که حدود ۳۰درصد از کل ایرادهای سیستم به همین فایل برمیگردد.
استریسک وPJSIP
با تکیه بر واقعیتها تیم استریسک دو راه در مقابل خود برای حل این مشکل داشت. اولی تغییرات ساختاری در فایل chan_sip بود. که از مزایای این روش آشنایی سایر کدنویسان با نحوهی کدهای این فایل و در نتیجه استفاده از امکانات این سیستم بوده. و دومی ایجاد یک فایل جدید که شانس تجدید بنا با معماری همگون و مناسب عصر امروز را می داد. استریسکی ها گزینه دوم را انتخاب کردند. و در استریسک ۱۲ نشان دادند. که به همین سمت حرکت کرده.
دو دلیل عمده ای که می توانیم برای این تصمیم تیم استریسک در نظر بگیریم، را در اینجا بررسی می کنیم. اولی ساختار یکپارچه کانال سیپ است. که هر تغییر جدیدی را بسیار سخت و تا حدی غیر ممکن کرده بود. و دلیل عمده دوم برای شروع پروژه جدید، توانایی ایجاد درایور جدید در کنار درایور سیپ و موازی با آن است با اینکار بدون تحمیل هزینهی تغییر یکباره کل درایور، تستهای خود را براحتی برای پیشبرد اهداف مشخص برروی درایور جدید اعمال می کنند.
در ورژن ۱۲ با بهره گیری از PJSIP استریسکی ها توانستند درایوری را راه اندازی کنند. که در آن کلیه ی امورات سیپ به صورت جداگانه در فایلهای جداگانه نگه داری می شود. برای مثال؛ ایجاد داخلی سیپ و رجیستری سیپ هریک در فایلی جداگانه کد نویسی شده اند. و به همین دلیل، برای هرگونه تغییری دست کد نویس کاملا باز است. و تغییرات برروی فرایند هریک از این مراحل به فرایند دیگری تاثیر گذار نخواهد بود.
در این ورژن هر یک از درایور ها با کمترین تاثیر بررروی یکدیگر در نظر گرفته شده اند. و از بابت نگهداری نیز همین بس که فایل chan_sip دارای ۳۵ هزار خط کد و فایل chan_pjsip تنها حاوی ۲۰۰۰ خط کد است.