sprout and bono, the Clearwater SIP router and edge proxy
C++ Shell Other
Pull request Compare This branch is 31 commits ahead, 2890 commits behind Metaswitch:dev.
Permalink
Failed to load latest commit information.
.externalToolBuilders Initial Clearwater code May 6, 2013
.settings Initial Clearwater code May 6, 2013
bono.root Remove rogue apostrophe Jun 12, 2015
build-infra @ 88138a5 Manually pull submodules up to current level Apr 9, 2014
clearwater-sip-stress.root Tell sipp to use a dumb terminal Apr 29, 2015
debian Merge remote-tracking branch 'origin/dev' into HEAD Jun 13, 2015
docs Fix two spelling errors and links to documentation May 26, 2015
include Close to having bidirectional calls working Jun 14, 2015
mk Remove jsoncpp entirely Apr 13, 2015
modules Update memento Jun 11, 2015
restund.root Add in groups May 15, 2015
scripts Merge branch 'dev' of github.com:Metaswitch/sprout into access_logging Jun 13, 2014
sprout-base.root Close to having bidirectional calls working Jun 14, 2015
sprout-mmtel-as.root/usr/share/clearwater/clearwater-diags-monitor/scripts Fix file permission issues Oct 2, 2014
sprout Close to having bidirectional calls working Jun 14, 2015
tests Get sipresolvetest application working with new API Mar 17, 2014
.cproject Initial Clearwater code May 6, 2013
.gitignore Rebase to relead-60 Nov 19, 2014
.gitmodules Remove jsoncpp entirely Apr 13, 2015
.project Initial Clearwater code May 6, 2013
CHANGELOG.md Initial Clearwater code May 6, 2013
Makefile Merge remote-tracking branch 'origin/dev' into HEAD Jun 13, 2015
README.md Fix two spelling errors and links to documentation May 26, 2015
on-eclipse-build.sh Fix license text - shell files. May 7, 2013

README.md

Sprout

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.

Restund

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.

SIPp

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