OPAL
Version 3.14.3
|
#include <sipcon.h>
Data Structures | |
struct | Init |
Public Types | |
enum | PRACKMode { e_prackDisabled, e_prackSupported, e_prackRequired } |
Mode for reliable provisional responses. More... | |
Public Member Functions | |
OpalTransportAddress | GetDefaultSDPConnectAddress (WORD port=0) const |
SIPEndPoint & | GetEndPoint () const |
SIPAuthentication * | GetAuthenticator () const |
PRACKMode | GetPRACKMode () const |
virtual unsigned | GetAllowedMethods () const |
bool | DoesRemoteAllowMethod (SIP_PDU::Methods method) const |
virtual PBoolean | OnMediaControlXML (SIP_PDU &pdu) |
virtual bool | OnMediaCommand (OpalMediaStream &stream, const OpalMediaCommand &command) |
virtual PString | GetAuthID () const |
virtual void | OnStartTransaction (SIPTransaction &transaction) |
virtual void | OnReceivedMESSAGE (SIP_PDU &pdu) |
virtual void | OnReceivedSUBSCRIBE (SIP_PDU &pdu) |
PString | GetLocalPartyURL () const |
virtual void | PrintOn (ostream &strm) const |
Construction | |
SIPConnection (const Init &init) | |
~SIPConnection () | |
Overrides from OpalConnection | |
virtual bool | IsNetworkConnection () const |
virtual PString | GetPrefixName () const |
virtual PString | GetIdentifier () const |
virtual void | OnApplyStringOptions () |
Call back for connection to act on changed string options. More... | |
virtual PBoolean | SetUpConnection () |
virtual OpalTransportAddress | GetRemoteAddress () const |
virtual PString | GetRemoteIdentity () const |
virtual PString | GetDestinationAddress () |
virtual PString | GetCalledPartyURL () |
virtual PString | GetAlertingType () const |
virtual bool | SetAlertingType (const PString &info) |
virtual PString | GetCallInfo () const |
virtual bool | TransferConnection (const PString &remoteParty) |
virtual bool | HoldRemote (bool placeOnHold) |
virtual bool | IsOnHold (bool fromRemote) const |
virtual PBoolean | SetAlerting (const PString &calleeName, PBoolean withMedia) |
virtual PBoolean | SetConnected () |
virtual OpalMediaFormatList | GetMediaFormats () const |
virtual bool | RequireSymmetricMediaStreams () const |
virtual OpalMediaStream * | CreateMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, PBoolean isSource) |
virtual OpalMediaStreamPtr | OpenMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource) |
virtual void | OnClosedMediaStream (const OpalMediaStream &stream) |
virtual bool | GetMediaTransportAddresses (OpalConnection &otherConnection, const OpalMediaType &mediaType, OpalTransportAddressArray &transports) const |
virtual void | OnPatchMediaStream (PBoolean isSource, OpalMediaPatch &patch) |
virtual void | OnPauseMediaStream (OpalMediaStream &strm, bool paused) |
virtual void | OnReleased () |
virtual PBoolean | ForwardCall (const PString &forwardParty) |
virtual SendUserInputModes | GetRealSendUserInputMode () const |
virtual PBoolean | SendUserInputString (const PString &value) |
PBoolean | SendUserInputTone (char tone, unsigned duration) |
![]() | |
OpalRTPConnection (OpalCall &call, OpalRTPEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL) | |
~OpalRTPConnection () | |
virtual void | AdjustMediaFormats (bool local, const OpalConnection *otherConnection, OpalMediaFormatList &mediaFormats) const |
virtual unsigned | GetNextSessionID (const OpalMediaType &mediaType, bool isSource) |
P_DECLARE_BITWISE_ENUM (CreateMediaSessionsSecurity, 2,(e_NoMediaSessions, e_ClearMediaSession, e_SecureMediaSession)) | |
vector< bool > | CreateAllMediaSessions (CreateMediaSessionsSecurity security) |
virtual OpalMediaSession * | CreateMediaSession (unsigned sessionId, const OpalMediaType &mediaType, const PString &sessionType=PString::Empty()) |
virtual OpalMediaSession * | GetMediaSession (unsigned sessionID) const |
virtual OpalMediaSession * | FindSessionByMediaType (const OpalMediaType &mediaType) const |
virtual OpalMediaSession * | FindSessionByLocalPort (WORD port) const |
virtual OpalMediaSession * | UseMediaSession (unsigned sessionId, const OpalMediaType &mediaType, const PString &sessionType=PString::Empty()) |
virtual void | ReleaseMediaSession (unsigned sessionID) |
virtual bool | ChangeSessionID (unsigned fromSessionID, unsigned toSessionID) |
virtual void | ReplaceMediaSession (unsigned sessionId, OpalMediaSession *mediaSession) |
virtual bool | SetSessionQoS (OpalRTPSession *session) |
virtual void | DetermineRTPNAT (const OpalTransport &transport, const OpalTransportAddress &signalAddr) |
![]() | |
P_DECLARE_TRACED_ENUM_EX (CallEndReasonCodes, NumCallEndReasons, EndedByLocalUser, 0, EndedByNoAccept, EndedByAnswerDenied, EndedByRemoteUser, EndedByRefusal, EndedByNoAnswer, EndedByCallerAbort, EndedByTransportFail, EndedByConnectFail, EndedByGatekeeper, EndedByNoUser, EndedByNoBandwidth, EndedByCapabilityExchange, EndedByCallForwarded, EndedBySecurityDenial, EndedByLocalBusy, EndedByLocalCongestion, EndedByRemoteBusy, EndedByRemoteCongestion, EndedByUnreachable, EndedByNoEndPoint, EndedByHostOffline, EndedByTemporaryFailure, EndedByQ931Cause, EndedByDurationLimit, EndedByInvalidConferenceID, EndedByNoDialTone, EndedByNoRingBackTone, EndedByOutOfService, EndedByAcceptingCallWaiting, EndedByGkAdmissionFailed, EndedByMediaFailed, EndedByCallCompletedElsewhere, EndedByCertificateAuthority, EndedByIllegalAddress, EndedByCustomCode) | |
P_DECLARE_TRACED_ENUM (AnswerCallResponse, AnswerCallNow, AnswerCallDenied, AnswerCallPending, AnswerCallDeferred, AnswerCallAlertWithMedia, AnswerCallDeferredWithMedia, AnswerCallProgress, AnswerCallNowAndReleaseCurrent) | |
const StringOptions & | GetStringOptions () const |
Get the string options associated with this connection. More... | |
StringOptions & | GetStringOptions () |
void | SetStringOptions (const StringOptions &options, bool overwrite) |
Set the string options associated with this connection. More... | |
virtual void | EnableRecording () |
virtual void | DisableRecording () |
OpalConnection (OpalCall &call, OpalEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL) | |
~OpalConnection () | |
void | PrintOn (ostream &strm) const |
virtual PBoolean | OnIncomingConnection (unsigned int options, OpalConnection::StringOptions *stringOptions) |
virtual PBoolean | OnSetUpConnection () |
virtual void | OnProceeding () |
virtual void | OnAlerting () |
virtual AnswerCallResponse | OnAnswerCall (const PString &callerName) |
virtual void | AnsweringCall (AnswerCallResponse response) |
virtual void | OnConnected () |
virtual void | OnEstablished () |
virtual bool | OnTransferNotify (const PStringToString &info, const OpalConnection *transferringConnection) |
virtual void | Release (CallEndReason reason=EndedByLocalUser, bool synchronous=false) |
PSafePtr< OpalConnection > | GetOtherPartyConnection () const |
template<class cls > | |
PSafePtr< cls > | GetOtherPartyConnectionAs () const |
virtual OpalMediaFormatList | GetLocalMediaFormats () |
virtual PStringArray | GetMediaCryptoSuites () const |
virtual OpalMediaType::AutoStartMode | GetAutoStart (const OpalMediaType &mediaType) const |
virtual void | AutoStartMediaStreams (bool transfer=false) |
bool | CloseMediaStream (unsigned sessionId, bool source) |
bool | CloseMediaStream (OpalMediaStreamPtr stream) |
bool | RemoveMediaStream (OpalMediaStream &strm) |
virtual void | StartMediaStreams () |
virtual void | CloseMediaStreams () |
virtual void | PauseMediaStreams (bool paused) |
OpalMediaStreamPtr | GetMediaStream (const PString &streamID, bool source) const |
OpalMediaStreamPtr | GetMediaStream (unsigned sessionId, bool source) const |
OpalMediaStreamPtr | GetMediaStream (const OpalMediaType &mediaType, bool source, OpalMediaStreamPtr previous=NULL) const |
virtual PBoolean | OnOpenMediaStream (OpalMediaStream &stream) |
virtual void | OnFailedMediaStream (bool fromRemote, const PString &reason) |
virtual void | OnStartMediaPatch (OpalMediaPatch &patch) |
virtual void | OnStopMediaPatch (OpalMediaPatch &patch) |
virtual bool | OnMediaFailed (unsigned sessionId, bool source) |
bool | AllMediaFailed () const |
virtual bool | ExecuteMediaCommand (const OpalMediaCommand &command, unsigned sessionID=0, const OpalMediaType &mediaType=OpalMediaType()) const |
virtual bool | SendVideoUpdatePicture (unsigned sessionID=0, bool force=false) const |
void | SendVideoUpdatePictureCallback (unsigned sessionID, bool force) |
virtual void | OnRxIntraFrameRequest (const OpalMediaSession &session, bool force) |
virtual PBoolean | SetAudioVolume (PBoolean source, unsigned percentage) |
virtual PBoolean | GetAudioVolume (PBoolean source, unsigned &percentage) |
virtual bool | SetAudioMute (bool source, bool mute) |
virtual bool | GetAudioMute (bool source, bool &mute) |
virtual unsigned | GetAudioSignalLevel (PBoolean source) |
OpalBandwidth | GetBandwidthAvailable (OpalBandwidth::Direction dir) const |
virtual bool | SetBandwidthAvailable (OpalBandwidth::Direction dir, OpalBandwidth availableBandwidth) |
virtual bool | SetBandwidthAllocated (OpalBandwidth::Direction dir, OpalBandwidth newBandwidth) |
virtual OpalBandwidth | GetBandwidthUsed (OpalBandwidth::Direction dir) const |
virtual bool | SetBandwidthUsed (OpalBandwidth::Direction dir, OpalBandwidth releasedBandwidth, OpalBandwidth requiredBandwidth) |
P_DECLARE_TRACED_ENUM (SendUserInputModes, SendUserInputAsQ931, SendUserInputAsString, SendUserInputAsTone, SendUserInputAsRFC2833, SendUserInputAsInlineRFC2833=SendUserInputAsRFC2833, SendUserInputInBand, SendUserInputAsProtocolDefault) | |
virtual void | SetSendUserInputMode (SendUserInputModes mode) |
virtual SendUserInputModes | GetSendUserInputMode () const |
virtual void | OnUserInputString (const PString &value) |
void | OnUserInputStringCallback (PString value) |
virtual void | OnUserInputTone (char tone, unsigned duration) |
void | SendUserInputHookFlash (unsigned duration=500) |
virtual PString | GetUserInput (unsigned timeout=30) |
virtual void | SetUserInput (const PString &input) |
virtual PString | ReadUserInput (const char *terminators="YX#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30) |
virtual PBoolean | PromptUserInput (PBoolean play) |
virtual bool | GetConferenceState (OpalConferenceState *state) const |
virtual bool | RequestPresentationRole (bool release) |
virtual bool | OnChangedPresentationRole (const PString &newChairURI, bool request) |
virtual bool | HasPresentationRole () const |
OpalEndPoint & | GetEndPoint () const |
OpalCall & | GetCall () const |
const PString & | GetToken () const |
PBoolean | IsOriginating () const |
const PTime & | GetPhaseTime (Phases phase) const |
const PTime & | GetSetupUpTime () const |
const PTime & | GetAlertingTime () const |
const PTime & | GetConnectionStartTime () const |
const PTime & | GetConnectionEndTime () const |
const OpalProductInfo & | GetProductInfo () const |
void | SetProductInfo (const OpalProductInfo &info) |
const PString & | GetLocalPartyName () const |
virtual void | SetLocalPartyName (const PString &name) |
const PString & | GetDisplayName () const |
void | SetDisplayName (const PString &name) |
virtual bool | IsPresentationBlocked () const |
const PString & | GetRemotePartyName () const |
void | SetRemotePartyName (const PString &name) |
const PString & | GetRemotePartyNumber () const |
virtual PString | GetRemotePartyURL () const |
P_DEPRECATED PString | GetRemotePartyAddress () const |
P_DEPRECATED const PString | GetRemotePartyCallbackURL () const |
PCaselessString | GetRemoteApplication () const |
const OpalProductInfo & | GetRemoteProductInfo () const |
const PString & | GetRedirectingParty () const |
void | SetRedirectingParty (const PString &party) |
const PString & | GetCalledPartyName () const |
const PString & | GetCalledPartyNumber () const |
void | CopyPartyNames (const OpalConnection &other) |
unsigned | GetMinAudioJitterDelay () const |
unsigned | GetMaxAudioJitterDelay () const |
void | SetAudioJitterDelay (unsigned minDelay, unsigned maxDelay) |
OpalSilenceDetector * | GetSilenceDetector () const |
virtual PINDEX | GetMaxRtpPayloadSize () const |
unsigned | GetVideoUpdateRequestsSent () const |
unsigned | GetVideoUpdateRequestsReceived () const |
P_DECLARE_TRACED_ENUM (Phases, UninitialisedPhase, SetUpPhase, ProceedingPhase, AlertingPhase, ConnectedPhase, EstablishedPhase, ForwardingPhase, ReleasingPhase, ReleasedPhase) | |
__inline Phases | GetPhase () const |
__inline bool | IsEstablished () const |
Return true if connection is in the established phase. More... | |
__inline bool | IsReleased () const |
Return true if connection is in the established phase. More... | |
void | SetPhase (Phases phaseToSet) |
CallEndReason | GetCallEndReason () const |
PString | GetCallEndReasonText () const |
virtual void | SetCallEndReason (CallEndReason reason) |
void | ClearCall (CallEndReason reason=EndedByLocalUser, PSyncPoint *sync=NULL) |
virtual void | ClearCallSynchronous (PSyncPoint *sync, CallEndReason reason=EndedByLocalUser) |
unsigned | GetQ931Cause () const |
void | SetQ931Cause (unsigned v) |
virtual void | OnHold (bool fromRemote, bool onHold) |
![]() | |
SIPTransactionOwner (PSafeObject &object, SIPEndPoint &endpoint) | |
virtual | ~SIPTransactionOwner () |
virtual PString | GetPassword () const |
void | FinaliseForking (SIPTransaction &transaction, SIP_PDU &response) |
bool | CleanPendingTransactions () |
void | AbortPendingTransactions (bool all=true) |
virtual SIP_PDU::StatusCodes | StartTransaction (const OpalTransport::WriteConnectCallback &function) |
SIP_PDU::StatusCodes | SwitchTransportProto (const char *proto, SIP_PDU *pdu) |
SIP_PDU::StatusCodes | HandleAuthentication (const SIP_PDU &response) |
SIPEndPoint & | GetEndPoint () const |
OpalTransportAddress | GetRemoteTransportAddress () const |
const SIPURL & | GetRequestURI () const |
const SIPURL & | GetRemoteURI () const |
const SIPURL & | GetProxy () const |
const PString & | GetInterface () const |
PINDEX | GetDNSEntry () const |
SIPAuthentication * | GetAuthenticator () const |
SIPDialogContext & | GetDialog () |
const SIPDialogContext & | GetDialog () const |
Protected Types | |
enum | HoldState { eHoldOff, eRetrieveInProgress, eHoldOn, eHoldInProgress } |
enum | { ReleaseWithBYE, ReleaseWithCANCEL, ReleaseWithResponse, ReleaseWithNothing } |
enum | { UserInputMethodUnknown, ReceivedRFC2833, ReceivedINFO } |
typedef SIPPoolTimer < SIPConnection > | PoolTimer |
Protected Member Functions | |
virtual bool | GarbageCollection () |
void | OnSessionTimeout () |
void | OnInviteResponseRetry () |
void | OnInviteResponseTimeout () |
void | OnInviteCollision () |
void | OnReceivedAlertingResponse (SIPTransaction &transaction, SIP_PDU &response) |
virtual bool | OnSendOfferSDP (SDPSessionDescription &sdpOut, bool offerCurrentOnly) |
virtual bool | OnSendOfferSDPSession (unsigned sessionID, SDPSessionDescription &sdpOut, bool offerOpenMediaStreamOnly) |
virtual bool | OnSendAnswerSDP (SDPSessionDescription &sdpOut) |
virtual bool | OnSendAnswerSDP (const SDPSessionDescription &sdpOffer, SDPSessionDescription &sdpAnswer) |
virtual SDPMediaDescription * | OnSendAnswerSDPSession (SDPMediaDescription *incomingMedia, unsigned sessionId, SDPMediaDescription::Direction otherSidesDir) |
virtual bool | OnReceivedAnswerSDP (SIP_PDU &response, SIPTransaction *transaction) |
virtual bool | OnReceivedAnswerSDPSession (SDPSessionDescription &sdp, unsigned sessionId, bool &multipleFormats) |
virtual OpalMediaSession * | SetUpMediaSession (const unsigned rtpSessionId, const OpalMediaType &mediaType, const SDPMediaDescription &mediaDescription, OpalTransportAddress &localAddress, bool &remoteChanged) |
void | SetAudioVideoGroup () |
bool | SendReINVITE (PTRACE_PARAM(const char *msg)) |
bool | StartPendingReINVITE () |
PDECLARE_WriteConnectCallback (SIPConnection, WriteINVITE) | |
virtual bool | SendDelayedACK (bool force) |
void | OnDelayedAckTimeout () |
void | RetryHoldRemote (bool placeOnHold) |
virtual bool | SendInviteOK () |
virtual PBoolean | SendInviteResponse (SIP_PDU::StatusCodes code, const SDPSessionDescription *sdp=NULL) |
virtual void | AdjustInviteResponse (SIP_PDU &response) |
void | UpdateRemoteAddresses () |
void | NotifyDialogState (SIPDialogNotification::States state, SIPDialogNotification::Events eventType=SIPDialogNotification::NoEvent, unsigned eventCode=0) |
virtual bool | InviteConferenceParticipant (const PString &conf, const PString &dest) |
int | SetRemoteMediaFormats (SIP_PDU &pdu) |
void | OnUserInputInlineRFC2833 (OpalRFC2833Info &info, INT type) |
![]() | |
PDECLARE_NOTIFIER (OpalRFC2833Info, OpalRTPConnection, OnUserInputInlineRFC2833) | |
virtual bool | NoMediaBypass (const OpalConnection &otherConnection, const OpalMediaType &mediaType) const |
P_REMOVE_VIRTUAL (PBoolean, IsRTPNATEnabled(const PIPSocket::Address &, const PIPSocket::Address &, const PIPSocket::Address &, PBoolean), false) | |
![]() | |
void | OnConnectedInternal () |
void | InternalSetAsOriginating () |
bool | InternalRelease (CallEndReason reason) |
void | InternalOnReleased () |
PDECLARE_NOTIFIER (RTP_DataFrame, OpalConnection, OnRecordAudio) | |
PDECLARE_NOTIFIER (RTP_DataFrame, OpalConnection, OnRecordVideo) | |
void | OnStartRecording (OpalMediaPatch *patch) |
void | OnStopRecording (OpalMediaPatch *patch) |
Friends | |
class | SIPInvite |
class | SIPTransaction |
class | SIP_RTP_Session |
Protocol handling functions | |
enum | TypeOfINVITE { IsNewINVITE, IsDuplicateINVITE, IsReINVITE, IsLoopedINVITE } |
virtual void | OnTransactionFailed (SIPTransaction &transaction) |
virtual void | OnReceivedPDU (SIP_PDU &pdu) |
virtual void | OnReceivedINVITE (SIP_PDU &pdu) |
virtual void | OnReceivedReINVITE (SIP_PDU &pdu) |
virtual void | OnReceivedACK (SIP_PDU &pdu) |
virtual void | OnReceivedOPTIONS (SIP_PDU &pdu) |
virtual void | OnReceivedNOTIFY (SIP_PDU &pdu) |
virtual void | OnAllowedEventNotify (const PString &eventName) |
virtual void | OnReceivedREFER (SIP_PDU &pdu) |
virtual void | OnReceivedINFO (SIP_PDU &pdu) |
virtual void | OnReceivedPING (SIP_PDU &pdu) |
virtual void | OnReceivedPRACK (SIP_PDU &pdu) |
virtual void | OnReceivedBYE (SIP_PDU &pdu) |
virtual void | OnReceivedCANCEL (SIP_PDU &pdu) |
virtual bool | OnReceivedResponseToINVITE (SIPTransaction &transaction, SIP_PDU &response) |
virtual void | OnReceivedResponse (SIPTransaction &transaction, SIP_PDU &response) |
virtual void | OnReceivedTrying (SIPTransaction &transaction, SIP_PDU &response) |
virtual void | OnReceivedRinging (SIPTransaction &transaction, SIP_PDU &pdu) |
virtual void | OnReceivedSessionProgress (SIPTransaction &transaction, SIP_PDU &pdu) |
virtual PBoolean | OnReceivedAuthenticationRequired (SIPTransaction &transaction, SIP_PDU &response) |
virtual void | OnReceivedRedirection (SIP_PDU &pdu) |
virtual void | OnReceivedOK (SIPTransaction &transaction, SIP_PDU &response) |
virtual void | OnCreatingINVITE (SIPInvite &pdu) |
TypeOfINVITE | CheckINVITE (const SIP_PDU &pdu) const |
Indicate if this is a duplicate or multi-path INVITE. More... | |
bool | SendOPTIONS (const SIPOptions::Params ¶ms, SIP_PDU *reply=NULL) |
bool | SendINFO (const SIPInfo::Params ¶ms, SIP_PDU *reply=NULL) |
Additional Inherited Members | |
![]() | |
static PString | GetCallEndReasonText (CallEndReason reason) |
static void | SetCallEndReasonText (CallEndReasonCodes reasonCode, const PString &newText) |
Session Initiation Protocol connection.
|
protected |
|
protected |
|
protected |
Mode for reliable provisional responses.
SIPConnection::SIPConnection | ( | const Init & | init | ) |
Create a new connection.
init | Initialisation parameters |
SIPConnection::~SIPConnection | ( | ) |
Destroy connection.
|
protectedvirtual |
TypeOfINVITE SIPConnection::CheckINVITE | ( | const SIP_PDU & | pdu | ) | const |
Indicate if this is a duplicate or multi-path INVITE.
|
virtual |
Create a new media stream.
mediaFormat | Media format for stream |
sessionID | Session number for stream |
isSource | Is a source stream |
Reimplemented from OpalRTPConnection.
|
inline |
REturn true if remote allows the method.
References m_allowedMethods.
|
virtual |
Forward incoming connection to the specified address. This would typically be called from within the OnIncomingConnection() function when an application wishes to redirect an unwanted incoming call.
The return value is true if the call is to be forwarded, false otherwise. Note that if the call is forwarded, the current connection is cleared with the ended call code set to EndedByCallForwarded.
forwardParty | Party to forward call to. |
Reimplemented from OpalConnection.
|
protectedvirtual |
Execute garbage collection for endpoint. Returns true if all garbage has been collected. Default behaviour deletes the objects in the connectionsActive list.
Reimplemented from OpalRTPConnection.
|
virtual |
Get alerting type information of an incoming call. The type of "distinctive ringing" for the call. The string is protocol dependent, so the caller would need to be aware of the type of call being made. Some protocols may ignore the field completely.
For SIP this corresponds to the string contained in the "Alert-Info" header field of the INVITE. This is typically a URI for the ring file.
For H.323 this must be a string representation of an integer from 0 to 7 which will be contained in the Q.931 SIGNAL (0x34) Information Element.
Default behaviour returns an empty string.
Reimplemented from OpalConnection.
|
virtual |
Return a bit mask of the allowed local SIP methods.
Reimplemented from SIPTransactionOwner.
|
inline |
References SIPTransactionOwner::m_authentication.
|
virtual |
Implements SIPTransactionOwner.
|
virtual |
Get the fulll URL being indicated by the remote for incoming calls. This may not have any relation to the local name of the endpoint.
The default behaviour returns GetDestinationAddress() normalised to a URL. The remote may provide a full URL, if it does not then the prefix for the endpoint is prepended to the destination address.
Reimplemented from OpalConnection.
|
virtual |
Get call information of an incoming call. This is protocol dependent information provided about the call. The details are outside the scope of this help.
For SIP this corresponds to the string contained in the "Call-Info" header field of the INVITE.
Reimplemented from OpalConnection.
OpalTransportAddress SIPConnection::GetDefaultSDPConnectAddress | ( | WORD | port = 0 | ) | const |
|
virtual |
Get the destination address of an incoming connection. This will, for example, collect a phone number from a POTS line, or get the fields from the H.225 SETUP pdu in a H.323 connection.
The default behaviour for sip returns the request URI in the INVITE.
Reimplemented from OpalConnection.
|
inline |
References SIPTransactionOwner::m_endpoint.
|
virtual |
Get the protocol-specific unique identifier for this connection.
Reimplemented from OpalConnection.
|
virtual |
Get the local name/alias.
Reimplemented from OpalConnection.
|
virtual |
Get the data formats this endpoint is capable of operating in.
Reimplemented from OpalConnection.
|
virtual |
Get transports for the media session on the connection. This is primarily used by the media bypass feature controlled by the OpalManager::GetMediaTransferMode() function. It allows one side of the call to get the transport address of the media on the other side, so it can pass it on, bypassing the local host.
otherConnection | Other half of call needing media transport addresses |
mediaType | Media type for session to return information |
transports | Information on media session |
Reimplemented from OpalRTPConnection.
|
inline |
Get active PRACK mode. See PRACKMode enum for details.
References m_prackMode.
|
virtual |
Get this connections protocol prefix for URLs.
Reimplemented from OpalConnection.
|
virtual |
Get the real user input indication transmission mode. This will return the user input mode that will actually be used for transmissions. It will be the value of GetSendUserInputMode() provided the remote endpoint is capable of that mode.
Reimplemented from OpalConnection.
|
inlinevirtual |
|
virtual |
Get the remote identity. Under some circumstances the "identity" of the remote party, may be different from the name, number or URL for that user. For example, this would be the P-Asserted-Identity field in SIP.
Reimplemented from OpalConnection.
|
virtual |
Put the current connection on hold, suspending media streams. The streams from the remote are always paused. The streams from the local to the remote are conditionally paused depending on underlying logic for "music on hold" functionality.
The fromRemote
parameter indicates if we a putting the remote on hold (false) or it is a request for the remote to put us on hold (true).
The /p placeOnHold parameter indicates of the command/request is for going on hold or retrieving from hold.
placeOnHold | Flag for setting on or off hold |
Reimplemented from OpalConnection.
|
protectedvirtual |
|
inlinevirtual |
Get indication of connection being to a "network". This indicates the if the connection may be regarded as a "network" connection. The distinction is about if there is a concept of a "remote" party being connected to and is best described by example: sip, h323, iax and pstn are all "network" connections as they connect to something "remote". While pc, pots and ivr are not as the entity being connected to is intrinsically local.
Implements OpalConnection.
|
virtual |
Return true if the current connection is on hold. The fromRemote
parameter indicates if we are testing if the remote system has us on hold, or we have them on hold.
fromRemote | Flag for if remote has us on hold, or we have them |
Reimplemented from OpalConnection.
|
protected |
|
virtual |
Callback function on receipt of an allowed NOTIFY message. Allowed events are determined by the m_allowedEvents member variable.
eventName | Name of event |
|
virtual |
Call back for connection to act on changed string options.
Reimplemented from OpalConnection.
|
virtual |
Call back for closed a media stream.
The default behaviour calls the OpalEndPoint function of the same name.
stream | Media stream being closed |
Reimplemented from OpalConnection.
|
virtual |
Handle a sending INVITE request
|
protected |
|
protected |
|
protected |
|
protected |
|
virtual |
Callback for media commands. Calls the SendIntraFrameRequest on the rtp session
stream | Stream command executed on |
command | Media command being executed |
Reimplemented from OpalRTPConnection.
|
virtual |
Call when SIP INFO of type application/media_control+xml is received.
Return false if default reponse of Failure_UnsupportedMediaType is to be returned
|
virtual |
Call back when patching a media stream. This function is called when a connection has created a new media patch between two streams. This is usually called twice per media patch, once for the source stream and once for the sink stream.
Note this is not called within the context of the patch thread and is called before that thread has started.
isSource | Is source/sink call |
patch | New patch |
Reimplemented from OpalRTPConnection.
|
virtual |
Pause media streams for connection.
strm | Media stream paused/un-paused |
paused | Flag for pausing/un-pausing |
Reimplemented from OpalConnection.
|
virtual |
Handle an incoming ACK PDU
|
protected |
|
protectedvirtual |
|
protectedvirtual |
|
virtual |
Handle an incoming Proxy Authentication Required response PDU Returns: true if handled, if false is returned connection is released.
|
virtual |
Handle an incoming BYE PDU
|
virtual |
Handle an incoming CANCEL PDU
|
virtual |
Handle an incoming INFO PDU
|
virtual |
Handle an incoming INVITE request
|
virtual |
|
virtual |
Handle an incoming NOTIFY PDU
|
virtual |
Handle an incoming OK response PDU. This actually gets any PDU of the class 2xx not just 200.
|
virtual |
Handle an incoming OPTIONS PDU
|
virtual |
Handle an incoming SIP PDU that has been full decoded
|
virtual |
Handle an incoming PING PDU
|
virtual |
Handle an incoming PRACK PDU
|
virtual |
Handle an incoming redirect response PDU
|
virtual |
Handle an incoming REFER PDU
|
virtual |
Handle an incoming Re-INVITE request
|
virtual |
Handle an incoming response PDU.
Reimplemented from SIPTransactionOwner.
|
virtual |
Handle an incoming response PDU to our INVITE. Note this is called before th ACK is sent and thus should do as little as possible. All the hard work (SDP processing etc) should be in the usual OnReceivedResponse().
|
virtual |
Handle an incoming Ringing response PDU
|
virtual |
Handle an incoming Session Progress response PDU
|
virtual |
|
virtual |
Handle an incoming Trying response PDU
|
virtual |
Clean up the termination of the connection. This function can do any internal cleaning up and waiting on background threads that may be using the connection object.
Note that there is not a one to one relationship with the OnEstablishedConnection() function. This function may be called without that function being called. For example if SetUpConnection() was used but the call never completed.
Classes that override this function should make sure they call the ancestor version for correct operation.
An application will not typically call this function as it is used by the OpalManager during a release of the connection.
The default behaviour calls the OpalEndPoint function of the same name.
Reimplemented from OpalRTPConnection.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protected |
|
virtual |
Reimplemented from SIPTransactionOwner.
|
virtual |
Handle the fail of a transaction we initiated.
Reimplemented from SIPTransactionOwner.
|
protected |
|
virtual |
Open source or sink media stream for session.
mediaFormat | Media format to open |
sessionID | Session to start stream on |
isSource | Stream is a source/sink |
Reimplemented from OpalConnection.
|
protected |
|
inlinevirtual |
References OpalConnection::PrintOn().
|
virtual |
Indicate connection requires symmetric media. Default behaviour returns false.
Reimplemented from OpalConnection.
|
protected |
|
protectedvirtual |
bool SIPConnection::SendINFO | ( | const SIPInfo::Params & | params, |
SIP_PDU * | reply = NULL |
||
) |
Send an INFO command within this calls dialog. Note if reply
is non-NULL, this function will block until the transaction completes. Care must be executed in this case that no deadlocks occur.
params | Parameters for OPTIONS command |
reply | Reply to message |
|
protectedvirtual |
|
protectedvirtual |
bool SIPConnection::SendOPTIONS | ( | const SIPOptions::Params & | params, |
SIP_PDU * | reply = NULL |
||
) |
Send an OPTIONS command within this calls dialog. Note if reply
is non-NULL, this function will block until the transaction completes. Care must be executed in this case that no deadlocks occur.
params | Parameters for OPTIONS command |
reply | Reply to message |
|
protected |
|
virtual |
Send a user input indication to the remote endpoint. This is for sending arbitrary strings as user indications.
The default behaviour is to call SendUserInputTone() for each character in the string.
value | String value of indication |
Reimplemented from OpalConnection.
|
virtual |
Send a user input indication to the remote endpoint. This sends DTMF emulation user input. If something more sophisticated than the simple tones that can be sent using the SendUserInput() function.
A duration of zero indicates that no duration is to be indicated. A non-zero logical channel indicates that the tone is to be syncronised with the logical channel at the rtpTimestamp value specified.
The tone parameter must be one of "0123456789#*ABCD!" where '!' indicates a hook flash. If tone is a ' ' character then a signalUpdate PDU is sent that updates the last tone indication sent. See the H.245 specifcation for more details on this.
The default behaviour sends the tone using RFC2833.
Reimplemented from OpalRTPConnection.
|
virtual |
Indicate to remote endpoint an alert is in progress. If this is an incoming connection and the AnswerCallResponse is in a AnswerCallDeferred or AnswerCallPending state, then this function is used to indicate to that endpoint that an alert is in progress. This is usually due to another connection which is in the call (the B party) has received an OnAlerting() indicating that its remote endpoint is "ringing".
The default behaviour does nothing.
calleeName | Name of endpoint being alerted. |
withMedia | Flag to alert with/without media |
Reimplemented from OpalConnection.
|
virtual |
Set alerting type information for outgoing call. The type of "distinctive ringing" for the call. The string is protocol dependent, so the caller would need to be aware of the type of call being made. Some protocols may ignore the field completely.
For SIP this corresponds to the string contained in the "Alert-Info" header field of the INVITE. This is typically a URI for the ring file.
For H.323 this must be a string representation of an integer from 0 to 7 which will be contained in the Q.931 SIGNAL (0x34) Information Element.
Default behaviour returns false.
Reimplemented from OpalConnection.
|
protected |
|
virtual |
Indicate to remote endpoint we are connected.
The default behaviour does nothing.
Reimplemented from OpalConnection.
|
protected |
|
virtual |
Start an outgoing connection. This function will initiate the connection to the remote entity, for example in H.323 it sends a SETUP, in SIP it sends an INVITE etc.
The default behaviour is .
Reimplemented from OpalConnection.
|
protectedvirtual |
|
protected |
|
virtual |
Initiate the transfer of an existing call (connection) to a new remote party.
A REFER command is sent to the remote endpoint to cause it to move the call it has with this endpoint to a new address. This call will, in the end, be cleared. The OnTransferNotify() function can be used to monitor the progress of the transfer in case it fails.
If remoteParty is a valid call token, then this is short hand for the REFER to the remote endpoint of this call to do an INVITE with Replaces header to the remote party of the supplied tokens call. This is used for consultation transfer where A calls B, B holds A, B calls C, B transfers A to C. The last step is a REFER to A with call details of C that are extracted from the B to C call leg. This short cut is possible because A nd C may be other endpoints but both B's are in this instance of OPAL.
In the end, both calls are cleared. The OnTransferNotify() function can be used to monitor the progress of the transfer in case it fails.
remoteParty | Remote party to transfer the existing call to |
Reimplemented from OpalConnection.
|
protected |
|
friend |
|
friend |
|
friend |
|
protected |
|
protected |
|
protected |
Referenced by DoesRemoteAllowMethod().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by GetPRACKMode().
|
protected |
enum { ... } SIPConnection::m_receivedUserInputMethod |
|
protected |
|
protected |
Referenced by GetRemoteAddress().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
enum { ... } SIPConnection::releaseMethod |