📄 vaxvoip.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 + -