Skip to content

Features and Technical Characteristics

YETI is a class 4 SIP softswitch with an integrated billing and intelligent routing subsystem. It is designed to act as a distributed SBC on service provider networks using the SIP protocol. System supports a variety of intelligent routing algorithms.

The softswitch handles SIP signaling and RTP traffic. It supports transcoding and detailed CDRs (more than 100 fields), saving all parameters needed for billing, debugging, and analytic reports. YETI supports intelligent LCR/ASR/ACD routing by various criteria. Below is a short list of supported features.

Signaling and RTP Processing

  • SIP v2.0 over UDP, TCP, TLS, and WebSocket transports
  • IPv6 support with flexible resolving configuration
  • SRTP with DTLS, SDES, and ZRTP key negotiation mechanisms
  • Sending/receiving DTMF (SIP INFO application/dtmf, SIP INFO application/dtmf-relay, RTP telephone-event) with ability to transcode between them in any combination
  • Automatic call disconnect on RTP timeout, configurable per gateway
  • SIP Session Timers
  • SIP UPDATE method
  • Flexible configuration for NAT traversal (various symmetric RTP modes, RTP ping)
  • DNS SRV failover and load balancing
  • Disconnect code rewriting for replies from vendor to customer
  • RTP transcoding
  • RTCP/RTP statistics saving
  • Smart codec negotiation — SDP sorting, non-audio stream filtering, normalization of connection line location, etc.
  • RTP stream normalization (sequence and timestamp alignment)
  • In-dialog OPTIONS/UPDATE/re-INVITE/PRACK local processing or relay
  • Special settings for interoperability with non-standard SIP implementations
  • Fax T.38
  • Outgoing SIP registrations
  • Incoming SIP registrations (Registrar); call termination to gateways with dynamic IP is supported

Supported Codecs

  • G.711 a-law/u-law
  • G.722
  • G.723.1
  • G.729
  • iLBC
  • Speex
  • GSM
  • ADPCM
  • Opus

Authorization

  • Originator IP address
  • Username/password
  • DST and SRC prefixes
  • SIP R-URI domain
  • Custom SIP header
  • Geolocation of the signaling node
  • External RADIUS server

Routing

  • Transparent re-routing with flexible configuration for conditions triggering the next route
  • Rewriting or transparent passing of disconnect codes to the client
  • Flexible LCR configuration (quality control, price limits) with easy implementation of custom alternative algorithms
  • Capacity control for gateways, destinations, companies, and accounts
  • Source and destination number-based blacklisting and per-number translation rules
  • Caller ID and DNIS rewriting/modification at any routing stage
  • Time-based routing
  • Statistics and quality control per destination
  • Gateway grouping and load balancing for suppliers providing multiple termination gateways
  • Silent rejection of unauthorized SIP INVITEs (reduces parasitic traffic from bots scanning for vulnerabilities — relevant for internet-facing deployments)
  • Tag-based routing for building flexible rules such as origin-based routing and billing

Billing

  • Real-time CDR writing with the ability to skip CDR writes for specific disconnect codes
  • Real-time traffic blocking when a balance limit is reached
  • Flexible rateplan configuration and routing policies for optimal profitability
  • Configurable billing intervals with connect fee support
  • Invoice and document generation from templates
  • Dynamic price calculation for clients based on real termination cost (useful for trusted clients billed at cost price)
  • Integration with external systems
  • CDR export to external systems (e.g., for anti-fraud analysis)
  • REST API for data management
  • Lawful interception sensors — configures traffic mirroring to external equipment without affecting system operation. Different sensors can be configured for different call legs and gateways. Supports IP-over-IP and IP-over-Ethernet encapsulation.
  • Support for receiving a rate upper limit per call from a custom SIP header sent by the client
  • Ability to show real termination cost (supplier rates) to trusted clients, or client cost information (useful for dynamic rate calculation)

Reports

  • Real-time capacity utilization for companies, gateways, and destinations
  • Reports by destination, client, supplier, and time period
  • Active call monitoring with the ability to terminate any call from the web interface

Administration

  • Zero-downtime upgrades — all components can be updated without interrupting traffic processing or billing.
  • Clustering — scale the system by adding servers to the cluster.
  • Geo-distributed deployments managed from a single interface, with fault tolerance for network and hardware failures and correct CDR billing after reconnection between system parts.
  • Web interface with powerful search across all system entities, operator change logging for security auditing, and import/export support for all base configuration objects.
  • Long-running tasks execute in the background to keep the web interface responsive.
  • All components are packaged for Debian GNU/Linux and can be installed and upgraded using the system package manager (apt).
  • CLI interface for the routing system, allowing management of all routing nodes and access to extended debugging tools.
  • PCAP dump recording per call for easy debugging, accessible through the web interface.
  • CDRs contain extensive debugging information.
  • RTP statistics saved per stream.
  • Automatic data retention.

Architecture

YETI consists of the following components:

  • Switch server (SEMS + YETI module)
Incoming traffic load balancer
SIP load balancer based on Kamailio or OpenSIPS
Routing database and CDR database
PostgreSQL databases for storing routing information and CDRs
Real-time data storage (Redis)
The SEMS YETI module uses Redis to store real-time data about capacity, CPS utilization, and registration information
Management web interface
The yeti-web component, implemented on Ruby on Rails, provides HTTP interfaces and CDR processing logic (billing and statistics calculation)
CLI interface (Python) [optional]
The yeti-cli console allows runtime management of SEMS configuration
Customer portal
A VueJS single-page application using the Customer API provided by the yeti-web component

WARNING

This is a brief component overview and does not represent the recommended installation procedure.

YETI is designed as a cluster system, but all components can run on a single server or be distributed across multiple hosts.