/usr/include/sipxtapi/net/SipClient.h is in libsipxtapi-dev 3.3.0~test17-2.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | //
// Copyright (C) 2004-2006 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
///////////////////////////////////////////////////////////////////////////////
#ifndef _SipClient_h_
#define _SipClient_h_
// SYSTEM INCLUDES
//#include <...>
// APPLICATION INCLUDES
#include <os/OsSocket.h>
#include <os/OsTask.h>
#include <os/OsServerTask.h>
#include <os/OsBSem.h>
#include <net/SipMessage.h>
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
class SipUserAgentBase;
class OsEvent;
//:Class short description which may consist of multiple lines (note the ':')
// Class detailed description which may extend to multiple lines
class SipClient : public OsTask
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
/* ============================ CREATORS ================================== */
SipClient(OsSocket* socket = NULL);
//:Default constructor
virtual
~SipClient();
//:Destructor
/* ============================ MANIPULATORS ============================== */
UtlBoolean send(SipMessage* message);
UtlBoolean sendTo(const SipMessage& message,
const char* address,
int port);
void setUserAgent(SipUserAgentBase* sipUA);
//void addEventConsumer(OsServerTask* messageEventListener);
//void removeEventConsumer(OsServerTask* messageEventListener);
virtual int run(void* pArg);
UtlBoolean sendInvite(char* toAddress, char* callId, int rtpPort,
int numCodecs, int rtpCodecs[],
int sequenceNumber = 1);
void touch();
//: Set the time when this client was last used
// This is potentially used for garbage collection
void notifyWhenAvailableForWrite(OsEvent& availableEvent);
//: The given event is signaled when this SipClient is not busy
void signalNextAvailableForWrite();
void signalAllAvailableForWrite();
void setSharedSocket(UtlBoolean bShared) ;
/* ============================ ACCESSORS ================================= */
//void getHostIp(UtlString* hostAddress) const;
void getClientNames(UtlString& clientNames) const;
long getLastTouchedTime() const;
//int getHostPort() const;
const UtlString& getLocalIp();
void markInUseForWrite();
void markAvailbleForWrite();
/* ============================ INQUIRY =================================== */
UtlBoolean isOk();
UtlBoolean isConnectedTo(UtlString& hostName, int hostPort);
int isInUseForWrite();
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
// Test whether the socket is ready to read. (Does not block.)
UtlBoolean isReadyToRead();
// Wait until the socket is ready to read (or has an error).
UtlBoolean waitForReadyToRead();
OsSocket* clientSocket;
OsSocket::IpProtocolSocketType mSocketType;
SipUserAgentBase* sipUserAgent;
UtlString mRemoteHostName;
UtlString mRemoteViaAddress;
UtlString mRemoteSocketAddress;
UtlString mReceivedAddress;
int mRemoteViaPort;
int mRemoteHostPort;
int mRemoteReceivedPort;
long touchedTime;
OsBSem mSocketLock;
int mFirstResendTimeoutMs;
int mInUseForWrite;
UtlSList* mWaitingList; // Events waiting until this is available
UtlBoolean mbSharedSocket; // Shared socket-- do not delete or close (UDP / rport)
SipClient(const SipClient& rSipClient);
//:disable Copy constructor
SipClient& operator=(const SipClient& rhs);
//:disable Assignment operator
};
/* ============================ INLINE METHODS ============================ */
#endif // _SipClient_h_
|