s1p

Rating: 
4.96
Your rating: None Average: 5 (25 votes)

s1p is an experimental SIP client for Sailfish OS

Successfully tested with:

  • Asterisk
  • 3CX
  • Yate
  • FritzBox
  • sipgate.de
  • sipgate.co.uk
  • sipnet.ru
  • easyfone.de
  • linphone.org
  • cellip.com
  • easybell.de
  • eventphone.de
  • nfon.com
  • voip.ms
  • voipraider.com
  • peoplefone.de
  • messagenet.com

(please add a comment if you have been able to make it work with a provider not listed above)

Please don't forget to restart the app after making any changes to the settings.

 

Screenshots: 

Keywords:

Application versions: 
AttachmentSizeDate
File harbour-s1p-0.7.9-1.i486.rpm1.85 MB08/10/2020 - 17:24
File harbour-s1p-0.7.9-1.armv7hl.rpm1.82 MB08/10/2020 - 17:24
File harbour-s1p-0.8.0-1.i486.rpm1.85 MB08/10/2020 - 22:46
File harbour-s1p-0.8.0-1.armv7hl.rpm1.82 MB08/10/2020 - 22:46
File harbour-s1p-0.8.1-1.i486.rpm1.85 MB13/10/2020 - 11:40
File harbour-s1p-0.8.1-1.armv7hl.rpm1.82 MB13/10/2020 - 11:40
File harbour-s1p-0.8.2-1.i486.rpm1.86 MB14/10/2020 - 00:37
File harbour-s1p-0.8.2-1.armv7hl.rpm1.82 MB14/10/2020 - 00:37
File harbour-s1p-0.8.3-1.i486.rpm1.86 MB17/10/2020 - 11:16
File harbour-s1p-0.8.3-1.armv7hl.rpm1.82 MB17/10/2020 - 11:16
Changelog: 

- 0.8.3 improves audio routing, removes annoying switch to pre-call audio state with last samples still being played.
- 0.8.2 adds log upload to issues tracker
- 0.8.1 introduces (optional) log file (~/.local/share/harbour-s1p/s1p.log)
- 0.8.0 fixes issues with additional incoming calls during an already establiched call
- 0.7.9 introduces changes to the binary size for faster startup
- 0.7.8 fixes deleting call history, adds remorse timer to delete
- 0.7.7 fixes adding SIM calls to history when disabled, adds experimental issues tracker.
- 0.7.6 adds cellular call history integration
- 0.7.5 adds better notification handling, bringing UI to foreground on incoming calls
- 0.7.4 fixes double notifications
- 0.7.3 adds notifications, changes the way SIP daemon and UI communicate enabling background operations in the future.
- 0.7.2 fixes microphone input with headsets
- 0.7.1 fixes issue with receiving rtp traffic when local IP changes
- 0.7.0 changes to external IP address handling, crash handling, length of call-id and tags
- 0.6.9 fixes screen unlock on incoming calls
- 0.6.8 adds support for hardware/headset buttons to configuration page
- 0.6.7 fixes server port data type
- 0.6.6 adds support for additional SIP accounts (only one at a time can be active)
- 0.6.5 testing FritzBox 7590 compatibility
- 0.6.4 adds less used DTMF digits (A-D,F) to pulley menu, reduces ambiguity with status messages
- 0.6.3 minor visual changes to the cover page
- 0.6.2 adds contact name lookup by phone number
- 0.6.1 adds minor visual improvements to the call history and contacts pages
- 0.6.0 adds minor visual improvements to the contacts page
- 0.5.9 adds voicemail icon and counter
- 0.5.8 adds default audio port selector to settings dialog
- 0.5.7 adds Yate compatibility
- 0.5.6 adds audible ringback tone
- 0.5.5 adds compatibility with Easybell
- 0.5.4 testing compatibility with Easybell
- 0.5.3 fixes issues with saving display names in call history
- 0.5.2 adds display name to call history
- 0.5.1 fixes phone number in history page
- 0.5.0 adds call history page
- 0.4.9 adds small visual improvements to the UI
- 0.4.8 improves compatibility with pjsip
- 0.4.7 fixes error in media description parser
- 0.4.6 improves compatibility with 3CX
- 0.4.5 adds rport option
- 0.4.4 allows to set bind port on the settings page
- 0.4.3 adds support for buttons on wired headsets to allow answering / hanging-up calls
- 0.4.2 adds display activation on incomming calls
- 0.4.1 fixes misleadling log entries related to RTP destination address
- 0.4.0 adds codec selector in settings dialog
- 0.3.9 adds locking down to one of the available codecs when answering a call
- 0.3.8 adds workaround for 3cx
- 0.3.7 reinstates stricter approach to call progess messages
- 0.3.6 allows a more flexible approach to call progess messages
- 0.3.5 fixes proxy-authentication
- 0.3.4 adds support for display name
- 0.3.3 fixes previously broken default settings
- 0.3.2 fixes regsitering with sip.linphone.org
- 0.3.1 sets default register frequency to 1 hour
- 0.3.0 adds options for bind address and regsiter frequency
- 0.2.9 enables voicemail button, fixes issues with number input
- 0.2.8 fixes issues with setting latency and buffer length
- 0.2.7 adds configuration dialog options for latency and audio buffer length
- 0.2.6 adds configuration-file options for latency and audio buffer length
- 0.2.5 adds improvements to power consumption, audio handler and playback buffer
- 0.2.4 adds preferrence for domain instead of IP in SIP dialogs and adds auth-name field to SIP account settings
- 0.2.3 adds initial DTMF support
- 0.2.2 fixes call status being sometimes overwritten by regstration status
- 0.2.1 adds DNS SRV record lookup
- 0.2.0 adds G.711 μ-law codec, (hopefully) fixes some call-state issues
- 0.1.9 fixes choppy audio on some phones
- 0.1.8 makes some changes to how audio frames are handled
- 0.1.7 adds volume presets
- 0.1.6 enables mute button
- 0.1.5 fixes issues with audio output selection
- 0.1.4 enables audio output selection buttons
- 0.1.3 improves logging and handling of audio packets
- 0.1.2 adds log upload
- 0.1.1 adds contacts page
- 0.1.0 improves UI
- 0.0.9 fixes issues with outbound calls through sipgate
- 0.0.8 fixes inbound calls with sipgate (cancelling outbound calls still broken)
- 0.0.7 fixes some issues with sipgate (inbound calls still broken)
- 0.0.6 improves UI and makes hanging up calls more reliable
- 0.0.5 adds ringtones
- 0.0.4 fixes registering issues with antisip.com
- 0.0.3 adds log page
- 0.0.2 initial release

Comments

melvin's picture

A background feature with the default Jolla screen would be awesome, otherwise it works great (sipgate)!

unmaintained's picture

What do you mean by default Jolla screen?

melvin's picture

I mean the screen that shows up when I get called normally. Currently I need to unlock my phone when a sip call arrives - mobile calls let you accept via sliding up on the call screen.

unmaintained's picture

I'm not sure if it can be done withour root privileges and changes to the original files.

Bramba's picture

@unmaintained: Maybe this could be very interesting for you... :-)

https://programm.froscon.de/2020/events/2624.html

https://programm.froscon.de/2020/events/2625.html

unmaintained's picture

I won't have time to watch live but I certainly take a look should there be a recording available.

fridlmue's picture

Thanks for this great software!

I could register and make calls with s1p with the the guru3 system of eventphone.de.
Can hear the other end on the "test" numbers, but did not yet make an active call. I'll report if that was successful, too.

unmaintained's picture

I've added authentication handling to more requestst which should fix a few hangup issues with Yate, wich is what eventphone.de seems to be running on.

andy's picture

Thank you for this awesome app! I have been waiting for it for a very long time. Tried with a Fritz!Box 7590 and it seems to work. Only problem is that I continuosly have a "call ended" status message instead of "registered". I checked the log and I think there are some problems there. I posted it, id:48. What it might be? Thank you!

spinfoam's picture

Thank you for this much needed app.

Tested with odorik.cz and it registers correctly and some initial call testing was successful as well. But will give it more trials.

Are there any plans to add chat option?

unmaintained's picture

If I find the time I may add chat at a later date.

apolem's picture

At first, thanks for the work!

But at the moment I can’t test your app because the window is just white.

I get following status when starting your app on cli:

[D] unknown:0 - Using Wayland-EGL
[D] unknown:0 - Got library name:  "/usr/lib/qt5/qml/io/thp/pyotherside/libpyothersideplugin.so"
[W] unknown:49 - file:///usr/share/harbour-s1p/qml/harbour-s1p.qml:49:5: Type MainPage unavailable
         MainPage {
         ^
[W] unknown:68 - file:///usr/share/harbour-s1p/qml/pages/MainPage.qml:68:5: Type NumberInputWidget unavailable
         NumberInputWidget {
         ^
[W] unknown:63 - file:///usr/share/harbour-s1p/qml/pages/NumberInputWidget.qml:63:5: Cannot assign to non-existent property "_cursorBlinkEnabled"
         _cursorBlinkEnabled: false
         ^
library "/vendor/lib/egl/libGLESv2S3D_adreno.so" not found

SFOS 3.1.0.12 on Nexus 5 (hammerhead; it’s a community build)

Let me know if it is just because of my stupidity. Thanks!

unmaintained's picture

I don't have this exact build so won't be able to replicate this issue but you could open the last file [1] and comment out this _cursorBlinkEnabled line throwing the error.

[1] /usr/share/harbour-s1p/qml/pages/NumberInputWidget.qml

ar0's picture

Worked at sipnet.ru, xa2+

emsys's picture

One way audio issue with Nokia N9

Hello again,

I did some more testing with version 0.4.6, in order to try to understand why does the audio from s1p end up on the 3CX server instead of going to N9 phone, and I think I might have found something.

I dialed in s1p from the following phones and dumped the contents of the INVITE request received at Sailfish OS with wireshark. Here is what I find:

Gigaset DX800A

o=3cxPS 19540964070653952 5169137911332865 IN IP4 192.168.1.201
c=IN IP4 192.168.1.240
m=audio 9032 RTP/AVP 9 0 8 96 97 2 18 101

Android (native)

o=3cxPS 30808849594187776 12703181402275841 IN IP4 192.168.1.201
c=IN IP4 192.168.1.105
m=audio 60294 RTP/AVP 96 97 3 0 8 127

Nokia N9

o=3cxPS 11303284778205184 16439823719989249 IN IP4 192.168.1.201
m=audio 7078 RTP/AVP 18 102 8 0 101 99
c=IN IP4 192.168.1.104

 

In case of Gigaset and Android clients, s1p delivers audio correctly at the IP address of the phones. However in case of Nokia N9, though s1p sends the audio to correct port number (7078), it sends it to the wrong IP address, i.e. to 192.168.1.201 (IP address of PBX).

What I see different when I compare the INVITE request from N9 with those of Gigaset and Android phones is that the order of the lines m and c is reversed between N9 and the other clients.

In case of Gigaset and Android, line c comes before line m and thus audio works fine (goes to c).

In case of N9 however, c comes after m, and thus s1p picks up the IP address from the o line and port number from the m line, and ignores the c line. Audio ends up at o instead of c.

I think s1p stops looking for the IP address of the other party as soon as it parses the m line and/or reads in the port number. I hope you can find something in your code around that place in order to try to fix this issue.

unmaintained's picture

could you please check if the Nokia N9 works with version 0.4.7 or above?

emsys's picture

With version 0.4.7, audio works bothways with Nokia N9 now. Thanks for the update.

emsys's picture

Would it be possible for you to change the listening port of s1p to something other than 5060? It would add even more flexibility if you can make it into a configuration item on the Settings page.

The reason I am asking is that since I have 3CX running on a Raspberry Pi at home and my DSL router blocks all incoming and outgoing traffic destined to port 5060. The statement from the ISP is that port 5060 is reserved for their own voip gateway for customers who use their phone service in addition to Internet and thus is not available for any other use. This is also the reason my 3CX is listening on port 5061 instead of 5060.

unmaintained's picture

Could you please try it with version 0.4.4 ?
You should be able to set the bind-port on the settings page along with the bind address.

emsys's picture

Thanks for the new release. Although it turned out that the bind port was not the reason for the failure of registration. I had overlooked a fairly simple fact, i.e. trying to register s1p via data connection of the phone goes through at least one NAT layer at the network operator's infrastucture and thus the sending port is never the same as the bind port used by s1p.

Now coming to the problem, I think, the reason for registration to fail over NAT is the missing rport parameter from the Via header of REGISTER request. What happens when rport is missing, is that 3CX sends the response to register to the bind port used by s1p, which is indicated in Contact header instead of sending it back to the UDP port (of NAT) where the REGISTER requested was originally received from. I was able to capture REGISTER requests from a Nokia N9, builtin SIP stack of Android, as well as my desk phone - they all are sending the rport parameter in Via header.

Since 3CX sends the 407 Proxy Authentication Required response to a port that is non-existent, s1p never receives the response to REGISTER request. Thus s1p keeps sending REGISTER requests after a timeout which results in 3CX blocking the IP address. Which brings me to part two of this problem.

You said in an earlier message that 3CX did not let you log in due to too many failed authentication while you didn't even try to authenticate. The reason was that 3CX had added your IP address to the blacklist when s1p failed to authenticate.

The good news is that 3CX blocks an IP address for a limited amount of time and you might be able to log in again to your installation if it is still there. Alternatively, you can try to reach it from a different IP address.

Would it be possible for you to add the rport parameter?

unmaintained's picture

Beginning with version 0.4.5 you should be able to activate the rport tag as an option on the settings page

emsys's picture

Thanks for the quick update. I can now register via NAT, and can also make and receive calls when away from home.

The call hangup issues is still there and if my call ends up in a voice mailbox, I cannot hangup from s1p. I wish you could work on a solution for that issue.

unmaintained's picture

This issue should have been fixed with version 0.4.6.

emsys's picture

With version 0.4.6, s1p can indeed hangup a call without waiting for the other side to hangup. Thanks for the fix.

Trenien's picture

Excellent!

So far, no issue with it (version 0.4.0-1 on Xperia X)

Thanks!!!

Anybody knows how to configure the phone to be able to answer incoming calls without having to unlock it first?

unmaintained's picture

Locking the screens seems to work over dbus but it seems not to be possible to unlock it that way.

petros's picture

great app, finally we can use sip as we could do natively on N9. works perfectly with justvoip. many thanks for you work

unmaintained's picture

Thank you.
Coming from the N900 I've alse been disappointed SIP was not available on SFOS from the start.

ichthyosaurus's picture

Thank you for your work!

Just a small thing: would you mind adding new changelog entries at the top? You can use the 'tac' command on GNU/Linux to reverse the existing entries.

unmaintained's picture

done

Pages