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