feat(groups): audio and video calls in group chats; release v6.6.6
A group call is N-1 ordinary 1:1 calls, one to each other member, each riding the pairwise session that member already has — a transport a human already authenticated by comparing the safety code. No mixer, no SFU, no point at which two people's media meets anywhere but on a device. Call control is separate from call media, because the two reach different sets of people. Who opened a call, who joined and who left travels as group frames signed with the sender's group identity key, so it reaches members currently reachable only through a relay — and a relaying member can drop one but cannot write one. Media flows only where a direct link exists, so a member without one shows as connecting rather than being omitted. Frames carry a per-sender sequence checked before the action, so a captured leave cannot end a later call, and simultaneous calls converge on the lower random call id. One capture is shared across every leg rather than one getUserMedia per member, and legs answer without prompting: the flag permitting that is set only locally, only while this user is in the call, and cleared when they leave. UI: a gallery that sizes itself from the space it has, a spotlight view, an active-speaker indicator read from the waveform, and the call surface in the same visual language as the 1:1 one. Also in this commit, the v6.5.0 language-suggestion work that had not been pushed yet; its notes are in the changelog. And two fixes: the safety-code input asks for digits rather than text, and starting a new chat from inside a group no longer creates it behind the group where it cannot be seen — which had made it impossible to connect to anyone new, or to add anyone to a group, while a group was open. Claude-Session: https://claude.ai/code/session_01XSxAkET3hQTkYDQfbjCQwZ
This commit is contained in:
+26
-1
@@ -36,6 +36,9 @@
|
||||
},
|
||||
"ui": {
|
||||
"language.label": "زبان",
|
||||
"language.suggest.text": "یہ صفحہ اردو میں بھی دستیاب ہے۔",
|
||||
"language.suggest.cta": "اردو میں پڑھیں",
|
||||
"language.suggest.dismiss": "بند کریں",
|
||||
"community.title": "نجیت کے مستقبل میں شامل ہوں",
|
||||
"community.description": "SecureBit اپنی برادری کی بدولت بڑھتا ہے۔ آپ کے خیالات اور آراء محفوظ رابطے کا مستقبل تشکیل دیتے ہیں - کھلے عام بنایا گیا، سرے سے سرے تک مکمل ASN.1 توثیق کے ساتھ۔",
|
||||
"community.github": "GitHub مخزن",
|
||||
@@ -781,6 +784,28 @@
|
||||
"offline.disconnect": "منقطع کریں",
|
||||
"offline.learnMore": "مزید جانیں",
|
||||
"pwa.installApp": "ایپ نصب کریں",
|
||||
"chat.onWeb": "آپ ویب پر ہیں"
|
||||
"chat.onWeb": "آپ ویب پر ہیں",
|
||||
"groupCall.startVoice": "گروپ وائس کال شروع کریں",
|
||||
"groupCall.startVideo": "گروپ ویڈیو کال شروع کریں",
|
||||
"groupCall.join": "شامل ہوں",
|
||||
"groupCall.dismiss": "ابھی نہیں",
|
||||
"groupCall.leave": "کال چھوڑیں",
|
||||
"groupCall.you": "آپ",
|
||||
"groupCall.connecting": "منسلک ہو رہا ہے…",
|
||||
"groupCall.waitingLink": "براہِ راست رابطے کا انتظار…",
|
||||
"groupCall.legFailed": "منسلک نہیں ہو سکا",
|
||||
"groupCall.startedVoice": "{name} نے وائس کال شروع کی",
|
||||
"groupCall.startedVideo": "{name} نے ویڈیو کال شروع کی",
|
||||
"groupCall.inCall": "کال میں {count}",
|
||||
"groupCall.err.permission_denied": "کال شروع نہیں ہو سکی - مائیکروفون اور کیمرے تک رسائی بند ہے۔ اس سائٹ کے لیے اجازت دیں اور دوبارہ کوشش کریں۔",
|
||||
"groupCall.err.device_not_found": "کال شروع نہیں ہو سکی - اس ڈیوائس پر کوئی مائیکروفون نہیں ملا۔",
|
||||
"groupCall.err.device_busy": "کال شروع نہیں ہو سکی - آپ کا مائیکروفون کسی اور ایپ کے زیرِ استعمال ہے۔ اسے بند کر کے دوبارہ کوشش کریں۔",
|
||||
"groupCall.err.media_failed": "کال شروع نہیں ہو سکی - مائیکروفون نہیں کھل سکا۔",
|
||||
"groupCall.err.call_in_progress": "اس گروپ میں پہلے ہی ایک کال جاری ہے۔ نئی شروع کرنے کے بجائے اس میں شامل ہوں۔",
|
||||
"groupCall.err.not_ready": "کال سے پہلے گروپ کوڈ کی تصدیق کریں۔",
|
||||
"groupCall.speaking": "{name} بول رہے ہیں",
|
||||
"groupCall.pin": "{name} کو بڑا دکھائیں",
|
||||
"groupCall.unpin": "سب پر واپس جائیں",
|
||||
"groupCall.showEveryone": "سب"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user