The purpose of this project is to provide to Client a high-performance, reliable SIP termination and origination
network element based on the open-source Kamailio SIP proxy, in combination with a proprietary call
processing architecture and configuration framework backed by the PostgreSQL database.
External customer map/reference
An external lookup table containing associations of DIDs/ANIs (customer "numbers") to customer BG IDs, to
Customer-side "account codes," and to Asterisk gateway IPs shall be created in the PostgreSQL database
backing the proxy and shall be maintained by Customer.
This lookup table shall be consulted by the termination and origination call processing logic of the Kamailio
gateway to achieve three objectives: 1) Properly identify the customer BG in order to enforce per-customerconcurrent channel limits configured in the Evariste-supplied database (the customer_bg table), 2) write an
"account code" that indicates an end-customer entity in Customer's billing system to the CDRs generated by
the Kamailio gateway, and 3) route inbound (origination) calls to the Asterisk gateway on which the
end-customer is provisioned.
The integration of this lookup table into termination and origination call processing code, which shall be
restructured to utilise it, is understood to require additional custom development. The cost of this custom
development is factored into the overall price of Project as proposed by Vendor.
The termination aspect of the gateway shall provide for LCR (Least Cost Routing)-based selection of vendor
gateways, using routing schemes more thoroughly described in previous discussions.
Concurrent per-customer channel limits shall be enforced by the proxy. In order for this to take place, the
proxy will need to identify the customer BG (billing group -- of which the channel limits are a property) based
on the ANI/Caller ID sent by end-devices and relayed by Customer's Asterisk gateways to the Kamailio
gateway. The proper "account code" shall also be indicated in the CDRs for this type of call. This shall be
accomplished by querying the external lookup table described in Section 22.214.171.124 using the ANI/Caller ID of
The origination aspect of the gateway shall provide for routing of inbound calls to the correct Asterisk
gateway, as well as enforcement of concurrent per-customer channel limits. The proper "account code" shall
also be indicated in the CDRs for this type of call. This shall be accomplished by querying the external lookup
table described in Section 126.96.36.199 using the DNIS/dialed digits of the call.
Within the scope of this proposal, Project deployment shall consist of one proxy node and one PostgreSQL
However, the architecture shall be deployed in such a way as to foresee the "master-master" replication of the
PostgresQL database to a second server and the deployment of an independent secondary proxy (anchored to
the second database server) in the near future as a redundancy measure.
Client fulfillment prerequisites
All estimates concerning the delivery of Project are predicated on Client's timely provision of two Linux
server hosts on which the Kamailio proxy (server 1) and the PostgreSQL database (server 2) backing it can be
deployed, as well as a high level of technical cooperation on administrative issues and testing processes.