Skip to main content

HangupCause

Enum HangupCause 

Source
#[non_exhaustive]
#[repr(u16)]
pub enum HangupCause {
Show 82 variants None = 0, UnallocatedNumber = 1, NoRouteTransitNet = 2, NoRouteDestination = 3, ChannelUnacceptable = 6, CallAwardedDelivered = 7, NormalClearing = 16, UserBusy = 17, NoUserResponse = 18, NoAnswer = 19, SubscriberAbsent = 20, CallRejected = 21, NumberChanged = 22, RedirectionToNewDestination = 23, ExchangeRoutingError = 25, DestinationOutOfOrder = 27, InvalidNumberFormat = 28, FacilityRejected = 29, ResponseToStatusEnquiry = 30, NormalUnspecified = 31, NormalCircuitCongestion = 34, NetworkOutOfOrder = 38, NormalTemporaryFailure = 41, SwitchCongestion = 42, AccessInfoDiscarded = 43, RequestedChanUnavail = 44, PreEmpted = 45, FacilityNotSubscribed = 50, OutgoingCallBarred = 52, IncomingCallBarred = 54, BearercapabilityNotauth = 57, BearercapabilityNotavail = 58, ServiceUnavailable = 63, BearercapabilityNotimpl = 65, ChanNotImplemented = 66, FacilityNotImplemented = 69, ServiceNotImplemented = 79, InvalidCallReference = 81, IncompatibleDestination = 88, InvalidMsgUnspecified = 95, MandatoryIeMissing = 96, MessageTypeNonexist = 97, WrongMessage = 98, IeNonexist = 99, InvalidIeContents = 100, WrongCallState = 101, RecoveryOnTimerExpire = 102, MandatoryIeLengthError = 103, ProtocolError = 111, Interworking = 127, Success = 142, OriginatorCancel = 487, Crash = 700, SystemShutdown = 701, LoseRace = 702, ManagerRequest = 703, BlindTransfer = 800, AttendedTransfer = 801, AllottedTimeout = 802, UserChallenge = 803, MediaTimeout = 804, PickedOff = 805, UserNotRegistered = 806, ProgressTimeout = 807, InvalidGateway = 808, GatewayDown = 809, InvalidUrl = 810, InvalidProfile = 811, NoPickup = 812, SrtpReadError = 813, Bowout = 814, BusyEverywhere = 815, Decline = 816, DoesNotExistAnywhere = 817, NotAcceptable = 818, Unwanted = 819, NoIdentity = 820, BadIdentityInfo = 821, UnsupportedCertificate = 822, InvalidIdentity = 823, StaleDate = 824, RejectAll = 825,
}
Expand description

Hangup cause from switch_cause_t (Q.850 + FreeSWITCH extensions).

Carried in the Hangup-Cause header. Wire format is SCREAMING_SNAKE_CASE (e.g. NORMAL_CLEARING). The numeric value matches the Q.850 cause code for standard causes, or a FreeSWITCH-internal range for extensions.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

None = 0

§

UnallocatedNumber = 1

§

NoRouteTransitNet = 2

§

NoRouteDestination = 3

§

ChannelUnacceptable = 6

§

CallAwardedDelivered = 7

§

NormalClearing = 16

§

UserBusy = 17

§

NoUserResponse = 18

§

NoAnswer = 19

§

SubscriberAbsent = 20

§

CallRejected = 21

§

NumberChanged = 22

§

RedirectionToNewDestination = 23

§

ExchangeRoutingError = 25

§

DestinationOutOfOrder = 27

§

InvalidNumberFormat = 28

§

FacilityRejected = 29

§

ResponseToStatusEnquiry = 30

§

NormalUnspecified = 31

§

NormalCircuitCongestion = 34

§

NetworkOutOfOrder = 38

§

NormalTemporaryFailure = 41

§

SwitchCongestion = 42

§

AccessInfoDiscarded = 43

§

RequestedChanUnavail = 44

§

PreEmpted = 45

§

FacilityNotSubscribed = 50

§

OutgoingCallBarred = 52

§

IncomingCallBarred = 54

§

BearercapabilityNotauth = 57

§

BearercapabilityNotavail = 58

§

ServiceUnavailable = 63

§

BearercapabilityNotimpl = 65

§

ChanNotImplemented = 66

§

FacilityNotImplemented = 69

§

ServiceNotImplemented = 79

§

InvalidCallReference = 81

§

IncompatibleDestination = 88

§

InvalidMsgUnspecified = 95

§

MandatoryIeMissing = 96

§

MessageTypeNonexist = 97

§

WrongMessage = 98

§

IeNonexist = 99

§

InvalidIeContents = 100

§

WrongCallState = 101

§

RecoveryOnTimerExpire = 102

§

MandatoryIeLengthError = 103

§

ProtocolError = 111

§

Interworking = 127

§

Success = 142

§

OriginatorCancel = 487

§

Crash = 700

§

SystemShutdown = 701

§

LoseRace = 702

§

ManagerRequest = 703

§

BlindTransfer = 800

§

AttendedTransfer = 801

§

AllottedTimeout = 802

§

UserChallenge = 803

§

MediaTimeout = 804

§

PickedOff = 805

§

UserNotRegistered = 806

§

ProgressTimeout = 807

§

InvalidGateway = 808

§

GatewayDown = 809

§

InvalidUrl = 810

§

InvalidProfile = 811

§

NoPickup = 812

§

SrtpReadError = 813

§

Bowout = 814

§

BusyEverywhere = 815

§

Decline = 816

§

DoesNotExistAnywhere = 817

§

NotAcceptable = 818

§

Unwanted = 819

§

NoIdentity = 820

§

BadIdentityInfo = 821

§

UnsupportedCertificate = 822

§

InvalidIdentity = 823

§

StaleDate = 824

Stale Date (STIR/SHAKEN).

§

RejectAll = 825

Reject all calls.

Implementations§

Source§

impl HangupCause

Source

pub const fn as_str(&self) -> &'static str

Canonical wire-format string.

Source§

impl HangupCause

Source

pub fn from_number(n: u16) -> Option<Self>

Look up by numeric discriminant.

Source

pub fn as_number(&self) -> u16

Numeric discriminant value.

Source§

impl HangupCause

Source

pub fn from_sip_response(code: u16) -> Option<Self>

Map a SIP response code to the corresponding FreeSWITCH hangup cause.

Uses the same mapping as mod_sofia’s sofia_glue_sip_cause_to_freeswitch(). Returns None for codes without an explicit mapping.

Trait Implementations§

Source§

impl Clone for HangupCause

Source§

fn clone(&self) -> HangupCause

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for HangupCause

Source§

impl Debug for HangupCause

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for HangupCause

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for HangupCause

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for HangupCause

Source§

impl FromStr for HangupCause

Source§

type Err = ParseHangupCauseError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for HangupCause

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for HangupCause

Source§

fn eq(&self, other: &HangupCause) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for HangupCause

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for HangupCause

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.