نسخه جدیدی از پلتفرم ارتباطی غیرمتمرکز جامی معرفی شده است که با نام رمز "ویلاگفا" توزیع شده است. هدف این پروژه ایجاد یک سیستم ارتباطی است که در حالت P2P عمل میکند و امکان سازماندهی ارتباط بین گروههای بزرگ و تماسهای فردی را فراهم میکند و در عین حال سطح بالایی از محرمانگی و امنیت را فراهم میکند. جامی که قبلا با نام های Ring و SFLphone شناخته می شد، یک پروژه GNU است و تحت مجوز GPLv3 است. مجموعه های باینری برای گنو/لینوکس (دبیان، اوبونتو، فدورا، SUSE، RHEL و غیره)، ویندوز، macOS، iOS، اندروید و تلویزیون اندروید آماده شده اند.
برخلاف کلاینتهای ارتباطی سنتی، Jami میتواند پیامها را بدون تماس با سرورهای خارجی با سازماندهی یک ارتباط مستقیم بین کاربران با استفاده از رمزگذاری سرتاسر (کلیدها فقط در سمت کلاینت موجود است) و احراز هویت بر اساس گواهیهای X.509 ارسال کند. علاوه بر پیام رسانی ایمن، این برنامه به شما امکان می دهد تماس های صوتی و تصویری برقرار کنید، کنفرانس های تلفنی ایجاد کنید، فایل ها را مبادله کنید و دسترسی مشترک به فایل ها و محتوای صفحه را سازماندهی کنید. برای کنفرانس ویدیویی روی سروری با پردازنده مرکزی Intel Core i7-7700K 4.20 گیگاهرتز، 32 گیگابایت رم و اتصال شبکه 100 مگابیت بر ثانیه، بهترین کیفیت زمانی حاصل می شود که بیش از 25 شرکت کننده متصل نباشند. هر شرکت کننده در کنفرانس ویدئویی تقریباً به پهنای باند 2 مگابیت بر ثانیه نیاز دارد.
در ابتدا، این پروژه به عنوان یک تلفن نرم افزاری مبتنی بر پروتکل SIP توسعه یافت، اما مدت هاست که فراتر از این چارچوب به نفع مدل P2P رفته است، در حالی که سازگاری با SIP و توانایی برقراری تماس با استفاده از این پروتکل را حفظ کرده است. این برنامه از کدک های مختلف (G711u، G711a، GSM، Speex، Opus، G.722) و پروتکل ها (ICE، SIP، TLS) پشتیبانی می کند، رمزگذاری قابل اعتماد ویدیو، صدا و پیام ها را فراهم می کند. توابع سرویس شامل انتقال و نگهداری تماس، ضبط تماس، تاریخچه تماس با جستجو، کنترل خودکار صدا، ادغام با دفترچه آدرس GNOME و KDE است.
برای شناسایی کاربر، Jami از مکانیزم احراز هویت حساب جهانی غیرمتمرکز مبتنی بر اجرای یک دفترچه آدرس در قالب بلاک چین استفاده می کند (توسعه های پروژه اتریوم استفاده می شود). یک شناسه کاربری (RingID) می تواند به طور همزمان در چندین دستگاه استفاده شود و به شما امکان می دهد بدون توجه به اینکه کدام دستگاه فعال است، بدون نیاز به نگهداری شناسه های مختلف در تلفن هوشمند و رایانه شخصی خود، با کاربر تماس بگیرید. دفترچه آدرسی که مسئول ترجمه نامها به RingID است در گروهی از گرهها ذخیره میشود که توسط شرکتکنندگان مختلف نگهداری میشوند، از جمله توانایی اجرای گره خود برای نگهداری یک کپی محلی از دفترچه آدرس جهانی (Jami همچنین یک دفترچه آدرس داخلی جداگانه را پیادهسازی میکند که توسط شرکتکنندگان مختلف نگهداری میشود. مشتری).
برای آدرس دادن به کاربران در جامی، از پروتکل OpenDHT (جدول هش توزیع شده) استفاده می شود که نیازی به استفاده از رجیستری های متمرکز با اطلاعات کاربران ندارد. اساس Jami فرآیند پس زمینه jami-daemon است که وظیفه پردازش اتصالات، سازماندهی ارتباطات، کار با ویدئو و صدا را بر عهده دارد. تعامل با jami-daemon با استفاده از کتابخانه LibRingClient سازماندهی شده است، که به عنوان پایه ای برای ساختن نرم افزار مشتری عمل می کند و تمام عملکردهای استاندارد را ارائه می دهد که به رابط کاربری و پلتفرم ها مرتبط نیستند. برنامه های کلاینت مستقیماً در بالای LibRingClient ایجاد می شوند، که ایجاد و پشتیبانی از رابط های مختلف را بسیار آسان می کند. کلاینت اصلی برای رایانه شخصی با استفاده از کتابخانه Qt نوشته شده است و کلاینت های اضافی بر اساس GTK و Electron در حال توسعه هستند.
نوآوری های اصلی:
- توسعه سیستم ارتباط گروهی ازدحام (Swarms) ادامه یافت و امکان ایجاد چت های P2P کاملاً توزیع شده را فراهم کرد که تاریخچه ارتباط آن به طور مشترک در همه دستگاه های کاربر به صورت همگام ذخیره می شود. در حالی که قبلاً فقط دو شرکت کننده مجاز به برقراری ارتباط در یک گروه بودند، در نسخه جدید، حالت ازدحام اکنون می تواند چت های گروهی کوچک تا 8 نفر ایجاد کند (در نسخه های بعدی آنها قصد دارند تعداد مجاز شرکت کنندگان را افزایش دهند و همچنین پشتیبانی را اضافه کنند. برای چت های عمومی).
دکمه جدیدی برای ایجاد چت های گروهی اضافه شده و امکان پیکربندی تنظیمات چت فراهم شده است.
پس از ایجاد یک چت گروهی، می توانید شرکت کنندگان جدیدی را به آن اضافه کنید و افراد موجود را حذف کنید. سه دسته از شرکت کنندگان وجود دارد: دعوت شده (به گروه اضافه شد، اما هنوز به چت متصل نشده است)، متصل و سرپرست. هر شرکتکننده میتواند دعوتنامهها را برای افراد دیگر ارسال کند، اما فقط سرپرست میتواند از گروه حذف کند (در حال حاضر فقط یک سرپرست میتواند وجود داشته باشد، اما در نسخههای بعدی یک سیستم منعطف از حقوق دسترسی و امکان تعیین چندین سرپرست وجود خواهد داشت).
- یک پنل جدید با اطلاعات چت مانند لیست شرکت کنندگان، لیست اسناد ارسال شده و تنظیمات اضافه شده است.
- چندین نوع نشانگر در مورد خواندن پیام و تایپ متن اضافه شده است.
- امکان ارسال فایل به چت فراهم شده است و شرکت کنندگان در چت حتی اگر فرستنده آنلاین نباشد می توانند فایل را دریافت کنند.
- یک رابط برای جستجوی پیام ها در چت اضافه شده است.
- پشتیبانی برای تنظیم واکنش ها با استفاده از کاراکترهای ایموجی اضافه شده است.
- گزینه ای برای نمایش اطلاعات مکان فعلی اضافه شده است.
- پشتیبانی آزمایشی برای چت گروهی همراه با کنفرانس های ویدیویی به مشتری دسکتاپ اضافه شده است.
منبع: opennet.ru