Class SIPViaSet
Class for managing a list of SIPViaHeader objects
Inherited Members
Namespace: SipLib.Core
Assembly: SipLib.dll
Syntax
public class SIPViaSet
Properties
| Edit this page View SourceBottomViaHeader
Gets the SIPViaHeader at the bottom of the Via set
Declaration
public SIPViaHeader? BottomViaHeader { get; }
Property Value
Type | Description |
---|---|
SIPViaHeader |
Length
Gets the number of Via headers in the Via set
Declaration
public int Length { get; }
Property Value
Type | Description |
---|---|
int |
TopViaHeader
Gets the top-most SIPViaHeader
Declaration
public SIPViaHeader? TopViaHeader { get; }
Property Value
Type | Description |
---|---|
SIPViaHeader |
Via
Gets or sets the list of Via headers
Declaration
public List<SIPViaHeader> Via { get; set; }
Property Value
Type | Description |
---|---|
List<SIPViaHeader> |
Methods
| Edit this page View SourceAddBottomViaHeader(SIPViaHeader)
Adds a SIPViaHeader to the bottom of the Via set
Declaration
public void AddBottomViaHeader(SIPViaHeader viaHeader)
Parameters
Type | Name | Description |
---|---|---|
SIPViaHeader | viaHeader |
PopTopViaHeader()
Pops top Via header off the array.
Declaration
public SIPViaHeader PopTopViaHeader()
Returns
Type | Description |
---|---|
SIPViaHeader | The top Via header |
PushViaHeader(SIPViaHeader)
Pushes a new Via header onto the top of the array.
Declaration
public void PushViaHeader(SIPViaHeader viaHeader)
Parameters
Type | Name | Description |
---|---|---|
SIPViaHeader | viaHeader | The Via header to push onto the top of the Via set. |
ToString()
Converts this SIPViaSet object to a string
Declaration
public string ToString()
Returns
Type | Description |
---|---|
string |
UpateTopViaHeader(IPEndPoint)
Updates the topmost Via header by setting the received and rport parameters to the IP address and port the request came from.
Declaration
public void UpateTopViaHeader(IPEndPoint msgRcvdEndPoint)
Parameters
Type | Name | Description |
---|---|---|
IPEndPoint | msgRcvdEndPoint | The remote endpoint the request was received from. |
Remarks
The setting of the received parameter is documented in RFC3261 section 18.2.1 and in RFC3581 section 4. RFC3581 states that the received parameter value must be set even if it's the same as the address in the sent from field. The setting of the rport parameter is documented in RFC3581 section 4. An attempt was made to comply with the RFC3581 standard and only set the rport parameter if it was included by the client user agent however in the wild there are too many user agents that are behind symmetric NATs not setting an empty rport and if it's not added then they will not be able to communicate.