حرکت استریسک به سمت پیاده سازی PJSIP

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

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

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

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

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

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

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

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

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

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

حامد کوه فلاح

متخصص، برنامه نویس و مدرس Asterisk و راهکارهای نوین ارتباطی آشنایی و کار با استریسک و راهکار های مشابه از سال 1382، پایه گذاری VOIPIRAN ارائه راهکار های کدباز VOIP همچون VAAK و VOIZ و CONNEXO همکار برنامه نویسی و آموزش با پروژه های Elastix و Issabel با بیش از 3000 دانشجو از سال 1387

Share
Published by
حامد کوه فلاح

Recent Posts

SaaS چیست؟ بررسی جامع، مزایا

SaaS چیست؟ بررسی جامع نرم‌افزار به‌عنوان سرویس و مزایای آن در دنیای فناوری اطلاعات، مدل‌های…

2 روز ago

Softswitch چیست؟ ستون اصلی شبکه‌های VoIP و نحوه طبقه‌بندی آن‌ها

در دنیای ارتباطات راه دور و شبکه‌های VoIP، اصطلاح Softswitch یکی از مفاهیم کلیدی است. Softswitch یک سیستم نرم‌افزاری…

5 روز ago

مدیریت Asterisk از طریق کنسول مثل یک حرفه ای: ابزارها و نکات

Asterisk به‌عنوان یکی از محبوب‌ترین پلتفرم‌های تلفن تحت شبکه (VoIP)، ابزارهای قدرتمند و متنوعی را…

1 هفته ago

آشنایی با مفاهیم FXS و FXO در سیستم‌های VoIP

در سیستم‌های تلفنی سنتی و مدرن، مفاهیمی مانند FXS و FXO نقشی کلیدی در ارتباطات آنالوگ و دیجیتال ایفا…

1 هفته ago

Devv.ai: موتور جستجوی هوشمند برای توسعه‌دهندگان و متخصصان IT

در دنیای پیچیده فناوری اطلاعات و برنامه‌نویسی، یافتن سریع اطلاعات دقیق و ابزارهای موردنیاز از…

2 هفته ago

راهنمای کامل MagnusBilling: ویژگی‌ها، مزایا و نصب روی ایزابل ۵

MagnusBilling چیست؟ MagnusBilling یک سیستم بیلینگ VoIP با ویژگی‌های قدرتمند و انعطاف‌پذیر است که امکان…

2 هفته ago