⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tapidescribe.cpp

📁 基于TAPI 2.0的软电话源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// ----------------------------------------------------------------------------
// 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 + -