SessionModel class
Model to track the state of a call session.
This class represents the current state of a SIP call session, including whether it's on hold, active, part of a conference, etc. Based on the Swift P2PSample Session class from the PortSIP SDK.
This class is immutable. Use copyWith to create modified copies or SessionModel.initial to get a fresh initial state.
Session ID Type Consistency
The sessionId field uses Dart's int type. Due to platform differences
in the native PortSIP SDKs:
- Android: Uses
Long(64-bit signed integer) - iOS: Uses
Int(64-bit on modern devices, but SDK returns 32-bit values) - Dart: Uses
int(64-bit on all platforms)
For maximum cross-platform compatibility, session IDs are validated to fit within a 32-bit signed integer range (-2,147,483,648 to 2,147,483,647). The PortSIP SDK typically generates session IDs within this range, so this constraint should not affect normal usage.
Example usage:
final session = SessionModel(
sessionId: callSessionId,
sessionState: true,
videoState: false,
);
Constructors
- SessionModel({int sessionId = invalidSessionId, bool holdState = false, bool sessionState = false, bool conferenceState = false, bool recvCallState = false, bool isReferCall = false, int originCallSessionId = invalidSessionId, bool existEarlyMedia = false, bool videoState = false})
- Creates a new SessionModel with the specified state.
- SessionModel.initial()
-
Creates an initial session state with default values.
factory
Properties
- conferenceState → bool
-
Whether this session is part of a conference
final
- existEarlyMedia → bool
-
Whether early media exists (audio before call is answered)
final
- hashCode → int
-
The hash code for this object.
no setteroverride
- holdState → bool
-
Whether the call is on hold
final
- isReferCall → bool
-
Whether this is a referred call (transferred)
final
- isValid → bool
-
Returns true if the session ID is valid (not -1).
no setter
- originCallSessionId → int
-
Original call session ID (for refer/transfer scenarios)
final
- recvCallState → bool
-
Whether this is an incoming call waiting to be answered
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sessionId → int
-
Unique session identifier returned by the SDK.
final
- sessionState → bool
-
Whether the session is active (call established)
final
- videoState → bool
-
Whether this is a video call
final
Methods
-
copyWith(
{int? sessionId, bool? holdState, bool? sessionState, bool? conferenceState, bool? recvCallState, bool? isReferCall, int? originCallSessionId, bool? existEarlyMedia, bool? videoState}) → SessionModel - Creates a copy of this session with the specified fields updated.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
override
Constants
- invalidSessionId → const int
- Invalid session ID constant.
- maxSessionId → const int
- Maximum valid session ID (32-bit signed integer maximum).
- minSessionId → const int
- Minimum valid session ID (32-bit signed integer minimum).