14 #ifndef _OsNatAgentTask_h_ 15 #define _OsNatAgentTask_h_ 31 #define SYNC_MSG_TYPE (OsMsg::USER_START + 2) 33 #define NAT_INITIAL_ABORT_COUNT 4 34 #define NAT_PROBE_ABORT_COUNT 3 35 #define NAT_RESEND_ABORT_COUNT 75 36 #define NAT_RESPONSE_TIMEOUT_MS 300 38 #define NAT_FIND_BINDING_POOL_MS 50 39 #define NAT_BINDING_EXPIRATION_SECS 60 68 #define MAX_OLD_TRANSACTIONS 3 163 const int stunOptions,
176 const char* szAddress,
180 const char* szAddress,
244 int iTimeoutMs = 0) ;
258 bool bOnlyIfEmpty =
false) ;
313 unsigned short toPort,
346 static OsMutex sLock ;
352 OsRWMutex mExternalBindingMutex ;
OsNatKeepaliveListener * pKeepaliveListener
Definition: OsNatAgentTask.h:89
NAT_AGENT_BINDING_TYPE type
Definition: OsNatAgentTask.h:71
NAT_AGENT_STATUS status
Definition: OsNatAgentTask.h:72
static OsNatAgentTask * getInstance()
Definition: OsNatAgentTask.cpp:99
Definition: OsSocket.h:79
int refreshErrors
Definition: OsNatAgentTask.h:83
virtual UtlBoolean sendMessage(StunMessage *pMsg, IStunSocket *pSocket, const UtlString &toAddress, unsigned short toPort, PacketType packetType=UNKNOWN_PACKET)
Definition: OsNatAgentTask.cpp:1712
Definition: OsNatAgentTask.h:59
void synchronize()
Definition: OsNatAgentTask.cpp:1361
UtlString serverAddress
Definition: OsNatAgentTask.h:73
UtlBoolean removeKeepAlives(IStunSocket *pSocket)
Definition: OsNatAgentTask.cpp:1299
virtual UtlBoolean handleStunMessage(NatMsg &rMsg)
Definition: OsNatAgentTask.cpp:179
UtlBoolean sendStunProbe(IStunSocket *pSocket, const UtlString &remoteAddress, int remotePort, int priority)
Definition: OsNatAgentTask.cpp:664
int nOldTransactions
Definition: OsNatAgentTask.h:77
void markStunSuccess(NAT_AGENT_CONTEXT *pBinding, const UtlString &mappedAddress, int mappedPort)
Definition: OsNatAgentTask.cpp:1983
UtlString password
Definition: OsNatAgentTask.h:87
void markTurnSuccess(NAT_AGENT_CONTEXT *pBinding, const UtlString &relayAddress, int relayPort)
Definition: OsNatAgentTask.cpp:2108
Definition: IStunSocket.h:70
Definition: OsNatAgentTask.h:53
virtual UtlBoolean handleTurnMessage(NatMsg &rMsg)
Definition: OsNatAgentTask.cpp:321
NAT_AGENT_STATUS
Definition: OsNatAgentTask.h:57
UtlBoolean findExternalBinding(const UtlString &destHost, int destPort, UtlString *pContactHost, int *pContactPort, int iTimeoutMs=0, UtlBoolean *pTimedOut=NULL)
Definition: OsNatAgentTask.cpp:1631
virtual UtlBoolean handleStunKeepAlive(NAT_AGENT_CONTEXT *pContext)
Definition: OsNatAgentTask.cpp:643
void destroyBinding(NAT_AGENT_CONTEXT *pBinding)
Definition: OsNatAgentTask.cpp:1825
void clearExternalBinding(OsSocket *pSocket, UtlString remoteAddress, int remotePort, bool bOnlyIfEmpty=false)
Definition: OsNatAgentTask.cpp:1596
Definition: OsServerTask.h:34
void addExternalBinding(OsSocket *pSocket, UtlString remoteAddress, int remotePort, UtlString contactAddress, int contactPort)
Definition: OsNatAgentTask.cpp:1526
int serverPort
Definition: OsNatAgentTask.h:74
PacketType
Definition: IStunSocket.h:27
Definition: OsNatKeepaliveListener.h:42
#define NULL
Definition: UtlDefs.h:29
UtlBoolean findContactAddress(const UtlString &destHost, int destPort, UtlString *pContactHost, int *pContactPort, int iTimeoutMs=0)
Definition: OsNatAgentTask.cpp:1437
STUN_TRANSACTION_ID transactionId
Definition: OsNatAgentTask.h:76
virtual UtlBoolean handleCrLfKeepAlive(NAT_AGENT_CONTEXT *pContext)
Definition: OsNatAgentTask.cpp:620
Definition: OsNatAgentTask.h:64
#define MAX_OLD_TRANSACTIONS
Definition: OsNatAgentTask.h:68
Definition: OsNatAgentTask.h:117
void releaseTimer(OsTimer *pTimer)
Definition: OsNatAgentTask.cpp:1869
Definition: OsNatAgentTask.h:63
Definition: OsNatKeepaliveListener.h:97
UtlString remoteAddress
Definition: OsNatAgentTask.h:96
int remotePort
Definition: OsNatAgentTask.h:97
void dumpContext(UtlString *pResults, NAT_AGENT_CONTEXT *pBinding)
Definition: OsNatAgentTask.cpp:2197
UtlBoolean removeStunProbes(IStunSocket *pSocket)
Definition: OsNatAgentTask.cpp:1330
void disableTurn(IStunSocket *pSocket)
Definition: OsNatAgentTask.cpp:1010
UtlBoolean sendTurnRequest(NAT_AGENT_CONTEXT *pBinding)
Definition: OsNatAgentTask.cpp:1932
Definition: OsNatAgentTask.h:50
NAT_AGENT_BINDING_TYPE
Definition: OsNatAgentTask.h:48
int port
Definition: OsNatAgentTask.h:85
UtlBoolean addStunKeepAlive(IStunSocket *pSocket, const UtlString &remoteIp, int remotePort, int keepAliveSecs, OsNatKeepaliveListener *pListener)
Definition: OsNatAgentTask.cpp:1181
Definition: UtlString.h:48
UtlString address
Definition: OsNatAgentTask.h:84
void markStunFailure(NAT_AGENT_CONTEXT *pBinding)
Definition: OsNatAgentTask.cpp:2064
OsTime expiration
Definition: OsNatAgentTask.h:100
IStunSocket * pSocket
Definition: OsNatAgentTask.h:79
int contactPort
Definition: OsNatAgentTask.h:99
UtlBoolean doesBindingExist(IStunSocket *pSocket, NAT_AGENT_BINDING_TYPE type, const UtlString &serverIp, int serverPort)
Definition: OsNatAgentTask.cpp:1408
Definition: StunMessage.h:126
UtlBoolean disableStun(IStunSocket *pSocket)
Definition: OsNatAgentTask.cpp:822
Definition: OsNatAgentTask.h:69
UtlBoolean setTurnDestination(IStunSocket *pSocket, const char *szAddress, int iPort)
Definition: OsNatAgentTask.cpp:969
int options
Definition: OsNatAgentTask.h:75
UtlBoolean enableTurn(IStunSocket *pSocket, const UtlString &turnServer, int iTurnPort, int keepAliveSecs, const UtlString &username, const UtlString &password)
Definition: OsNatAgentTask.cpp:842
Definition: UtlSList.h:47
int abortCount
Definition: OsNatAgentTask.h:82
void markTurnFailure(NAT_AGENT_CONTEXT *pBinding)
Definition: OsNatAgentTask.cpp:2145
UtlBoolean enableStun(IStunSocket *pSocket, const UtlString &stunServer, int stunPort, const int stunOptions, int keepAlive)
Definition: OsNatAgentTask.cpp:742
Definition: OsNatAgentTask.h:61
NAT_AGENT_CONTEXT * getBinding(IStunSocket *pSocket, NAT_AGENT_BINDING_TYPE type)
Definition: OsNatAgentTask.cpp:1755
Definition: UtlHashMap.h:46
OsTimer * pTimer
Definition: OsNatAgentTask.h:80
UtlBoolean removeCrLfKeepAlive(IStunSocket *pSocket, const UtlString &serverIp, int serverPort)
Definition: OsNatAgentTask.cpp:1139
virtual UtlBoolean handleTimerEvent(NAT_AGENT_CONTEXT *pContext)
Definition: OsNatAgentTask.cpp:440
int keepAliveSecs
Definition: OsNatAgentTask.h:81
UtlString username
Definition: OsNatAgentTask.h:86
UtlBoolean primeTurnReception(IStunSocket *pSocket, const char *szAddress, int iPort)
Definition: OsNatAgentTask.cpp:925
Definition: OsRpcMsg.h:42
Definition: OsTimer.h:105
int UtlBoolean
Definition: UtlDefs.h:41
Definition: OsNatAgentTask.h:93
virtual void handleStunTimeout(NAT_AGENT_CONTEXT *pContext)
Definition: OsNatAgentTask.cpp:472
Definition: OsNatAgentTask.h:54
Definition: OsNatAgentTask.h:60
UtlBoolean sendStunRequest(NAT_AGENT_CONTEXT *pBinding)
Definition: OsNatAgentTask.cpp:1880
UtlBoolean removeStunKeepAlive(IStunSocket *pSocket, const UtlString &serverIp, int serverPort)
Definition: OsNatAgentTask.cpp:1257
virtual UtlBoolean handleMessage(OsMsg &rMsg)
Definition: OsNatAgentTask.cpp:127
OsSocket * pSocket
Definition: OsNatAgentTask.h:95
static void releaseInstance()
Definition: OsNatAgentTask.cpp:114
Definition: OsNatAgentTask.h:51
OsNatKeepaliveEvent populateKeepaliveEvent(NAT_AGENT_CONTEXT *pContext)
Definition: OsNatAgentTask.cpp:2173
UtlString contactAddress
Definition: OsNatAgentTask.h:98
virtual UtlBoolean handleSynchronize(OsRpcMsg &rMsg)
Definition: OsNatAgentTask.cpp:431
OsTimer * getTimer()
Definition: OsNatAgentTask.cpp:1850
Definition: OsNatAgentTask.h:62
UtlBoolean areProbesOutstanding(IStunSocket *pSocket, int priority)
Definition: OsNatAgentTask.cpp:1379
Definition: OsNatAgentTask.h:52
Definition: StunMessage.h:211
int priority
Definition: OsNatAgentTask.h:88
UtlBoolean addCrLfKeepAlive(IStunSocket *pSocket, const UtlString &remoteIp, int remotePort, int keepAliveSecs, OsNatKeepaliveListener *pListener)
Definition: OsNatAgentTask.cpp:1065
virtual void handleTurnTimeout(NAT_AGENT_CONTEXT *pContext)
Definition: OsNatAgentTask.cpp:544
Definition: IStunSocket.h:29