16 #ifndef _Connection_h_ 17 #define _Connection_h_ 23 #include <utl/UtlString.h> 24 #include <os/OsMutex.h> 27 #include <net/SipContactDb.h> 28 #include <mi/CpMediaInterface.h> 33 # define LOCAL_AND_REMOTE 1 45 class CpMediaInterface;
46 class OsDatagramSocket;
182 static const UtlContainableType
TYPE;
188 CpMediaInterface* mediaInterface = NULL,
189 int offeringDelayMilliSeconds =
IMMEDIATE,
190 int availableBehavior =
RING,
191 const char* forwardUnconditionalUrl = NULL,
192 int busyBehavior =
BUSY,
193 const char* forwardOnBusyUrl = NULL,
194 int fowardOnNoAnswerSeconds = -1);
205 virtual void prepareForJoin(
CpCall* pNewCall,
const char* szLocalAddress, CpMediaInterface* pNewMediaInterface) ;
213 virtual UtlBoolean
dequeue() = 0;
215 virtual UtlBoolean
dial(
const char* dialString,
216 const char* callerId,
218 const char* callController = NULL,
219 const char* originalCallConnection = NULL,
220 UtlBoolean requestQueuedCall = FALSE,
221 const void* pDisplay = NULL,
222 const void* pSecurity = NULL,
223 const char* locationHeader = NULL,
224 const int bandWidth = AUDIO_MICODEC_BW_DEFAULT,
225 UtlBoolean bOnHold = FALSE,
226 const char* originalCallId = NULL,
227 const RTP_TRANSPORT rtpTransportOptions = RTP_TRANSPORT_UDP) = 0;
231 const char* transferControllerAddress,
232 const char* targetCallId) = 0;
239 const char* transferControllerAddress) = 0;
253 virtual UtlBoolean
answer(
const void* hWnd = NULL) = 0;
255 virtual UtlBoolean
hangUp() = 0;
257 virtual UtlBoolean
hold() = 0;
259 virtual UtlBoolean
offHold() = 0;
269 virtual UtlBoolean
accept(
int forwardOnNoAnswerTimeOut,
270 const void *pSecurity = NULL,
271 const char* locationHeader = NULL,
272 const int bandWidth = AUDIO_MICODEC_BW_DEFAULT,
273 UtlBoolean sendEarlyMedia = FALSE) = 0;
275 virtual UtlBoolean
reject(
int errorCode = 0,
const char* errorText =
"") = 0;
277 virtual UtlBoolean
redirect(
const char* forwardAddress) = 0;
284 virtual UtlBoolean
sendInfo(UtlString contentType, UtlString sContent){
return false; }
307 void* pEventData=NULL) ;
314 int getState(
int isLocal = 0)
const;
315 int getState(
int isLocal,
int& cause)
const;
335 virtual UtlBoolean
getRemoteAddress(UtlString* remoteAddress, UtlBoolean leaveFieldParametersIn)
const = 0;
339 virtual UtlBoolean
getSession(SipSession& sessioon) = 0;
359 virtual OsStatus
getInviteHeaderValue(
const char* headerName,
int headerIndex, UtlString& headerValue)
const;
363 virtual UtlBoolean
isInstanceOf(
const UtlContainableType type)
const;
376 UtlBoolean strictCompare)
const = 0;
384 UtlBoolean
isHeld()
const ;
493 #endif // _Connection_h_ Definition: Connection.h:91
Definition: TaoReference.h:35
UtlString connectionCallId
Definition: Connection.h:473
Abstract call manager.
Definition: CpCallManager.h:97
int getRemoteState() const
Definition: Connection.cpp:605
int mConnectionId
Definition: Connection.h:438
virtual UtlBoolean transferControllerStatus(int connectionState, int response)=0
OsStatus getDeleteAfter(OsTime &time)
Definition: Connection.cpp:592
Definition: Connection.h:119
Definition: Connection.h:131
Definition: Connection.h:164
Definition: Connection.h:126
void setCallId(const char *callId)
Definition: Connection.cpp:554
void getLocalAddress(UtlString *address)
Definition: Connection.cpp:541
void getCallerId(UtlString *callerId)
Definition: Connection.cpp:570
virtual UtlBoolean accept(int forwardOnNoAnswerTimeOut, const void *pSecurity=NULL, const char *locationHeader=NULL, const int bandWidth=AUDIO_MICODEC_BW_DEFAULT, UtlBoolean sendEarlyMedia=FALSE)=0
Accept and incoming INVITE and change from OFFERING to ALERTING state.
SIPX_CALLSTATE_CAUSE
Callstate cause events identify the reason for a Callstate event or provide more detail.
Definition: sipXtapiEvents.h:244
UtlBoolean mRemoteIsCallee
Definition: Connection.h:440
Definition: Connection.h:68
static const UtlContainableType TYPE
enumcode: BUSY - indicate to the caller that the phone is busy enumcode: FAKE_RING - indicate to the ...
Definition: Connection.h:182
Definition: Connection.h:125
Definition: Connection.h:123
Definition: Connection.h:150
void setTerminalConnectionState(int newState, int isLocal, int cause=CONNECTION_CAUSE_NORMAL)
Definition: Connection.cpp:287
Definition: TaoObjectMap.h:56
Definition: Connection.h:130
Definition: Connection.h:148
virtual UtlBoolean getSession(SipSession &sessioon)=0
returns: TRUE/FALSE if the connection has an address. The connection may not have an address assigned...
lineAvailableBehaviors
Definition: Connection.h:143
virtual UtlBoolean processMessage(OsMsg &eventMessage)=0
virtual void prepareForSplit()
Definition: Connection.cpp:155
Definition: Connection.h:124
Definition: Connection.h:64
Definition: Connection.h:71
virtual UtlBoolean dial(const char *dialString, const char *callerId, const char *callId, const char *callController=NULL, const char *originalCallConnection=NULL, UtlBoolean requestQueuedCall=FALSE, const void *pDisplay=NULL, const void *pSecurity=NULL, const char *locationHeader=NULL, const int bandWidth=AUDIO_MICODEC_BW_DEFAULT, UtlBoolean bOnHold=FALSE, const char *originalCallId=NULL, const RTP_TRANSPORT rtpTransportOptions=RTP_TRANSPORT_UDP)=0
UtlString connectionCallerId
Definition: Connection.h:474
termConnectionStates
Definition: Connection.h:78
Definition: Connection.h:75
Definition: Connection.h:146
static void getStateString(int state, UtlString *stateLabel)
Definition: Connection.cpp:362
virtual UtlBoolean offHold()=0
virtual UtlBoolean renegotiateCodecs()=0
Definition: Connection.h:165
int mResponseCode
Definition: Connection.h:461
int mForwardOnNoAnswerSeconds
Definition: Connection.h:430
void getResponseText(UtlString &responseText)
Definition: Connection.cpp:584
UtlString mLocalAddress
Definition: Connection.h:464
Definition: Connection.h:127
int remoteVideoRtcpPort
Definition: Connection.h:449
lineBusyBehaviors
enumcode: RING - make the phone ring to alert the user enumcode: FAKE_BUSY - indicate to the caller t...
Definition: Connection.h:162
void fireSipXSecurityEvent(SIPX_SECURITY_INFO *pEventData)
Definition: Connection.cpp:480
Definition: Connection.h:168
int getState(int isLocal=0) const
Definition: Connection.cpp:295
int mLocalConnectionState
Definition: Connection.h:451
Definition: Connection.h:140
virtual UtlBoolean isInviteFromThisSide() const
Definition: Connection.cpp:671
OsTime mDeleteAfter
Definition: Connection.h:476
SIPX_CALLSTATE_CAUSE m_eLastMinor
Definition: Connection.h:480
sipXtapi event declarations
UtlBoolean isHeld() const
Definition: Connection.cpp:649
virtual UtlBoolean silentRemoteHold()=0
UtlString mTargetCallId
Definition: Connection.h:467
Definition: Connection.h:66
virtual UtlContainableType getContainableType() const
Definition: Connection.cpp:536
OsMutex callIdMutex
Definition: Connection.h:475
virtual UtlBoolean redirect(const char *forwardAddress)=0
Definition: Connection.h:169
Definition: Connection.h:69
virtual void prepareForJoin(CpCall *pNewCall, const char *szLocalAddress, CpMediaInterface *pNewMediaInterface)
Definition: Connection.cpp:169
UtlBoolean mbTransferHeld
Definition: Connection.h:478
Definition: Connection.h:73
int mRemoteConnectionState
Definition: Connection.h:452
Definition: Connection.h:58
Connection(CpCallManager *callMgr=NULL, CpCall *call=NULL, CpMediaInterface *mediaInterface=NULL, int offeringDelayMilliSeconds=IMMEDIATE, int availableBehavior=RING, const char *forwardUnconditionalUrl=NULL, int busyBehavior=BUSY, const char *forwardOnBusyUrl=NULL, int fowardOnNoAnswerSeconds=-1)
Definition: Connection.cpp:54
int mHoldState
Definition: Connection.h:459
SIPX_CALLSTATE_EVENT
Major call state events identify significant changes in the state of a call.
Definition: sipXtapiEvents.h:163
UtlString mForwardOnBusy
Definition: Connection.h:429
Definition: Connection.h:74
int getResponseCode()
Definition: Connection.h:341
void getCallId(UtlString *callId)
Definition: Connection.cpp:547
Definition: Connection.h:81
connectionStateCauses
Definition: Connection.h:99
Definition: Connection.h:149
Definition: Connection.h:139
virtual UtlBoolean transfereeStatus(int connectionState, int response)=0
virtual UtlBoolean targetCallBlindTransfer(const char *transferTargetAddress, const char *transferControllerAddress)=0
virtual UtlBoolean willHandleMessage(OsMsg &eventMessage) const =0
virtual UtlBoolean isSameRemoteAddress(Url &remoteAddress) const =0
connectionType
Definition: Connection.h:88
UtlString mTargetCallConnectionAddress
Definition: Connection.h:466
void setMediaInterface(CpMediaInterface *pMediaInterface)
Definition: Connection.cpp:447
int mLineAvailableBehavior
Definition: Connection.h:426
UtlBoolean isMarkedForDeletion() const
Definition: Connection.cpp:643
Definition: Connection.h:80
UtlBoolean isTransferHeld() const
Definition: Connection.cpp:660
UtlString mForwardUnconditional
Definition: Connection.h:427
UtlBoolean isHoldInProgress() const
Definition: Connection.cpp:654
virtual ~Connection()
Definition: Connection.cpp:134
connectionStates
Definition: Connection.h:62
Definition: Connection.h:102
UtlString remoteRtpAddress
Definition: Connection.h:445
Definition: Connection.h:167
void unimplemented(const char *methodName) const
Definition: Connection.cpp:430
Definition: Connection.h:65
Definition: Connection.h:90
virtual UtlBoolean hangUp()=0
int mTerminalConnState
Definition: Connection.h:454
int remoteVideoRtpPort
Definition: Connection.h:448
SIPX_MEDIA_EVENT
Enumeration of possible media events.
Definition: sipXtapiEvents.h:490
void setCallerId(const char *callId)
Definition: Connection.cpp:577
Connection & operator=(const Connection &rhs)
Definition: Connection.cpp:414
int mLineBusyBehavior
Definition: Connection.h:428
void fireSipXMediaEvent(SIPX_MEDIA_EVENT event, SIPX_MEDIA_CAUSE cause, SIPX_MEDIA_TYPE type, void *pEventData=NULL)
Definition: Connection.cpp:507
An SIPX_SECURITY_INFO event informs that application layer of the status of a security operation...
Definition: sipXtapiEvents.h:924
virtual UtlBoolean hold()=0
void setState(int newState, int isLocal, int cause=CONNECTION_CAUSE_NORMAL, int termState=-1)
Definition: Connection.cpp:182
CpMediaInterface * mpMediaInterface
Definition: Connection.h:437
int terminalConnectionState(int connState)
Definition: Connection.cpp:845
CpMediaInterface * getMediaInterfacePtr()
Definition: Connection.cpp:711
Definition: Connection.h:70
UtlString mOriginalCallConnectionAddress
Definition: Connection.h:465
virtual void forceHangUp(int connectionState=CONNECTION_DISCONNECTED)
Definition: Connection.h:207
static UtlBoolean isStateTransitionAllowed(int newState, int oldState)
Definition: Connection.cpp:743
int mOfferingDelay
Definition: Connection.h:423
int getTerminalState(int isLocal) const
Definition: Connection.cpp:354
UtlBoolean validStateTransition(SIPX_CALLSTATE_EVENT eFrom, SIPX_CALLSTATE_EVENT eTo)
Definition: Connection.cpp:454
SIPX_MEDIA_TYPE
Enumeration of possible media event types.
Definition: sipXtapiEvents.h:660
Definition: Connection.h:103
UtlBoolean isRemoteCallee()
Definition: Connection.cpp:631
Definition: Connection.h:134
int remoteRtpPort
Definition: Connection.h:446
UtlString mLastToAddress
Definition: Connection.h:443
virtual void setOfferingTimer(int milliSeconds)
Definition: Connection.cpp:682
virtual UtlBoolean getRemoteAddress(UtlString *remoteAddress) const =0
Definition: Connection.h:72
virtual void setRingingTimer(int seconds)
Definition: Connection.cpp:716
void postTaoListenerMessage(int state, int newCause, int isLocal=0)
Definition: Connection.cpp:677
virtual UtlBoolean isConnection(const char *callId, const char *toTag, const char *fromTag, UtlBoolean strictCompare) const =0
offeringModes
Definition: Connection.h:137
Definition: Connection.h:122
int getLocalState() const
Definition: Connection.cpp:599
void setTransferHeld(UtlBoolean bHeld)
Definition: Connection.cpp:528
Definition: Connection.h:147
virtual OsStatus getInviteHeaderValue(const char *headerName, int headerIndex, UtlString &headerValue) const
Definition: Connection.cpp:615
Definition: Connection.h:145
Definition: Connection.h:166
virtual UtlBoolean isLocallyInitiatedRemoteHold() const
Definition: Connection.cpp:665
Definition: Connection.h:82
Definition: Connection.h:129
UtlBoolean remoteRequestedHold()
Definition: Connection.cpp:636
virtual UtlBoolean canSendInfo()
Definition: Connection.h:281
Definition: Connection.h:109
int remoteRtcpPort
Definition: Connection.h:447
CpCall * mpCall
Definition: Connection.h:436
virtual UtlBoolean sendInfo(UtlString contentType, UtlString sContent)
Definition: Connection.h:284
UtlString mResponseText
Definition: Connection.h:462
Definition: Connection.h:83
virtual UtlBoolean isInstanceOf(const UtlContainableType type) const
Definition: Connection.cpp:623
int mConnectionStateCause
Definition: Connection.h:453
void markForDeletion()
Definition: Connection.cpp:436
UtlBoolean mRemoteRequestedHold
Definition: Connection.h:442
virtual UtlBoolean originalCallTransfer(UtlString &transferTargetAddress, const char *transferControllerAddress, const char *targetCallId)=0
param: requestQueuedCall - indicates that the caller wishes to have the callee queue the call if busy...
Definition: Connection.h:67
virtual UtlBoolean answer(const void *hWnd=NULL)=0
Definition: Connection.h:84
virtual void getRemoteUserAgent(UtlString *pUserAgent)=0
void fireSipXCallEvent(SIPX_CALLSTATE_EVENT eMajor, SIPX_CALLSTATE_CAUSE eMinor, void *pEventData=NULL)
Definition: Connection.cpp:485
const UtlString & getRemoteRtpAddress() const
Definition: Connection.cpp:610
void setLocalAddress(const char *address)
Definition: Connection.cpp:423
The CONNECTED state indicates that call has been setup between the local and remote party...
Definition: sipXtapiEvents.h:197
Definition: Connection.h:128
virtual void outOfFocus()=0
CpCallManager * mpCallManager
Definition: Connection.h:435
The stage changed due to normal operation.
Definition: sipXtapiEvents.h:247
int getConnectionId()
Definition: Connection.h:345
SIPX_CALLSTATE_EVENT m_eLastMajor
Definition: Connection.h:479
virtual UtlBoolean reject(int errorCode=0, const char *errorText="")=0
Definition: Connection.h:113
virtual UtlBoolean dequeue()=0
SIPX_MEDIA_CAUSE
Enumeration of possible media event causes.
Definition: sipXtapiEvents.h:638