SIP on Sailfish/Aurora with s1p

0.9.8 should allow dialing arbitrary text saved in the Notes field.

2 Likes

0.9.8 should strip invalid characters from phone numbers (including spaces)

2 Likes

0.9.8 should allow dialing from this field now, in addition to the Notes field which allows arbitrary text and can be edited in the People app.

4 Likes

@unmaintained I have dozens of improvements for S1P which I maintain myself locally. If you opensource S1P I can issue some pull requests on those. Everything Iā€™ve done is essentially to make SIP a temporary full stack replacement for VoLTE in SFOS. This helps enable USA users to continue using SFOS. Iā€™d like to next implement SRTP and TLS, but I need the sources to do those modifications to the main SIP server. Let me know if youā€™re open to that. If not, Iā€™ll be forced to just create a competing SIP application- not ideal for the limited number of us SFOS developers.

11 Likes

Iā€™m not generally against it, I just didnā€™t have the time to look into releasing the code yet.
Also the daemon is written entirely in Go, hope thatā€™s not an issue?

@unmaintained Thatā€™s great. Iā€™d be happy to do some of that lifting if it would help. Go is no problem. Ideal, really, so as to avoid library problems.

I canā€™t release it right away as there are some parts I have to clean up first.
I ā€œrecycledā€ some parts from another of my projects that has to remain closed due some stupid contractual obligations but the SIP/RTP part is not covered by that so it just means making sure it still compiles without all the unnecessary bloat around it :slight_smile:
I try to look into it tomorrow.

7 Likes

When you have time. Thank you!

1 Like

Just a heads-up, that s1p stopped working in 4.4, probably another sandboxing victim, because adding [X-Sailjail] section with Sandboxing=Disabled to .desktop works (havenā€™t had time to investigate, what specific privileges would be necessary). Without it, launch results in briefly ā€œspinningā€ cover and following entries in log:

kwi 02 14:12:38 xonia invoker[22268]: warning: enforcing sandboxing for '/usr/bin/s1p'
kwi 02 14:12:38 xonia lipstick[4947]: Error: can't chdir to privileged
kwi 02 14:12:38 xonia lipstick[4947]: constructing /run/firejail/mnt/privileged: Images ...
kwi 02 14:12:38 xonia lipstick[4947]: mounting /run/firejail/mnt/privileged @ /home/defaultuser/.local/share/system/privileged
kwi 02 14:12:38 xonia lipstick[4947]: hiding /run/firejail/mnt/privileged
kwi 02 14:12:39 xonia lipstick[4947]: Error: can't chdir to privileged
kwi 02 14:12:39 xonia lipstick[4947]: FATAL s1p could not start QML process:exec: "sailfish-qml": executable file not found in $PATH
kwi 02 14:12:39 xonia booster-generic[4871]: *** signal=17 pid=4871
kwi 02 14:12:39 xonia /usr/libexec/mapplauncherd/booster-generic[4871]: warning: Boosted process (pid=20695) exit(1)
kwi 02 14:12:39 xonia /usr/libexec/mapplauncherd/booster-generic[4871]: warning: Daemon: sending exit(1) to invoker(22268)
kwi 02 14:12:39 xonia invoker[22268]: warning: application (pid=-1) exit(1) signal(0)

Also, starting from terminal even without .desktop modification by

s1p --qml harbour-s1p

works OK.

1 Like

Thank you.
Iā€™ve released version 0.9.9 with sandboxing disabled in harbour-s1p.desktop
I think the strange way s1p start up is performed (starting the s1p daemon first which in turn then tries to run the QML part by invoking sqilfish-qml) is not compatible with Sailjail.

7 Likes

As the internal issues tracker got nuked, is there a way to check issues? I have some minor annoyances, but wanted to check first if someone mentioned them alreadyā€¦

Nevertheless, here they are:

  • when, during the SIP call, some other person SIP-calls me, the first call gets muted temporarily, then comes back, mutes again, back again and so on; it persists until the second caller gives up. (ā€œmutedā€ does not mean switching the in-app controls, I just cannot hear my interlocutor).
    A wild guess is that it has something to do with sound routing ā€“ the app tries to make some sound to notify me of second call; while it does not, it mutes the first call in process. Iā€™d be perfectly fine with completely ignoring the second call, busy is busy, no need to interfere with the call already in progress.
    Also, after that I have multiple (usually 10+) second-caller entries in history, even if he made just one call. This multiplication is of least annoyance, I mention it just to complete the picture.

  • when I talk thru ā€œnormalā€ phone, (that is builtin phone app, no SIP), and the SIP call comes, the phone call is switched to loudspeaker. Lesser problem than the muting described above, but may be embarrassing in some circumstances :wink:

  • ah, and I forgot ā€“ when during SIP call comes ā€œnormalā€ one, I get the ringer straight into ear. Ouch. Can the phone be somehow signalled, that there is another call in progress? Again, blocking/ignoring the second call entirely would be fine.

Just installed it again (V0.9.9-1)and tried it.
Spaces still kill it.
The To and From lines at the tops of the screen are blank, and it locks up.

I am copying a number from the address book with spaces, or making a number in notes with spaces and copying it, then pasting into the dialer field.

Well its Christmas again, which means use my SIP phone again, and it fails to work unitil I rememberā€¦

Any chance of a new version which filters spaces out of the number?
Is the source somewhere?

Well, the qml files are there and editable/patchable.

A quick and dirty way of removing spaces could be:

Around line 245 in /usr/share/harbour-s1p/qml/pages/MainPage.qml:

main_handler.dial(number_input_widget.phone_number)

replace with:

main_handler.dial(number_input_widget.phone_number.split(" ").join(""))

(split by space, join by nothing).

Untested, and there are probably more elegant ways, but it should work.

2 Likes

Works, thanks Nephros.

(Installed nano to edit it via ssh:
devel-su pkcon install nano
devel-su nano MainPage.qml
for my own use when I have to do it again)

Also made hardlink (softlink doesnā€™t work, why not, privileged dir?) to contacts.db instead of copying it.
devel-su ln /home/defaultuser/.local/share/system/privileged/Contacts/qtcontacts-sqlite/contacts.db /home/defaultuser/.local/share/harbour-s1p/
I wonder what contacts.db is. It doesnā€™t have contacts created in the last few months or contacts edited recently. It has a date of Nov 25, but lacks contacts created before then. Oh well, it has the contacts I need to call by sip.