Новый SIP-стек на RUST - RVOIP
25 декабря 2025, 02:36
Джонатан Айзенцопф (Jonathan Eisenzopf), разработчик из компании Talkmap (Сан-Франциско, Калифорния), предложил новый SIP-стек, написанный на языке RUST, ориентированный на высоконагруженные Контакт-центры, использующие голосовые соединения
Архитектура┌─────────────────────────────────────────────────────────────────────────┐ │ INTERNET │ └─────────────────────────────────────────────────────────────────────────┘ │ ┌─────────┴────────┐ │ │ [Public IPs] [Public IPs] │ │ ┌─────────────────┴──────┐ ┌────────┴─────────────────┐ │ SBC Server (Active) │ │ SBC Server (Standby) │ │ Libraries: │ │ Libraries: │ │ - sbc-core (NEW) │ │ - sbc-core (NEW) │ └───────────┬────────────┘ └──────────────────────────┘ │ [DMZ Network - 10.1.0.0/24] │ ┌───────────┴──────────────────────────────────┐ │ │ ┌────┴─────────────┐ ┌────────┴────────┐ │ Registrar │ │ Auth/User Mgmt │ │ Server │ │ Server │ │ Libraries: │ │ Libraries: │ │ - registrar-core │ │ - users-core │ │ - sip-core │ │ - auth-core │ └────┬─────────────┘ └─────────────────┘ │ │ [Trusted Network - 10.2.0.0/24] │ ┌────┴────────────────────────────────────────────┐ │ SIP Proxy Cluster │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ Proxy 1 │ │ Proxy 2 │ │ Proxy 3 │ │ │ │ proxy- │ │ proxy- │ │ proxy- │ │ │ │ core │ │ core │ │ core │ │ │ └─────────┘ └─────────┘ └─────────┘ │ └────┬────────────────────────────────────────────┘ │ ├──────────────────┬──────────────────┬────────────────┐ │ │ │ │ ┌────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐ ┌──────┴──────┐ │ B2BUA │ │ IVR │ │ Queue │ │ Conference │ │ Server │ │ Server │ │ Server │ │ Server │ │ │ │ │ │ │ │ │ │ b2bua- │ │ b2bua- │ │ b2bua- │ │ b2bua- │ │ core │ │ core + │ │ core + │ │ core + │ │ (dialog) │ │ ivr │ │ queue │ │ conference │ │ │ │ handler │ │ handler │ │ handler │ └────┬─────┘ └─────┬─────┘ └─────┬─────┘ └──────┬──────┘ │ │ │ │ └──────────────────┴──────────────────┴────────────────┘ │ API Control (REST/gRPC) [Media Network - 10.3.0.0/24] │ ┌───────────────────────────┴────────────────────────────┐ │ Media Server Pool │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Media 1 │ │ Media 2 │ │ Media 3 │ │ │ │ media- │ │ media- │ │ media- │ │ │ │ server- │ │ server- │ │ server- │ │ │ │ core │ │ core │ │ core │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └────────────────────────────────────────────────────────┘ |
## Server Components ### 1. Session Border Controller (SBC) **Purpose**: Network edge security, NAT traversal, topology hiding, DDoS protection **Configuration**: Active/Standby HA pair **Libraries Required**: - `sbc-core` (NEW) - Primary SBC functionality - `media-core` - RTP anchoring - `sip-transport` - Network edge handling - `infra-common` - Infrastructure **Key Functions**: - Topology hiding (removes internal IPs) - NAT traversal (Far-end NAT support) - Protocol normalization - Rate limiting and DDoS protection - TLS termination - Header manipulation ### 2. Registrar Server **Purpose**: User registration, location service **Configuration**: Active/Active cluster with database backend **Libraries Required**: - `registrar-core` - Registration handling - `sip-core` - SIP message parsing - `infra-common` - Infrastructure - Database integration for persistence **Key Functions**: - REGISTER processing - Location binding management - Registration expiry handling - Multi-device registration support - Integration with auth server ### 3. Authentication/User Management Server **Purpose**: User authentication, authorization, account management **Configuration**: Active/Active cluster **Libraries Required**: - `users-core` - User management - `auth-core` - OAuth2/JWT authentication - Database backend (PostgreSQL/MySQL) **Key Functions**: - SIP digest authentication - OAuth2/JWT for web clients - User provisioning - Permission management - Integration with external identity providers ### 4. SIP Proxy Cluster **Purpose**: Call routing, load balancing, failover **Configuration**: Stateless proxy cluster (3+ nodes) **Libraries Required**: - `proxy-core` (NEW) - Proxy functionality - `dialog-core` - Transaction management - `infra-common` - Infrastructure **Key Functions**: - Request routing based on rules - Load balancing across B2BUA servers - Failover handling - Parallel/serial forking - Route advance on failure |
