freeswitch_types/variables/
sofia.rs1sip_header::define_header_enum! {
4 tests_mod: sofia_variable_generated_tests,
5 error_type: ParseSofiaVariableError => "unknown sofia variable",
6 pub enum SofiaVariable {
11 SipFromUser => "sip_from_user",
13 SipFromHost => "sip_from_host",
14 SipFromPort => "sip_from_port",
15 SipFromUri => "sip_from_uri",
16 SipFromDisplay => "sip_from_display",
17 SipFromTag => "sip_from_tag",
18 SipFromComment => "sip_from_comment",
19 SipFromUserStripped => "sip_from_user_stripped",
20 SipFullFrom => "sip_full_from",
21
22 SipToUser => "sip_to_user",
24 SipToHost => "sip_to_host",
25 SipToPort => "sip_to_port",
26 SipToUri => "sip_to_uri",
27 SipToDisplay => "sip_to_display",
28 SipToTag => "sip_to_tag",
29 SipToComment => "sip_to_comment",
30 SipFullTo => "sip_full_to",
31
32 SipContactUser => "sip_contact_user",
34 SipContactHost => "sip_contact_host",
35 SipContactPort => "sip_contact_port",
36 SipContactUri => "sip_contact_uri",
37 SipContactParams => "sip_contact_params",
38
39 SipReqUser => "sip_req_user",
41 SipReqHost => "sip_req_host",
42 SipReqPort => "sip_req_port",
43 SipReqUri => "sip_req_uri",
44
45 SipViaHost => "sip_via_host",
47 SipViaPort => "sip_via_port",
48 SipViaRport => "sip_via_rport",
49 SipViaProtocol => "sip_via_protocol",
50 SipFullVia => "sip_full_via",
51 SipFullRoute => "sip_full_route",
52
53 SipCallId => "sip_call_id",
55 SipCseq => "sip_cseq",
56 SipUserAgent => "sip_user_agent",
57 SipSubject => "sip_subject",
58 SipAllow => "sip_allow",
59 SipAcceptLanguage => "sip_accept_language",
60 SipCallInfo => "sip_call_info",
61 SipDateEpochTime => "sip_date_epoch_time",
62
63 SipReceivedIp => "sip_received_ip",
65 SipReceivedPort => "sip_received_port",
66 SipNetworkIp => "sip_network_ip",
67 SipNetworkPort => "sip_network_port",
68 SipNatDetected => "sip_nat_detected",
69 SipTransport => "sip_transport",
70 SipReplyHost => "sip_reply_host",
71
72 SipAuthUsername => "sip_auth_username",
74 SipAuthPassword => "sip_auth_password",
75 SipAuthorized => "sip_authorized",
76 SipAclAuthedBy => "sip_acl_authed_by",
77 SipAclToken => "sip_acl_token",
78 SipChallengeRealm => "sip_challenge_realm",
79
80 SipInviteFailureStatus => "sip_invite_failure_status",
82 SipInviteFailurePhrase => "sip_invite_failure_phrase",
83 SipHangupDisposition => "sip_hangup_disposition",
84 SipTermStatus => "sip_term_status",
85 SipTermCause => "sip_term_cause",
86 SipReason => "sip_reason",
87
88 SipPAssertedIdentity => "sip_P-Asserted-Identity",
90 SipPPreferredIdentity => "sip_P-Preferred-Identity",
91 SipPrivacy => "sip_Privacy",
92 SipRemotePartyId => "sip_Remote-Party-ID",
93 SipStirShakenAttest => "sip_stir_shaken_attest",
94 SipVerstat => "sip_verstat",
95 SipVerstatDetailed => "sip_verstat_detailed",
96
97 SipInviteCallId => "sip_invite_call_id",
99 SipInviteCseq => "sip_invite_cseq",
100 SipInviteFullFrom => "sip_invite_full_from",
101 SipInviteFullTo => "sip_invite_full_to",
102 SipInviteFullVia => "sip_invite_full_via",
103 SipInviteFromUri => "sip_invite_from_uri",
104 SipInviteToUri => "sip_invite_to_uri",
105 SipInviteReqUri => "sip_invite_req_uri",
106 SipInviteRecordRoute => "sip_invite_record_route",
107 SipInviteRouteUri => "sip_invite_route_uri",
108 SipInviteDomain => "sip_invite_domain",
109 SipInviteParams => "sip_invite_params",
110
111 SipAutoAnswer => "sip_auto_answer",
113 SipAutoSimplify => "sip_auto_simplify",
114 SipEnableSoa => "sip_enable_soa",
115 SipCopyCustomHeaders => "sip_copy_custom_headers",
116 SipCopyMultipart => "sip_copy_multipart",
117 SipLoopedCall => "sip_looped_call",
118
119 SipRedirectedTo => "sip_redirected_to",
121 SipRedirectedBy => "sip_redirected_by",
122 SipRedirectDialstring => "sip_redirect_dialstring",
123 SipReferReply => "sip_refer_reply",
124 SipReferStatusCode => "sip_refer_status_code",
125 SipReferredByFull => "sip_referred_by_full",
126 SipReferredByCid => "sip_referred_by_cid",
127 SipReinviteSdp => "sip_reinvite_sdp",
128
129 SipGateway => "sip_gateway",
131 SipGatewayName => "sip_gateway_name",
132 SipUseGateway => "sip_use_gateway",
133 SipDestinationUrl => "sip_destination_url",
134
135 SipProfileName => "sip_profile_name",
137 SofiaProfileName => "sofia_profile_name",
138 SofiaProfileUrl => "sofia_profile_url",
139 SofiaProfileDomainName => "sofia_profile_domain_name",
140
141 RtpSecureMediaConfirmed => "rtp_secure_media_confirmed",
143 Rtp2833SendPayload => "rtp_2833_send_payload",
144 Rtp2833RecvPayload => "rtp_2833_recv_payload",
145 RtpDisableHold => "rtp_disable_hold",
146 RtpJitterBufferPlc => "rtp_jitter_buffer_plc",
147 RtpVideoMaxBandwidthIn => "rtp_video_max_bandwidth_in",
148 RtpVideoMaxBandwidthOut => "rtp_video_max_bandwidth_out",
149
150 SipCalleeIdName => "sip_callee_id_name",
152 SipCalleeIdNumber => "sip_callee_id_number",
153 SipCidType => "sip_cid_type",
154
155 SipRtpRxstat => "sip_rtp_rxstat",
157 SipRtpTxstat => "sip_rtp_txstat",
158 SipPRtpStat => "sip_p_rtp_stat",
159
160 SipHistoryInfo => "sip_history_info",
162 SipGeolocation => "sip_geolocation",
163
164 SipMultipart => "sip_multipart",
166 }
167}
168
169#[cfg(test)]
170mod tests {
171 use super::*;
172
173 #[test]
174 fn display_round_trip() {
175 assert_eq!(SofiaVariable::SipCallId.to_string(), "sip_call_id");
176 assert_eq!(
177 SofiaVariable::SipFromDisplay.to_string(),
178 "sip_from_display"
179 );
180 assert_eq!(
181 SofiaVariable::SofiaProfileName.to_string(),
182 "sofia_profile_name"
183 );
184 }
185
186 #[test]
187 fn as_ref_str() {
188 let v: &str = SofiaVariable::SipNetworkIp.as_ref();
189 assert_eq!(v, "sip_network_ip");
190 }
191
192 #[test]
193 fn from_str_case_insensitive() {
194 assert_eq!(
195 "sip_call_id".parse::<SofiaVariable>(),
196 Ok(SofiaVariable::SipCallId)
197 );
198 assert_eq!(
199 "SIP_CALL_ID".parse::<SofiaVariable>(),
200 Ok(SofiaVariable::SipCallId)
201 );
202 }
203
204 #[test]
205 fn from_str_unknown() {
206 let err = "nonexistent_sip_var".parse::<SofiaVariable>();
207 assert!(err.is_err());
208 }
209}