?? tapidescribe.cpp
字號:
// ----------------------------------------------------------------------------
// IP Office SDK (c) Avaya 2001. All rights reserved.
//
// PROJECT: TapiSample
// FILE: tapidescribe.cpp
// CREATED: Geoff Froud, based on previous work by Carl Muller
//
// See tapisample.h for an explanation of this program.
//
// This is the implementation file for the tapi message description functions.
// See tapidescribe.h for the definition of these functions
//
// ----------------------------------------------------------------------------
#include "stdafx.h"
#include "tapisample.h"
#include "tapisampleDlg.h"
#include "tapidescribe.h"
// ----------------------------------------------------------------------------
// Describe a call privilege level (in English)
LPCTSTR DescribeError(DWORD dwError)
{
switch (dwError) {
case LINEERR_ALLOCATED : return "Allocated";
case LINEERR_BADDEVICEID : return "BadDeviceId";
case LINEERR_BEARERMODEUNAVAIL : return "BearerModeUnavail";
case LINEERR_CALLUNAVAIL : return "CallUnavail";
case LINEERR_COMPLETIONOVERRUN : return "CompletionOverrun";
case LINEERR_CONFERENCEFULL : return "ConferenceFull";
case LINEERR_DIALBILLING : return "DialBilling";
case LINEERR_DIALDIALTONE : return "DialDialtone";
case LINEERR_DIALPROMPT : return "DialPrompt";
case LINEERR_DIALQUIET : return "DialQuiet";
case LINEERR_INCOMPATIBLEAPIVERSION : return "IncompatibleAPIVersion";
case LINEERR_INCOMPATIBLEEXTVERSION : return "IncompatibleExtVersion";
case LINEERR_INIFILECORRUPT : return "IniFileCorrupt";
case LINEERR_INUSE : return "InUse";
case LINEERR_INVALADDRESS : return "InvalAddress";
case LINEERR_INVALADDRESSID : return "InvalAddressID";
case LINEERR_INVALADDRESSMODE : return "InvalAddressMode";
case LINEERR_INVALADDRESSSTATE : return "InvalAddressState";
case LINEERR_INVALAPPHANDLE : return "InvalAppHandle";
case LINEERR_INVALAPPNAME : return "InvalAppName";
case LINEERR_INVALBEARERMODE : return "InvalBearerMode";
case LINEERR_INVALCALLCOMPLMODE : return "InvalCallCompMode";
case LINEERR_INVALCALLHANDLE : return "InvalCallHandle";
case LINEERR_INVALCALLPARAMS : return "InvalCallParams";
case LINEERR_INVALCALLPRIVILEGE : return "InvalCallPrivilege";
case LINEERR_INVALCALLSELECT : return "InvalCallSelect";
case LINEERR_INVALCALLSTATE : return "InvalCallState";
case LINEERR_INVALCALLSTATELIST : return "InvalCallStateList";
case LINEERR_INVALCARD : return "InvalCard";
case LINEERR_INVALCOMPLETIONID : return "InvalCompletionID";
case LINEERR_INVALCONFCALLHANDLE : return "InvalConfCallHandle";
case LINEERR_INVALCONSULTCALLHANDLE : return "InvalConsultCallHandle";
case LINEERR_INVALCOUNTRYCODE : return "InvalCountryCode";
case LINEERR_INVALDEVICECLASS : return "InvalDeviceClass";
case LINEERR_INVALDEVICEHANDLE : return "InvalDeviceHandle";
case LINEERR_INVALDIALPARAMS : return "InvalDialParams";
case LINEERR_INVALDIGITLIST : return "InvalDigitList";
case LINEERR_INVALDIGITMODE : return "InvalDigitMode";
case LINEERR_INVALDIGITS : return "InvalDigits";
case LINEERR_INVALEXTVERSION : return "InvalExtVersion";
case LINEERR_INVALGROUPID : return "InvalGroupID";
case LINEERR_INVALLINEHANDLE : return "InvalLineHandle";
case LINEERR_INVALLINESTATE : return "InvalLineState";
case LINEERR_INVALLOCATION : return "InvalLocation";
case LINEERR_INVALMEDIALIST : return "InvalMediaList";
case LINEERR_INVALMEDIAMODE : return "InvalMediaMode";
case LINEERR_INVALMESSAGEID : return "InvalMessageID";
case LINEERR_INVALPARAM : return "InvalParam";
case LINEERR_INVALPARKID : return "InvalParkID";
case LINEERR_INVALPARKMODE : return "InvalParkMode";
case LINEERR_INVALPOINTER : return "InvalPointer";
case LINEERR_INVALPRIVSELECT : return "InvalPrivSelect";
case LINEERR_INVALRATE : return "InvalRate";
case LINEERR_INVALREQUESTMODE : return "InvalRequestMode";
case LINEERR_INVALTERMINALID : return "InvalTerminalID";
case LINEERR_INVALTERMINALMODE : return "InvalTerminalMode";
case LINEERR_INVALTIMEOUT : return "InvalTimeout";
case LINEERR_INVALTONE : return "InvalTone";
case LINEERR_INVALTONELIST : return "InvalToneList";
case LINEERR_INVALTONEMODE : return "InvalToneMode";
case LINEERR_INVALTRANSFERMODE : return "InvalTransferMode";
case LINEERR_LINEMAPPERFAILED : return "LineMapperFailed";
case LINEERR_NOCONFERENCE : return "NoConference";
case LINEERR_NODEVICE : return "NoDevice";
case LINEERR_NODRIVER : return "NoDriver";
case LINEERR_NOMEM : return "NoMem";
case LINEERR_NOREQUEST : return "NoRequest";
case LINEERR_NOTOWNER : return "NotOwner";
case LINEERR_NOTREGISTERED : return "NotRegistered";
case LINEERR_OPERATIONFAILED : return "OperationFailed";
case LINEERR_OPERATIONUNAVAIL : return "OperationUnavail";
case LINEERR_RATEUNAVAIL : return "RateUnavail";
case LINEERR_RESOURCEUNAVAIL : return "ResourceUnavail";
case LINEERR_REQUESTOVERRUN : return "RequestOverrun";
case LINEERR_STRUCTURETOOSMALL : return "StructureTooSmall";
case LINEERR_TARGETNOTFOUND : return "TargetNotFound";
case LINEERR_TARGETSELF : return "TargetSelf";
case LINEERR_UNINITIALIZED : return "Uninitialized";
case LINEERR_USERUSERINFOTOOBIG : return "UserUserInfoTooBig";
case LINEERR_REINIT : return "ReInit";
case LINEERR_ADDRESSBLOCKED : return "AddressBlocked";
case LINEERR_BILLINGREJECTED : return "BillingRejected";
case LINEERR_INVALFEATURE : return "InvalFeature";
case LINEERR_NOMULTIPLEINSTANCE : return "NoMultipleInstance";
case LINEERR_INVALAGENTID : return "InvalAgentID";
case LINEERR_INVALAGENTGROUP : return "InvalAgentGroup";
case LINEERR_INVALPASSWORD : return "InvalPassword";
case LINEERR_INVALAGENTSTATE : return "InvalAgentState";
case LINEERR_INVALAGENTACTIVITY : return "InvalAgentActivity";
case LINEERR_DIALVOICEDETECT : return "DialVoiceDetect";
default: return "???";
};
}
// ----------------------------------------------------------------------------
// Describe details about a call state (in English)
LPCTSTR DescribeCallStateDetail(DWORD nCallState, DWORD nCallStateDetail)
{
switch(nCallState) {
case LINECALLSTATE_BUSY:
switch (nCallStateDetail) {
case 0: return "0";
case LINEBUSYMODE_STATION: return "Station";
case LINEBUSYMODE_TRUNK: return "Trunk";
case LINEBUSYMODE_UNKNOWN: return "Unknown";
case LINEBUSYMODE_UNAVAIL: return "Unavailable";
default: return "???";
};
case LINECALLSTATE_CONNECTED:
switch (nCallStateDetail) {
case 0: return "0";
case LINECONNECTEDMODE_ACTIVE: return "Active";
case LINECONNECTEDMODE_INACTIVE: return "Inactive";
case LINECONNECTEDMODE_ACTIVEHELD: return "ActiveHeld";
case LINECONNECTEDMODE_INACTIVEHELD: return "InactiveHeld";
case LINECONNECTEDMODE_CONFIRMED: return "Confirmed";
default: return "???";
};
case LINECALLSTATE_DIALTONE:
switch (nCallStateDetail) {
case 0: return "0";
case LINEDIALTONEMODE_NORMAL: return "Normal";
case LINEDIALTONEMODE_SPECIAL: return "Special";
case LINEDIALTONEMODE_INTERNAL: return "Internal";
case LINEDIALTONEMODE_EXTERNAL: return "External";
case LINEDIALTONEMODE_UNKNOWN: return "Unknown";
case LINEDIALTONEMODE_UNAVAIL: return "Unavailable";
default: return "???";
};
case LINECALLSTATE_OFFERING:
switch (nCallStateDetail) {
case 0: return "0";
case LINEOFFERINGMODE_ACTIVE: return "Active";
case LINEOFFERINGMODE_INACTIVE: return "Inactive";
default: return "???";
};
case LINECALLSTATE_SPECIALINFO:
switch (nCallStateDetail) {
case 0: return "0";
case LINESPECIALINFO_NOCIRCUIT: return "NoCircuit";
case LINESPECIALINFO_CUSTIRREG: return "CustIrreg";
case LINESPECIALINFO_REORDER: return "ReOrder";
case LINESPECIALINFO_UNKNOWN: return "Unknown";
case LINESPECIALINFO_UNAVAIL: return "Unavailable";
default: return "???";
};
case LINECALLSTATE_DISCONNECTED:
switch (nCallStateDetail) {
case 0: return "0";
case LINEDISCONNECTMODE_NORMAL: return "Normal";
case LINEDISCONNECTMODE_UNKNOWN: return "Unknown";
case LINEDISCONNECTMODE_REJECT: return "Reject";
case LINEDISCONNECTMODE_PICKUP: return "Pickup";
case LINEDISCONNECTMODE_FORWARDED: return "Forwarded";
case LINEDISCONNECTMODE_BUSY: return "Busy";
case LINEDISCONNECTMODE_NOANSWER: return "NoAnswer";
case LINEDISCONNECTMODE_BADADDRESS: return "BadAddress";
case LINEDISCONNECTMODE_UNREACHABLE: return "Unreachable";
case LINEDISCONNECTMODE_CONGESTION: return "Congestion";
case LINEDISCONNECTMODE_INCOMPATIBLE: return "Incompatible";
case LINEDISCONNECTMODE_UNAVAIL: return "Unavailable";
case LINEDISCONNECTMODE_NODIALTONE: return "NoDialTone";
case LINEDISCONNECTMODE_NUMBERCHANGED: return "NumberChanged";
case LINEDISCONNECTMODE_OUTOFORDER: return "OutOfOrder";
case LINEDISCONNECTMODE_TEMPFAILURE: return "TempFailure";
case LINEDISCONNECTMODE_QOSUNAVAIL: return "QOSUnavail";
case LINEDISCONNECTMODE_BLOCKED: return "Blocked";
case LINEDISCONNECTMODE_DONOTDISTURB: return "DoNotDisturb";
case LINEDISCONNECTMODE_CANCELLED: return "Cancelled";
default: return "???";
};
default:
return "";
};
}
// ----------------------------------------------------------------------------
// Describe a call state (in English)
LPCTSTR DescribeCallState(CString& result, DWORD CallState)
{
result.Empty();
if (CallState == 0) result += "None";
if (CallState & LINECALLSTATE_IDLE) result += "Idle ";
if (CallState & LINECALLSTATE_OFFERING) result += "Offering ";
if (CallState & LINECALLSTATE_ACCEPTED) result += "Accepted ";
if (CallState & LINECALLSTATE_DIALTONE) result += "DialTone ";
if (CallState & LINECALLSTATE_DIALING) result += "Dialing ";
if (CallState & LINECALLSTATE_RINGBACK) result += "RingBack ";
if (CallState & LINECALLSTATE_BUSY) result += "Busy ";
if (CallState & LINECALLSTATE_SPECIALINFO) result += "SpecialInfo ";
if (CallState & LINECALLSTATE_CONNECTED) result += "Connected ";
if (CallState & LINECALLSTATE_PROCEEDING) result += "Proceeding ";
if (CallState & LINECALLSTATE_ONHOLD) result += "Held ";
if (CallState & LINECALLSTATE_CONFERENCED) result += "Conferenced ";
if (CallState & LINECALLSTATE_ONHOLDPENDCONF) result += "HoldPendingConference ";
if (CallState & LINECALLSTATE_ONHOLDPENDTRANSFER) result += "HoldPendingTransfer ";
if (CallState & LINECALLSTATE_DISCONNECTED) result += "Disconnected ";
if (CallState & LINECALLSTATE_UNKNOWN) result += "Unknown ";
if (result.IsEmpty()) result += "??? ";
return LPCTSTR(result);
}
// ----------------------------------------------------------------------------
// Describe a call privilege level (in English)
LPCTSTR DescribePrivilege(CString &result, DWORD nPrivilege)
{
result.Empty();
if (nPrivilege == 0) result += "SamePrivilege";
if (nPrivilege & LINECALLPRIVILEGE_NONE) result += "NoPrivilege ";
if (nPrivilege & LINECALLPRIVILEGE_MONITOR) result += "Monitor ";
if (nPrivilege & LINECALLPRIVILEGE_OWNER) result += "Owner ";
if (result.IsEmpty()) result += "??? ";
return LPCTSTR(result);
}
// ----------------------------------------------------------------------------
// Describe details about a device state (in English)
LPCTSTR DescribeDeviceStatus(CString &result, DWORD DeviceState)
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -