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
|
//
// 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 _PresenceDialInServer_h_
#define _PresenceDialInServer_h_
// SYSTEM INCLUDES
// APPLICATION INCLUDES
#include <os/OsBSem.h>
#include <net/StateChangeNotifier.h>
#include <tao/TaoAdaptor.h>
#include <utl/UtlHashMap.h>
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
class CallManager;
class TaoString;
/**
* A PresenceDialInServer is an object that allows an extension to sign in and
* sign off to a ACD queue by simply using a feature code.
*
*/
class PresenceDialInServer: public TaoAdaptor
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
/* ============================ CREATORS ================================== */
/// Constructor
PresenceDialInServer(CallManager* callMgr, UtlString& configFile);
/// Destructor
virtual ~PresenceDialInServer();
/* ============================ MANIPULATORS ============================== */
virtual UtlBoolean handleMessage(OsMsg& eventMessage);
/* ============================ ACCESSORS ================================= */
/// Registered a StateChangeNotifier
void addStateChangeNotifier(const char* fileUrl, StateChangeNotifier* notifier);
/// Unregistered a StateChangeNotifier
void removeStateChangeNotifier(const char* fileUrl);
/* ============================ INQUIRY =================================== */
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
void dumpTaoMessageArgs(unsigned char eventId, TaoString& args);
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
void parseConfig(UtlString& configFile);
bool notifyStateChange(UtlString& contact, bool signIn);
CallManager* mpCallManager;
OsBSem mLock;
UtlString mSignInFC; /// Sign in feature code
UtlString mSignOutFC; /// Sign out feature code
UtlString mSignInConfirmationAudio;
UtlString mSignOutConfirmationAudio;
UtlString mErrorAudio;
OsMsgQ* mpIncomingQ;
UtlHashMap mCalls;
UtlHashMap mStateChangeNotifiers;
};
/* ============================ INLINE METHODS ============================ */
#endif // _PresenceDialInServer_h_
|