On Wednesday 17 February 2010, Alex Balashov wrote:
what I understand that PDB server have all the routing information for all the numbers and SIP-Router receive that information and route the call accordingly but how PDB server receive the routing data? Do we need to load this routing data manually?
This is implementation-specific; the fact that the module has been advertised as usable for number portability does not imply that this is the exclusive use, or that there are any insightful portability-specific features included.
Hey Asim,
yes, indeed this is implemented as a generic module. But the helper tools (the 'compiler') implements some special prefix optimizations, and the server is also optimized for this use case. But you could also use this easily, to e.g. have a small and fast dedicated DB for other customer mappings.
The canonical PDB server is just a simple UDP listener that returns a 16-bit integer value in network byte order, as explained in pdb_query(). A PDB server implementation is located in the source tarball in utils/pdbt, and contains some implementations for resolving carrier IDs based on DNIS
What happen if the routing information for a number is changed, do we need to update manually?
On the Kamailio/SR side, it is queried dynamically every time pdb_query() is called. On the PDB server side, it would appear that an update must happen manually with respect to the map file or other data source, yes.
Basically, you can build the server however you want as long as you follow the (very simple) protocol specification. You don't have to use the built-in PDB server.
True, the protocol is really simple, but it was designed on purpose this way, as we were not satisfied with the alternatives we evaluated. I just included the server to provide a 'complete' solution, but you could of course use your own server easily.
Henning