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

📄 vaxvoip.cpp

📁 VaxSIPUserAgentSDK
💻 CPP
字号:
// VaxVoIP.cpp: implementation of the CVaxVoIP class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "VCSample.h"
#include "VCSampleDlg.h"
#include "VaxVoIP.h"
#include "Mmsystem.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CVaxVoIP::CVaxVoIP()
{

}

CVaxVoIP::~CVaxVoIP()
{

}


void CVaxVoIP::ErrorMessage()
{
	DWORD dwError = GetVaxObjectError();
	
	switch(dwError)
	{
		case 10: m_pVCSampleDlg->MessageBox("You are not online, please click the 'Online' button first to dial/receive the calls.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 11: m_pVCSampleDlg->MessageBox("Cann't open local communication port. Another softphone (x-Ten, x-lite or skype etc) is already running. Please close it first.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
		
		case 12: m_pVCSampleDlg->MessageBox("License Key is not valid.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
	
		case 13: m_pVCSampleDlg->MessageBox("Fail to initialize VaxVoIP task window.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 14: m_pVCSampleDlg->MessageBox("Cann't access Input/Mic device or device is already in use.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
		
		case 15: m_pVCSampleDlg->MessageBox("Cann't access Output/Speaker device or device is already in use.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 16: m_pVCSampleDlg->MessageBox("Input/Mic device is not open.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
		
		case 17: m_pVCSampleDlg->MessageBox("Output/Speaker device is not open.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
		
		case 18: m_pVCSampleDlg->MessageBox("Your sound device does not support mic volume.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 19: m_pVCSampleDlg->MessageBox("Your sound device does not support speaker volume.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
		
		case 20: m_pVCSampleDlg->MessageBox("Recording media initialization fail.", "VaxVoIP SDK", MB_ICONEXCLAMATION); 
			break;

		case 21: m_pVCSampleDlg->MessageBox("Cann't open the wave file.", "VaxVoIP SDK", MB_ICONEXCLAMATION); 
			break;

		case 22: m_pVCSampleDlg->MessageBox("Provided SIP URI is not valid.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
					
		case 23: m_pVCSampleDlg->MessageBox("Codec is not supported.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
		
		case 24: m_pVCSampleDlg->MessageBox("Error to create SDP (Session Description Protocol) request.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 25: m_pVCSampleDlg->MessageBox("Error to create CONNECTION request. Please check the provided SIP URI is valid.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 26: m_pVCSampleDlg->MessageBox("Error to create REGISTER request. Please check the provided SIP URI is valid.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 27: m_pVCSampleDlg->MessageBox("Error to create UN-REGISTER request. Please check the provided SIP URI is valid.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 28: m_pVCSampleDlg->MessageBox("Error to create DISCONNECT request.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 29: m_pVCSampleDlg->MessageBox("Line No is not valid.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 30: m_pVCSampleDlg->MessageBox("Line is already busy.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 31: m_pVCSampleDlg->MessageBox("Line is not open.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 32: m_pVCSampleDlg->MessageBox("Invalid Call-Id.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 33: m_pVCSampleDlg->MessageBox("Provided value is not valid.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 34: m_pVCSampleDlg->MessageBox("Selected line is not in voice session.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 35: m_pVCSampleDlg->MessageBox("Fail to read wave file.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 36: m_pVCSampleDlg->MessageBox("Fail to write wave file.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;

		case 37: m_pVCSampleDlg->MessageBox("Unsupported wave file format.", "VaxVoIP SDK", MB_ICONEXCLAMATION);
			break;
	}
}

void CVaxVoIP::OnIncomingDiagnostic(LPCTSTR sMsgSIP, LPCTSTR sFromIP, UINT nFromPort)
{

}


void CVaxVoIP::OnOutgoingDiagnostic(LPCTSTR sMsgSIP, LPCTSTR sToIP, UINT nToPort)
{

}
	
void CVaxVoIP::OnDTMFDigit(int nLineNo, LPCTSTR sDigit)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Key-pressed: %s", nLineNo + 1, sDigit);

	m_pVCSampleDlg->AddToStatusList(sMsg);
}


void CVaxVoIP::OnMsgNOTIFY(LPCTSTR sMsg)
{

}

void CVaxVoIP::OnTryingToUnRegister()	
{
	m_pVCSampleDlg->AddToStatusList("Trying to unregister.");
}

void CVaxVoIP::OnFailToUnRegister()
{
	m_pVCSampleDlg->AddToStatusList("Fail to unregister.");
}

void CVaxVoIP::OnSuccessToUnRegister()
{
	m_pVCSampleDlg->AddToStatusList("Unregistered successfully.");
}

void CVaxVoIP::OnTryingToReRegister()
{
	//m_pVCSampleDlg->AddToStatusList("Trying to re-register.");
}

void CVaxVoIP::OnFailToReRegister()
{
	//m_pVCSampleDlg->AddToStatusList("Fail to re-register.");
}

void CVaxVoIP::OnSuccessToReRegister()
{
	//m_pVCSampleDlg->AddToStatusList("Success to re-register.");
}

void CVaxVoIP::OnTryingToRegister()	
{
	m_pVCSampleDlg->AddToStatusList("Trying to register.");
}

void CVaxVoIP::OnFailToRegister()
{
	m_pVCSampleDlg->AddToStatusList("Fail to register.");
}

void CVaxVoIP::OnSuccessToRegister()
{
	m_pVCSampleDlg->AddToStatusList("Registered successfully.");
}


void CVaxVoIP::OnPlayWaveDone(int nLineNo)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Play wave file done.", nLineNo + 1);
	
	m_pVCSampleDlg->AddToStatusList(sMsg);
}

void CVaxVoIP::OnFailToConnect(int nLineNo)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Fail to connect.", nLineNo + 1);

	m_pVCSampleDlg->AddToStatusList(sMsg);
}

void CVaxVoIP::OnSuccessToConnect(int nLineNo, LPCTSTR sToRTPIP, UINT nToRTPPort)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Connected.", nLineNo + 1);

	m_pVCSampleDlg->AddToStatusList(sMsg);

	m_pVCSampleDlg->OnSuccessToConnect();
}

void CVaxVoIP::OnConnecting(int nLineNo)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Connecting.", nLineNo + 1);

	m_pVCSampleDlg->AddToStatusList(sMsg);
}

/* SIP URI Format:  "DisplayName"<sip:UserName@domain.com> */

void CVaxVoIP::OnIncomingCall(LPCTSTR sCallId, LPCTSTR sDisplayName, LPCTSTR sUserName, LPCTSTR sFromURI, LPCTSTR sToURI)
{
	CString sCLI= "";

	if(!CString(sDisplayName).IsEmpty())
		sCLI = sDisplayName;
	else
		sCLI = sUserName;
		
	m_pVCSampleDlg->OnIncomingCall(sCallId, "CLI: " + sCLI);
}

void CVaxVoIP::OnIncomingCallRingingStart(LPCTSTR sCallId)
{
	m_pVCSampleDlg->OnIncomingCallRingingStart(sCallId);
}

void CVaxVoIP::OnIncomingCallRingingStop(LPCTSTR sCallId)
{
	m_pVCSampleDlg->OnIncomingCallRingingStop(sCallId);
}
	
void CVaxVoIP::OnDisconnectCall(int nLineNo)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Hung up.", nLineNo + 1);

	m_pVCSampleDlg->AddToStatusList(sMsg);
}

void CVaxVoIP::OnCallTransferAccepted(int nLineNo)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Transfer accepted.", nLineNo + 1);

	m_pVCSampleDlg->AddToStatusList(sMsg);
}

void CVaxVoIP::OnProvisionalResponse(int nLineNo, int nStatusCode, LPCTSTR sReasonPhrase)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Response: %s.", nLineNo + 1, sReasonPhrase);
	
	m_pVCSampleDlg->AddToStatusList(sMsg);
}

void CVaxVoIP::OnRedirectionResponse(int nLineNo, int nStatusCode, LPCTSTR sReasonPhrase, LPCTSTR sContact)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Response: %s.", nLineNo + 1, sReasonPhrase);
	
	m_pVCSampleDlg->AddToStatusList(sMsg);
}

void CVaxVoIP::OnRequestFailureResponse(int nLineNo, int nStatusCode, LPCTSTR sReasonPhrase)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Response: %s.", nLineNo + 1, sReasonPhrase);
	
	m_pVCSampleDlg->AddToStatusList(sMsg);
}

void CVaxVoIP::OnServerFailureResponse(int nLineNo, int nStatusCode, LPCTSTR sReasonPhrase)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Response: %s.", nLineNo + 1, sReasonPhrase);
	
	m_pVCSampleDlg->AddToStatusList(sMsg);
}

void CVaxVoIP::OnGeneralFailureResponse(int nLineNo, int nStatusCode, LPCTSTR sReasonPhrase)
{
	CString sMsg = "";
	sMsg.Format("Line-%d: Response: %s.", nLineNo + 1, sReasonPhrase);
	
	m_pVCSampleDlg->AddToStatusList(sMsg);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -