pub enum TransactionType {
ClientInvite,
ClientNonInvite,
ServerInvite,
ServerNonInvite,
}Expand description
SIP Transaction Type
TransactionType distinguishes between the four types of SIP transactions
as defined in RFC 3261. Each type has different behavior for retransmissions,
timers, and state transitions.
§Types
ClientInvite- Client-side INVITE transaction (UAC INVITE)ClientNonInvite- Client-side non-INVITE transaction (UAC non-INVITE)ServerInvite- Server-side INVITE transaction (UAS INVITE)ServerNonInvite- Server-side non-INVITE transaction (UAS non-INVITE)
§Characteristics
§Client INVITE
- Longer timeouts due to human interaction
- ACK handling for 2xx responses
- CANCEL support for early termination
§Client Non-INVITE
- Shorter timeouts for automated responses
- No ACK required
- Simpler state machine
§Server INVITE
- Must handle ACK for final responses
- Supports provisional responses
- Complex retransmission rules
§Server Non-INVITE
- Simple request/response pattern
- No ACK handling
- Faster completion
§Examples
use rsipstack::transaction::TransactionType;
use rsip::Method;
fn get_transaction_type(method: &Method, is_client: bool) -> TransactionType {
match (method, is_client) {
(Method::Invite, true) => TransactionType::ClientInvite,
(Method::Invite, false) => TransactionType::ServerInvite,
(_, true) => TransactionType::ClientNonInvite,
(_, false) => TransactionType::ServerNonInvite,
}
}Variants§
Trait Implementations§
Source§impl Debug for TransactionType
impl Debug for TransactionType
Source§impl Display for TransactionType
impl Display for TransactionType
Source§impl PartialEq for TransactionType
impl PartialEq for TransactionType
impl StructuralPartialEq for TransactionType
Auto Trait Implementations§
impl Freeze for TransactionType
impl RefUnwindSafe for TransactionType
impl Send for TransactionType
impl Sync for TransactionType
impl Unpin for TransactionType
impl UnwindSafe for TransactionType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more