csg-sipagent at a glance
- Python library for developing phone robots
- Robots can register as a telephone with IP PBX systems
- Control robots with every touch tone capable analog, IP or mobile phone
- Arbitrary depth menus with touch tone navigation
- Visual output via Signagepost possible
- Localization functions allow multi language text and voice output
- Various display widgets (Menus, text/image views, video player available
- Control of external systems with custom Python code possible
Shortly after I started experimenting with the first prototypes of Signagepost, I got the idea of adding interactivity to my shop front window screen. Since I mounted a door phone with a full size keypad next to my front door, developing a control system that uses touch tone keys seemed the obvious way to go about it. Thus csg-sipagent was born, a Python library for developing phone robots.
In the minimal case, such a robot requires but a few lines of Python code and it can register as a phone with most PBX (Private Branch Exchange) systems. Among other things, that includes common household routers which often function as small PBX systems for IP based telephony. By now, the list of csg-sipagent's features has grown quite long. Among other things it supports nested touch tone menus of arbitrary depth, combined voice output through the phone and text output on a screen, multi language support various display widgets for text and images and playing videos.
Voice and visual menu, language selectable (German and English).
Playing a demo video saved from a farm CCTV system I built.
Beispielanwendung: Steuerung von Garagen- und Hoftor per Telefon.
Usage Examples
Since this is an interactive system, a picture - or in this case a video - says more than a thousand words. These videos show the phone robot running in my shop front window. It is controlled through the door phone next to the window. The functionality shown - with the exception of the simulated gate control - can be implemented in just a few lines of Python. For common functionality such as menus and language switching, library functions and a structured hierarchy of classes will do most of the heavy lifting. I will cover this in detail in the next article of this series.
Plattform and Hardware
csg-sipagent should work on most modern day Linux systems. Currently I run it on Ubuntu 24.04 on x86 platforms. As with Signagepost, I can theoretically port this to other Linux systems but this requires - costly - adaptations to the system in question. Where required I can take care of this.
Hardware wise it does not need much - similar to Signagepost it will happily run on an Odroid M1 with 4GB of RAM.
Apart from a Python interpreter, it needs baresip for interacting with the PBX and various multimedia software and libraries for voice output and playing videos. A lot of the visual functionality depends on Signagepost, so the combined license below makes sense for lots of use cases. Most dependencies can be fullfilled from the Ubuntu package repository. I will include the rest with the kit I ship.
Status and Target Audience
Similar to Signagepost, csg-sipagent is in the early beta stage. There is fairly comprehensive inline documentation in the shape of docstrings and a variety of code and configuration examples. There are occasional gaps in the documentation.
Signagepost itself is a proper, installable Python module with a modest set of dependencies. A Python developer working on a Linux platform should be able to get started with it fairly easily. Since it is a library to be used in developing software, its target audience is mainly software developers rather than end users.
Of course I am happy to develop tailor made menu and display systems for end users on the basis of csg-sipagent and signagepost. I can also sell you the the hardware to run the system on and automate operating system installation. As long as development only involves creating menus and embedding customer created text, image and video content the time required for that, and thus the cost should end up being rather modest.
Development and Modifications
Development of the Product continues as far as I see a need for modifications. For individual, customer specific modifications beyond this I charge my hourly rate C (EUR 120 pre tax at the time of this writing; see Preise).
Source code is available to the customer and they are free to make modifications in principle under two conditions: (1) support for changes deviating from the base product is not part of the license, and (2) they will have to integrate updates of the base version manually.
Support for such modified code and integration with future updates is possible at the same hourly rate as that for customer specific modifications.
Outlook
This is the first article in a series of articles on csg-signagepost. The next one will be a deep dive into its architecture and the Python code behind the menu in the video examples.
Pricing and Availability
- Price: EUR 100 pre tax per license (one license is required for every combination of running instance and SIP account). Licenses remain valid indefinitely and are acquired through one-time payment of the license fee. There are no running costs - this is a one-time license fee and not a subscription. Access to updates of the base product - i.e. without customer specific modifications - to later versions is included in this license.
- Combination offer: a combined csg-sipagent/Signagepost license is EUR 150 pre tax. An existing csg-sipagent or signagepost license can not be upgraded to a combined license.
- Discounted OEM licenses for integration into customer products are negotiable.
- The product is generally available on a B2B basis, i.e. to business customers and not to consumers. Exceptions are possible for systems I set up personally.
- Currently, Signagepost is only available directly through me. If you are interested, please contact me via email (info@computer-grassler.de) or phone (+49 (0) 9681 670 98 68).