217 lines
5.1 KiB
C++
Executable File
217 lines
5.1 KiB
C++
Executable File
/*
|
|
* Copyright (C) 2010-2011 Mamadou Diop.
|
|
*
|
|
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
|
|
*
|
|
* This file is part of Open Source Doubango Framework.
|
|
*
|
|
* DOUBANGO is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* DOUBANGO is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with DOUBANGO.
|
|
*
|
|
*/
|
|
#ifndef TINYWRAP_SIPEVENT_H
|
|
#define TINYWRAP_SIPEVENT_H
|
|
|
|
#include "tinyWRAP_config.h"
|
|
|
|
#include "tinysip.h"
|
|
#include "Common.h"
|
|
|
|
class SipStack;
|
|
|
|
class SipSession;
|
|
class InviteSession;
|
|
class CallSession;
|
|
class MsrpSession;
|
|
class MessagingSession;
|
|
class InfoSession;
|
|
class OptionsSession;
|
|
class PublicationSession;
|
|
class RegistrationSession;
|
|
class SubscriptionSession;
|
|
|
|
class SipMessage;
|
|
|
|
|
|
/* ======================== SipEvent ========================*/
|
|
class TINYWRAP_API SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
SipEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~SipEvent();
|
|
|
|
public:
|
|
short getCode() const;
|
|
const char* getPhrase() const;
|
|
const SipSession* getBaseSession() const;
|
|
const SipMessage* getSipMessage() const;
|
|
#if !defined(SWIG)
|
|
const tsip_event_t * getWrappedEvent(){ return sipevent; }
|
|
#endif
|
|
#if !defined(SWIG)
|
|
SipStack* getStack()const;
|
|
#endif
|
|
|
|
protected:
|
|
const tsip_event_t *sipevent;
|
|
SipMessage* sipmessage;
|
|
};
|
|
|
|
|
|
/* ======================== DialogEvent ========================*/
|
|
class TINYWRAP_API DialogEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
DialogEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~DialogEvent();
|
|
|
|
public: /* Public API functions */
|
|
};
|
|
|
|
/* ======================== StackEvent ========================*/
|
|
class TINYWRAP_API StackEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
StackEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~StackEvent();
|
|
|
|
public: /* Public API functions */
|
|
};
|
|
|
|
|
|
|
|
/* ======================== InviteEvent ========================*/
|
|
class TINYWRAP_API InviteEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
InviteEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~InviteEvent();
|
|
|
|
public: /* Public API functions */
|
|
tsip_invite_event_type_t getType() const;
|
|
twrap_media_type_t getMediaType() const;
|
|
const InviteSession* getSession() const;
|
|
CallSession* takeCallSessionOwnership() const;
|
|
MsrpSession* takeMsrpSessionOwnership() const;
|
|
};
|
|
|
|
|
|
|
|
/* ======================== MessagingEvent ========================*/
|
|
class TINYWRAP_API MessagingEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
MessagingEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~MessagingEvent();
|
|
|
|
public: /* Public API functions */
|
|
tsip_message_event_type_t getType() const;
|
|
const MessagingSession* getSession() const;
|
|
MessagingSession* takeSessionOwnership() const;
|
|
};
|
|
|
|
/* ======================== InfoEvent ========================*/
|
|
class TINYWRAP_API InfoEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
InfoEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~InfoEvent();
|
|
|
|
public: /* Public API functions */
|
|
tsip_info_event_type_t getType() const;
|
|
const InfoSession* getSession() const;
|
|
InfoSession* takeSessionOwnership() const;
|
|
};
|
|
|
|
|
|
|
|
/* ======================== OptionsEvent ========================*/
|
|
class TINYWRAP_API OptionsEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
OptionsEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~OptionsEvent();
|
|
|
|
public: /* Public API functions */
|
|
tsip_options_event_type_t getType() const;
|
|
const OptionsSession* getSession() const;
|
|
OptionsSession* takeSessionOwnership() const;
|
|
};
|
|
|
|
|
|
|
|
/* ======================== PublicationEvent ========================*/
|
|
class TINYWRAP_API PublicationEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
PublicationEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~PublicationEvent();
|
|
|
|
public: /* Public API functions */
|
|
tsip_publish_event_type_t getType() const;
|
|
const PublicationSession* getSession() const;
|
|
PublicationSession* takeSessionOwnership() const;
|
|
};
|
|
|
|
|
|
|
|
/* ======================== RegistrationEvent ========================*/
|
|
class TINYWRAP_API RegistrationEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
RegistrationEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~RegistrationEvent();
|
|
|
|
public: /* Public API functions */
|
|
tsip_register_event_type_t getType() const;
|
|
const RegistrationSession* getSession() const;
|
|
RegistrationSession* takeSessionOwnership() const;
|
|
|
|
};
|
|
|
|
|
|
/* ======================== SubscriptionEvent ========================*/
|
|
class TINYWRAP_API SubscriptionEvent: public SipEvent
|
|
{
|
|
public:
|
|
#if !defined(SWIG)
|
|
SubscriptionEvent(const tsip_event_t *sipevent);
|
|
#endif
|
|
virtual ~SubscriptionEvent();
|
|
|
|
public: /* Public API functions */
|
|
tsip_subscribe_event_type_t getType() const;
|
|
const SubscriptionSession* getSession() const;
|
|
SubscriptionSession* takeSessionOwnership() const;
|
|
};
|
|
|
|
#endif /* TINYWRAP_SIPEVENT_H */
|