pub enum ServerMessage {
Show 89 variants
RegisterAck {
keepalive_seconds: u32,
secondary_keepalive_seconds: u32,
protocol: ProtocolVersion,
features: PhoneFeatures,
date_template: DateTemplate,
},
RegisterReject {
reason: String,
},
KeepAliveAck,
UnregisterAck,
CapabilitiesRequest,
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,
},
SetRinger {
mode: RingerMode,
duration: RingDuration,
line_instance: u32,
call_reference: u32,
},
SetLamp {
stimulus: ButtonType,
instance: u32,
mode: LampMode,
},
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),
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
RegisterReject
KeepAliveAck
UnregisterAck
CapabilitiesRequest
ConfigStatus(ConfigurationStatus)
LineStatus
ButtonTemplate
One canonical chunk of a station’s logical button template.
SCCP reserves 42 definition slots in every frame. offset and total
let larger physical layouts, including expansion modules, span frames.
Version
ServerResponse
Fields
servers: Vec<SignalingServerEndpoint>TimeDate
Fields
SoftKeyTemplate
SoftKeySet
Fields
profile: SoftKeyProfileSelectSoftKeys
Fields
CallState
CallInfo
DisplayPrompt
ClearPrompt
DisplayNotify
ClearNotify
DisplayPriorityNotify
ClearPriorityNotify
Fields
priority: NotificationPriorityNotifyDtmfTone(DtmfToneControl)
SendDtmfTone(DtmfToneControl)
StartAnnouncement
Fields
announcements: Vec<AnnouncementEntry>StopAnnouncement
AnnouncementFinish
ClearConference
CreateConferenceRequest(CreateConferenceRequest)
DeleteConferenceRequest
Fields
conference_id: ConferenceIdModifyConferenceRequest(ModifyConferenceRequest)
AuditConferenceRequest
AddParticipantRequest(AddParticipantRequest)
DropParticipantRequest
AuditParticipantRequest
Fields
conference_id: ConferenceIdChangeParticipantRequest(ChangeParticipantRequest)
StopMultimediaTransmission(MultimediaStreamControl)
FlowControlCommand(VideoFlowControl)
CloseMultimediaReceiveChannel(MultimediaStreamControl)
VideoDisplayCommand
FlowControlNotify(VideoFlowControl)
ActivateCallPlane
DeactivateCallPlane
BackspaceResponse
RegisterTokenAck
RegisterTokenReject
SetRinger
SetLamp
StartTone
StopTone
StartMulticastMediaReception(MulticastMediaReception)
StartMulticastMediaTransmission(MulticastMediaTransmission)
StopMulticastMediaReception
Fields
conference_id: ConferenceIdpassthrough_party_id: PassthroughPartyIdcall_reference: CallReferenceStopMulticastMediaTransmission
Fields
conference_id: ConferenceIdpassthrough_party_id: PassthroughPartyIdcall_reference: CallReferenceOpenReceiveChannel
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)
ConnectionStatisticsRequest
StartMediaTransmission
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)
SubscribeDtmfPayloadRequest(DtmfPayloadRequest)
SubscribeDtmfPayloadError(DtmfPayloadIdentity)
UnsubscribeDtmfPayloadRequest(DtmfPayloadRequest)
UnsubscribeDtmfPayloadError(DtmfPayloadIdentity)
SetSpeakerMode(SpeakerMode)
SetMicrophoneMode(MicrophoneMode)
Reset(ResetType)
DisplayText
ClearDisplay
ForwardStatus
Fields
SpeedDialStatus
DialedNumber
StartMediaFailureDetection(MediaFailureDetection)
UserToDeviceData(UserDataMessage)
UserToDeviceDataV1(UserDataV1Message)
FeatureStatus
Fields
ServiceUrlStatus
Fields
CallSelectStatus
Fields
PortRequest(PortRequest)
PortClose(PortClose)
OpenMultimediaChannel(OpenMultimediaChannel)
StartMultimediaTransmission(StartMultimediaTransmission)
MiscellaneousCommand(MiscellaneousCommand)
SubscriptionStatus
Notification
CallHistoryDisposition
CallCountResponse
RecordingStatus
KnownOpaque(KnownOpaqueMessage)
Unknown(RawMessage)
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