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
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
Changelog: 

- 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

Comments

unmaintained's picture

Are there any differences to the delay with 0.2.5 ?

Bsingleto's picture

Patiently Waiting Your Next Update on a TOUCH TONE feature to round up this Voip for me. This is legitimate. I can soon have a working phone line. VoipCheap intergrates with

S1P

and it works. ( speaker phone always echoed with this service, so having it start on speaker phone so i know the call connected is great. Next i click speaker phone off and put it to my face where there no longer an echo on the receivers end. Sometimes my face will hit the mute / headphone / speaker button because the proximity sensor does not shut the screen off, but im okay with manully tapping the power on my xa2 button everytime to ensure the screen is off before putting it up to my face. Thats probably phone specific programming or so something to fix/add, idk) But adding the KeyPress/Touchtone would make it perfect for me/some of us.

unmaintained's picture

Have you been able to test the DTMF tones? 

I've tested it with Sipgate + Asterisk and it seems to work quite well.

The event duration is fixed at 500ms right now but this should not be an issue with most applications.

Bsingleto's picture

I noticed the update log and events log. Well thanks for adding 0.2.3 support DTMF. next when i look at the call events log it say: DEBUG {RTPServer DEBUG {RTPServer 2} Send Dtmf -event 3, end: false (or sometimes ) true duration: 4000 units and the none of the touch tones work with VoipCheap service here. Are you saying this should be changed to 500 units somehow? Can i do that?

unmaintained's picture

The line you've mentioned looks correct. Also 4000 units (=500ms) should be enough to trigger an action.

I've tested it with Asterisk, sipgate and colt.net so far and it worked every time but there are several ways how DTMF events can be transported. At the moment the only one supported with s1p is rfc2833.

Bramba's picture

Wow, I was waiting for this since five years! :-) Thank you very much for your AWESOME work!

Did anybody test it with SIP-provider Easybell already? I can login successfully both via wifi and mobile data, but have some issues with outgoing calls (incoming calls not yet tested).

Bug list:

- Outgoing calls with SIP-provider Easybell do not work (all calls end immediately after dialling) (-> *1)
- Sorting order in contacts list does not use existing config of phone address book (s1p inevitably sorts by first name, phone address book sorts by users config, e.g. family name)
- Last action (e.g. "Call ended") is displayed until a new action is carried out. I guess, displaying the last message for only about 10 seconds should be enough. :-)

(*1) From log file: DEBUG [SIPServer-1] HandleResponseTerminatedOther [blabla@blabla] - call terminated with code: 400 session description parsing failed

Could you provide a Github-repo so we can better support you with bugs and logs? :-)

Again - THANK YOU for your great efforts!

unmaintained's picture

You can upload the log from inside the app and just post the log-id (displayed at the bottom of the log page after upload) here should this make things easier.

Bramba's picture

Thank you for your kind reply! The corresponding log-ID is 25.

Is this data handled confidentially? It contains personal data...

unmaintained's picture

I've checked the log and the other endpint seem to complain about not beig able to parse SDP information. Does this happen with 0.2.5 as well?

unmaintained's picture

I don't have a Facebook account so won't post them there, promise :)
You can also delete single log entries that would contain passwords etc. before uploading them if that helps. 

Bsingleto's picture

OMG this thing works now. well, 1st, since i remembered my correct login in and password for my voip service, lol. I've been putting that in wrong probably all this time. next the VOIPCHEAP service that i use serve address is 77.72.169.134 with the 5060 port. Waiting a few hours after requesting SIP use via their/my settings online then checking back after a day clicking Enabled For SIP. It works, it really does. Been testing phone calls for the past three hours. ...mainly calling different businesses because i dont have any friends that i want to talk to. The top of my screen says 'Trying' and that is how i know it is working and logged in correctly to make outgoing calls. Im still testing it out but for the most part its good as its always sounded. Ive never used a different or more expensive provider which may work better in comparison, but considering how ive only paid 50 for service for close to a decade, im sticking with this company. A sad part is the touch tone key presses do not register at all so i cannot do any message trees or dial by extension type things (which is my perfered method of using the phone because who wants to talk to someone over the phone, not me)
Thanks for this sailfish os app that integrates with someones own VOIP provider! AND thanks for pushing out updates based on our feedback here. You deserve a coffee BTW where is the link to your paypal. I want to Send You COFFEE (two coffees if you get the Key Presses to register during calls)!

maier's picture

Problem solfed)))) ...next problem is the possibility to choose the speaker / mic devices. The menu has no response. Speaker is on by default and it's not possible to switch something.

unmaintained's picture

Which device are you using?

maier's picture

I'm using JP1 with an internal connection to a FritzBox 7490.
The internal phone counterpart is a Gigaset Dect phone or a computer connection with Linux and Empathy as SIP client. On the JP1 is used the speaker and the upper mic. And as I found out the mic is possible to toggle during a call but not easily. May there is a layout overlay with the called phone number.

unmaintained's picture

I've just posted SetSink to OpenRepos to try to find out what's going wrong.
Is a command-line app and should display the IDs of the ports in question.

You could also try to set the output port with setsink to check if there's any chance to make it work in s1p.

unmaintained's picture

Unfortunately I couldn't make my Jolla1 boot any more no matter how hard I've tried, even after replacing the battery. I suspect the PulseAudio configuration is slightly differen from the Sony devices (port names maybe). 
You could try to run the follwong command to find out the port names, should it be installed on your Jolla:
pactl list

c_mauderer's picture

Like many others, I'm very happy about a SIP-App too. But like normal for such a new app: I've got a problem and would like to report it. It's nothing critical so don't hesitate to ignore it if you don't have time or don't feel like taking a look at it.

I tried to use s1p as a client to a FritzBox 7560. Now I tried it with an internal call. I'm calling **620 (the internal number of s1p) from a DECT handset **610. Everything works fine (except that the speaker is on by default) which is really great work for such a new app. What doesn't work is hanging up. The audio connection is interrupted but the DECT handset doesn't receive the information that I hung up. Only when I hang up on the DECT handset too the connection is finally closed.

A log of the end of the connection is here:

[1] INFO handle_stdout - event frame: {'event': 'register_status', 'status': 19}
[1] INFO handle_event_frame - frame: {'event': 'register_status', 'status': 19}
[1] rec: b'{"event":"declined","from_peer":"christian","to_peer":"christian","outbound":true}\n'

[1] INFO handle_stdout - event frame: {'event': 'declined', 'from_peer': 'christian', 'to_peer': 'christian', 'outbound': True}
[1] INFO handle_event_frame - frame: {'event': 'declined', 'from_peer': 'christian', 'to_peer': 'christian', 'outbound': True}
b'PulseHandler - playback stream suspended - stream index: 0, suspended: false\n'
b'PulseHandler - unhandled message: &proto.Started{StreamIndex:0x0}\n'
[D] :86 - 1 handle_event_frame - unhandled event: declined
[1] INFO command_hangup - frame: {}
b'INFO [SIPServer-1] CommandHangup - hang-up call\n'
b'TRACE [SIPServer-1] HangupCall [9DBCA1B51AC44FC9@192.168.47.8], status: 17\n'
b'DEBUG [SIPServer-1] HangupCall [9DBCA1B51AC44FC9@192.168.47.8] - sending BYE\n'
[1] rec: b'{"event":"call_status","status":18}\n'

[1] INFO handle_stdout - event frame: {'event': 'call_status', 'status': 18}
[1] INFO handle_event_frame - frame: {'event': 'call_status', 'status': 18}
[1] rec: b'{"event":"call_bye","from_peer":"christian","to_peer":"**610","outbound":false}\n'

[1] INFO handle_stdout - event frame: {'event': 'call_bye', 'from_peer': 'christian', 'to_peer': '**610', 'outbound': False}
[1] INFO handle_event_frame - frame: {'event': 'call_bye', 'from_peer': 'christian', 'to_peer': '**610', 'outbound': False}
[1] rec: b'{"event":"result","command":"hangup","success":true}\n'

[1] INFO handle_stdout - event frame: {'event': 'result', 'command': 'hangup', 'success': True}
[1] INFO handle_event_frame - frame: {'event': 'result', 'command': 'hangup', 'success': True}
b'DEBUG [SIPServer-1] Bye [9DBCA1B51AC44FC9@192.168.47.8] - from: **610 (192.168.47.79:5060), ua: s1p, to: christian\n'
b'TRACE [SIPServer-1] UpdateCallStatus [9DBCA1B51AC44FC9@192.168.47.8] - updated status: 17 -> 18\n'
b'TRACE [SIPServer-1] WritePacket: 192.168.47.79:5060 => 192.168.47.8:5060 (BYE) sip:76A52E1F7FB9E00C9BBCC39384E96@192.168.47.8;transport=UDP\n'
b'BYE sip:76A52E1F7FB9E00C9BBCC39384E96@192.168.47.8;transport=UDP SIP/2.0\r\n'
b'Via: SIP/2.0/UDP 192.168.47.8:5060;branch=z9hG4bK830ADA8456674F32\r\n'
b'From: <sip:christian@fritz.box;transport=UDP>;tag=25642185\r\n'
b'To: <sip:**610@192.168.47.79:5060;transport=UDP>;tag=DDC4983E54787721\r\n'
b'Call-ID: 9DBCA1B51AC44FC9@192.168.47.8\r\n'
b'CSeq: 6 BYE\r\n'
b'Allow: INVITE, ACK, CANCEL, BYE\r\n'
b'Contact: <sip:christian@192.168.47.79:5060>\r\n'
b'Max-Forwards: 69\r\n'
b'User-Agent: s1p\r\n'
b'Content-Length: 0\r\n'
b'\r\n'
b'TRACE [SIPServer-1] HangupCall [3c571d3@192.168.47.79], status: 2\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
[D] handle_event_call_status:139 - handle_event_call_status - updating status:  17 -> 18
[D] handle_event_call_status:156 - handle_event_call_status - setup:  false ringing: false answered: false hangup: true
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'
b'TRACE [RTPServer-2] HandlePacket - playback stream not active\n'

That last message repeats till I hang up on my DECT handset.

unmaintained's picture

It looks like the BYE packet has been ignored by the FritzBox (there's no answer visible in the log above) for some reason, instead it keeps on sending audio packets, as indicated by the "playback stream not active" message.

 

c_mauderer's picture

I'll try to do some more analysis. Maybe I can find some reason.

c_mauderer's picture

I did some further analysis: A packet capture of a call using linphone and one with s1p. The most notable difference in the BYE packet is the "To" field. s1p is sending the following

sip:**610@192.168.47.79:5060;transport=UDP

linphone is sending the following:

sip:**610@fritz.box

Note the difference: s1p is sending a port and a ";transport=UDP" together with the address. Beneath that linphone does some address resolution. But I don't think that the address resolution is the relevant part.

You can find screenshots of the complete BYE packets here (for the next month):

s1p: https://nc.c-mauderer.de/index.php/s/GRCm9akECYYKBPJ

linphone: https://nc.c-mauderer.de/index.php/s/EAeqJ9SCcM68f5r

Edit: It seems that I caught the wrong BYE for s1p. That one is in the wrong direction. Please ignore it. I'll search for the correct one.

Edit2: Nope: It was the correct BYE sent from s1p to the fritzbox.

unmaintained's picture

That does not have to mean much at least not if the previous dialogs also used the same uri.

c_mauderer's picture

Thanks for the response. The URI isn't the same for linphone as well as for s1p. See SIP-stream for s1p and SIP stream for linphone.

In both cases the INVITE and ACK used a written name while the BUE used a somehow encoded name.

A big difference is that s1p seems to continue re-registering during the call.

Is there something that I could do to analyze that a bit more? I think your application is currently not open sourced? Would the recorded network streams help? I would prefere to send these via mail instead of a public comment section. So if they would be usefull please drop me a line to contact at c-mauderer.de.

 

unmaintained's picture

Re-Registering happens also during calls like with pretty much any other SIP user agent (but maybe the registartion happens more often), but this is always done as a separate dialog with a completely different Call-ID and should not interfere with active calls.

c_mauderer's picture

Not entirely sure what changed but the problem is solved with 0.2.4. Thank you very much for that.

unmaintained's picture

I'm happy to hear that. I've made some minor adjustmenst to when, which contact information is used and I suspect this to have made all the difference here.

maier's picture

Hi your problem with the calls should be solved now. I use the FritzBox 7490. The problem that you have the speaker on by default I have too but that I have also with the integrated solution from Jolla.

c_mauderer's picture

Hello @maier: No my problems aren't solved. I should have written the versions I'm using: I tried it with s1p 0.2.2 and a FritzOS 07.12 (latest one for the box).

emchella's picture

Great Thank you ..

Enrico

maier's picture

Sorry for the delay. I sent the log now 3x but I can't find an ID at the end. ... it going on and on with logging. Situation don't change. After 1-5 seconds the red button looses focus get dark the green button gets light the red button is not responsible anymore.

unmaintained's picture

Could you please test it again? I've changed the code responsible setting various flags depeinding on the status of the call.

Pages