savoirfairelinux issueshttps://git.jami.net/groups/savoirfairelinux/-/issues2023-09-18T19:31:34Zhttps://git.jami.net/savoirfairelinux/jami-project/-/issues/1117Feature Idea: HTTP tunneling through Jami, for social IoT, remote tech suppor...2023-09-18T19:31:34ZDaniel DunnFeature Idea: HTTP tunneling through Jami, for social IoT, remote tech support, and profile pagesPersonal websites, in my opinion, were the defining element that really made the early web great. Sadly, they have almost been driven to nonexistence by social media, which on many sites does not truly allow any level of expression beyo...Personal websites, in my opinion, were the defining element that really made the early web great. Sadly, they have almost been driven to nonexistence by social media, which on many sites does not truly allow any level of expression beyond a news feed.
## Use Cases
Current IoT devices can often have some kind of social aspect, such as sharing fitness data, and at the very least usually need some way to access them remotely, which is currently almost exclusively the domain of centralized services.
Many times, one also wants to give control of a local service to a remote user, for tech support purposes as in TeamViewer, and quite often one wants to share a file with a group on a "Pull" basis, rather than directly sending to one person.
In cases of censorship, or off-grid scenarios where only one person has real internet access, one might also want to share access to a public internet resource, to a few specific users only.
Applications like Kiwix that serve offline copies of things like Wikipedia could provide trusted educational content over an entire mesh network.
The system could be used for remote access to NextCloud and similar.
More... Ahem... Personal devices are apparently becoming cloud IoT enabled, and there was just a big controversy or something in the news, and I would imagine that's one area
where you would really want to control exactly who has access.
Profile pages with images are a staple of social media, and are especially useful if you make a dedicated account for a certain project.
A secure and decentralized association between a server and your account allows you to integrate seamlessly with other decentralized projects, some of which could eventually have deeper integration, without Jami needing to specifically support them.
Similar to images and locations, any arbitrary dynamic content could be shared with other users in a chat, like live webcam views, or perhaps even embedded directly inline into a chat window in an iframe.
## Implementation
One possibility that would seem to cover all of these use cases with minimal overhead is HTTP tunneling. Jami could expose an unlimited number of HTTP/WebSocket services per account, each with a freely assignable name.
These services would then be available via Jami acting as a proxy, on any other device, at SERVICENAME.USERID.localhost:someport. As completely separate subdomains, all sandboxing and security is provided by the browser.
SERVICENAME is never sent or advertised in the cleartext at any point, and the UI for creating tunnels defaults to a long random name, making them equivalent to capability URLs unless changed to short public URLs purposefully.
An API is added via DBus or Android Intents, to allow other apps to easily specify the tunnel they want to create.
Services can have expiration dates on them, so that you do not forget to delete one you only meant to share briefly. Expired services are completely deleted if not refreshed, preventing any risk of reusing a capability URL that you meant to only share for one session.
### Profile Pages
One could define the empty service name(Just USERID.localhost) as a public profile page, with a 32KB limit or such, that syncs across accounts and caches on other nodes on a most-recent-wins basis. Maybe you could even store it directly in the DHT, digitally signed.
Any additional content or images could then be loaded using the proxy mechanism on a home server, failing gracefully to just this minimal DHT-only content.
## Prior Art
Similar proposal in XMPP: https://xmpp.org/extensions/xep-0332.html
Data forms in XMPP cover similar use cases: https://xmpp.org/extensions/xep-0004.html
Now abandoned Mozilla proposal for IoT on LAN: https://wiki.mozilla.org/FlyWeb
Nabu Casa seems to use the same embedded key in subdomain concept as this, albeit
on a centralized remote server, to access Home Assistant via the cloud: https://www.nabucasa.com/config/remote/
## Security Issues
### IP-revealing Privacy issue for profile pages and inline chat content
Profile pages could use tracking pixels and the like, breaking I2P et al. But we are proxying everything through localhost, and so we can use the content-security-policy to stop this.
This does not stop WebRTC exfiltration from leaking your IP, but the entire profile can be wrapped in an iframe that disables JS entirely, and inline chat content can be hidden behind a "Do you want to load this content? It may include resources from an external server" popup.
For anything but profile pages, any privacy issues are going to be up to the user, as with any other site.
Ideally profiles would be served in an embedded WebView anyway, giving another place to further enforce no-js behavior.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/368Handle peerMuted information for call2021-05-04T21:57:54ZPierre LespagnolHandle peerMuted information for callPierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/204Allowing the host to join the conference after being kicked2020-12-09T21:23:11ZPierre LespagnolAllowing the host to join the conference after being kickedPierre LespagnolAlbert Babí OllerPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/367Add call + file transfer messages2021-04-19T13:30:50ZSébastien BlinAdd call + file transfer messages+ Accept commits similar to plain/text but different mimetype
+ Add messages "application/call-history+json" and add the message when stopping the call (duration/to)
+ Support "application/data-transfer+json" and add to the history when ...+ Accept commits similar to plain/text but different mimetype
+ Add messages "application/call-history+json" and add the message when stopping the call (duration/to)
+ Support "application/data-transfer+json" and add to the history when sending a fileSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/366Crash with H264_VAAPI2021-01-21T14:20:59ZPierre LespagnolCrash with H264_VAAPIThe crash occurs sometimes 30 seconds after the start of the call in the decoding part when H264_VAAPI codec is used.
[bt.log](/uploads/65888eb2ff40cf3d20665befcf72a4b2/bt.log)The crash occurs sometimes 30 seconds after the start of the call in the decoding part when H264_VAAPI codec is used.
[bt.log](/uploads/65888eb2ff40cf3d20665befcf72a4b2/bt.log)Iteration 27Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/450Character encoding issue on Windows client2022-01-07T21:34:21ZSybren A. StüvelCharacter encoding issue on Windows clientThe Windows client (version 202011191640) doesn't display non-ASCII characters correctly in profile names. The contact list seems to assume Latin-1 encoding, whereas the top of the chat window does show the correct name.
![image](/uploa...The Windows client (version 202011191640) doesn't display non-ASCII characters correctly in profile names. The contact list seems to assume Latin-1 encoding, whereas the top of the chat window does show the correct name.
![image](/uploads/8c19e4bda898107dc2c822ad4591c30f/image.png)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/365Ice: group code for IceSocketTransport & IceSocket & IceSocketEndpoint2021-05-04T21:57:59ZSébastien BlinIce: group code for IceSocketTransport & IceSocket & IceSocketEndpointSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-project/-/issues/1116Crash with H264_VAAPI2020-12-08T22:58:25ZPierre LespagnolCrash with H264_VAAPIThe crash occurs sometimes 30 seconds after the start of the call in the decoding part when H264_VAAPI codec is used.
[bt.log](/uploads/0d09346760fc4dda1bad5a2e7ded0769/bt.log)The crash occurs sometimes 30 seconds after the start of the call in the decoding part when H264_VAAPI codec is used.
[bt.log](/uploads/0d09346760fc4dda1bad5a2e7ded0769/bt.log)Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/203Generic placeholder should be used if there's no registered name (ring) or di...2020-12-10T19:50:37ZMing Rui ZhangGeneric placeholder should be used if there's no registered name (ring) or display name (sip) is availableMing Rui ZhangMing Rui Zhanghttps://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1227About box empty2021-08-16T20:53:35ZJean-Jacques SartonAbout box emptyIf the About box is opened, the box content is transparent. No
things is shown-If the About box is opened, the box content is transparent. No
things is shown-https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/364jami2020-12-24T21:30:40Zjamijami is not sharing location. but when you start sharing location, if you want share is saying stop sharing .help please.jami is not sharing location. but when you start sharing location, if you want share is saying stop sharing .help please.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/362Swarm: add signal for member events (add/join/leave)2021-04-19T13:30:25ZSébastien BlinSwarm: add signal for member events (add/join/leave)All is in the titleAll is in the titleSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-nameservice/-/issues/4outdated instructions?2023-05-21T23:19:00ZMohammad Khashashnehoutdated instructions?Hi, in reference to [Fully self hosting Jami](https://git.jami.net/savoirfairelinux/ring-project/issues/765), I'm trying to use this implementation on my server but the build instructions seem to be outdated. There is no `start_eth_clust...Hi, in reference to [Fully self hosting Jami](https://git.jami.net/savoirfairelinux/ring-project/issues/765), I'm trying to use this implementation on my server but the build instructions seem to be outdated. There is no `start_eth_cluster.py` and `sudo nodejs index.js` produces an error as follows:
`blah@ubuntu:~/dev/jami/ring-nameservice$ sudo nodejs index.js
undefined
/home/blah/dev/jami/ring-nameservice/node_modules/web3-core-helpers/lib/formatters.js:398
throw new Error('Provided address "' + address + '" is invalid, the capitalization checksum test failed, or its an indrect IBAN address which can\'t be converted.');...`
any feedback is much appreciated.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/361dring eat 200 % processor time2021-07-16T18:50:14ZJean-Jacques Sartondring eat 200 % processor timeSystem Fedora 32 with Xfce4
Sometime dring need, according to top, 200% of the CPU time, and jami-gnome is no more accepting mouse events.
This happen often after a call but may also appear if jami is fresh launched.System Fedora 32 with Xfce4
Sometime dring need, according to top, 200% of the CPU time, and jami-gnome is no more accepting mouse events.
This happen often after a call but may also appear if jami is fresh launched.https://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1226Emoji showing as a question mark `?`2021-09-26T08:05:07ZovariEmoji showing as a question mark `?`1. Jami → Settings → Account → Add a Christmas tree emoji, i.e. `🎄`, at the beginning of the Profile Name → Leave settings page
2. Call contact and the circle incorrectly has a question mark, i.e. `?`, when it should correctly show the C...1. Jami → Settings → Account → Add a Christmas tree emoji, i.e. `🎄`, at the beginning of the Profile Name → Leave settings page
2. Call contact and the circle incorrectly has a question mark, i.e. `?`, when it should correctly show the Christmas tree emoji, i.e. `🎄`
![emoji](/uploads/41ef38eb3da4bb9d09108e08409ce684/emoji.jpg)
Linux Mint 20 Cinnamon<br>
Jami "Together" built on 2020-11-27 14:22:43 UTC
Does the other Jami clients need fixing too?
Thank youhttps://git.jami.net/savoirfairelinux/jami-plugins/-/issues/5ChatHandler - Jami Plugins SDK2021-02-18T16:50:39ZAline Gondim SantosChatHandler - Jami Plugins SDKIntegrate ChatHandler to Jami Plugins SDK;Integrate ChatHandler to Jami Plugins SDK;Aline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-plugins/-/issues/4Plugin bot AutoAnswer2021-03-03T17:11:54ZAline Gondim SantosPlugin bot AutoAnswer* [x] ChatHandler API;
* [x] Plugin for a automatic answer bot;
API modifications for:
* [x] lrc;
* [x] client-gnome;
* [x] client-android;
* [x] client-qt;* [x] ChatHandler API;
* [x] Plugin for a automatic answer bot;
API modifications for:
* [x] lrc;
* [x] client-gnome;
* [x] client-android;
* [x] client-qt;Aline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/855Add option to retry sending a file when peer is unjoinable2021-11-19T21:29:55ZJuan ManuelAdd option to retry sending a file when peer is unjoinableOn Android (6.0, version 20201130-02) there is no specific option to retry sending a file. I noticed that on GNU/Linux there actually is a retry button from context clicking on the message. However, I cannot find that option in the Andro...On Android (6.0, version 20201130-02) there is no specific option to retry sending a file. I noticed that on GNU/Linux there actually is a retry button from context clicking on the message. However, I cannot find that option in the Android app. The easiest way for now is clicking on "Share file", choosing Jami and finally selecting once again the same peer/contact, though there would be easier to have a precise "retry" button/option.https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/854Add a setting to enable/disable vibration either on calls or messages2020-12-04T00:14:17ZJuan ManuelAdd a setting to enable/disable vibration either on calls or messagesAs far as I know, a user can either enable sound and vibration or disable both of them (not within the app, but by changing general mobile profiles). What happens if a user wants to recieve notifications with just only sound (no vibratio...As far as I know, a user can either enable sound and vibration or disable both of them (not within the app, but by changing general mobile profiles). What happens if a user wants to recieve notifications with just only sound (no vibration at all)?
From the Android support, they say that each app should provide a way to configure vibration, so what do you think of adding that setting to the app? Ideally there should be one setting for messages (also for sound which doesn't exist for now) and another one for calls. But it could be a good approach to have at least one general setting to configure vibration within the app.
I would suggest adding it next to the ringtone setting.https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/853Add setting to allow/forbid screenshots or screen recording2021-01-21T16:04:52ZAdrien BéraudAdd setting to allow/forbid screenshots or screen recordingIn general settings, section "privacy".
When forbid, the appropriate Android API should be used to prevent screenshots or screen recordingIn general settings, section "privacy".
When forbid, the appropriate Android API should be used to prevent screenshots or screen recordingIteration 27Amirhossein NaghshzanAmirhossein Naghshzan