sprout and bono, the Clearwater SIP router and edge proxy
Switch branches/tags
Clone or download
Failed to load latest commit information.
.externalToolBuilders Initial Clearwater code May 6, 2013
.github Add Github issue template Mar 20, 2016
.settings Initial Clearwater code May 6, 2013
bono.root Don't wait for 6 cycles before killing a process Jun 26, 2017
build-infra @ b4a39c4 Automatic submodule update Apr 13, 2018
clearwater-sip-perf.root/usr/share/clearwater Don't pick up the Record-Route from a 100 Trying Aug 23, 2016
clearwater-sip-stress.root Add missing CHANGES tag Nov 14, 2016
clearwater-sipp.root/etc Live test fixes Dec 10, 2015
debian Merge pull request #2182 from Metaswitch/io-trap Mar 23, 2018
docs Add docs for IO traps Mar 22, 2018
include 180s received after a transaction has been terminated are mis-routed (#… Mar 23, 2018
mk Remove thrift and cassandra makefiles Dec 13, 2017
modules Automatic submodule update Mar 28, 2018
plugins Build items from the 'plugins' directory Oct 27, 2015
restund.root Fix Copyright dates May 30, 2017
scripts Tidy up ramrecorder log in sprout Mar 12, 2018
sprout-base.root Merge branch 'master' into naive_ram_recorder Mar 15, 2018
sprout-bgcf.root/usr/share/clearwater/clearwater-config-manager/scripts Updates after testing Jul 14, 2017
sprout-mmtel-as.root/usr/share/clearwater/clearwater-diags-monitor/scripts Fix Copyright dates May 30, 2017
src Fix up build that was broken due to IO traps not building under clang Mar 26, 2018
tests/pbxas Fix Copyright dates May 30, 2017
.cproject Initial Clearwater code May 6, 2013
.gitignore Rebase to relead-60 Nov 19, 2014
.gitmodules Move the AoR and S4 files into a submodule Jan 12, 2018
.project Initial Clearwater code May 6, 2013
CHANGELOG.md Initial Clearwater code May 6, 2013
COPYING Fix COPYING file format (better) May 23, 2017
Makefile include Feb 28, 2018
README.md Change readthedocs branch Oct 6, 2015
on-eclipse-build.sh Fix Copyright dates May 30, 2017



This repository contains the core Clearwater SIP function, specifically

  • sprout, the Clearwater SIP router
  • bono, the Clearwater SIP edge proxy
  • restund, the STUN/TURN server used by Clearwater
  • sipp, a SIP stress tool used for testing Clearwater.

Project Clearwater is an open-source IMS core, developed by Metaswitch Networks and released under the GNU GPLv3. You can find more information about it on our website or in our docs.

Sprout and Bono

Sprout is Clearwater's SIP router. It provides most of Clearwater's S-CSCF function. It generally acts as a stateful SIP proxy. It provides registrar function, storing registration information in a memcached store distributed across all sprout instances. It also provides application server function, retrieving Initial Filter Criteria documents from Homestead and acting on them. As well as supporting external application servers, sprout has built-in support for MMTEL services.

Bono is Clearwater's edge proxy. It provides limited P-CSCF function and the some of Clearwater's S-CSCF function. It generally acts as a stateful SIP proxy, receiving SIP messages from users, checking their authenticity and forwarding them to other bono instances or one of the sprout instances.

Sprout and bono share a lot of function and are in fact the same binary, just started with different command-line arguments. They are written in C++, using PJSIP as a SIP stack, curl as an HTTP client, and a selection of other open-source components.


Clearwater's fork of restund is very similar to the original. The only difference is that the Clearwater fork communicates with Homestead to retrieve SIP digest credentials, which are used to authenticate TURN flows.


Clearwater uses SIPp for stress testing. The Clearwater version features improved TCP scalability and also comes packaged with scripts for simulating Clearwater call load and analyzing/reporting the results.

Further Information