/usr/include/opal/im/sipim.h is in libopal-dev 3.10.2~dfsg-0ubuntu1.
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 | /*
* sipim.h
*
* Support for SIP session mode IM
*
* Open Phone Abstraction Library (OPAL)
*
* Copyright (c) 2008 Post Increment
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Open Phone Abstraction Library.
*
* The Initial Developer of the Original Code is Post Increment
*
* Contributor(s): ______________________________________.
*
* $Revision: 25063 $
* $Author: csoutheren $
* $Date: 2011-01-13 22:54:22 -0600 (Thu, 13 Jan 2011) $
*/
#ifndef OPAL_IM_SIPIM_H
#define OPAL_IM_SIPIM_H
#include <ptlib.h>
#include <opal/buildopts.h>
#include <opal/rtpconn.h>
#include <opal/manager.h>
#include <opal/mediastrm.h>
#include <opal/mediatype.h>
#include <opal/mediatype.h>
#include <im/im.h>
#include <sip/sdp.h>
#include <sip/sippdu.h>
#if OPAL_HAS_SIPIM
class OpalSIPIMMediaType : public OpalIMMediaType
{
public:
OpalSIPIMMediaType();
virtual OpalMediaSession * CreateMediaSession(OpalConnection & conn, unsigned sessionID) const;
SDPMediaDescription * CreateSDPMediaDescription(const OpalTransportAddress & localAddress);
};
////////////////////////////////////////////////////////////////////////////
/** Class for carrying MSRP session information
*/
class OpalSIPIMMediaSession : public OpalMediaSession
{
PCLASSINFO(OpalSIPIMMediaSession, OpalMediaSession);
public:
OpalSIPIMMediaSession(OpalConnection & connection, unsigned sessionId);
OpalSIPIMMediaSession(const OpalSIPIMMediaSession & _obj);
virtual bool Open() { return true; }
virtual void Close() { }
virtual PObject * Clone() const { return new OpalSIPIMMediaSession(*this); }
virtual bool IsActive() const { return true; }
virtual bool IsRTP() const { return false; }
virtual bool HasFailed() const { return false; }
virtual OpalTransportAddress GetLocalMediaAddress() const;
virtual void SetRemoteMediaAddress(const OpalTransportAddress &, const OpalMediaFormatList & );
virtual SDPMediaDescription * CreateSDPMediaDescription(
const OpalTransportAddress & localAddress
);
virtual OpalMediaStream * CreateMediaStream(
const OpalMediaFormat & mediaFormat,
unsigned sessionID,
PBoolean isSource
);
virtual PString GetCallID() const { return callId; }
protected:
OpalTransportAddress transportAddress;
PString localURL;
PString remoteURL;
PString callId;
};
////////////////////////////////////////////////////////////////////////////
class OpalSIPIMContext : public OpalConnectionIMContext
{
public:
OpalSIPIMContext();
virtual SentStatus SendCompositionIndication(bool active = true);
static void PopulateParams(SIPMessage::Params & params, OpalIM & message);
protected:
virtual SentStatus InternalSendOutsideCall(OpalIM * message);
virtual SentStatus InternalSendInsideCall(OpalIM * message);
virtual SentStatus OnIncomingIM(OpalIM & message);
void OnCompositionIndicationTimeout();
void ResetTimers(OpalIM & message);
PDECLARE_NOTIFIER(PTimer, OpalSIPIMContext, OnRxCompositionTimerExpire);
PDECLARE_NOTIFIER(PTimer, OpalSIPIMContext, OnTxCompositionTimerExpire);
PDECLARE_NOTIFIER(PTimer, OpalSIPIMContext, OnTxIdleTimerExpire);
PTimer m_rxCompositionTimeout;
PTimer m_txCompositionTimeout;
PTimer m_txIdleTimeout;
RFC4103Context m_rfc4103Context;
};
////////////////////////////////////////////////////////////////////////////
#endif // OPAL_HAS_SIPIM
#endif // OPAL_IM_SIPIM_H
|