31 #ifndef OPAL_IM_MSRP_H 32 #define OPAL_IM_MSRP_H 41 #include <ptclib/inetprot.h> 42 #include <ptclib/guid.h> 43 #include <ptclib/mime.h> 86 static const unsigned MaximumMessageLength = 1024;
92 Chunk(
const PString &
id,
unsigned from,
unsigned len)
93 : m_chunkId(id), m_rangeFrom(from + 1), m_rangeTo(from + len) { }
114 const PString & text,
115 const PString & contentType,
120 const PString & transactionId,
122 const PString fromUrl,
123 const PMIMEInfo & mime,
127 bool SendResponse(
const PString & chunkId,
129 const PString & text,
130 const PString & toUrl,
131 const PString & fromUrl);
133 bool SendREPORT(
const PString & chunkId,
134 const PString & toUrl,
135 const PString & fromUrl,
136 const PMIMEInfo & mime);
171 bool GetLocalPort(WORD & port);
189 void HandlerThread();
203 PSafePtr<Connection> OpenConnection(
204 const PURL & localURL,
205 const PURL & remoteURL
211 bool CloseConnection(
212 PSafePtr<OpalMSRPManager::Connection> & connection
218 std::string CreateSessionID();
228 void ListenerThread();
241 void DispatchMessage(
245 typedef PNotifierTemplate<IncomingMSRP &>
CallBack;
248 const PURL & localUrl,
249 const PURL & remoteURL,
250 const CallBack & notifier
254 const PURL & localUrl,
255 const PURL & remoteURL
292 bool Open(
const PURL & remoteParty);
294 virtual void Close();
300 virtual bool IsRTP()
const {
return false; }
312 virtual bool WritePacket(
336 bool OpenMSRP(
const PURL & remoteUrl);
339 void SetConnection(PSafePtr<OpalMSRPManager::Connection> & conn);
371 virtual PBoolean ReadPacket(
378 virtual PBoolean WritePacket(
385 void SetRemoteURL(
const PURL & url) { m_msrpSession.SetRemoteURL(url); }
399 #endif // OPAL_HAS_MSRP 401 #endif // OPAL_IM_MSRP_H bool m_originating
Definition: msrp.h:196
std::map< std::string, CallBack > CallBackMap
Definition: msrp.h:272
PMutex m_connectionInfoMapAddMutex
Definition: msrp.h:268
PAtomicInteger m_refCount
Definition: msrp.h:197
Commands
Definition: msrp.h:80
PNotifierTemplate< IncomingMSRP & > CallBack
Definition: msrp.h:245
PSafePtr< Connection > m_connection
Definition: msrp.h:235
PString m_id
Definition: msrp.h:102
Chunk(const PString &id, unsigned from, unsigned len)
Definition: msrp.h:92
PAtomicInteger lastID
Definition: msrp.h:264
PMutex m_callBacksMutex
Definition: msrp.h:274
PString m_body
Definition: msrp.h:234
PMutex mutex
Definition: msrp.h:263
ChunkList m_chunks
Definition: msrp.h:100
PMutex m_mutex
Definition: msrp.h:147
std::vector< Chunk > ChunkList
Definition: msrp.h:99
PString m_contentType
Definition: msrp.h:105
unsigned m_rangeFrom
Definition: msrp.h:96
PURL m_toURL
Definition: msrp.h:104
PThread * m_listenerThread
Definition: msrp.h:266
OpalManager & GetOpalManager()
Definition: msrp.h:258
CallBackMap m_callBacks
Definition: msrp.h:273
unsigned m_rangeTo
Definition: msrp.h:97
int m_command
Definition: msrp.h:231
PTCPSocket m_listenerSocket
Definition: msrp.h:265
unsigned m_length
Definition: msrp.h:106
std::map< std::string, PSafePtr< Connection > > ConnectionInfoMapType
Definition: msrp.h:269
std::string m_key
Definition: msrp.h:192
PMIMEInfo m_mime
Definition: msrp.h:233
PString m_chunkId
Definition: msrp.h:232
WORD m_listenerPort
Definition: msrp.h:262
Definition: connection.h:353
OpalMSRPManager & m_manager
Definition: msrp.h:191
PString m_chunkId
Definition: msrp.h:95
Definition: transports.h:149
MSRPProtocol * m_protocol
Definition: msrp.h:193
PURL m_fromURL
Definition: msrp.h:103
OpalManager & opalManager
Definition: msrp.h:261
PThread * m_handlerThread
Definition: msrp.h:195
bool m_running
Definition: msrp.h:194
ConnectionInfoMapType m_connectionInfoMap
Definition: msrp.h:270