Hi all,
i just commited several parts related to number portability functionality to
the sr repository. This can be used as a source for routing informations
related to the ownership of the number.
This functionality consists of several parts.
1. pdb server
This server loads serialized routing data from the disk and stores it in
memory. It then listens on an UDP Port for requests containing a number and
returns ID of the carrier which owns the number. This server uses the same
datastructure as the carrierroute module and provides a really good
performance. According our experience it usually consumes only a few percent
CPU, even you use only one server for your complete callrouting cluster.
2. pdb connector module
This module connects the sip-router server to the pdb server. It supports
load-balancing and aggressive timeouts. Normally it not need more than a few
ms to query the remote server and return the reply to the configuration
script.
3. pdb tool (data compiler)
This tool provides the functionality to compile the carrier and number
informations into the binary data format the pdb server expect. It supports
optimizing the generated trie structure, so that for example the complete
number to carrier mapping for germany (app. 150 million numbers) don't need
more than a few hundred megabytes. You can also combine not interesting
carriers in order to save even more space and get better performance.
You find the module in the modules/pdb directory, the server and tool is in
utils/pdbt. This directory also contains documentation (README for module,
utils/pdbt/docs/* for data format and network protocol).
We decided to develop a custom solution as none of the alternatives that were
evaluated (like enum over DNS, databases e.g. berkeley DB, some commercial
products) provides the wanted performance, failure tolerance and storage
efficieny. This module has been in production use since some time, so if you
find some bugs they are most probably introduced from me because of the sr
adaption. The original implementation was done from Hardy Kahl.
Best regards,
Henning Westerholt
--
Henning Westerholt - Development Consumer Products / Consumer Core
1&1 Internet AG, Ernst-Frey-Str. 9, 76135 Karlsruhe, Germany
Show replies by date