SIP Trunking

The SIP Trunking Engine

The SIPhub Trunking is a SIP Engine to provide Class 4 routing and billing for large/bulk amounts of SIP traffic. The engine addresses to operators or carriers entering the market of SIP Wholesale services, looking to offer PSTN origination and termination services via multiple carriers. Typical customers of such services are entities in need to exchange bulk SIP traffic (SIP trunks), like PBX owners, Call Centers, SoftSwitches, MNOs or even other Trunking providers.

The Trunking Engine is 100% API driven, for provisioning, control, monitoring and data access reasons. This fully functional robust SIP Engine can be used to build around it a custom tailored calling solution, with your personalized web portal, specific customer management or other services integration - the SIP/calling part simply works, just focus on what makes your service different, setting you in apart from the competition.

The incorporated softwares and the internal design guarantee, in terms of concurrent-calls and calls-per-second, a high capacity solution able to geographically scale.

API driven
Geo Scalability
C4 features
Open Source


A multi layer architecture makes the SIPhub Trunking Engine easy to drive. Provisioning data and actions are pushed top down via the APIs, controlling the SIP calling; as a result, events and data (like CDRs, analytics) are generated bottom up, being exposed via both the Event Broker or API results.

This architecture allows any on-top built components (like operator specific user portal, integrated services) to mange and inter-operate with this SIP Engine in totally SIP agnostic mode. So, the Trunking Engine enables the creation of SIP services, without actually getting into SIP.

SIP Trunking Engine Features

  • IP based authentication (multiple IPs per trunk)
  • SIP registration with digest authentication trunks
  • Multiple DIDs per trunk
  • DID Forwarding
  • Concurrent calls and calls per second limitations, overall or per IP
  • Maximum call duration limitation
  • CLI management - validation and insertion
  • Number manipulation and filtering
  • Support for pri/tech prefixes
  • Codec limitation / stripping / re­ordering (audio, video, fax)
  • Fraud Detection - detect user side frauds using realtime traffic monitoring and user calling profiles
  • Trunk to carrier routing based on prefixes or load
  • Carrier to trunk routing based on DIDs and balancing with failover
  • Dialed number correction, global or per carrier/trunk
  • Blacklisting - filter destination based the dialled calls; multiple plans, multi-country support
  • NPANxx routing (inter/intra state)
  • Routing Groups - multiple routing groups, per user-trunk or global
  • Multiple Carrier Trunks - per user-trunk or global carrier trunks, with failover or balancing
  • External LCR - integrations via SIP redirect based querying of an external LCR service
  • External CNAME - integrations via SIP redirect based querying of an external CNAME service
  • Stir/Shaken Support - local or external (SIP redirect based) handling for Stir/Shaken, inbound and outbound
  • Call Capacity Controll - inbound and outbound channel limitation, per carrier
  • IP topology hiding with optional media pinning
  • SIP protocol conversion (UDP/TCP/TLS)
  • Optional media soft transcoding
  • Attack / intrusion detection and prevention
  • SIP traffic capturing
  • Traffic analytics
  • Billing/rating Accounts
  • Pre and Post paid rating
  • Multiple Ratesheets
  • Cost and time charging
  • Realtime call rating and controll

SIP Trunking clustering

The SIP Trunking Engine relies on a multi-node clustered architecture in order to achieve horizontal scalability and geographical distribution. There are two fundamental types of nodes, each forming separate clusters and independently scaling:

  • Processing Node - nodes that do handle the SIP traffic / calls. Such nodes do consist of SIP and Media components, billing components and local databases
  • Management Node - nodes responsible for data (provisioning, runtime and analytics) handling, consisting of the SQL/ noSQL databases, the provisioning APIs and Event Broker.

  • each Processing Node offers exactly the same service to any user in the system (full mesh, unique experience)
  • each Processing Node may survive and provide service by itself (even if isolated)
  • a Processing Node may still operate even if disconnected from it Management Node (offline mode)
  • the Processing Nodes and Management Nodes may separately scale via different Datacenter's

SIP Trunking Engine APIs

For provisioning, controlling and monitoring the SIP Trunking Engine, several interfaces are available:

A JSONRPC REST API is provided for provisioning purposes, covering user-trunk related data, call services configuration, call routing data (carrier trunks), billing data and more. The API gives full read-write access to the provisioning data via any of the Management Nodes. Requests to this API may come from other admin level provisioning tools (CRMs) or user level portals (for user specific settings).
The Event Broker interface is the way the SIP Trunking Engine provides realtime information (via AMQ events) about the internal processing of the Engine. The events expose information about the call particularities, like the lack of capacity, call timeout or rejection. The Event Broker also delivers notifications more service related, like fraud detection or carrier routing.
The Big Data API - also a JSONRPC API - provides read-only access to the Engine's big realtime data, like statistics / analytics, user registration data and call logs. The Big Data is aggregated over all the nodes in the system and can be accessed via any of the Management nodes.


The license of the SIP Trunking Engine is per delivered instance, meaning:

  • no per-user or per-channel limitations
  • only initial cost, no recurrent costs
  • it allows any number of nodes (in the clustered version)
  • it allows your own changes and customizations
  • gives access to the full source code
  • the instance must not be copied, re-distributed or sold