Kamailio and OpenSIPS SIP proxies
Verified 2026-09-24 · 60 sources · tier 1–4
RFC 3261 defines two proxy behaviours, stateless and transaction-stateful 4140. RFC 3261 defines a stateless proxy as one that does not maintain transaction state machines while forwarding requests downstream and responses upstream, whereas a stateful proxy maintains client and server transaction state machines during request processing 4140.
Transaction Processing and Stateless Handling
In Kamailio, stateful transaction processing is handled by the tm module, which creates transaction state, absorbs upstream retransmissions, generates downstream retransmissions, and matches replies to requests 55. The t_relay() function creates a transaction if one does not already exist and relays the request statefully 57. When Kamailio acts as a UAS, t_newtran() creates a transaction without relaying 56. For failure handling, t_on_failure() specifies a failure_route block that executes after a transaction completes negatively but before a final response is forwarded upstream, facilitating serial failover logic 52. The tm module configures fr_timer with a default of 30000 ms and fr_inv_timer with a default of 120000 ms 5453.
Stateless replies in Kamailio are provided by the sl module 51. The sl_send_reply() function operates independently of tm and does not retransmit replies to INVITE requests 49. To handle ACKs, the sl module inserts a signature into the To-tag of local stateless INVITE replies, filtering matching ACKs until a timeout allows subsequent ACKs through 48. The adaptive function send_reply() selects stateful transmission if a tm transaction exists and statelessly sends the reply otherwise 50.
Registration and User Location
The Kamailio registrar module handles REGISTER requests and depends on both usrloc and sl 32. Its save() function updates location records in usrloc and responds with 200 OK containing current contacts, with flag 0x04 limiting the address of record (AOR) to a single contact 39. Contacts are queried using lookup(), which overwrites the request URI with the contact carrying the highest q value 36. The lookup() function returns 1 when contacts exist, -1 when no contacts match, -2 for unsupported methods, and -3 on internal errors 35.
Default parameter values for the registrar module include default_expires at 3600 seconds, min_expires at 60 seconds, and max_expires at 0, which removes the upper limit 33. The max_contacts parameter defaults to 0, imposing no cap on contacts per AOR 37. RFC 3327 Path support is configured via path_mode in off, lazy, or strict settings, with strict mode rejecting registrations missing client Path indicators using a 420 Bad Extension reply 38. GRUU (RFC 5627) is supported using +sip.instance values to construct public GRUUs, and SIP Outbound (RFC 5626) is governed by an outbound mode parameter taking values from 0 to 2 34.
Location storage persistence is configured in the usrloc module via db_mode 58:
- Mode 0: Memory only (registrations do not persist across restarts) 5859.
- Mode 1: Write-through 58.
- Mode 2: Write-back on a timer 58.
- Mode 3: Database-only without a memory cache 58.
- Mode 4: Loaded into memory from the database at startup without subsequent database writes 58.
The timer interval for contact expiration and database synchronization (timer_interval) defaults to 60 seconds 60.
Dispatching and Load Balancing
Kamailio provides algorithms 0 through 14 and 64 within its dispatcher module, including Call-ID hash (0), round-robin (4), priority-ordered serial forking (8), weight-based routing (9), call load distribution (10), relative weight with congestion control (11), parallel forking (12), latency optimization (13), and round-robin with overload control (64) 3. Destination selection is performed with ds_select_dst(), which writes the selection to the destination URI without modifying the request URI, or ds_select_domain(), which overwrites the host and port in the request URI 7. Probing of inactive gateways is governed by ds_ping_interval, where setting 0 disables pings, and ds_probing_mode, where mode 1 probes continuously and mode 0 probes only gateways flagged for probing 56. Setting flag 2 stores residual destinations so ds_next_dst() can step through targets on failure 4.
The OpenSIPS dispatcher module provides algorithms 0 through 10, including Call-ID hash (0), From URI hash (1), To URI hash (2), request URI hash (3), weighted round-robin (4), authorization username hash (5), random (6), custom PV hash (7), first entry in the set (8), load-based routing via pvar_algo_pattern (9), and ordering via an algo_route callback (10) 20. WarmTransfer's reading of the sources is that dispatcher algorithm numbering cannot be ported directly between Kamailio and OpenSIPS, as algorithm 8 indicates priority serial forking in Kamailio but the first set entry in OpenSIPS, and algorithm 10 indicates call load distribution in Kamailio but an algo_route callback in OpenSIPS 1.
In OpenSIPS, ds_select_dst() sets the destination URI ($du) and supports partition names, failover flags, and maximum result limits, while ds_next_dst() advances through stored destinations 2421. Destination sets can be split into partitions with independent database URLs, tables, AVPs, blacklists, and pinging configurations 22. Pinging failed gateways requires the tm module and uses ds_ping_interval, defaulting to 0 23. OpenSIPS distinguishes between dispatcher (probabilistic routing without load tracking) and load_balancer (load-directed routing) 28. The load_balancer module relies on the dialog module to count concurrent calls and selects destinations by available capacity rather than lowest total call count 2625. The lb_start() function returns 1 on success, -1 on internal error, -2 for exhausted capacity, -3 when no destination matches, and -4 on invalid resources 27.
Media Control and SBC Building Blocks
Sipwise rtpengine operates on GNU/Linux and supports in-kernel packet forwarding 42. It provides ICE handling (RFC 8445, including ICE-lite and trickle ICE), SRTP via SDES and DTLS-SRTP, network bridging across IPv4 and IPv6, codec transcoding, and recording 46. Its NG control protocol runs over plain UDP, plain TCP, HTTP, or WebSocket, employing cookie-prefixed messages and bencode or JSON encodings 4543. Supported NG commands include ping, offer, answer, delete, query, recording control, media blocking, DTMF injection, media play, forwarding controls, and statistics collection 44.
Kamailio controls Sipwise rtpengine through the rtpengine module, an evolution of rtpproxy using the NG protocol 12. The Kamailio rtpengine_sock parameter accepts UDP (IPv4 or IPv6) and WebSocket or secure WebSocket control addresses, and it can define several sets of rtpengine instances with per-instance weights (default weight 1) for load balancing 13. Media sessions are altered using rtpengine_offer(), rtpengine_answer(), rtpengine_delete(), and rtpengine_manage(), supporting flags for interface bridging, transport profiles (such as RTP/SAVP and UDP/TLS/RTP/SAVPF), DTLS, ICE control, transcoding, and call recording 109. In OpenSIPS, the rtpengine module explicitly works with Sipwise rtpengine and supports multiple weighted sets selectable by rtpengine_use_set() or setid_avp, defaulting to set 0 3029.
Topology hiding in Kamailio can be implemented with topoh or topos 1417. The topoh module masks Via, Record-Route, Route, Contact, and optionally Call-ID headers using an encryption key configured by mask_key, allowing stateless header encoding without modifying routing scripts 1415. The topos module strips headers and stores them in a database, Redis, or htable to reconstruct in-dialog messages, though it ignores REGISTER and PUBLISH requests 1716. WarmTransfer's reading of the sources is that SBC-front roles are formed by scripting combinations of individual modules—such as dispatcher for distribution, topoh or topos for topology hiding, and rtpengine for media—rather than configuring a single dedicated SBC module 47.
Script Execution and Process Architecture
Kamailio routing logic is arranged into blocks including request_route, route, branch_route, failure_route, reply_route, onreply_route, onsend_route, and event_route 8. Its core parameter children sets the worker processes spawned per UDP listener and defaults to 8 2.
OpenSIPS 4.0 changes connection handling by consolidating TCP and TLS processing into a single dedicated process with configurable worker threads, keeping TLS context local to that process 31.
Applicability
The deployment model is not covered by the sources below.
For Kamailio, evidence covers releases through v6.1.4 (released 2026-08-20) and maintenance release v6.0.8 (released 2026-09-16), with configuration and database schema compatibility preserved within the 6.1 branch 1918. For OpenSIPS, evidence reflects the master branch documentation and version 4.0 2031.
What remains uncertain
Whether Kamailio or OpenSIPS appears on certified SBC lists for Direct Routing is not covered by the sources below. Reference architectures for Kamailio or OpenSIPS as carrier edge or SBC front combining dispatcher, topoh, rtpengine, and pike are not covered by the sources below. RFC 3261 section 16 normative rules on when a proxy must be stateful regarding forking, CANCEL, and TCP are not covered by the sources below. Deployment of the rtpengine kernel forwarding module (xt_RTPENGINE or iptables) and fallback to userspace is not covered by the sources below. Kamailio flood and scanner protection via pike, secfilter, and htable ban patterns is not covered by the sources below. The behavior of the OpenSIPS topology_hiding module compared with Kamailio topoh and topos is not covered by the sources below. The Kamailio dialog module, dialog-based call limits, and accounting are not covered by the sources below. OpenSIPS registrar and usrloc behavior and cluster modes are not covered by the sources below.
See also
Related to
- Ribbon SBC Edge and SBC SWestub — Kamailio or OpenSIPS plus rtpengine is the open-source alternative for some commercial SBC roles; the packet does not establish feature parity
- SIP OPTIONS pings and trunk keepalives — Kamailio and OpenSIPS dispatcher and load_balancer modules probe destinations with SIP requests (OPTIONS in practice) to mark gateways up or down
- SIP capture and analysis with Wireshark and sngrep and HOMER — Troubleshooting proxy routing; Record-Route and topology hiding needs SIP captures on both sides of the proxy
Referenced by
- SIP OPTIONS pings and trunk keepalives — The Kamailio dispatcher module probes destinations with OPTIONS by default. Target id not checked against the registry.
- SIP capture and analysis with Wireshark and sngrep and HOMER — Kamailio siptrace module mirrors SIP to HOMER over HEP (kamailio-docs-siptrace)
Sources
- 1Dispatcher algorithm numbers are not portable between Kamailio and OpenSIPS: for example, algorithm 8 is priority-ordered serial forking in Kamailio but first entry in the set in OpenSIPS, and algorithm 10 is call load distribution in Kamailio but an algo_route callback in OpenSIPS.inferredDISPATCHER Module · Section 4.1 ds_select_dst algorithm list, compared with the OpenSIPS dispatcher README ds_select_dst algorithm list · Checked 2026-09-24
- 2The Kamailio core children parameter, the number of worker processes forked per UDP listening interface, defaults to 8.Core Cookbook - Kamailio Wiki Documentation · Core Parameters, children · Checked 2026-09-24
- 3The Kamailio dispatcher module offers algorithms 0 to 14 plus 64, including 0 Call-ID hash, 4 round-robin, 8 priority-ordered serial forking, 9 weight-based, 10 call load distribution, 11 relative weight with congestion control, 12 parallel forking to all destinations, 13 latency-optimized and 64 round-robin with overload control.DISPATCHER Module · Section 4.1 ds_select_dst, algorithm list · Checked 2026-09-24
- 4In the Kamailio dispatcher, flag 2 of the flags parameter enables failover: the remaining destinations are stored so that ds_next_dst() can try the next one after a failure.DISPATCHER Module · Section 3.10 flags · Checked 2026-09-24
- 5Kamailio dispatcher ds_ping_interval sets how often a request is sent to gateways marked inactive, and setting it to 0 disables gateway pinging.DISPATCHER Module · Section 3.21 ds_ping_interval · Checked 2026-09-24
- 6Kamailio dispatcher ds_probing_mode 1 probes all gateways continuously and moves failed active gateways to the trying state, while mode 0 probes only gateways flagged for probing.DISPATCHER Module · Section 3.26 ds_probing_mode · Checked 2026-09-24
- 7In Kamailio, ds_select_dst() puts the chosen destination in the destination URI (outbound proxy), so it is not visible in the SIP request, while ds_select_domain() rewrites the host and port of the request URI.DISPATCHER Module · Sections 4.1 ds_select_dst and 4.2 ds_select_domain · Checked 2026-09-24
- 8Kamailio configuration scripts are organised into routing blocks including request_route, route, branch_route, failure_route, reply_route, onreply_route, onsend_route and event_route.Core Cookbook - Kamailio Wiki Documentation · Routing Blocks section · Checked 2026-09-24
- 9Kamailio rtpengine flags include direction= or internal/external to bridge network interfaces, address-family= for IPv4 and IPv6 bridging, ICE=force/force-relay/remove, transport profiles such as RTP/SAVP and UDP/TLS/RTP/SAVPF, DTLS=, codec-transcode=, codec-strip= and record-call=on.RTPEngine Module · Functions, rtpengine_offer, flags list · Checked 2026-09-24
- 10Kamailio rtpengine_offer() and rtpengine_answer() rewrite the offer and answer SDP so media flows through rtpengine, rtpengine_delete() ends the session, and rtpengine_manage() combines these operations in one call.RTPEngine Module · Functions, rtpengine_offer / rtpengine_answer / rtpengine_delete / rtpengine_manage · Checked 2026-09-24
- 11The Kamailio rtpengine module keeps a hashtable mapping Call-ID to rtpengine node so that later operations on a call, such as delete, reach the same node as the offer, and it can replicate that table across a cluster with DMQ.RTPEngine Module · Overview / hashtable and DMQ parameters (hash_table_size, rtpengine_dmq) · Checked 2026-09-24
- 12The Kamailio rtpengine module is a modified version of the rtpproxy module that uses a new control protocol, and it is meant to drive Sipwise rtpengine.RTPEngine Module · Overview · Checked 2026-09-24
- 13The Kamailio rtpengine_sock parameter accepts UDP (IPv4 or IPv6) and WebSocket or secure WebSocket control addresses, and it can define several sets of rtpengine instances with per-instance weights (default weight 1) for load balancing.RTPEngine Module · Parameters, rtpengine_sock · Checked 2026-09-24
- 14The Kamailio topoh module hides topology by encoding the Via, Record-Route, Route and Contact headers, and optionally Call-ID, without any changes to the routing script.TOPOH Module · Overview · Checked 2026-09-24
- 15Kamailio topoh encodes with the mask_key secret; servers sharing the same mask_key can restart without affecting ongoing calls, and mask_callid defaults to 0 (Call-ID not encoded).TOPOH Module · Overview; Parameters, mask_key and mask_callid · Checked 2026-09-24
- 16Kamailio topos does not process REGISTER or PUBLISH requests.TOPOS Module · Overview · Checked 2026-09-24
- 17The Kamailio topos module strips SIP routing headers from messages and stores them so it can rebuild in-dialog messages, using a database by default or Redis or htable as alternatives, and it requires the rr module.TOPOS Module · Overview; Dependencies; Parameters, storage · Checked 2026-09-24
- 18The Kamailio v6.1.4 announcement says configuration file and database schema compatibility is preserved within the 6.1 branch, so updating from an earlier 6.1.x release needs no config or schema changes.Kamailio v6.1.4 Released · Announcement body, compatibility paragraph · Checked 2026-09-24
- 19As of 2026-09-24 the newest Kamailio stable release is v6.1.4, released 2026-08-20, and the 6.0 branch also received a maintenance release, v6.0.8, on 2026-09-16.Kamailio - The Open Source SIP Server (home page news list) · News list, 'Kamailio v6.1.4 Released' and 'Kamailio v6.0.8 Released' · Checked 2026-09-24
- 20The OpenSIPS dispatcher module (master branch README) offers algorithms 0 to 10: 0 Call-ID hash, 1 From URI hash, 2 To URI hash, 3 request URI hash, 4 weighted round-robin, 5 authorization username hash, 6 random, 7 custom PV hash, 8 first entry in the set, 9 load-based via pvar_algo_pattern and 10 ordering by an algo_route callback.opensips/modules/dispatcher (rendered README) · Exported Functions, ds_select_dst, algorithm list · Checked 2026-09-24
- 21OpenSIPS ds_next_dst() takes the next destination address from the AVPs and sets it as the destination URI, which gives serial failover when ds_select_dst() was called with the failover flag.opensips/modules/dispatcher (rendered README) · Exported Functions, ds_next_dst · Checked 2026-09-24
- 22The OpenSIPS dispatcher groups destination sets into partitions, each with its own database URL, table, AVPs, blacklists, ping_from, ping_method and persistent_state settings.opensips/modules/dispatcher (rendered README) · Overview; Exported Parameters, partition · Checked 2026-09-24
- 23OpenSIPS dispatcher ds_ping_interval sets how often failed gateways are pinged, works only when the TM module is loaded, and defaults to 0 (pinging disabled).opensips/modules/dispatcher (rendered README) · Exported Parameters, ds_ping_interval · Checked 2026-09-24
- 24OpenSIPS ds_select_dst() picks a destination from a set and overwrites the destination URI ($du) of the request, and it accepts optional flags (failover, user-only, default, append), a partition name and a maximum result count.opensips/modules/dispatcher (rendered README) · Exported Functions, ds_select_dst · Checked 2026-09-24
- 25OpenSIPS load_balancer uses a preconfigured maximum capacity per destination and resource, and it picks the destination with the most free capacity rather than the fewest absolute calls.opensips/modules/load_balancer (rendered README) · Section 1 Overview · Checked 2026-09-24
- 26The OpenSIPS load_balancer module needs the dialog module to count ongoing calls per destination, needs tm only for probing, and needs a database module for its rules.opensips/modules/load_balancer (rendered README) · Section 2.1 Dependencies, OpenSIPS Modules · Checked 2026-09-24
- 27OpenSIPS lb_start(grp, resources[, flags][, attrs]) returns 1 when a destination is set, -1 on internal error, -2 when no capacity is available, -3 when no destination matches and -4 for invalid resources.opensips/modules/load_balancer (rendered README) · Exported Functions, lb_start, return values · Checked 2026-09-24
- 28OpenSIPS documentation contrasts its two balancers: dispatcher has no load information and spreads calls by probabilistic dispersion, while load_balancer routes mainly on load information.Load Balancing | OpenSIPS · Introduction / dispatcher versus load balancer comparison · Checked 2026-09-24
- 29OpenSIPS can define several sets of rtpengine instances, balances by weight within a set, selects a set with rtpengine_use_set() or the setid_avp parameter, and keeps set 0 as the default for backward compatibility.opensips/modules/rtpengine (rendered README) · Section 3 Multiple RTP proxy usage · Checked 2026-09-24
- 30The OpenSIPS rtpengine module README says that only RTP proxies supporting its control protocol work with it, specifically Sipwise rtpengine.opensips/modules/rtpengine (rendered README) · Section 1 Overview · Checked 2026-09-24
- 31OpenSIPS 4.0 replaces the multi-process TCP/TLS model with a single dedicated TCP process that runs configurable threads, and it keeps the TLS (SSL) context local to that process.TCP/TLS rework in OpenSIPS 4.0 · Body, description of the new architecture · Checked 2026-09-24
- 32The Kamailio registrar module processes REGISTER requests but keeps the location data in the usrloc module, and it requires both usrloc and sl.Registrar Module · Overview; Dependencies · Checked 2026-09-24
- 33Kamailio registrar defaults are default_expires 3600 seconds and min_expires 60 seconds, and max_expires 0, which disables the upper bound.Registrar Module · Parameters, default_expires / min_expires / max_expires · Checked 2026-09-24
- 34The Kamailio registrar supports GRUU (RFC 5627), with public GRUUs built from the +sip.instance value, and SIP Outbound (RFC 5626), controlled by an outbound mode parameter with values 0 to 2.Registrar Module · Parameters, gruu_enabled / outbound_mode · Checked 2026-09-24
- 35Kamailio registrar lookup() returns 1 when contacts are found, -1 when none are found, -2 when the method is not supported and -3 on internal error.Registrar Module · Functions, lookup(domain [, uri]), return codes · Checked 2026-09-24
- 36The Kamailio registrar lookup() function finds contacts in usrloc for the request URI's user and domain and overwrites the request URI with the contact that has the highest q value.Registrar Module · Functions, lookup(domain [, uri]) · Checked 2026-09-24
- 37The Kamailio registrar max_contacts parameter defaults to 0, which means no limit on contacts per AOR.Registrar Module · Parameters, max_contacts · Checked 2026-09-24
- 38The Kamailio registrar supports the RFC 3327 Path header in off, lazy and strict modes; strict mode rejects registrations whose client does not indicate Path support with 420 Bad Extension.Registrar Module · Parameters, use_path / path_mode · Checked 2026-09-24
- 39The Kamailio registrar save() function adds, removes or modifies location records from a REGISTER and on success replies 200 OK listing all current contacts; flag 0x04 restricts the AOR to a single contact.Registrar Module · Functions, save(domain, [flags [, uri]]) · Checked 2026-09-24
- 40RFC 3261 defines a stateful proxy as one that maintains the client and server transaction state machines while processing a request, also called a transaction stateful proxy.RFC 3261 — SIP: Session Initiation Protocol · Section 6 Definitions, 'Stateful Proxy' · Checked 2026-09-24
- 41RFC 3261 defines a stateless proxy as a logical entity that does not maintain the client or server transaction state machines and forwards every request downstream and every response upstream.RFC 3261 — SIP: Session Initiation Protocol · Section 6 Definitions, 'Stateless Proxy' · Checked 2026-09-24
- 42Sipwise rtpengine is a proxy for RTP and other UDP-based media that runs only on GNU/Linux and can forward packets in the kernel for low latency and low CPU use.rtpengine Overview · Overview; Features, in-kernel packet forwarding · Checked 2026-09-24
- 43rtpengine uses bencode dictionaries natively in the NG protocol and also accepts JSON, which it converts internally.The NG Control Protocol · Message encoding section · Checked 2026-09-24
- 44NG protocol commands include ping, offer, answer, delete, query, start/stop/pause recording, block/unblock media, play DTMF, play media, start/stop forwarding and statistics.The NG Control Protocol · Command list (per-command headings) · Checked 2026-09-24
- 45The rtpengine NG control protocol runs over plain UDP, plain TCP, HTTP or WebSocket, and each message is a unique cookie, a single space and then the payload, so replies can be matched and retransmissions detected.The NG Control Protocol · Introduction / message format · Checked 2026-09-24
- 46Sipwise rtpengine supports ICE (RFC 8445, including trickle ICE and ICE-lite), SRTP via SDES and DTLS-SRTP, bridging between ICE-aware and ICE-unaware endpoints and between IPv4 and IPv6, codec transcoding and media recording.rtpengine Overview · Features list · Checked 2026-09-24
- 47Kamailio's documented modules cover the main functions of an SBC-front or carrier-edge role: dispatcher for load balancing and failover, topoh or topos for topology hiding, and rtpengine for media anchoring and SRTP or ICE interworking. They are separate modules that the routing script composes; there is no single SBC feature.inferredTOPOH Module · Overview (topology hiding), read together with the dispatcher and rtpengine module overviews · Checked 2026-09-24
- 48The Kamailio sl module adds a signature to the to-tag of local stateless replies to INVITE so that the matching ACKs can be filtered instead of forwarded downstream, and after a timeout all ACKs are let through.SL Module · Overview (ACK filtering paragraph) · Checked 2026-09-24
- 49Kamailio sl_send_reply() sends replies statelessly, independent of the tm module, and does not retransmit replies to INVITE.SL Module · Functions, sl_send_reply(code, reason) · Checked 2026-09-24
- 50The Kamailio send_reply() function replies statefully if a tm transaction exists for the request and statelessly otherwise.SL Module · Functions, send_reply(code, reason) · Checked 2026-09-24
- 51The Kamailio sl module lets the server act as a stateless UA server and generate replies to SIP requests without keeping state.SL Module · Overview · Checked 2026-09-24
- 52In Kamailio, t_on_failure() names a failure_route block that runs after a transaction completes with a negative result but before the final reply is sent upstream, which is how serial failover such as forward-on-no-reply is scripted.TM Module · Functions, t_on_failure(failure_route) · Checked 2026-09-24
- 53The Kamailio tm parameter fr_inv_timer (INVITE final-response timeout after a provisional reply has been received) defaults to 120000 ms.TM Module · Parameters, fr_inv_timer · Checked 2026-09-24
- 54The Kamailio tm parameter fr_timer (final-response timeout for non-INVITE requests, and for INVITE before any provisional reply) defaults to 30000 ms.TM Module · Parameters, fr_timer · Checked 2026-09-24
- 55The Kamailio tm module provides stateful SIP transaction processing: it creates transaction state, absorbs upstream retransmissions, generates downstream retransmissions and correlates replies with requests.TM Module · Overview · Checked 2026-09-24
- 56In Kamailio, t_newtran() creates a new transaction without relaying and is typically used when Kamailio acts as a UAS.TM Module · Functions, t_newtran() · Checked 2026-09-24
- 57In Kamailio, t_relay() creates the SIP transaction if none exists yet and relays the request statefully to the current request URI or a given destination.TM Module · Functions, t_relay([host, port]) · Checked 2026-09-24
- 58Kamailio usrloc db_mode has five values: 0 memory only, 1 write-through, 2 write-back on a timer, 3 DB-only with no memory cache, and 4 load from DB at startup, then run in memory without writing back.USRLOC Module · Parameters, db_mode · Checked 2026-09-24
- 59With Kamailio usrloc db_mode 0 (memory only), registrations do not survive a restart.USRLOC Module · Parameters, db_mode (value 0) · Checked 2026-09-24
- 60Kamailio usrloc timer_interval, the period of the timer that expires contacts and syncs to the database, defaults to 60 seconds.USRLOC Module · Parameters, timer_interval · Checked 2026-09-24
Documents
RFC 3261 — SIP: Session Initiation Protocol
Core Cookbook - Kamailio Wiki Documentation
DISPATCHER Module
Kamailio - The Open Source SIP Server (home page news list)
Kamailio v6.1.4 Released
Load Balancing | OpenSIPS
Registrar Module
RTPEngine Module
rtpengine Overview
SL Module
The NG Control Protocol
TM Module
TOPOH Module
TOPOS Module
USRLOC Module
opensips/modules/dispatcher (rendered README)
opensips/modules/load_balancer (rendered README)
opensips/modules/rtpengine (rendered README)
TCP/TLS rework in OpenSIPS 4.0
Cite this page
APA
WarmTransfer. (2026, September 24). Kamailio and OpenSIPS SIP proxies. WarmTransfer. https://warmtransfer.net/knowledge/kamailio-sip-proxy
BibTeX
@misc{warmtransfer-kamailio-sip-proxy,
title = {Kamailio and OpenSIPS SIP proxies},
author = {{WarmTransfer}},
year = {2026},
url = {https://warmtransfer.net/knowledge/kamailio-sip-proxy},
note = {Verified 2026-09-24}
}