• Articles
  • Api Documentation
Search Results for

    Show / Hide Table of Contents
    • SipLib.Body
      • BodyParser
      • ContentTypes
      • MessageContentsContainer
      • MultipartBinaryBodyBuilder
      • SipBodyBuilder
    • SipLib.Channels
      • AcceptCertificateDelegate
      • AcceptConnectionDelegate
      • DscpSettings
      • LogInvalidSipMessageDelegate
      • LogSipRequestDelegate
      • LogSipResponseDelegate
      • Qos
      • SIPChannel
      • SIPConnection
      • SIPConnectionDisconnectedDelegate
      • SIPConnectionsEnum
      • SIPMessageReceivedDelegate
      • SIPTCPChannel
      • SIPTLSChannel
      • SIPUDPChannel
      • SipConnectionFailedDelegate
      • SipRequestReceivedDelegate
      • SipResponseReceivedDelegate
      • SipTransactionCompleteDelegate
      • WindowsQos
    • SipLib.Collections
      • ThreadSafeGenericList<T>
    • SipLib.Core
      • ByteBufferInfo
      • CallProperties
      • Crypto
      • HTTPDigest
      • IPSocket
      • SIPAuthenticationHeader
      • SIPAuthorisationDigest
      • SIPAuthorisationHeadersEnum
      • SIPCallInfoHeader
      • SIPConstants
      • SIPContactHeader
      • SIPEndPoint
      • SIPEscape
      • SIPFrag
      • SIPFromHeader
      • SIPGeolocationHeader
      • SIPHeader
      • SIPHeaders
      • SIPMessage
      • SIPMessageTypesEnum
      • SIPMethods
      • SIPMethodsEnum
      • SIPPaiHeader
      • SIPParameters
      • SIPPpiHeader
      • SIPProtocolsEnum
      • SIPProtocolsType
      • SIPReplacesParameter
      • SIPRequest
      • SIPResponse
      • SIPResponseStatusCodes
      • SIPResponseStatusCodesEnum
      • SIPRoute
      • SIPRouteSet
      • SIPSchemesEnum
      • SIPSchemesType
      • SIPToHeader
      • SIPURI
      • SIPUserField
      • SIPValidationException
      • SIPValidationFieldsEnum
      • SIPViaHeader
      • SIPViaSet
      • SipUtils
      • TypeExtensions
    • SipLib.Dtls
      • AlertLevelsEnum
      • AlertTypesEnum
      • DtlsClientUdpTransport
      • DtlsServerUdpTransport
      • DtlsSrtpClient
      • DtlsSrtpServer
      • DtlsSrtpTransport
      • DtlsUtils
      • IDtlsSrtpPeer
      • IPacketTransformer
      • ITransformEngine
      • NetConvert
      • RTCDtlsFingerprint
      • RawPacket
      • SrtcpCryptoContext
      • SrtpPolicy
      • SrtpTransformEngine
      • SrtpTransformer
    • SipLib.Logging
      • SipLogger
    • SipLib.Media
      • ALawDecoder
      • ALawEncoder
      • AudioDestination
      • AudioDestinationDelegate
      • AudioSampleData
      • AudioSamplesReadyDelegate
      • AudioSource
      • Band
      • DtmfDigitReceivedDelegate
      • FileAudioSource
      • G722Codec
      • G722CodecState
      • G722Decoder
      • G722Encoder
      • G722Flags
      • HighResolutionTimer
      • HighResolutionTimerDelegate
      • IAudioDecoder
      • IAudioEncoder
      • IAudioSampleSource
      • MediaPortManager
      • MediaPortSettings
      • MediaTypes
      • MsrpEncryptionEnum
      • MuLawDecoder
      • MuLawEncoder
      • PcmaDecoder
      • PcmaEncoder
      • PcmuDecoder
      • PcmuEncoder
      • PortRange
      • RtpEncryptionEnum
    • SipLib.Msrp
      • ByteRangeHeader
      • CpimMessage
      • MsrpCompletionStatus
      • MsrpConnection
      • MsrpConnectionStatusDelegate
      • MsrpMessage
      • MsrpMessageDeliveryFailedDelegate
      • MsrpMessageReceivedDelegate
      • MsrpMessageSentDelegate
      • MsrpMessageType
      • MsrpPathHeader
      • MsrpStatusHeader
      • MsrpStreamParser
      • MsrpTextMessageReceivedDelegate
      • MsrpUri
      • ReportReceivedDelegate
    • SipLib.Network
      • IpUtils
    • SipLib.RealTimeText
      • RttCharactersReceivedDelegate
      • RttParameters
      • RttReceiver
      • RttRtpSendDelegate
      • RttSender
    • SipLib.Rtp
      • ByePacket
      • DtlsHandshakeFailedDelegate
      • DtmfEventEnum
      • DtmfPacket
      • JitterStatistics
      • MeanOpinionScore
      • ReceiveStatisticsReadyDelegate
      • ReceiverReport
      • ReportBlock
      • RtcpCompoundPacket
      • RtcpHeader
      • RtcpPacketReceivedDelegate
      • RtcpPacketSentDelegate
      • RtcpPacketType
      • RtpChannel
      • RtpPacket
      • RtpPacketReceivedDelegate
      • RtpPacketSentDelegate
      • RtpReceiveStatistics
      • RtpUtils
      • SdesChunk
      • SdesItem
      • SdesItemType
      • SdesPacket
      • SenderInfo
      • SenderReport
    • SipLib.RtpCrypto
      • AesFunctions
      • CryptoAttribute
      • CryptoContext
      • CryptoSuites
      • InlineParams
      • MasterKeys
      • RocVals
      • RocValues
      • SRtpErrorsEnum
      • SRtpUtils
      • SessionKeys
      • SrtpDecryptor
      • SrtpEncryptor
      • SrtpLabelItem
      • SrtpTransformBase
    • SipLib.Sdp
      • ConnectionData
      • MediaDescription
      • MediaDirectionEnum
      • Origin
      • RtpMapAttribute
      • Sdp
      • SdpAnswerSettings
      • SdpAttribute
      • SdpUtils
      • SetupType
    • SipLib.Threading
      • QueuedActionWorkerTask
    • SipLib.Transactions
      • ClientInviteTransaction
      • ClientNonInviteTransaction
      • ServerInviteTransaction
      • ServerNonInviteTransaction
      • SipTimers
      • SipTransactionBase
      • SipTransport
      • TransactionRequestReceivedDelegate
      • TransactionResponseReceivedDelegate
      • TransactionStateEnum
      • TransactionTerminationReasonEnum
    • SipLib.Video
      • H264Depacketiser
      • H264Packetiser
      • H264Packetiser.H264Nal
      • H264RtpReceiver
      • H264RtpSender
      • RtpSendDelegate
      • RtpVP8Header
      • VP8RtpReceiver
      • VP8RtpSender
      • VideoRtpReceiver
      • VideoRtpSender

    Class SIPViaHeader

    The Via header only has parameters, no headers. Parameters of from ...;name= value;name2=value2 Specific parameters: ttl, maddr, received, branch.

    From page 179 of RFC3261: "Even though this specification mandates that the branch parameter be present in all requests, the BNF for the header field indicates that it is optional."

    The branch parameter on a Via therefore appears to be optionally mandatory?!

    Any SIP application element that uses transactions depends on the branch parameter for transaction matching. Only the top Via header branch is used for transactions though so if the request has made it to this stack with missing branches then in theory it should be safe to proceed. It will be left up to the SIPTransaction class to reject any SIP requests that are missing the necessary branch.

    Inheritance
    object
    SIPViaHeader
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: SipLib.Core
    Assembly: SipLib.dll
    Syntax
    public class SIPViaHeader

    Constructors

    | Edit this page View Source

    SIPViaHeader()

    Constructor

    Declaration
    public SIPViaHeader()
    | Edit this page View Source

    SIPViaHeader(SIPEndPoint, string)

    Constructs a SIPViaHeader object from the local SIPEndPoint and a branch parameter

    Declaration
    public SIPViaHeader(SIPEndPoint localEndPoint, string branch)
    Parameters
    Type Name Description
    SIPEndPoint localEndPoint

    Local SIPEndPoint

    string branch

    Branch parameter

    | Edit this page View Source

    SIPViaHeader(IPEndPoint, string, SIPProtocolsEnum)

    Constructs a new SIPViaHeader object from an IPEndPoint, a branch parameter and a protocol

    Declaration
    public SIPViaHeader(IPEndPoint contactEndPoint, string branch, SIPProtocolsEnum protocol)
    Parameters
    Type Name Description
    IPEndPoint contactEndPoint

    Contact IPEndPoint

    string branch

    Branch parameter

    SIPProtocolsEnum protocol

    Transport protocol

    | Edit this page View Source

    SIPViaHeader(string, int, string)

    Constructor

    Declaration
    public SIPViaHeader(string contactIPAddress, int contactPort, string branch)
    Parameters
    Type Name Description
    string contactIPAddress

    Contact IP address as a string

    int contactPort

    Contact port number

    string branch

    Via branch parameter

    | Edit this page View Source

    SIPViaHeader(string, int, string, SIPProtocolsEnum)

    Constructor

    Declaration
    public SIPViaHeader(string contactIPAddress, int contactPort, string branch, SIPProtocolsEnum protocol)
    Parameters
    Type Name Description
    string contactIPAddress

    Contract address for the Via header

    int contactPort

    Contact port number

    string branch

    Via header branch parameter

    SIPProtocolsEnum protocol

    Transport protocol

    Fields

    | Edit this page View Source

    Host

    Host portion of the URI

    Declaration
    public string? Host
    Field Value
    Type Description
    string
    | Edit this page View Source

    Port

    Port number

    Declaration
    public int Port
    Field Value
    Type Description
    int
    | Edit this page View Source

    Transport

    Transport protocol

    Declaration
    public SIPProtocolsEnum Transport
    Field Value
    Type Description
    SIPProtocolsEnum
    | Edit this page View Source

    Version

    Version parameter

    Declaration
    public string? Version
    Field Value
    Type Description
    string
    | Edit this page View Source

    ViaParameters

    Contains the Via header parameters

    Declaration
    public SIPParameters? ViaParameters
    Field Value
    Type Description
    SIPParameters

    Properties

    | Edit this page View Source

    Branch

    Gets or sets the branch parameter

    Declaration
    public string? Branch { get; set; }
    Property Value
    Type Description
    string
    | Edit this page View Source

    ContactAddress

    This the address placed into the Via header by the User Agent.

    Declaration
    public string ContactAddress { get; }
    Property Value
    Type Description
    string
    | Edit this page View Source

    ReceivedFromAddress

    This is the socket the request was received on and is a combination of the Host and Received fields.

    Declaration
    public string? ReceivedFromAddress { get; }
    Property Value
    Type Description
    string
    | Edit this page View Source

    ReceivedFromIPAddress

    IP Address contained in the recevied parameter.

    Declaration
    public string? ReceivedFromIPAddress { get; set; }
    Property Value
    Type Description
    string
    | Edit this page View Source

    ReceivedFromPort

    Port contained in the rport parameter.

    Declaration
    public int ReceivedFromPort { get; set; }
    Property Value
    Type Description
    int

    Methods

    | Edit this page View Source

    ParseSIPViaHeader(string)

    Parses a SIP Via header

    Declaration
    public static SIPViaHeader[] ParseSIPViaHeader(string viaHeaderStr)
    Parameters
    Type Name Description
    string viaHeaderStr

    Input string

    Returns
    Type Description
    SIPViaHeader[]

    Returns a new SIPViaHeader

    | Edit this page View Source

    ToString()

    Convers this SIPViaHeader object to a string

    Declaration
    public string ToString()
    Returns
    Type Description
    string
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX