C# Class SIPSorcery.SIP.SIPViaSet

Show file Open project: sipsorcery/sipsorcery Class Usage Examples

Public Methods

Method Description
AddBottomViaHeader ( SIPViaHeader viaHeader ) : void
PopTopViaHeader ( ) : SIPViaHeader

Pops top Via header off the array.

PushViaHeader ( SIPViaHeader viaHeader ) : void

Pushes a new Via header onto the top of the array.

ToString ( ) : string
UpateTopViaHeader ( IPEndPoint msgRcvdEndPoint ) : void

Updates the topmost Via header by setting the received and rport parameters to the IP address and port the request came from.

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.

Method Details

AddBottomViaHeader() public method

public AddBottomViaHeader ( SIPViaHeader viaHeader ) : void
viaHeader SIPViaHeader
return void

PopTopViaHeader() public method

Pops top Via header off the array.
public PopTopViaHeader ( ) : SIPViaHeader
return SIPViaHeader

PushViaHeader() public method

Pushes a new Via header onto the top of the array.
public PushViaHeader ( SIPViaHeader viaHeader ) : void
viaHeader SIPViaHeader
return void

ToString() public method

public ToString ( ) : string
return string

UpateTopViaHeader() public method

Updates the topmost Via header by setting the received and rport parameters to the IP address and port the request came from.
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.
public UpateTopViaHeader ( IPEndPoint msgRcvdEndPoint ) : void
msgRcvdEndPoint System.Net.IPEndPoint The remote endpoint the request was received from.
return void