C# 클래스 SIPSorcery.Servers.SIPDialogueManager

상속: ISIPDialogueManager
파일 보기 프로젝트 열기: sipsorcery/sipsorcery 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
PublicIPAddress System.Net.IPAddress

공개 메소드들

메소드 설명
CallHungup ( SIPDialogue sipDialogue, string hangupCause, bool sendBYEForOriginDialogue ) : void

This method takes the necessary actions to terminate a bridged call.

CreateDialogueBridge ( SIPDialogue clientDiaglogue, SIPDialogue forwardedDialogue, string owner ) : void
DialogueTransfer ( SIPDialogue deadDialogue, SIPDialogue orphanedDialogue, SIPDialogue answeredDialogue ) : void

Performs transfer between 3 established dialogues (answered calls). The dead dialogue is being replaced by the answered dialogue such that a bridged call between the dead and orphaned dialogues now becomes one between the orphaned and answered dialogues.

DualTransfer ( string username, string callID1, string callID2 ) : void

An attended transfer between two separate established calls where one leg of each call is being transferred to the other.

GetDialogue ( SIPRequest sipRequest ) : SIPDialogue

Attempts to locate a dialogue for an in-dialogue transaction.

GetDialogue ( string replaces ) : SIPDialogue
GetDialogue ( string callId, string localTag, string remoteTag ) : SIPDialogue
GetDialogueRelaxed ( string owner, string callIdentifier ) : SIPDialogue

This method applies very liberal rules to find a matching dialogue: 1. Treat the call identifier as a Call-ID, 2. If no dialogue matches for that try with the call identifier as the from username on the local user field,

GetOppositeDialogue ( SIPDialogue dialogue ) : SIPDialogue

Retrieves the other end of a call given the dialogue from one end.

ProcessInDialogueReferRequest ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPRequest sipRequest, SIPDialogue dialogue, Func blindTransfer ) : void
ProcessInDialogueRequest ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPRequest sipRequest, SIPDialogue dialogue ) : void
ReInvite ( SIPDialogue dialogue, SIPDialogue substituteDialogue ) : void

Attempts to reinvite an existing end of a call by sending a new SDP.

SIPDialogueManager ( SIPTransport sipTransport, SIPEndPoint outboundProxy, SIPMonitorLogDelegate logDelegate, SIPAssetPersistor sipDialoguePersistor, SIPAssetPersistor sipCDRPersistor, SIPAuthenticateRequestDelegate authenticateRequestDelegate, SIPAssetGetDelegate getSIPAccount, GetCanonicalDomainDelegate getCanonicalDomain ) : System

비공개 메소드들

메소드 설명
AuthenticateReferRequest ( SIPNonInviteTransaction referTransaction, string sipUsername, string sipDomain ) : bool
ForwardInDialogueRequest ( SIPDialogue dialogue, SIPTransaction inDialogueTransaction, SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint ) : void
GetInviteRequest ( SIPDialogue dialogue, SIPEndPoint localSIPEndPoint, string body ) : SIPRequest
GetNotifyRequest ( SIPRequest referRequest, SIPDialogue referDialogue, SIPResponse referResponse, SIPEndPoint localEndPoint ) : SIPRequest

Constructs a NOTIFY request to send within the implicit subscription created when processing a REFER request.

From RFC 3515 2.4.5: The body of a NOTIFY MUST begin with a SIP Response Status-Line...

HangupDialogue ( SIPDialogue dialogue, string hangupCause, bool sendBye ) : void
InDialogueTransactionFinalResponseReceived ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPTransaction sipTransaction, SIPResponse sipResponse ) : void
InDialogueTransactionInfoResponseReceived ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPTransaction sipTransaction, SIPResponse sipResponse ) : void
InDialogueTransactionRemoved ( SIPTransaction sipTransaction ) : void
ProcessAttendedRefer ( SIPDialogue dialogue, SIPNonInviteTransaction referTransaction, SIPRequest referRequest, SIPEndPoint localEndPoint, SIPEndPoint remoteEndPoint ) : void

Performs an attended transfer based on a REFER request with a Replaces parameter on the Refer-To header.

ReInviteTransactionFinalResponseReceived ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPTransaction sipTransaction, SIPResponse sipResponse ) : void
SendNotifyRequestForRefer ( SIPRequest referRequest, SIPDialogue referDialogue, SIPEndPoint localEndPoint, SIPResponseStatusCodesEnum responseCode, string responseReason ) : void

메소드 상세

CallHungup() 공개 메소드

This method takes the necessary actions to terminate a bridged call.
public CallHungup ( SIPDialogue sipDialogue, string hangupCause, bool sendBYEForOriginDialogue ) : void
sipDialogue SIPSorcery.SIP.SIPDialogue The dialogue that the BYE request was received on.
hangupCause string If present an informational field to indicate the hangup cause.
sendBYEForOriginDialogue bool If true means a BYE should be sent for the origin dialogue as well. This is used when a 3rd party /// call control agent is attempting to hangup a call.
리턴 void

CreateDialogueBridge() 공개 메소드

public CreateDialogueBridge ( SIPDialogue clientDiaglogue, SIPDialogue forwardedDialogue, string owner ) : void
clientDiaglogue SIPSorcery.SIP.SIPDialogue
forwardedDialogue SIPSorcery.SIP.SIPDialogue
owner string
리턴 void

DialogueTransfer() 공개 메소드

Performs transfer between 3 established dialogues (answered calls). The dead dialogue is being replaced by the answered dialogue such that a bridged call between the dead and orphaned dialogues now becomes one between the orphaned and answered dialogues.
public DialogueTransfer ( SIPDialogue deadDialogue, SIPDialogue orphanedDialogue, SIPDialogue answeredDialogue ) : void
deadDialogue SIPSorcery.SIP.SIPDialogue The dialogue that will be terminated.
orphanedDialogue SIPSorcery.SIP.SIPDialogue The opposite side of the dead dialogue that will be bridged with the answered dialogue.
answeredDialogue SIPSorcery.SIP.SIPDialogue The newly answered dialogue that will be bridged with the orpahned dialogue.
리턴 void

DualTransfer() 공개 메소드

An attended transfer between two separate established calls where one leg of each call is being transferred to the other.
public DualTransfer ( string username, string callID1, string callID2 ) : void
username string
callID1 string The Call-ID of the first call leg that is no longer required and of which the opposite end will be transferred.
callID2 string The Call-ID of the second call leg that is no longer required and of which the opposite end will be transferred.
리턴 void

GetDialogue() 공개 메소드

Attempts to locate a dialogue for an in-dialogue transaction.
public GetDialogue ( SIPRequest sipRequest ) : SIPDialogue
sipRequest SIPSorcery.SIP.SIPRequest
리턴 SIPSorcery.SIP.SIPDialogue

GetDialogue() 공개 메소드

public GetDialogue ( string replaces ) : SIPDialogue
replaces string
리턴 SIPSorcery.SIP.SIPDialogue

GetDialogue() 공개 메소드

public GetDialogue ( string callId, string localTag, string remoteTag ) : SIPDialogue
callId string
localTag string
remoteTag string
리턴 SIPSorcery.SIP.SIPDialogue

GetDialogueRelaxed() 공개 메소드

This method applies very liberal rules to find a matching dialogue: 1. Treat the call identifier as a Call-ID, 2. If no dialogue matches for that try with the call identifier as the from username on the local user field,
public GetDialogueRelaxed ( string owner, string callIdentifier ) : SIPDialogue
owner string The dialogue owner to use when attempting to find a match.
callIdentifier string A call identifier field to try and match a dialogue against.
리턴 SIPSorcery.SIP.SIPDialogue

GetOppositeDialogue() 공개 메소드

Retrieves the other end of a call given the dialogue from one end.
public GetOppositeDialogue ( SIPDialogue dialogue ) : SIPDialogue
dialogue SIPSorcery.SIP.SIPDialogue
리턴 SIPSorcery.SIP.SIPDialogue

ProcessInDialogueReferRequest() 공개 메소드

public ProcessInDialogueReferRequest ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPRequest sipRequest, SIPDialogue dialogue, Func blindTransfer ) : void
localSIPEndPoint SIPSorcery.SIP.SIPEndPoint
remoteEndPoint SIPSorcery.SIP.SIPEndPoint
sipRequest SIPSorcery.SIP.SIPRequest
dialogue SIPSorcery.SIP.SIPDialogue
blindTransfer Func
리턴 void

ProcessInDialogueRequest() 공개 메소드

public ProcessInDialogueRequest ( SIPEndPoint localSIPEndPoint, SIPEndPoint remoteEndPoint, SIPRequest sipRequest, SIPDialogue dialogue ) : void
localSIPEndPoint SIPSorcery.SIP.SIPEndPoint
remoteEndPoint SIPSorcery.SIP.SIPEndPoint
sipRequest SIPSorcery.SIP.SIPRequest
dialogue SIPSorcery.SIP.SIPDialogue
리턴 void

ReInvite() 공개 메소드

Attempts to reinvite an existing end of a call by sending a new SDP.
public ReInvite ( SIPDialogue dialogue, SIPDialogue substituteDialogue ) : void
dialogue SIPSorcery.SIP.SIPDialogue The dialogue describing the end of the call to be re-invited.
substituteDialogue SIPSorcery.SIP.SIPDialogue
리턴 void

SIPDialogueManager() 공개 메소드

public SIPDialogueManager ( SIPTransport sipTransport, SIPEndPoint outboundProxy, SIPMonitorLogDelegate logDelegate, SIPAssetPersistor sipDialoguePersistor, SIPAssetPersistor sipCDRPersistor, SIPAuthenticateRequestDelegate authenticateRequestDelegate, SIPAssetGetDelegate getSIPAccount, GetCanonicalDomainDelegate getCanonicalDomain ) : System
sipTransport SIPSorcery.SIP.SIPTransport
outboundProxy SIPSorcery.SIP.SIPEndPoint
logDelegate SIPMonitorLogDelegate
sipDialoguePersistor SIPAssetPersistor
sipCDRPersistor SIPAssetPersistor
authenticateRequestDelegate SIPAuthenticateRequestDelegate
getSIPAccount SIPAssetGetDelegate
getCanonicalDomain GetCanonicalDomainDelegate
리턴 System

프로퍼티 상세

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

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