SipConfiguration

Field

Type

Repeated

Description

id

MediaNodeId

stats_sampling

StreamStatisticsSampling

account

SipAccount

codec_preference

SipCodec

✅

Preference-ordered codecs Norsk offers (first = highest priority). Empty = the default offer (PCMU, PCMA, GSM).

call

SipCall

The address to call. Dialled on creation unless auto_dial is false, and the default address for a later SipDial that names none. Optional only when auto_dial is false (every call is then dialled explicitly).

source_name

string

public_addr

string

Public IP of the norsk host

jitter_buffer

OutputJitterBufferSettings

stereo

bool

Offer stereo audio. Only takes effect with Opus (the only offered codec that carries more than one channel); every other codec stays mono, and the default (false) leaves the node mono. When set, and Opus is offered, the whole node pipeline runs stereo and Opus is offered as stereo.

session_expires_sec

uint32

SIP session timer (RFC 4028) expiry in seconds. 0 (the default) uses the engine default of 90.

silence_suppression

bool

Enable silence suppression / VAD. Default false: audio is sent continuously (VAD off) and the offer advertises silenceSupp:off, matching the previous fixed behaviour.

stats_interval_ms

uint32

Connection-statistics reporting interval, milliseconds. 0 (the default) keeps the adaptive cadence (500 ms until the call is established, then 5000 ms); set e.g. 1000 for a fixed ~1 s cadence for quality-driven failover decisions. Values are cumulative, so consumers window by differencing successive reports.

sip_port

uint32

Fixed local SIP (signalling) UDP port. 0 (the default) binds an ephemeral port. Set a known port when the deployment needs one — e.g. a container port map, a firewall rule, or a fixed per-line port.

rtp_port_range

SipRtpPortRange

Fixed local RTP (media) port range. Unset (the default) lets pjsua pick. When set, the engine binds RTP within [start, end], for container port maps and firewalls that need a known media port range.

sample_rate

uint32

Explicit node sample rate (Hz). 0 (the default) derives it from the codec preference (the max wire-codec rate). When set (8000/16000/48000), the node pipeline + conference bridge run at exactly this rate and the wire codec is resampled to/from it — e.g. 48 kHz output while offering only PCMU, without having to add Opus just to raise the rate.

auto_dial

OptionalBool

Whether to dial call as soon as the node is created. Unset = true, the behaviour before a node could make more than one call. Set false for a node that starts idle and places calls with SipDial. Either way the node outlives its calls: the account and everything else here is fixed for the node’s lifetime, and calls come and go on it, one at a time.

continuous_output

bool

Keep the node’s audio output continuous. By default (false) the output exists only while a call is supplying audio: its context is withdrawn when a call disconnects and returns with the next one, so downstream sees the source come and go per call. When true the output is published once and never withdrawn, carrying silence whenever no call is supplying audio (idle, dialling, ringing), on one continuous timeline.

dial_timeout_ms

uint32

Give up on a call that has not been answered within this many milliseconds of dialling (cancelled; reported as a disconnect with code 408). Covers both no response at all and ringing without answer. 0 = pjsip’s own behaviour: 32 s if nothing answers, and no limit on ringing.

registration_expires_seconds

uint32

Registration lease to request from the registrar, in seconds. Only takes effect when the account has a reg_uri (otherwise the account never registers). 0 (the default) uses pjsua’s default of 300. pjsua refreshes the registration by itself before it expires.

proxy

string

Optional outbound proxy URI, put in the account’s route set for every request (REGISTER and INVITE alike). Empty = none. A registration-based provider generally wants the INVITEs routed via the same edge that the REGISTER went through.

inbound

SipInboundMode

How the node treats an inbound call (an INVITE reaching its SIP port). Default (unset / REJECT) turns every inbound call away with 480 (the behaviour before this option), so the node only ever places calls.

tls

SipTlsSettings

Signalling transport security (TLS) for this node. Unset = plain UDP only (the previous behaviour). When set, the node also creates a TLS transport with these certificate settings; a call goes over TLS when its URI selects it (a sips: address, or ;transport=tls), for the account id, reg_uri, proxy and dial address alike. The UDP transport is kept alongside.

srtp

SipSrtpMode

SDES-SRTP for the media (RTP). Default (unset / DISABLED) is plain RTP, the previous behaviour. OPTIONAL offers SRTP and accepts a plain-RTP answer; MANDATORY requires it. SDES keying only — keys are carried in the SDP a=crypto line — as this build has no DTLS-SRTP.

srtp_require_tls

bool

When SRTP is enabled, require it to be keyed over a secure (TLS) signalling path, so the SDES keys are never sent over a cleartext UDP INVITE. Default false. Pair with tls and a sips:/;transport=tls far end.

start_threshold

InputStartThresholdSettings

Optionally drop inbound (far-end) audio until its arrival is 'stable', so a burst at call setup does not set the media T0

Member of

Message

Description

SipMessage