C# 클래스 SIPSorcery.SIP.SIPTransport

Record number of each type of request received.
파일 보기 프로젝트 열기: sipsorcery/sipsorcery 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
BlackholeAddress System.Net.IPAddress
ContactIPAddress System.Net.IPAddress
PerformanceMonitorPrefix string

공개 메소드들

메소드 설명
AddSIPChannel ( List sipChannels ) : void

Adds additional SIP Channels to the transport layer.

AddSIPChannel ( SIPChannel sipChannel ) : void

Adds an additional SIP Channel to the transport layer.

CreateCancelTransaction ( SIPRequest sipRequest, SIPEndPoint dstEndPoint, SIPEndPoint localSIPEndPoint, UASInviteTransaction inviteTransaction ) : SIPCancelTransaction
CreateNonInviteTransaction ( SIPRequest sipRequest, SIPEndPoint dstEndPoint, SIPEndPoint localSIPEndPoint, SIPEndPoint outboundProxy ) : SIPNonInviteTransaction
CreateUACTransaction ( SIPRequest sipRequest, SIPEndPoint dstEndPoint, SIPEndPoint localSIPEndPoint, SIPEndPoint outboundProxy, bool sendOkAckManually = false ) : UACInviteTransaction
CreateUASTransaction ( SIPRequest sipRequest, SIPEndPoint dstEndPoint, SIPEndPoint localSIPEndPoint, SIPEndPoint outboundProxy, bool noCDR = false ) : UASInviteTransaction
DoesTransactionExist ( SIPRequest sipRequest ) : bool
FindSIPChannel ( SIPEndPoint localSIPEndPoint ) : SIPChannel

Attempts to match a SIPChannel for this process that has the specified local end point and protocol.

GetDefaultSIPEndPoint ( ) : SIPEndPoint
GetDefaultSIPEndPoint ( SIPEndPoint destinationEP ) : SIPEndPoint
GetDefaultSIPEndPoint ( SIPProtocolsEnum protocol ) : SIPEndPoint
GetDefaultTransportContact ( SIPProtocolsEnum protocol ) : SIPEndPoint
GetHostEndPoint ( string host, bool async ) : SIPDNSLookupResult
GetListeningSIPEndPoints ( ) : List
GetRequest ( SIPMethodsEnum method, SIPURI uri ) : SIPRequest
GetRequest ( SIPMethodsEnum method, SIPURI uri, SIPToHeader to, SIPEndPoint localSIPEndPoint ) : SIPRequest
GetRequestEndPoint ( SIPRequest sipRequest, SIPEndPoint outboundProxy, bool async ) : SIPDNSLookupResult

Based on the information in the SIP request attempts to determine the end point the request should be sent to.

GetResponse ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPResponseStatusCodesEnum responseCode, string reasonPhrase ) : SIPResponse

Used to create a SIP response when it was not possible to parse the incoming SIP request.

GetResponse ( SIPRequest sipRequest, SIPResponseStatusCodesEnum responseCode, string reasonPhrase ) : SIPResponse
GetTransaction ( SIPRequest sipRequest ) : SIPTransaction
GetTransaction ( string transactionId ) : SIPTransaction
GetURIEndPoint ( SIPURI uri, bool async ) : SIPDNSLookupResult
IsLocalSIPEndPoint ( SIPEndPoint sipEndPoint ) : bool
PreProcessRouteInfo ( SIPRequest sipRequest ) : void

This function performs processing on a request to handle any actions that need to be taken based on the Route header.

The main sections in the RFC3261 dealing with Route header processing are sections 12.2.1.1 for request processing and 16.4 for proxy processing. The steps to process requests for Route headers are: 1. If route set is empty no further action is required, forward to destination resolved from request URI, 2. If the request URI is identified as a value that was previously set as a Route by this SIP agent it means the previous hop was a strict router. Replace the reqest URI with the last Route header and go to next step, 3. If the top most route header was set by this SIP agent then remove it and go to next step, 4. If the top most route set does contain the lr parameter then forward to the destination resolved by it, 5. If the top most route header does NOT contain the lr parameter is must be popped and inserted as the request URI and the original request URI must be added to the end of the route set, forward to destination resolved from request URI,

ReceiveMessage ( SIPChannel sipChannel, SIPEndPoint remoteEndPoint, byte buffer ) : void
RemoveSIPChannel ( SIPChannel sipChannel ) : void
SIPTransport ( ResolveSIPEndPointDelegate sipResolver, SIPTransactionEngine transactionEngine ) : NUnit.Framework
SIPTransport ( ResolveSIPEndPointDelegate sipResolver, SIPTransactionEngine transactionEngine, SIPChannel sipChannel, bool queueIncoming ) : NUnit.Framework
SIPTransport ( ResolveSIPEndPointDelegate sipResolver, SIPTransactionEngine transactionEngine, bool queueIncoming ) : NUnit.Framework
SendRaw ( SIPEndPoint localSIPEndPoint, SIPEndPoint destinationEndPoint, byte buffer ) : void

Allows raw bytes to be sent from one of the SIPTransport sockets. This should not be used for SIP payloads and instead is provided to allow other types of payloads to be multi-plexed on the SIP socket. Examples are sending NAT keep alives and STUN responses where it's useful to use the same socket as the SIP packets.

SendRequest ( SIPEndPoint dstEndPoint, SIPRequest sipRequest ) : void
SendRequest ( SIPRequest sipRequest ) : void
SendResponse ( SIPEndPoint dstEndPoint, SIPResponse sipResponse ) : void
SendResponse ( SIPResponse sipResponse ) : void
SendSIPReliable ( SIPTransaction sipTransaction ) : void

Sends a SIP request/response and keeps track of whether a response/acknowledgement has been received. If no response is received then periodic retransmits are made for up to T1 x 64 seconds.

Shutdown ( ) : void

비공개 메소드들

메소드 설명
CheckTransactionEngineExists ( ) : void
FireSIPBadRequestInTraceEvent ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, string message, SIPValidationFieldsEnum sipErrorField, string rawMessage ) : void
FireSIPBadResponseInTraceEvent ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, string message, SIPValidationFieldsEnum sipErrorField, string rawMessage ) : void
FireSIPRequestInTraceEvent ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPRequest sipRequest ) : void
FireSIPRequestOutTraceEvent ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPRequest sipRequest ) : void
FireSIPResponseInTraceEvent ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPResponse sipResponse ) : void
FireSIPResponseOutTraceEvent ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPResponse sipResponse ) : void
GetDefaultChannel ( SIPProtocolsEnum protocol ) : SIPChannel

Returns the first SIPChannel found for the requested protocol.

ProcessInMessage ( ) : void
ProcessPendingReliableTransactions ( ) : void
SIPMessageReceived ( SIPChannel sipChannel, SIPEndPoint remoteEndPoint, byte buffer ) : void
SendRequest ( SIPChannel sipChannel, SIPEndPoint dstEndPoint, SIPRequest sipRequest ) : void
SendResponse ( SIPChannel sipChannel, SIPEndPoint dstEndPoint, SIPResponse sipResponse ) : void
SendResponse ( SIPChannel sipChannel, SIPResponse sipResponse ) : void
StartReliableTransmissionsThread ( ) : void
StartTransportThread ( ) : void

메소드 상세

AddSIPChannel() 공개 메소드

Adds additional SIP Channels to the transport layer.
public AddSIPChannel ( List sipChannels ) : void
sipChannels List
리턴 void

AddSIPChannel() 공개 메소드

Adds an additional SIP Channel to the transport layer.
public AddSIPChannel ( SIPChannel sipChannel ) : void
sipChannel SIPChannel
리턴 void

CreateCancelTransaction() 공개 메소드

public CreateCancelTransaction ( SIPRequest sipRequest, SIPEndPoint dstEndPoint, SIPEndPoint localSIPEndPoint, UASInviteTransaction inviteTransaction ) : SIPCancelTransaction
sipRequest SIPRequest
dstEndPoint SIPEndPoint
localSIPEndPoint SIPEndPoint
inviteTransaction UASInviteTransaction
리턴 SIPCancelTransaction

CreateNonInviteTransaction() 공개 메소드

public CreateNonInviteTransaction ( SIPRequest sipRequest, SIPEndPoint dstEndPoint, SIPEndPoint localSIPEndPoint, SIPEndPoint outboundProxy ) : SIPNonInviteTransaction
sipRequest SIPRequest
dstEndPoint SIPEndPoint
localSIPEndPoint SIPEndPoint
outboundProxy SIPEndPoint
리턴 SIPNonInviteTransaction

CreateUACTransaction() 공개 메소드

public CreateUACTransaction ( SIPRequest sipRequest, SIPEndPoint dstEndPoint, SIPEndPoint localSIPEndPoint, SIPEndPoint outboundProxy, bool sendOkAckManually = false ) : UACInviteTransaction
sipRequest SIPRequest
dstEndPoint SIPEndPoint
localSIPEndPoint SIPEndPoint
outboundProxy SIPEndPoint
sendOkAckManually bool
리턴 UACInviteTransaction

CreateUASTransaction() 공개 메소드

public CreateUASTransaction ( SIPRequest sipRequest, SIPEndPoint dstEndPoint, SIPEndPoint localSIPEndPoint, SIPEndPoint outboundProxy, bool noCDR = false ) : UASInviteTransaction
sipRequest SIPRequest
dstEndPoint SIPEndPoint
localSIPEndPoint SIPEndPoint
outboundProxy SIPEndPoint
noCDR bool
리턴 UASInviteTransaction

DoesTransactionExist() 공개 메소드

public DoesTransactionExist ( SIPRequest sipRequest ) : bool
sipRequest SIPRequest
리턴 bool

FindSIPChannel() 공개 메소드

Attempts to match a SIPChannel for this process that has the specified local end point and protocol.
public FindSIPChannel ( SIPEndPoint localSIPEndPoint ) : SIPChannel
localSIPEndPoint SIPEndPoint
리턴 SIPChannel

GetDefaultSIPEndPoint() 공개 메소드

public GetDefaultSIPEndPoint ( ) : SIPEndPoint
리턴 SIPEndPoint

GetDefaultSIPEndPoint() 공개 메소드

public GetDefaultSIPEndPoint ( SIPEndPoint destinationEP ) : SIPEndPoint
destinationEP SIPEndPoint
리턴 SIPEndPoint

GetDefaultSIPEndPoint() 공개 메소드

public GetDefaultSIPEndPoint ( SIPProtocolsEnum protocol ) : SIPEndPoint
protocol SIPProtocolsEnum
리턴 SIPEndPoint

GetDefaultTransportContact() 공개 메소드

public GetDefaultTransportContact ( SIPProtocolsEnum protocol ) : SIPEndPoint
protocol SIPProtocolsEnum
리턴 SIPEndPoint

GetHostEndPoint() 공개 메소드

public GetHostEndPoint ( string host, bool async ) : SIPDNSLookupResult
host string
async bool
리턴 SIPDNSLookupResult

GetListeningSIPEndPoints() 공개 메소드

public GetListeningSIPEndPoints ( ) : List
리턴 List

GetRequest() 공개 메소드

public GetRequest ( SIPMethodsEnum method, SIPURI uri ) : SIPRequest
method SIPMethodsEnum
uri SIPURI
리턴 SIPRequest

GetRequest() 공개 메소드

public GetRequest ( SIPMethodsEnum method, SIPURI uri, SIPToHeader to, SIPEndPoint localSIPEndPoint ) : SIPRequest
method SIPMethodsEnum
uri SIPURI
to SIPToHeader
localSIPEndPoint SIPEndPoint
리턴 SIPRequest

GetRequestEndPoint() 공개 메소드

Based on the information in the SIP request attempts to determine the end point the request should be sent to.
public GetRequestEndPoint ( SIPRequest sipRequest, SIPEndPoint outboundProxy, bool async ) : SIPDNSLookupResult
sipRequest SIPRequest
outboundProxy SIPEndPoint
async bool
리턴 SIPDNSLookupResult

GetResponse() 공개 메소드

Used to create a SIP response when it was not possible to parse the incoming SIP request.
public GetResponse ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPResponseStatusCodesEnum responseCode, string reasonPhrase ) : SIPResponse
localSIPEndPoint SIPEndPoint
remoteEndPoint SIPEndPoint
responseCode SIPResponseStatusCodesEnum
reasonPhrase string
리턴 SIPResponse

GetResponse() 공개 정적인 메소드

public static GetResponse ( SIPRequest sipRequest, SIPResponseStatusCodesEnum responseCode, string reasonPhrase ) : SIPResponse
sipRequest SIPRequest
responseCode SIPResponseStatusCodesEnum
reasonPhrase string
리턴 SIPResponse

GetTransaction() 공개 메소드

public GetTransaction ( SIPRequest sipRequest ) : SIPTransaction
sipRequest SIPRequest
리턴 SIPTransaction

GetTransaction() 공개 메소드

public GetTransaction ( string transactionId ) : SIPTransaction
transactionId string
리턴 SIPTransaction

GetURIEndPoint() 공개 메소드

public GetURIEndPoint ( SIPURI uri, bool async ) : SIPDNSLookupResult
uri SIPURI
async bool
리턴 SIPDNSLookupResult

IsLocalSIPEndPoint() 공개 메소드

public IsLocalSIPEndPoint ( SIPEndPoint sipEndPoint ) : bool
sipEndPoint SIPEndPoint
리턴 bool

PreProcessRouteInfo() 공개 메소드

This function performs processing on a request to handle any actions that need to be taken based on the Route header.
The main sections in the RFC3261 dealing with Route header processing are sections 12.2.1.1 for request processing and 16.4 for proxy processing. The steps to process requests for Route headers are: 1. If route set is empty no further action is required, forward to destination resolved from request URI, 2. If the request URI is identified as a value that was previously set as a Route by this SIP agent it means the previous hop was a strict router. Replace the reqest URI with the last Route header and go to next step, 3. If the top most route header was set by this SIP agent then remove it and go to next step, 4. If the top most route set does contain the lr parameter then forward to the destination resolved by it, 5. If the top most route header does NOT contain the lr parameter is must be popped and inserted as the request URI and the original request URI must be added to the end of the route set, forward to destination resolved from request URI,
public PreProcessRouteInfo ( SIPRequest sipRequest ) : void
sipRequest SIPRequest
리턴 void

ReceiveMessage() 공개 메소드

public ReceiveMessage ( SIPChannel sipChannel, SIPEndPoint remoteEndPoint, byte buffer ) : void
sipChannel SIPChannel
remoteEndPoint SIPEndPoint
buffer byte
리턴 void

RemoveSIPChannel() 공개 메소드

public RemoveSIPChannel ( SIPChannel sipChannel ) : void
sipChannel SIPChannel
리턴 void

SIPTransport() 공개 메소드

public SIPTransport ( ResolveSIPEndPointDelegate sipResolver, SIPTransactionEngine transactionEngine ) : NUnit.Framework
sipResolver ResolveSIPEndPointDelegate
transactionEngine SIPTransactionEngine
리턴 NUnit.Framework

SIPTransport() 공개 메소드

public SIPTransport ( ResolveSIPEndPointDelegate sipResolver, SIPTransactionEngine transactionEngine, SIPChannel sipChannel, bool queueIncoming ) : NUnit.Framework
sipResolver ResolveSIPEndPointDelegate
transactionEngine SIPTransactionEngine
sipChannel SIPChannel
queueIncoming bool
리턴 NUnit.Framework

SIPTransport() 공개 메소드

public SIPTransport ( ResolveSIPEndPointDelegate sipResolver, SIPTransactionEngine transactionEngine, bool queueIncoming ) : NUnit.Framework
sipResolver ResolveSIPEndPointDelegate
transactionEngine SIPTransactionEngine
queueIncoming bool
리턴 NUnit.Framework

SendRaw() 공개 메소드

Allows raw bytes to be sent from one of the SIPTransport sockets. This should not be used for SIP payloads and instead is provided to allow other types of payloads to be multi-plexed on the SIP socket. Examples are sending NAT keep alives and STUN responses where it's useful to use the same socket as the SIP packets.
public SendRaw ( SIPEndPoint localSIPEndPoint, SIPEndPoint destinationEndPoint, byte buffer ) : void
localSIPEndPoint SIPEndPoint
destinationEndPoint SIPEndPoint
buffer byte
리턴 void

SendRequest() 공개 메소드

public SendRequest ( SIPEndPoint dstEndPoint, SIPRequest sipRequest ) : void
dstEndPoint SIPEndPoint
sipRequest SIPRequest
리턴 void

SendRequest() 공개 메소드

public SendRequest ( SIPRequest sipRequest ) : void
sipRequest SIPRequest
리턴 void

SendResponse() 공개 메소드

public SendResponse ( SIPEndPoint dstEndPoint, SIPResponse sipResponse ) : void
dstEndPoint SIPEndPoint
sipResponse SIPResponse
리턴 void

SendResponse() 공개 메소드

public SendResponse ( SIPResponse sipResponse ) : void
sipResponse SIPResponse
리턴 void

SendSIPReliable() 공개 메소드

Sends a SIP request/response and keeps track of whether a response/acknowledgement has been received. If no response is received then periodic retransmits are made for up to T1 x 64 seconds.
public SendSIPReliable ( SIPTransaction sipTransaction ) : void
sipTransaction SIPTransaction
리턴 void

Shutdown() 공개 메소드

public Shutdown ( ) : void
리턴 void

프로퍼티 상세

BlackholeAddress 공개적으로 정적으로 프로퍼티

public static IPAddress,System.Net BlackholeAddress
리턴 System.Net.IPAddress

ContactIPAddress 공개적으로 프로퍼티

public IPAddress,System.Net ContactIPAddress
리턴 System.Net.IPAddress

PerformanceMonitorPrefix 공개적으로 프로퍼티

public string PerformanceMonitorPrefix
리턴 string