Your rating: None Average: 4.9 (12 votes)

s1p is an experimental SIP client for Sailfish OS

This is software in an early stage of development - please don't expect it to work with every type of SIP server out there.

It also needs a restart after any changes to the settings.

Successfully tested with Asterisk chan_sip.

Please reference the log-id when writing a comment after submittimg a log. The id should be displayed at the bottom of the page if the log was successfully submitted. 




Application versions: 
File harbour-s1p-0.0.2-1.armv7hl.rpm2.13 MB27/05/2020 - 10:26
File harbour-s1p-0.0.3-1.armv7hl.rpm2.13 MB27/05/2020 - 23:38
File harbour-s1p-0.0.4-1.armv7hl.rpm2.14 MB29/05/2020 - 14:26
File harbour-s1p-0.0.5-1.armv7hl.rpm2.14 MB30/05/2020 - 11:04
File harbour-s1p-0.0.6-1.armv7hl.rpm2.14 MB01/06/2020 - 19:36
File harbour-s1p-0.0.7-1.armv7hl.rpm2.14 MB02/06/2020 - 22:52
File harbour-s1p-0.0.8-1.armv7hl.rpm2.15 MB04/06/2020 - 20:19
File harbour-s1p-0.0.9-1.armv7hl.rpm2.15 MB05/06/2020 - 12:22
File harbour-s1p-0.1.0-1.armv7hl.rpm2.15 MB05/06/2020 - 14:58
File harbour-s1p-0.1.1-2.armv7hl.rpm2.15 MB05/06/2020 - 23:43
File harbour-s1p-0.1.2-1.armv7hl.rpm2.15 MB06/06/2020 - 11:41
File harbour-s1p-0.1.3-1.armv7hl.rpm2.15 MB06/06/2020 - 19:01
File harbour-s1p-0.1.4-1.armv7hl.rpm2.15 MB08/06/2020 - 21:30
File harbour-s1p-0.1.5-1.armv7hl.rpm2.15 MB09/06/2020 - 11:24
File harbour-s1p-0.1.6-1.armv7hl.rpm2.16 MB09/06/2020 - 15:49
File harbour-s1p-0.1.7-1.armv7hl.rpm2.16 MB11/06/2020 - 09:29
File harbour-s1p-0.1.8-1.armv7hl.rpm2.16 MB12/06/2020 - 11:37
File harbour-s1p-0.1.9-1.armv7hl.rpm2.16 MB12/06/2020 - 21:11
File harbour-s1p-0.2.0-1.armv7hl.rpm2.16 MB13/06/2020 - 11:53
File harbour-s1p-0.2.1-1.armv7hl.rpm2.18 MB13/06/2020 - 22:21
File harbour-s1p-0.2.2-1.armv7hl.rpm2.18 MB16/06/2020 - 20:07
File harbour-s1p-0.2.3-1.armv7hl.rpm2.18 MB20/06/2020 - 11:01
File harbour-s1p-0.2.4-1.armv7hl.rpm2.18 MB21/06/2020 - 11:30
File harbour-s1p-0.2.5-1.armv7hl.rpm2.18 MB26/06/2020 - 14:31
File harbour-s1p-0.2.8-1.armv7hl.rpm2.18 MB28/06/2020 - 11:08
File harbour-s1p-0.2.9-1.armv7hl.rpm2.19 MB29/06/2020 - 16:48
File harbour-s1p-0.3.1-1.armv7hl.rpm2.18 MB04/07/2020 - 12:42
File harbour-s1p-0.3.2-1.armv7hl.rpm2.18 MB08/07/2020 - 23:56
File harbour-s1p-0.3.3-1.armv7hl.rpm2.18 MB09/07/2020 - 22:58
File harbour-s1p-0.3.4-1.armv7hl.rpm2.19 MB12/07/2020 - 12:46

- 0.0.2 initial release

- 0.0.3 adds log page

- 0.0.4 fixes registering issues with antisip.com

- 0.0.5 adds ringtones

- 0.0.6 improves UI and makes hanging up calls more reliable

- 0.0.7 fixes some issues with sipgate (inbound calls still broken)

- 0.0.8 fixes inbound calls with sipgate (cancelling outbound calls still broken)

- 0.0.9 fixes issues with outbound calls through sipgate

- 0.1.0 improves UI

- 0.1.1 adds contacts page

- 0.1.2 adds log upload

- 0.1.3 improves logging and handling of audio packets

- 0.1.4 enables audio output selection buttons

- 0.1.5 fixes issues with audio output selection

- 0.1.6 enables mute button

- 0.1.7 adds volume presets

- 0.1.8 makes some changes to how audio frames are handled

- 0.1.9 fixes choppy audio on some phones

- 0.2.0 adds G.711 μ-law codec, (hopefully) fixes some call-state issues

- 0.2.1 adds DNS SRV record lookup

- 0.2.2 fixes call status being sometimes overwritten by regstration status

- 0.2.3 adds initial DTMF support

- 0.2.4 adds preferrence for domain instead of IP in SIP dialogs and adds auth-name field to SIP account settings

- 0.2.5 adds improvements to power consumption, audio handler and playback buffer

- 0.2.6 adds configuration-file options for latency and audio buffer length

- 0.2.7 adds configuration dialog options for latency and audio buffer length

- 0.2.8 fixes issues with setting latency and buffer length

- 0.2.9 enables voicemail button, fixes issues with number input

- 0.3.0 adds options for bind address and regsiter frequency

- 0.3.1 sets default register frequency to 1 hour

- 0.3.2 fixes regsitering with sip.linphone.org

- 0.3.3 fixes previously broken default settings

- 0.3.4 adds support for display name


amaretzek's picture

version 0.0.5, on first incomming call, after picking up, the server (asterisk) says "Invalid contact uri (missing sip: or sips:)" and "Invalid URI: parse_uri failed to acquire hostport".
On a second incomming call, it behaves different.
First outgoing seems "ok", audio distorted (too high volume??), increased lag from far end to local.
Second outgoing, hang up on local doesn't terminate audio.

unmaintained's picture

I will try to add a way to submit log files later. Right now trying to fix all these issues would be just guess work.

amaretzek's picture

I meant, that was from the server log. I can put logs on my web server, if you want...

Domi's picture

Nice application. Thanks! It works on a Cisco CME with outgoing calls. In one direction the voice is not that bad. On a Fritzbox the registration fails. There exists on the Fritzbox the limitation that the username must be the same as the used number...

unmaintained's picture

Auth-user and user name in "From" share the same variable so they must be equal at the moment.

Domi's picture

With 0.0.4 registration and call as client on a fritzbox works :-)

Is the next version video included?

unmaintained's picture

I'm glad it works - without an actual FritzBox debugging would be a nightnmare I think.
Video will maybe come at some point down the line once audio calls turn out to work reliably. 

HoSnoopy's picture

I tried to connect with a Fritz!Box. It doesnt connect:

b'DEBUG [SIPServer-1] HandleResponseUnhandled [13f93f33@] - unhandled response ignored - from: ulistelefix (, ua: FRITZ!OS, to: ulistelefix\n'
b'TRACE [SIPServer-1] HandleResponseUnhandled [13f93f33@] - payload: => (481 Call Leg/Transaction Does Not Exist)\n'

I just tried it, maybe it is helpful for you? ;-)

unmaintained's picture

Unfortunately that seems to be only the last part of the transaction. The FritzBox answering to a request with 481 would mean it somehow can't match it to a previous request.
I'm afraid it may take a while to iron out such things, unfortunately.

zipotron's picture

Thanks for the App! Just a question. Witch kind of license have the program? I case of be OpenSource. Can we have the repo link? I would like to collaborate

unmaintained's picture

The Python + QML parts are OpenSource, the SIP part is proprietary at the moment.

I haven't decided yet what to do about it. I guess id depends on people actually being interested in SIP on SFOS or not.

bc77's picture


I am interested. I am using sipgate.de als SIP Provider..

unmaintained's picture

Have you tried it with sipgate?
You will have to use their IP address instead of sipgate.de, though.

dubliner's picture

I am also extremely interested. In fact, it's the major thing missing for me with SFOS. However, I have been unable to get it working.

On my Asterisk server I keep getting "SIP/2.0 401 Unauthorized" (pjsip logger) while the status on s1p never changes from "network_ready" no matter how simple a password I choose.

So, I tried registering s1p with Antisip. Here the status on s1p changed from "network_ready" to "not_allowed".

Of course, I verified username and password in both situations several times.

Any hints?

unmaintained's picture

Do you have a way to start it from the command line and to analyze the optput?

sailfish-qml harbour-s1p

Please be aware before posting things that the output could contain IPs, usernames and the password in clear text.

dubliner's picture

I just installed harbour-s1p-0.0.3-1 and this is what I see when I try to connect to Antisip:

b'ERROR [SIPServer-1] CreateDialog [4273f45e@] - on request: REGISTER, cseq: , from: #hidingMyNumber# (, ua: s1p, to: #hidingMyNumber#\n'
b'DEBUG [SIPServer-1] Register [4273f45e@] - from: #hidingMyNumber# (, ua: s1p, to: #hidingMyNumber#\n'
b'DEBUG [SIPServer-1] HandleRequestRegister [4273f45e@] - REGISTER declined - from: #hidingMyNumber# (, ua: s1p, to: #hidingMyNumber#\n'
b'DEBUG [SIPServer-1] WritePacket - out: => (405 Method Not Allowed)\n'
b'DEBUG [SIPServer-1] AnswerAck [4273f45e@] - from: #hidingMyNumber# (, ua: s1p, to: #hidingMyNumber#\n'
b'DEBUG [SIPServer-1] WritePacket - out: => (ACK) sip:#hidingMyNumber#@\n'
b'DEBUG [SIPServer-1] HandleRequestAck [4273f45e@] - ACK - ignored - from: #hidingMyNumber# (, ua: s1p, to: #hidingMyNumber#\n'
b'DEBUG [SIPServer-1] HandleRequestAck [4273f45e@] - ACK - ignored - from: #hidingMyNumber# (, ua: s1p, to: #hidingMyNumber# => (REGISTER) sip:sip.antisip.com:5060\n'
[1] rec: b'{"event":"not_allowed","from_peer":"#hidingMyNumber#","to_peer":"#hidingMyNumber#","outbound":true}\n'

[1] INFO handle_stdout - event frame: {'event': 'not_allowed', 'from_peer': '#hidingMyNumber#', 'to_peer': '#hidingMyNumber#', 'outbound': True}
[1] INFO handle_event_frame - frame: {'event': 'not_allowed', 'from_peer': '#hidingMyNumber#', 'to_peer': '#hidingMyNumber#', 'outbound': True}
[D] :15 - 1 handle_event_frame - event: not_allowed
b'ERROR [RTPServer-2] Run - read error: read udp recvmsg: interrupted system call\n'

So, it's 405 Method not allowed in this case. Not sure why port 9004 shows up, though.

BTW, which service are you connecting to in your setup?

unmaintained's picture

Someting got totatlly confused here, the following line means that it's basically speaking to itself: 

out: =>

What is the local IP address and what should be the IP of the SIP registrar?

Port 9004 is the default RTP port and can be ignored for now as it has nothing to do with the register attempt.

dubliner's picture

That's exactly what I thought. The phone is trying to connect to itself which makes no sense at all. The phone's IP was the

I also use Asterisk 16/FreePBX. However, debugging is a little more difficult since that server is also on a network, just like the phone when I plug in USB.

Are you using the plain standard pjsip extension on FreePBX for your s1p setup?

P.S. When I change sip.antisip.com into it stops at "network_ready". Can't give any further info as I am not at my PC now.

unmaintained's picture

I'm using an ancient FreePBX with chan_sip :)

Coud be pjsip is handling something differently.
I'll try to check out antisip later.

dubliner's picture

Indeed, chan_sip is working. Too bad it's considered deprecated (the current FreePBX doesn't leave any doubts about that). I really wonder what's keeping s1p from working with pjsip? I have a variety of devices successfully connected just using the standard pjsip settings.

As for connecting to Antisip using their IP address, this resulted in status "400 Content-Length mis-match":

b'ERROR [SIPServer-1] CreateDialog [5f4f351f@] - on request: REGISTER, cseq: , from: #hidingMyNumber# (, ua: s1p, to: #hidingMyNumber#\n'

b'DEBUG [SIPServer-1] Register [5f4f351f@] - from: #hidingMyNumber# (, ua: s1p, to: #hidingMyNumber#\n'

b'DEBUG [SIPServer-1] WritePacket - out: => (REGISTER) sip:\n'

b'DEBUG [SIPServer-1] HandleResponseUnhandled [5f4f351f@] - unhandled response ignored - from: #hidingMyNumber# (, ua: , to: #hidingMyNumber#\n'

b'TRACE [SIPServer-1] HandleResponseUnhandled [5f4f351f@] - payload: => (400 Content-Length mis-match)\n'
unmaintained's picture

Registering to Antisip works for me in 0.0.4 now. I have no Idea if it is able to make any calls, though.

dubliner's picture

Just a quick note: Registration with Antisip only works when their IP is inserted. Adding "sip.antisip.com" fails (i.e. the phone seems to be trying to connect to itself).
Phone calls are signalled but no audio is transported. Additionally it was impossible to end the call. I had to close s1p.
Anyway, I really enjoy seeing rapid progress here! Keep it up, please!

unmaintained's picture

Audio issues could be NAT related. There's no STUN support in s1p yet. Asterisk seems to just send the audio back to the IP/port combination (when NAT is enabled) the incoming packets are coming from but I don't know how antisip are handling that.
Also the only codec supportet at this moment is alaw but this should not be an issue I think.

dubliner's picture

My SIP devices as well as Asterisk are able to connect to Antisip and other providers through NAT without using STUN. So, there must be another option merely through configuration. I am clearly not an expert, so I'll just try to provide reference:


chan_sip has a setting NAT=yes which never caused any problems.

unmaintained's picture

Yes, you have to use the IP address as it's not resolving domain names at this point. I'll change the description to make this clearer.

unmaintained's picture

Thank you, i'll check the marshaller if it's mayby adding one \n too many or so and chan_sip just doesn't care.

unmaintained's picture

I'm using Asterisk (FreePBX) to test s1p against but I'll try to check out antisip.com tomorrow.

amaretzek's picture

I'm *very* interested! Can contribute with translation to pt_PT, some testing too...