tSIP 0.3: multi-call kiosk setup
tSIP 0.3 added support for multiple simultaneous SIP calls. Apart from usual functions like attended transfer (for PABXs not supporting this with feature codes) and conference this might also be useful for SIP-based announcement systems.
This demonstration setup uses:
- Lenovo Miix 2 10 tablet/laptop (2 in 1) for tSIP, configured with:
- call/hangup button
- chime button (playing short wave file, if pressed when not transmitting this would set "default" chime at the begining of the announcement)
- 4 independent zone selection button, showing call state for each zone
- audio/announcement selection
- microphone
- wave file
- two radio stations (http-based)
- 3 tSIP copies (receivers) running on other PC
- Grandstream GRP2614 desk phone (receiver)
Zone selection buttons can also show BLF/dialog-info state from arbitrary SIP server(s), e.g. to monitor zone state, but this is disabled in included files.
Forcing auto-answer
Auto-answer be be triggered by sending specific header line in SIP INVITE.
There are few different header lines with few subvariants, so you might have to check how this is supposed to look for particular
phone. Note that multiple header lines (for multiple phone types) can be send in a single request.
On Grandstream GRP2614 I've added SIP account with IP address settings of the PC where softphone is running. This was necessary
because I haven't found settings like below (answering without "beep" signal) for direct IP calls.
Notes
tSIP (and baresip) are not best suited for making multiple simultaneous calls as audio for each call is processed independently. This means that in my 4-zone demo there are 4 separate connections to internet radio made. It could be improved, but for now this might be limiting total number of separate SIP zones for this application.
Included scripts might benefit from some refactoring - adding new zone button requires editing few distinct script files. Target SIP URIs are defined in file named constants.lua.
I'm running 32-bit Windows 10 on Lenovo Miix 2 10 with 1920x1200 resolution and it defaults to 150% application scaling. You may need to adjust application size / button positions when switching to different machine/system.
Application starts in kiosk mode (fullscreen, no menu). To bring menu back I'm using "secret" button press sequence, defined in OnProgrammableButton.lua script: 3x ZONE #4, 3x ZONE #3, 3x ZONE #2, 3x ZONE #1. To bring back the kiosk mode, restart application (though one could define button for this, normally hidden).
As HTTP-based radio stations are used in this demonstration, tSIP version with video support (avformat module) is required.
Chime wave file was prepared using https://midi.city/ online synth and Audacity capturing output using WASAPI.
Galak Pizza bitmap was stolen ("tylko głupi by nie skorzystał"), beware when redistributing it.
Random audio captured on video from internet radio station is most likely copyrighted, but I hope it falls into fair use category.
Side note: Grandstream GRP2614 has some awful audio processing audible when playing music, maybe related to echo cancellation and/or AGC.
Complete binary set: multi-call-panel.7z.
Back to howto list