Your rating: None Average: 4.9 (29 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.




Application versions: 
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
File harbour-s1p-0.8.4-1.i486.rpm1.9 MB21/10/2020 - 23:00
File harbour-s1p-0.8.4-1.armv7hl.rpm1.87 MB21/10/2020 - 23:00
File harbour-s1p-0.8.5-1.i486.rpm1.9 MB22/10/2020 - 09:43
File harbour-s1p-0.8.5-1.armv7hl.rpm1.87 MB22/10/2020 - 09:43
File harbour-s1p-0.8.6-1.i486.rpm1.9 MB25/10/2020 - 17:08
File harbour-s1p-0.8.6-1.armv7hl.rpm1.87 MB25/10/2020 - 17:08
File harbour-s1p-0.8.7-1.i486.rpm1.9 MB27/10/2020 - 23:32
File harbour-s1p-0.8.7-1.armv7hl.rpm1.87 MB27/10/2020 - 23:32
File harbour-s1p-0.8.8-1.i486.rpm1.91 MB31/10/2020 - 13:41
File harbour-s1p-0.8.8-1.armv7hl.rpm1.87 MB31/10/2020 - 13:41
File harbour-s1p-0.9.0-1.i486.rpm1.91 MB14/11/2020 - 23:12
File harbour-s1p-0.9.0-1.armv7hl.rpm1.88 MB14/11/2020 - 23:12
File harbour-s1p-0.9.1-1.i486.rpm1.92 MB24/11/2020 - 18:57
File harbour-s1p-0.9.1-1.armv7hl.rpm1.88 MB24/11/2020 - 18:57
File harbour-s1p-0.9.2-1.i486.rpm1.92 MB27/11/2020 - 13:14
File harbour-s1p-0.9.2-1.armv7hl.rpm1.88 MB27/11/2020 - 13:14
File harbour-s1p-0.9.3-1.armv7hl.rpm1.88 MB19/03/2021 - 16:46
File harbour-s1p-0.9.3-1.i486.rpm1.93 MB19/03/2021 - 16:46
File harbour-s1p-0.9.4-1.i486.rpm1.93 MB24/03/2021 - 17:31
File harbour-s1p-0.9.4-1.armv7hl.rpm1.88 MB24/03/2021 - 17:31
File harbour-s1p-0.9.5-1.i486.rpm1.93 MB26/03/2021 - 14:35
File harbour-s1p-0.9.5-1.armv7hl.rpm1.89 MB26/03/2021 - 14:35

- 0.9.5 added direct access to contacts.db, user accessible database may be not up to date, though
- 0.9.4 minor imporvements to input fields, copying numbers from call history
- 0.9.3 fixes issues with early media
- 0.9.2 fixes some issues with FritzBox
- 0.9.1 fixes some issues with linphone.org
- 0.9.0 fixes default primary account setting
- 0.8.9 adds support for multiple active accounts
- 0.8.8 adds auto-answer
- 0.8.7 opens active account section (instead of always the first section) in settings dialog.
- 0.8.6 adds avatar image for ongoing calls
- 0.8.5 fixes disappearing hangup cover action after a call has been answered
- 0.8.4 fixes double entries in call history, fixes lookup of contacts in call history
- 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


unmaintained's picture

Are there any changes to issue 2.1 with version 0.3.9?

emsys's picture

I updated to version 0.4.3 today and I can confirm that issue 2.1 (no audio) is resolved with this version. Sorry for the late response since I haven't been able to find time for testing lately. The call hangup issue is still there, I hope you can work on that issue some time.

The one way audio issue with N9 is also there but it is not that urgent; it is more of a matter of interoperability with just another SIP client.

Too bad to know that 3CX set up did not work out for you, please let me know if I can help with something.

There is one more thing, but I would rather start another thread for it since this one has grown too long.

unmaintained's picture

I've tried to get a 3CX cloud setup working to be able to replicate this but I had to give up eventually. There was no way to even register, neither with s1p nor Zoiper etc. 
The final staw was when I've got locked out of the UI, and no, I havn't tried to log in more than once:
Login access denied. Too many incorrect login attempts.

unmaintained's picture

Yes, 0.3.7 reverts to the former behavior of expecting when the autentication request has to take place which works well with many other platforms but, obviously, not 3CX. Unfortunately relaxing this caused some problems with the UI so a more substantial change will be needed to address this.

unmaintained's picture

s1p can perfectly do Proxy-Authorization, I guess in this case it must be thrown-off by something and is sending a fallback-response.

kayakbc's picture

Fantastic app! Kudos to you for all of your wotk so far. With your latest update this app now works great with my sip provider, Voip.ms, here in Canada. Thanks.

Bramba's picture

Anybody here has tried s1p with SIP-provider Easybell or dus.net? Registering the account works completely fine.

However, when trying an outgoing phone call, I always receive error:

DEBUG [SipServer-1] HandleResponseTerminatedOther [436456@192.168...] - call terminated with code: 482 Loop detected

PulseHandler - playback stream suspended - stream index: 0, suspended: false

unmaintained's picture

Could have been a bug with proxy authentication. Could you try it again with 0.3.6 and check if an actual loop occurs?

unmaintained's picture

Does this response "482 Loop detected" come right after the inital invite or is it preceeded by, well, a loop of some sort?

Bramba's picture

Thanks for your great support!

Yes, this error appears immediately after entering the callee phone number and tapping the "dial" button. It doesn't matter if the callee number is a mobile phone or a landline phone in this case.

The main window does always show message "Call ended" afterwards (even in case I did not end it).

unmaintained's picture

Anything changed with version 0.3.7 ?

Bramba's picture

It seems this error "loop detected" does not appear anymore. Thank you!! :-) However, now I get "call terminated with code: 400 session description parsing failed".

I have posted a log for you, ID is no. 45.

I guess this is just a small problem with sip command acceptance of provider Easybell?

unmaintained's picture

Could you check if the same error occurs with version 0.5.4 or above?

Bramba's picture

Thank you very much for your amazing efforts! Unfortunately still the same behavior. :-(

I have posted the log ID no. 49 for you.

unmaintained's picture

Any luck with 0.5.5 ?

Bramba's picture

Yeeehaa, it works! :-) Thank you so much! I just had a phone call for testing purposes, looks great!

Two questions:

1.) Is it intentionally that I often receive the message "playback disabled"?

2.) Phone calls do automatically start in loudspeaker mode, not in "ear speaker" mode. Maybe this is because of the upper log message?

unmaintained's picture

I've added a way to select the default output port (on the settings page)

unmaintained's picture

Yes, 1. is normal and meant to be an energy saving meassure. It should only happen right after start or after a call, though.

I usually either use a headset or speaker, that's why it's the default setting. I guess I will make it configurable should this be an issue.

schmolle's picture

Cool app! Thanks for your work. I would love to see this as Free Software :). Keep it up!

amaretzek's picture

How far away is "wake up display on incomming call"? ;)

unmaintained's picture

I hope once the underlying SIP communication works reliably enough I can concentrate more on the UI.

defactofactotum's picture

Confirm comment above, edited json and now it sticks. But says 'Call ended' so I'm not sure it registered

defactofactotum's picture

Exactly! My file looks like this: {}

So why on earth is it not writing to the file?

amaretzek's picture

ATM, v3.2, "~/.config/harbour-s1p/settings.json" looks like this:

  "accounts": [
      "auth_name": "",
      "description": "default",
      "domain": "sip.example.com",
      "enabled": true,
      "name": "123456",
      "password": "secretpw",
      "register_frequency": 3600.0,
      "server_port": 5060.0
  "bind_address": "",
  "default_instance": 1.0,
  "playback_buffer_length": 1600.0,
  "playback_latency": 0.1,
  "playback_volume": 100.0,
  "record_buffer_length": 1600.0,
  "record_latency": 0.1,
  "record_volume": 100.0
defactofactotum's picture

something radically wrong here. I deleted the settings file...same behaviour. Checked settings file, 2 bytes. So nothing staying there at all.

unmaintained's picture

Super strange. Worked for me both on X and XA2+

amaretzek's picture

Verified on XA2, fresh install, doesn't save!

amaretzek's picture

Does this mean something to you?

[D] onAccepted:203 - SettingsDialog accepted
[W] unknown:205 - file:///usr/share/harbour-s1p/qml/pages/SettingsDialog.qml:205: TypeError: Type error
[1] INFO command_set_playback_volume - frame: {'value': None}
[D] unknown:0 - "PyOtherSide error: Traceback (most recent call last):\n\n  File \"/usr/share/harbour-s1p/qml/pages/s1p.py\", line 321, in command_set_playback_volume\n    args['value'] = int(args['value'])\n\nTypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'\n"
[1] INFO command_set_record_volume - frame: {'value': None}
[D] unknown:0 - "PyOtherSide error: Traceback (most recent call last):\n\n  File \"/usr/share/harbour-s1p/qml/pages/s1p.py\", line 333, in command_set_record_volume\n    args['value'] = int(args['value'])\n\nTypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'\n"
[D] onError:108 - ERROR - unhandled error received: Return value of PyObject call is NULL: Traceback (most recent call last):

  File "/usr/share/harbour-s1p/qml/pages/s1p.py", line 321, in command_set_playback_volume
    args['value'] = int(args['value'])

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

[D] onError:108 - ERROR - unhandled error received: Return value of PyObject call is NULL: Traceback (most recent call last):

  File "/usr/share/harbour-s1p/qml/pages/s1p.py", line 333, in command_set_record_volume
    args['value'] = int(args['value'])

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
unmaintained's picture

It seems nor to create the configuration, especially no accounts sometimes. I'll try to fix that and will upload a new version later today.

amaretzek's picture

Hmmm, before there is:

[D] onError:108 - ERROR - unhandled error received: pyotherside.send() failed handler: file:///usr/share/harbour-s1p/qml/pages/PythonHandler.qml:116: TypeError: Cannot read property '0' of undefined
[W] unknown:232 - file:///usr/share/harbour-s1p/qml/pages/SettingsDialog.qml:232: TypeError: Cannot read property 'NaN' of undefined