pub enum ServerMessage {
Show 95 variants
RegisterAck {
keepalive_seconds: u32,
secondary_keepalive_seconds: u32,
protocol: ProtocolVersion,
features: PhoneFeatures,
date_template: DateTemplate,
},
RegisterReject {
reason: String,
},
KeepAliveAck,
UnregisterAck,
CapabilitiesRequest,
EnunciatorCommand,
ConfigStatus(ConfigurationStatus),
LineStatus {
instance: u32,
number: String,
display_name: String,
},
ButtonTemplate {
offset: u32,
total: u32,
buttons: Vec<ButtonTemplateEntry>,
},
Version {
firmware: String,
},
ServerResponse {
servers: Vec<SignalingServerEndpoint>,
},
TimeDate {
year: u32,
month: u32,
weekday: u32,
day: u32,
hour: u32,
minute: u32,
second: u32,
milliseconds: u32,
unix_seconds: u32,
},
SoftKeyTemplate {
actions: Vec<SoftKey>,
},
SoftKeySet {
profile: SoftKeyProfile,
},
SelectSoftKeys {
line_instance: u32,
call_reference: u32,
set: KeyMode,
valid_mask: u32,
},
CallState {
state: CallState,
line_instance: u32,
call_reference: u32,
},
CallInfo {
info: CallInfo,
line_instance: u32,
call_reference: u32,
},
DisplayPrompt {
timeout_seconds: u32,
text: String,
line_instance: u32,
call_reference: u32,
},
ClearPrompt {
line_instance: u32,
call_reference: u32,
},
DisplayNotify {
timeout_seconds: u32,
text: String,
},
ClearNotify,
DisplayPriorityNotify {
timeout_seconds: u32,
priority: NotificationPriority,
text: String,
},
ClearPriorityNotify {
priority: NotificationPriority,
},
NotifyDtmfTone(DtmfToneControl),
SendDtmfTone(DtmfToneControl),
StartAnnouncement {
announcements: Vec<AnnouncementEntry>,
end_of_ack: u32,
conference_id: u32,
matrix_conference_party_ids: Vec<u32>,
hearing_conference_party_mask: u32,
play_mode: u32,
},
StopAnnouncement {
conference_id: u32,
},
AnnouncementFinish {
conference_id: u32,
play_status: u32,
},
ClearConference {
conference_id: ConferenceId,
service_number: u32,
},
CreateConferenceRequest(CreateConferenceRequest),
DeleteConferenceRequest {
conference_id: ConferenceId,
},
ModifyConferenceRequest(ModifyConferenceRequest),
AuditConferenceRequest,
AddParticipantRequest(AddParticipantRequest),
DropParticipantRequest {
conference_id: ConferenceId,
call_reference: CallReference,
},
AuditParticipantRequest {
conference_id: ConferenceId,
},
ChangeParticipantRequest(ChangeParticipantRequest),
StopMultimediaTransmission(MultimediaStreamControl),
FlowControlCommand(VideoFlowControl),
CloseMultimediaReceiveChannel(MultimediaStreamControl),
VideoDisplayCommand {
conference_id: ConferenceId,
call_reference: CallReference,
layout_id: u32,
},
FlowControlNotify(VideoFlowControl),
ActivateCallPlane {
line_instance: u32,
},
DeactivateCallPlane,
BackspaceResponse {
line_instance: u32,
call_reference: u32,
},
RegisterTokenAck,
RegisterTokenReject {
backoff_seconds: u32,
},
SpcpRegisterTokenAck {
features: u32,
},
SpcpRegisterTokenReject {
backoff_seconds: u32,
},
SetRinger {
mode: RingerMode,
duration: RingDuration,
line_instance: u32,
call_reference: u32,
},
SetLamp {
stimulus: ButtonType,
instance: u32,
mode: LampMode,
},
SetHookFlashDetect,
StartTone {
tone: Tone,
direction: ToneDirection,
line_instance: u32,
call_reference: u32,
},
StopTone {
line_instance: u32,
call_reference: u32,
},
StartMulticastMediaReception(MulticastMediaReception),
StartMulticastMediaTransmission(MulticastMediaTransmission),
StopMulticastMediaReception {
conference_id: ConferenceId,
passthrough_party_id: PassthroughPartyId,
call_reference: CallReference,
},
StopMulticastMediaTransmission {
conference_id: ConferenceId,
passthrough_party_id: PassthroughPartyId,
call_reference: CallReference,
},
OpenReceiveChannel {
call_reference: u32,
passthrough_party_id: u32,
packet_ms: u32,
codec: Codec,
echo_cancellation: EchoCancellation,
telephone_event_payload: u8,
source_address: IpAddr,
source_port: u16,
encryption: Option<MediaEncryption>,
wire: Option<OpenReceiveChannelWire>,
},
CloseReceiveChannel(AudioStreamControl),
ConnectionStatisticsRequest {
directory_number: String,
call_reference: u32,
processing: StatisticsProcessing,
},
StartMediaTransmission {
call_reference: u32,
passthrough_party_id: u32,
endpoint: MediaEndpoint,
silence_suppression: SilenceSuppression,
traffic_class: MediaTrafficClass,
encryption: Option<MediaEncryption>,
wire: Option<StartMediaTransmissionWire>,
},
StopMediaTransmission(AudioStreamControl),
StartMediaReception,
StopMediaReception {
conference_id: ConferenceId,
passthrough_party_id: PassthroughPartyId,
},
SubscribeDtmfPayloadRequest(DtmfPayloadRequest),
SubscribeDtmfPayloadError(DtmfPayloadIdentity),
UnsubscribeDtmfPayloadRequest(DtmfPayloadRequest),
UnsubscribeDtmfPayloadError(DtmfPayloadIdentity),
SetSpeakerMode(SpeakerMode),
SetMicrophoneMode(MicrophoneMode),
Reset(ResetType),
DisplayText {
text: String,
},
ClearDisplay,
ForwardStatus {
line_instance: u32,
forward_all: Option<String>,
forward_busy: Option<String>,
forward_no_answer: Option<String>,
},
SpeedDialStatus {
instance: u32,
number: String,
display_name: String,
},
DialedNumber {
number: String,
line_instance: u32,
call_reference: u32,
},
StartMediaFailureDetection(MediaFailureDetection),
UserToDeviceData(UserDataMessage),
UserToDeviceDataV1(UserDataV1Message),
FeatureStatus {
instance: u32,
button_type: ButtonType,
label: String,
state: u32,
},
ServiceUrlStatus {
index: u32,
url: String,
label: String,
extension_text: String,
},
CallSelectStatus {
status: u32,
call_reference: u32,
line_instance: u32,
},
PortRequest(PortRequest),
PortClose(PortClose),
OpenMultimediaChannel(OpenMultimediaChannel),
StartMultimediaTransmission(StartMultimediaTransmission),
MiscellaneousCommand(MiscellaneousCommand),
SubscriptionStatus {
transaction_id: u32,
feature_id: u32,
timer_seconds: u32,
cause: SubscriptionCause,
},
Notification {
transaction_id: u32,
feature_id: u32,
status: BusyLampFieldState,
text: String,
},
CallHistoryDisposition {
disposition: CallHistoryDisposition,
line_instance: u32,
call_reference: u32,
},
CallCountResponse,
RecordingStatus {
call_reference: u32,
active: bool,
},
KnownOpaque(KnownOpaqueMessage),
Unknown(RawMessage),
}Expand description
Typed messages emitted toward a station connection.
Use Self::encode_for_session after registration so both protocol version
and negotiated feature bits participate in layout selection. The simpler
Self::encode applies version-only selection. User-visible strings can be
encoded through the explicit legacy-code-page entry points when required.
Variants§
RegisterAck
Accepts station registration and supplies session parameters. Carries keepalive intervals, protocol features, and the date template.
RegisterReject
Rejects a station registration attempt. Returns a human-readable reason for refusing the registration.
KeepAliveAck
Acknowledges a station keepalive message. Confirms that the signaling session remains active.
UnregisterAck
Acknowledges a station unregister request. Confirms that the server has released the registration.
CapabilitiesRequest
Requests the station’s supported media capabilities. Prompts a capability response used for media negotiation.
EnunciatorCommand
Invokes the station’s legacy announcement enunciator. Applies to the station rather than a particular line or call.
ConfigStatus(ConfigurationStatus)
Supplies the station’s provisioned device configuration. Carries user, service, and device settings needed after registration.
LineStatus
Supplies the configured identity of one station line. Maps a line instance to its directory number and display name.
ButtonTemplate
Supplies one chunk of the station’s logical button layout. Uses offset and total counts to span layouts across multiple frames.
Version
Supplies the firmware or load version assigned to the station. Answers the station’s version request during provisioning.
ServerResponse
Supplies the station’s signaling-server list. Provides primary and failover endpoints for server discovery.
Fields
servers: Vec<SignalingServerEndpoint>TimeDate
Supplies the server’s current date and time. Synchronizes the station clock with calendar and Unix time fields.
Fields
SoftKeyTemplate
Supplies the soft-key actions supported by the server. Defines the action identifiers referenced by soft-key sets.
SoftKeySet
Supplies the station’s soft-key set profile. Maps call modes to ordered soft-key action lists.
Fields
profile: SoftKeyProfileSelectSoftKeys
Selects the soft-key set shown for a call. Uses a validity mask to enable positions in the selected set.
Fields
CallState
Updates the station’s state for a call appearance. Associates the new call state with a line and call reference.
CallInfo
Supplies calling and called party information for a call. Updates the station’s call-information display and metadata.
DisplayPrompt
Displays a call-specific prompt on the station. Sets its text, timeout, line, and call context.
ClearPrompt
Clears a call-specific prompt from the station. Targets the prompt associated with a line and call reference.
DisplayNotify
Displays a transient notification on the station. Supplies notification text and its timeout.
ClearNotify
Clears the station’s transient notification. Removes the notification created by a display-notify message.
DisplayPriorityNotify
Displays a prioritized transient notification. Supplies its priority, text, and timeout.
ClearPriorityNotify
Clears notifications at a specified priority. Leaves notifications at other priorities unaffected.
Fields
priority: NotificationPriorityNotifyDtmfTone(DtmfToneControl)
Notifies the station of a DTMF tone state. Carries digit and call context without requesting local tone generation.
SendDtmfTone(DtmfToneControl)
Instructs the station to send a DTMF tone. Carries the digit and call context for media signaling.
StartAnnouncement
Starts an announcement for a conference. Carries the announcement sequence, participants, mask, and play mode.
Fields
announcements: Vec<AnnouncementEntry>StopAnnouncement
Stops the active announcement for a conference. Targets the announcement by conference identifier.
AnnouncementFinish
Reports or confirms announcement completion to the station. Carries the conference identifier and final play status.
ClearConference
Clears conference state maintained by the station. Identifies the conference and associated service number.
CreateConferenceRequest(CreateConferenceRequest)
Requests creation of a station-managed conference. Carries the conference attributes and correlation identifiers.
DeleteConferenceRequest
Requests deletion of a station-managed conference. Targets the conference by identifier.
Fields
conference_id: ConferenceIdModifyConferenceRequest(ModifyConferenceRequest)
Requests changes to a station-managed conference. Carries the updated conference attributes and identifiers.
AuditConferenceRequest
Requests the station’s current conference state. Prompts an audit response for conference reconciliation.
AddParticipantRequest(AddParticipantRequest)
Requests adding a participant to a conference. Carries the conference, call, and participant details.
DropParticipantRequest
Requests removal of a participant from a conference. Targets the participant by conference and call reference.
AuditParticipantRequest
Requests the station’s state for conference participants. Targets the participant set associated with a conference.
Fields
conference_id: ConferenceIdChangeParticipantRequest(ChangeParticipantRequest)
Requests changes to a conference participant. Carries updated participant attributes and identifiers.
StopMultimediaTransmission(MultimediaStreamControl)
Stops a station multimedia transmit stream. Identifies the conference, party, and call owning the stream.
FlowControlCommand(VideoFlowControl)
Commands a station video stream to change its flow. Carries the requested bit rate and stream identifiers.
CloseMultimediaReceiveChannel(MultimediaStreamControl)
Closes a station multimedia receive channel. Identifies the conference, party, and call owning the channel.
VideoDisplayCommand
Selects the station’s video display layout for a call. Carries conference, call, and layout identifiers.
FlowControlNotify(VideoFlowControl)
Notifies the station of video flow-control state. Reports stream identifiers and the applicable bit rate.
ActivateCallPlane
Activates the station call-control plane for a line. Makes the selected line instance the active call plane.
DeactivateCallPlane
Deactivates the station call-control plane. Removes the currently active call-plane selection.
BackspaceResponse
Confirms processing of a dial-string backspace. Associates the response with its line and call context.
RegisterTokenAck
Accepts a station registration-token request. Allows the station to proceed with full registration.
RegisterTokenReject
Rejects a station registration-token request. Supplies the delay before the station should retry.
SpcpRegisterTokenAck
Accepts an SPCP registration-token request with a feature word. Allows the station to continue its SPCP registration sequence.
SpcpRegisterTokenReject
Rejects an SPCP registration-token request temporarily. Supplies the delay before the station should request another token.
SetRinger
Sets the station ringer behavior for a call. Carries mode, duration, line, and call context.
SetLamp
Sets the lamp state for a station button. Targets a button type and instance with the requested lamp mode.
SetHookFlashDetect
Enables hook-flash detection on stations that expose that capability. Causes subsequent hook-flash actions to be reported to call control.
StartTone
Starts local tone generation on the station. Selects the tone, direction, line, and call context.
StopTone
Stops local tone generation for a call. Targets the tone associated with a line and call reference.
StartMulticastMediaReception(MulticastMediaReception)
Starts station reception of a multicast media stream. Supplies multicast endpoint, codec, and stream identifiers.
StartMulticastMediaTransmission(MulticastMediaTransmission)
Starts station transmission to a multicast media stream. Supplies multicast endpoint, codec, and stream identifiers.
StopMulticastMediaReception
Stops station reception of a multicast media stream. Targets the stream by conference, party, and call identifiers.
Fields
conference_id: ConferenceIdpassthrough_party_id: PassthroughPartyIdcall_reference: CallReferenceStopMulticastMediaTransmission
Stops station transmission to a multicast media stream. Targets the stream by conference, party, and call identifiers.
Fields
conference_id: ConferenceIdpassthrough_party_id: PassthroughPartyIdcall_reference: CallReferenceOpenReceiveChannel
Opens a station audio receive channel. Supplies codec, packetization, source, encryption, and stream details.
Fields
echo_cancellation: EchoCancellationtelephone_event_payload: u8Dynamic RTP payload type used for telephone-event DTMF, or zero for signaling DTMF.
encryption: Option<MediaEncryption>wire: Option<OpenReceiveChannelWire>Exact auxiliary wire fields, or encoder defaults when absent on a runtime-created message.
CloseReceiveChannel(AudioStreamControl)
Closes a station audio receive channel. Identifies the conference, party, and call owning the stream.
ConnectionStatisticsRequest
Requests media connection statistics from the station. Selects the call, directory number, and statistics processing mode.
StartMediaTransmission
Starts station audio transmission to a media endpoint. Supplies endpoint, traffic class, encryption, and stream details.
Fields
endpoint: MediaEndpointsilence_suppression: SilenceSuppressiontraffic_class: MediaTrafficClassFull traffic-class octet; configuration DSCP is shifted left by two.
encryption: Option<MediaEncryption>wire: Option<StartMediaTransmissionWire>Exact auxiliary wire fields, or encoder defaults when absent on a runtime-created message.
StopMediaTransmission(AudioStreamControl)
Stops a station audio transmit stream. Identifies the conference, party, and call owning the stream.
StartMediaReception
Starts the station’s legacy receive-side media function. Carries no stream identity, endpoint, or codec parameters.
StopMediaReception
Stops a legacy media-reception path for one conference party. Identifies the active reception by conference and passthrough party.
SubscribeDtmfPayloadRequest(DtmfPayloadRequest)
Requests subscription to an RTP DTMF payload. Carries the payload and transaction identity to subscribe.
SubscribeDtmfPayloadError(DtmfPayloadIdentity)
Reports failure to establish a DTMF payload subscription. Identifies the payload and transaction that failed.
UnsubscribeDtmfPayloadRequest(DtmfPayloadRequest)
Requests removal of an RTP DTMF payload subscription. Carries the payload and transaction identity to remove.
UnsubscribeDtmfPayloadError(DtmfPayloadIdentity)
Reports failure to remove a DTMF payload subscription. Identifies the payload and transaction that failed.
SetSpeakerMode(SpeakerMode)
Sets the station speakerphone mode. Controls whether the station speaker audio path is active.
SetMicrophoneMode(MicrophoneMode)
Sets the station microphone mode. Controls whether the station microphone audio path is active.
Reset(ResetType)
Requests a station reset or restart. Selects the reset behavior defined by the reset type.
DisplayText
Displays text in the station’s general display area. Replaces the current non-call-specific display text.
ClearDisplay
Clears the station’s general display area. Removes text previously sent with a display-text message.
ForwardStatus
Supplies call-forwarding state for one line. Carries destinations for all, busy, and no-answer forwarding.
Fields
SpeedDialStatus
Supplies the contents of one station speed-dial entry. Maps an entry instance to its number and display name.
DialedNumber
Displays or records the dialed number for a call. Associates the number with its line and call reference.
StartMediaFailureDetection(MediaFailureDetection)
Starts station monitoring for media-path failure. Supplies thresholds and stream identifiers used for detection.
UserToDeviceData(UserDataMessage)
Carries legacy application data from the server to the station. Uses the fixed-format user-to-device data layout.
UserToDeviceDataV1(UserDataV1Message)
Carries version-one application data from the server. Supports the extended variable-length user-data layout.
FeatureStatus
Supplies the state of a provisioned feature button. Carries its type, label, instance, and feature-specific state.
Fields
ServiceUrlStatus
Supplies the configured service URL at an index. Carries its URL, label, and optional extension text.
Fields
CallSelectStatus
Updates whether a call is selected on the station. Associates the selection state with its line and call.
Fields
PortRequest(PortRequest)
Requests endpoint information for a station port. Carries the port identity and addressing parameters to resolve.
PortClose(PortClose)
Requests closure of a station port endpoint. Identifies the endpoint and port resources to release.
OpenMultimediaChannel(OpenMultimediaChannel)
Opens a station multimedia receive channel. Supplies codec, endpoint, and stream negotiation details.
StartMultimediaTransmission(StartMultimediaTransmission)
Starts station transmission of multimedia. Supplies destination, codec, bandwidth, and stream identifiers.
MiscellaneousCommand(MiscellaneousCommand)
Sends a stream-specific multimedia control command. Carries command data for video, picture, or recovery behavior.
SubscriptionStatus
Supplies the result or state of a feature subscription. Carries transaction, feature, timer, and cause values.
Notification
Sends a feature-subscription notification to the station. Carries transaction state, feature state, and display text.
CallHistoryDisposition
Sets how a call is represented in station call history. Associates the disposition with its line and call reference.
CallCountResponse
Returns the server’s current call-count response. Answers the corresponding station call-count request.
RecordingStatus
Updates the station’s recording indicator for a call. Carries the call reference and whether recording is active.
KnownOpaque(KnownOpaqueMessage)
Preserves a recognized server-to-station message without typed decoding. Retains its catalog identifier and payload bytes for lossless handling.
Unknown(RawMessage)
Preserves an unrecognized server-to-station message. Retains the unknown identifier and raw payload for diagnostics or forwarding.
Implementations§
Source§impl ServerMessage
impl ServerMessage
Sourcepub fn decode(
frame: Frame,
protocol: ProtocolVersion,
) -> Result<Self, CodecError>
pub fn decode( frame: Frame, protocol: ProtocolVersion, ) -> Result<Self, CodecError>
Decode a server-to-phone message using the negotiated version for layouts whose frame header is zero or otherwise ambiguous.
Sourcepub fn encode(&self, protocol: ProtocolVersion) -> Result<Vec<u8>, CodecError>
pub fn encode(&self, protocol: ProtocolVersion) -> Result<Vec<u8>, CodecError>
Encodes a control-to-station message using version-only layout selection.
When negotiated feature flags also select layouts, use
Self::encode_for_session.
Sourcepub fn encode_for_session(
&self,
session: StationSessionContext,
) -> Result<Vec<u8>, CodecError>
pub fn encode_for_session( &self, session: StationSessionContext, ) -> Result<Vec<u8>, CodecError>
Encodes a control-to-station message with complete session layout inputs.
Sourcepub fn encode_for_legacy_station(
&self,
protocol: ProtocolVersion,
code_page: LegacyCodePage,
) -> Result<Vec<u8>, CodecError>
pub fn encode_for_legacy_station( &self, protocol: ProtocolVersion, code_page: LegacyCodePage, ) -> Result<Vec<u8>, CodecError>
Encode station-facing labels in a legacy single-byte code page.
Version-only layout selection is used. See
Self::encode_for_legacy_session when feature flags also matter.
Sourcepub fn encode_for_legacy_session(
&self,
session: StationSessionContext,
code_page: LegacyCodePage,
) -> Result<Vec<u8>, CodecError>
pub fn encode_for_legacy_session( &self, session: StationSessionContext, code_page: LegacyCodePage, ) -> Result<Vec<u8>, CodecError>
Encodes a station message with session-aware layout selection and a legacy single-byte code page for user-visible labels.
Trait Implementations§
Source§impl Clone for ServerMessage
impl Clone for ServerMessage
Source§fn clone(&self) -> ServerMessage
fn clone(&self) -> ServerMessage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more