Jami on Pinephone [ IM and VOIP ]
#1
Hello folks, if you're struggling to find a secure and free(as in freedom) software IM and VOIP client for Pinephone, this is suited for you. With latest changes it is currently possible to build jami client for the pinephone and have it in _usable_ state with nearly all features working out of box! To get familiar with Jami more, visit:
https://jami.net/

The above applies for jami-qt client (not the gnome one!) and Phosh

What works:
- importing account / registering
- sending messages
- receiving messages
- calling and receiving audio calls
- calling and receiving video calls*
- adding new contacts
- sending / receiving attachments

What doesn't work:
- *pinephone camera (e.g if you're on video call, you see the other side, but they don't see you) - UPDATE see thread and https://git.jami.net/savoirfairelinux/ja...issues/287
- ui is generally not scaled well (but not unusable) without scale-to-fit, but with scale-to-fit it's usable for daily driver (see https://git.jami.net/savoirfairelinux/ja...issues/257)
- squeekboard must be popped up / minimized manually when chatting (see https://git.jami.net/savoirfairelinux/ja...issues/281)
- there are relatively many small UI quirks which are more annoying than showstoppers
- the UI gets nearly unusable when screen rotation is performed (it's better to have it fixed in portrait when using Jami)
- the led indication for e.g new message, incoming/missed calls is not triggered at all
- there are no packages in any of the pinephone OS distributions, you have to build/compile on your own

Tested the compilation on:
- arch linux arm (latest updates) with Phosh

Screenshots:
see https://git.jami.net/savoirfairelinux/ri...note_26254

Steps to build / compile:
- see: https://git.jami.net/savoirfairelinux/jami-client-qt but iin my case it was:

Code:
git clone https://github.com/savoirfairelinux/ring-project.git
cd ring-project/
./make-ring.py --init
sudo ./make-ring.py --dependencies --qt
sudo pacman -S qt5-base qt5-svg make dbus-c++ qca qt5-quickcontrols2 qt5-webengine qt5-tools doxygen qrencode qt5-graphicaleffects qt5-quickcontrols qt5-wayland  autoconf automake
./make-ring.py --install --qt
scale-to-fit net.jami.jami-qt


then you launch it as per docu:
Code:
./make-ring.py --run --qt

Feel free to report any other observations / tweaks and or bugs!

Cheers
  Reply
#2
So I know what the problem with camera is

according to :
Code:
[alarm@danctnix ~]$ media-ctl --device /dev/media1 --print-topology
Media controller API version 5.10.13

Media device information
------------------------
driver          sun6i-csi
model           Allwinner Video Capture Device
serial         
bus info        platform:1cb0000.csi
hw revision     0x0
driver version  5.10.13

Device topology
- entity 1: sun6i-csi (1 pad, 2 links)
            type Node subtype V4L flags 0
            device node name /dev/video1
    pad0: Sink
        <- "ov5640 4-004c":0 [ENABLED]
        <- "gc2145 4-003c":0 []

- entity 5: ov5640 4-004c (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev0
    pad0: Source
        [fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
        -> "sun6i-csi":0 [ENABLED]

- entity 7: gc2145 4-003c (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev1
    pad0: Source
        [fmt:UYVY8_2X8/1600x1200@1/10 field:none]
        -> "sun6i-csi":0 []

the camera it tries to use supports
Code:
640x480@1/30

but in Jami, if you go to Audio and Video settings it picks up "sun6i-csi" as Device but the Resolution is set to "1280x720" and cannot be changed. Therefore I see this in dmesg:
Code:
[ 1442.649326] ov5640 4-004c: firmware upload success
[ 1442.956426] ov5640 4-004c: uploaded firmware didn't start, got to 0x7f, retrying...
[ 1443.269030] ov5640 4-004c: uploaded firmware didn't start, got to 0x7f
[ 1443.275662] ov5640 4-004c: ov5640_set_ctrl_focus: no autofocus firmware loaded
[ 1443.364636] sun6i-csi 1cb0000.csi: Wrong width or height 1280x720 (640x480 expected)

RIght now I don't know where Jami takes this resolution from.  Trying to change manually the /home/alarm/.config/jami/dring.yml where following section is:
Code:
video:
  recordPreview: true
  recordQuality: 0
  decodingAccelerated: true
  encodingAccelerated: true
  conferenceResolution: 1280x720
  devices:
    - name: sun6i-csi
      id: /dev/video1
      input: /dev/video1
      video_size: 1280x720
      channel: camera
      framerate: 25.000000

leads to no effect and is overwritten each time I access settings. (making it not writable made it not to be overwritten but made no change). I guess I will fire up another issue in jami-qt gitlab.

So according to https://linux-sunxi.org/CSI#Media_bus_an...re_formats

the OV5640 doesn't even support 1280x720, it supports:
2592*1936@5fps
2048*1536@5fps
1600*1200@5fps
1280*960@5fps
1024*768@5fps
1920*1080@30fps
1280*720@30fps
640*480@30fps

I've tried to change it but I get Invalid argument error

Code:
[alarm@danctnix jami-daemon-git]$ sudo media-ctl --set-v4l2 '"ov5640 4-004c":0[fmt:UYVY8_2X8/1280x720@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]'
Unable to setup formats: Invalid argument (22)

even with supported resolution

Code:
[alarm@danctnix jami-daemon-git]$ sudo media-ctl --set-v4l2 '"ov5640 4-004c":0[fmt:UYVY8_2X8/1920x1080@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]'
Unable to setup formats: Invalid argument (22)
  Reply
#3
So I managed to get the back camera working in Jami settings preview and it also works in video call, thanks to 
https://forum.pine64.org/showthread.php?tid=9267

Since Jami enforces (issue on git to be fired) 1280x720 and by default back camera is used, following does the trick (ensure jami is not running):
Code:
media-ctl -d /dev/media1 --set-v4l2 '"ov5640 4-004c":0[fmt:UYVY8_2X8/1280x720]'

Afterwards as soon as Jami is started the back camera works, there are some problems though:
1) the CPU utilization on video call with working camera is very high (it's not the case when PP camera is not working but you see the other side so I guess it's not HW accelerated).
2) The thing you need to identify manually is
Code:
"ov5640 4-004c"
which you can get from
Code:
media-ctl -d /dev/media1 -p

=====================================================================================
I have tried to get it working with front camera, for that I did switch cameras via media-ctl
from:
Code:
        <- "ov5640 4-004c":0 [ENABLED]
        <- "gc2145 4-003c":0 []
to
Code:
        <- "ov5640 4-004c":0 []
        <- "gc2145 4-003c":0 [ENABLED]

by running
Code:
media-ctl -d /dev/media1 -l '"ov5640 4-004c":0->"sun6i-csi":0[0]'
media-ctl -d /dev/media1 -l '"gc2145 4-003c":0->"sun6i-csi":0[1]'


since gc2145 is the front camera. Unfortunately I cannot really find what the specs/supported resolutions for it are. I couldn't make it working in Jami, I guess that in Arch Linux ARM for PP even the drivers for it are missing, since I noticed this:
Code:
[ 1300.385100] sun6i-csi 1cb0000.csi: Direct firmware load for gc2145-init.bin failed with error -2
[ 1300.385110] gc2145 4-003c: Failed to read firmware gc2145-init.bin, continuing anyway..

but at least something Tongue
  Reply
#4
Very nice, thank you! Jami is among my favourite messagers for personal use, since it's P2P yet works remarkably reliably. I don't need the camera often so this is great - hopefully the UI annoyances shouldn't be hard to fix, and hopefully upstream takes notice, so we can have a downright pleasant in the not too distant future.
  Reply
#5
The video problem is explained at length here.

In summary Jami uses v4l2-ctl --list-formats-ext -d /dev/video0 to determine the acceptable resolutions.
Unfortunately the Pinephone does not return any resolutions:
Code:
$ v4l2-ctl --list-formats-ext -d /dev/video0
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'ST12' (Sunxi Tiled NV12 Format, compressed)
    [1]: 'NV12' (Y/CbCr 4:2:0)
wheras my laptop returns:
Code:
$ v4l2-ctl --list-formats-ext -d /dev/video0
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YUYV' (YUYV 4:2:2)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
        Size: Discrete 160x120
            Interval: Discrete 0.033s (30.000 fps)
        Size: Discrete 176x144
            Interval: Discrete 0.033s (30.000 fps)
        Size: Discrete 320x180
            Interval: Discrete 0.033s (30.000 fps)
                .........etc.


I do not know why Jami defaults to 1280x720, I would have thought that VGA (640x480) would have been more obvious as a default, but then I am very old!

Now who do we register a bug report with?
  Reply
#6
I would very much like to get Jami working on my Pinephone (Arch w/ Phosh), but so far I have not succeeded.
My build fails, and both the -gnome and the -qt packages provided by Pacman fails to run properly.

Does anybody have a working solution I could try to adopt? Would be very much appreciated Smile
  Reply
#7
Jami works. But the gtk(gnome) verion is unusable because of interface. Use the jami-qt version. Just now I dont remember how I instelled it. I must see then
  Reply
#8
(11-07-2021, 01:00 PM)some_pinephone_user Wrote: Jami works. But the gtk(gnome) verion is unusable because of interface. Use the jami-qt version. Just now I dont remember how I instelled it. I must see then

I got it working now Heart I re-installed the jami-qt package packed with pacman, and this time it "just worked". Main difference is, that during my failed compilation attempts earlier, I installed packages for qt (following advice in the initial post in this thread):
Code:
sudo pacman -S qt5-base qt5-svg make dbus-c++ qca
qt5-quickcontrols2 qt5-webengine qt5-tools doxygen qrencode
qt5-graphicaleffects qt5-quickcontrols qt5-wayland  autoconf automake
 
So for now, it seems to run. Haven't tested anything besides the GUI, but so far it seems usable. I also remember seeing some qt-and-wayland conflicts in my logs last time I installed, so this might be the explanation.
  Reply
#9
I want to use my PinePhone (Manjaro-ARM Plasma) for SIP/VOIP telephony. Found this Jami-qt app and installed it using pacman. But when I try to run the installed app I just get a splash screen and nothing further. Evidently it eventually just aborts since the splash screen disappears and there is no sign of the app being open. Is there some way I can get this app running so as to have a SIP/VOIP softphone on this device? If it won't run under the Manjaro-ARM KDE interface, does some SIP/VOIP softphone run under some other PinePhone distro? If so, which? There is no SIM in this phone if that matters.
  Reply
#10
(06-08-2022, 11:44 AM)wayover13 Wrote: I want to use my PinePhone (Manjaro-ARM Plasma) for SIP/VOIP telephony. Found this Jami-qt app and installed it using pacman. But when I try to run the installed app I just get a splash screen and nothing further. Evidently it eventually just aborts since the splash screen disappears and there is no sign of the app being open. Is there some way I can get this app running so as to have a SIP/VOIP softphone on this device? If it won't run under the Manjaro-ARM KDE interface, does some SIP/VOIP softphone run under some other PinePhone distro? If so, which? There is no SIM in this phone if that matters.

You can try the flatpak. I used it for a short time on mobian and it used to work fine.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Article: Build a PinePhone App with Zig and zgt lupyuen 2 54 Yesterday, 02:20 AM
Last Post: lupyuen
  Struggle to install LibreOffice on the PinePhone Peter Gamma 32 1,242 06-17-2022, 10:13 AM
Last Post: Peter Gamma
  Trouble building pinephone-keyboard tools 64_Tesseract 1 149 06-11-2022, 03:17 PM
Last Post: carterza
  Pinephone: Is there a frugal distro? orbital 2 262 05-27-2022, 09:34 PM
Last Post: orbital
  Pinephone: OpenGL support? orbital 1 159 05-24-2022, 10:02 AM
Last Post: fire219
  openSUSE for Pinephone Alefnode 71 63,489 05-15-2022, 10:44 AM
Last Post: flembcke
  Latest firmware for PinePhone modem! Subsentient 105 73,121 05-14-2022, 08:56 PM
Last Post: kk22
  Slack on PinePhone Adam Seline 2 1,251 05-01-2022, 04:04 AM
Last Post: nickolas
  Amazfish on Pinephone pagesix1536 9 5,190 04-11-2022, 12:50 PM
Last Post: thomzane
  AVMultiphone on Pinephone Juergen 8 6,852 04-04-2022, 12:47 PM
Last Post: Juergen

Forum Jump:


Users browsing this thread: 1 Guest(s)