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

📄 vcsampledlg.cpp

📁 VaxSIPUserAgentSDK
💻 CPP
📖 第 1 页 / 共 2 页
字号:

void CVCSampleDlg::OnButton1() 
{
	UpdateData();
	
	m_sPhoneNumber += "1";
	
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "1");
	
	UpdateData(FALSE);
	
}

void CVCSampleDlg::OnButton2() 
{
	UpdateData();
	
	m_sPhoneNumber += "2";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "2"); 
	
	UpdateData(FALSE);
	
}

void CVCSampleDlg::OnButton3() 
{
	UpdateData();
	
	m_sPhoneNumber += "3";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "3");
	
	UpdateData(FALSE);
}

void CVCSampleDlg::OnButton4() 
{
	UpdateData();
	
	m_sPhoneNumber += "4";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "4");
	
	UpdateData(FALSE);
}

void CVCSampleDlg::OnButton5() 
{
	UpdateData();
	
	m_sPhoneNumber += "5";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "5");
	
	UpdateData(FALSE);
}

void CVCSampleDlg::OnButton6() 
{
	UpdateData();
	
	m_sPhoneNumber += "6";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "6");
	
	UpdateData(FALSE);
}

void CVCSampleDlg::OnButton7() 
{
	UpdateData();
	
	m_sPhoneNumber += "7";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "7");
	
	UpdateData(FALSE);
}

void CVCSampleDlg::OnButton8() 
{
	UpdateData();
	
	m_sPhoneNumber += "8";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "8");
	
	UpdateData(FALSE);
}

void CVCSampleDlg::OnButton9() 
{
	UpdateData();
	
	m_sPhoneNumber += "9";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "9");
	
	UpdateData(FALSE);
}

void CVCSampleDlg::OnButton11() 
{
	UpdateData();
	
	m_sPhoneNumber += "0";
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "0");
	
	UpdateData(FALSE);
}

void CVCSampleDlg::OnButton10() 
{
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "*");
}


void CVCSampleDlg::OnButton12() 
{
	m_pVaxVoIP->DigitDTMF(m_ctrlDialSelectLine.GetCurSel(), "#");
}

void CVCSampleDlg::OnCheckSpkMute() 
{
	UpdateData();
	m_pVaxVoIP->MuteSpk(m_bSpkMute);
}

void CVCSampleDlg::OnCheckMicMute() 
{
	UpdateData();
	m_pVaxVoIP->MuteMic(m_bMicMute);
}

void CVCSampleDlg::OnButtonResetRecording() 
{
	int nLineNo = m_ctrlRecordSelectLine.GetCurSel();
	
	m_pVaxVoIP->ResetRecording(nLineNo);
}

void CVCSampleDlg::OnButtonSaveToWaveFile() 
{
	UpdateData();
	
	int nLineNo = m_ctrlRecordSelectLine.GetCurSel();

	if(!m_pVaxVoIP->SaveRecordingToWaveFile(nLineNo, m_sWavFile))
	{
		m_pVaxVoIP->ErrorMessage();
	}
	else
	{
		MessageBox("Saved successfully.", "VaxVoIP SIP SDK", MB_ICONINFORMATION|MB_OK);
	}
}

void CVCSampleDlg::OnCheckStartRecording() 
{
	UpdateData();

	int nLineNo = m_ctrlRecordSelectLine.GetCurSel();
		
	if(m_bStartRecording)
		m_pVaxVoIP->StartRecording(nLineNo, 2, TRUE);
	else
		m_pVaxVoIP->StopRecording(nLineNo);
}

void CVCSampleDlg::OnCheckEcho() 
{
	UpdateData();
	
	if(m_bEnableEchoNoiseCancel)
		m_pVaxVoIP->EnableEchoNoiseCancellation();
	else
		m_pVaxVoIP->DisableEchoNoiseCancellation();
}


void CVCSampleDlg::OnCheckMicBoost() 
{
	UpdateData();
	
	if(m_bEnableMicBoost)
		m_pVaxVoIP->EnableMicBoost();
	else
		m_pVaxVoIP->DisableMicBoost();
}


void CVCSampleDlg::OnCheckDonotDisturb() 
{
	UpdateData();
	
	if(m_bDonotDisturb)
		m_pVaxVoIP->EnableDonotDisturb();
	else
		m_pVaxVoIP->DisableDonotDisturb();	
}


void CVCSampleDlg::OnCheckGsm610() 
{
	/**** Codec No 0 represents GSM 6.10 *****/
	
	UpdateData();
	
	if(m_bGSM610)
		m_pVaxVoIP->SelectVoiceCodec(0);
	else
		m_pVaxVoIP->DeselectVoiceCodec(0);	
}

void CVCSampleDlg::OnCheckiLBC() 
{
	/**** Codec No 1 represents iLBC ********/
	
	UpdateData();
	
	if(m_biLBC)
		m_pVaxVoIP->SelectVoiceCodec(1);
	else
		m_pVaxVoIP->DeselectVoiceCodec(1);
	
}

void CVCSampleDlg::OnCheckG711ALaw() 
{
	/**** Codec No 2 represents GSM711 A-Law *****/
	
	UpdateData();
		
	if(m_bG711ALaw)
		m_pVaxVoIP->SelectVoiceCodec(2);
	else
		m_pVaxVoIP->DeselectVoiceCodec(2);

}

void CVCSampleDlg::OnCheckG711ULaw() 
{
	/**** Codec No 3 represents GSM711 U-Law *****/
	
	UpdateData();
		
	if(m_bG711ULaw)
		m_pVaxVoIP->SelectVoiceCodec(3);
	else
		m_pVaxVoIP->DeselectVoiceCodec(3);
}

void CVCSampleDlg::OnButtonHelp() 
{
	CHelpDlg HelpDlg;
	HelpDlg.DoModal();
}


void CVCSampleDlg::OnButtonTransferCall() 
{
	UpdateData();

	CString sToURI = "sip:" + m_sTransferPhoneNo + "@" + m_sProxyURI;
	
	int nLineNo = m_ctrlTransferSelectLine.GetCurSel();
	
	if(!m_pVaxVoIP->TransferCall(nLineNo, sToURI))
	{
		m_pVaxVoIP->ErrorMessage();
	}
}

void CVCSampleDlg::OnCheckAgc() 
{
	UpdateData();
	
	if(m_bEnableAGC)
	{
		m_pVaxVoIP->EnableAGC(8000);
	}
	else
	{
		m_pVaxVoIP->DisableAGC();
	}
}


void CVCSampleDlg::OnButtonOpenWave() 
{
	UpdateData();

	int nLineNo = m_ctrlPlayWaveSelectLine.GetCurSel();
	
	if(!m_pVaxVoIP->PlayWaveOpen(nLineNo, m_sPlayWaveFileName))
	{
		m_pVaxVoIP->ErrorMessage();
	}
}

void CVCSampleDlg::OnButtonWavePlay() 
{
	UpdateData();
	
	int nLineNo = m_ctrlPlayWaveSelectLine.GetCurSel();
	
	if(!m_pVaxVoIP->PlayWaveStart(nLineNo, m_bPlayListen))
	{
		m_pVaxVoIP->ErrorMessage();
	}
}

void CVCSampleDlg::OnButtonWaveRewind() 
{
	int nLineNo = m_ctrlPlayWaveSelectLine.GetCurSel();
	
	int nPlayPos = m_pVaxVoIP->PlayWavePosition(nLineNo);

	if(nPlayPos == -1)
	{
		m_pVaxVoIP->ErrorMessage();
		return;
	}

	if(!m_pVaxVoIP->PlayWaveSkipTo(nLineNo, nPlayPos - 3))
	{
		m_pVaxVoIP->ErrorMessage();
	}
}

void CVCSampleDlg::OnButtonWaveForward() 
{
	int nLineNo = m_ctrlPlayWaveSelectLine.GetCurSel();
	
	int nPlayPos = m_pVaxVoIP->PlayWavePosition(nLineNo);

	if(nPlayPos == -1)
	{
		m_pVaxVoIP->ErrorMessage();
		return;
	}
	
	if(!m_pVaxVoIP->PlayWaveSkipTo(nLineNo, nPlayPos + 3))
	{
		m_pVaxVoIP->ErrorMessage();
	}
	
}

void CVCSampleDlg::OnButtonWavePause() 
{
	int nLineNo = m_ctrlPlayWaveSelectLine.GetCurSel();
	
	if(!m_pVaxVoIP->PlayWavePause(nLineNo))
	{
		m_pVaxVoIP->ErrorMessage();
	}
}

void CVCSampleDlg::OnButtonWaveStop() 
{
	int nLineNo = m_ctrlPlayWaveSelectLine.GetCurSel();
	
	if(!m_pVaxVoIP->PlayWaveStop(nLineNo))
	{
		m_pVaxVoIP->ErrorMessage();
	}
}


CString CVCSampleDlg::GetSelectedItemCallId()
{
	
	int nSelectedItemIndex = m_ctrlIncomingCallListBox.GetCurSel();
	if(nSelectedItemIndex == -1) return "";

	CString sCallId = "";
	
	m_ctrlIncomingCalIIdListBox.GetText(nSelectedItemIndex, sCallId);

	return sCallId;
}

void CVCSampleDlg::OnTimer(UINT nIDEvent) 
{
	if(nIDEvent == GENERAL_TIMER_ID)
	{
		
		UpdateLineStatusList();

	}
	else if(nIDEvent == VOL_LEVEL_TIMER_ID)
	{
		m_ctrlSpkProg.SetPos(m_pVaxVoIP->GetSpkSoundLevel());
		m_ctrlMicProg.SetPos(m_pVaxVoIP->GetMicSoundLevel());
	}
	
	CDialog::OnTimer(nIDEvent);
}


CString CVCSampleDlg::GetCodecName(int nCodecNo)
{
	if(nCodecNo == 0)
		return "gsm6.10";

	if(nCodecNo == 1)
		return "iLBC";

	if(nCodecNo == 2)
		return "gsm711a";

	if(nCodecNo == 3)
		return "gsm711u";
		
	return "";
}

void CVCSampleDlg::UpdateLineStatusList()
{
	
	if(m_ctrlLineStatusList.GetItemCount() == 0)
	{
		for(int nLineNo = 0; nLineNo < m_nTotalLines; nLineNo++)
		{
			CString sText = "";
			sText.Format("%d", nLineNo + 1);

			m_ctrlLineStatusList.InsertItem(nLineNo, sText);
			m_ctrlLineStatusList.SetItemText(nLineNo, 1, "free");
		}
	}
	
	for(int nItemNo = 0; nItemNo < m_ctrlLineStatusList.GetItemCount(); nItemNo++)
	{
		int nCodecNo = m_pVaxVoIP->GetOutboundCodec(nItemNo);
		m_ctrlLineStatusList.SetItemText(nItemNo, 2, GetCodecName(nCodecNo));

		nCodecNo = m_pVaxVoIP->GetInboundCodec(nItemNo);
		m_ctrlLineStatusList.SetItemText(nItemNo, 3, GetCodecName(nCodecNo));

		CString sItemText = m_ctrlLineStatusList.GetItemText(nItemNo, 1);

		if(!m_pVaxVoIP->IsLineOpen(nItemNo))
		{
			if(sItemText.Find("close") == -1)
			{						
				m_ctrlLineStatusList.SetItemText(nItemNo, 1, "close");
			}
		}
		else if(m_pVaxVoIP->IsLineBusy(nItemNo))
		{
			if(m_pVaxVoIP->IsWaveFilePlaying(nItemNo))
			{
				if(sItemText.Find("playing") == -1)
					m_ctrlLineStatusList.SetItemText(nItemNo, 1, "playing");
			}
			else if(m_pVaxVoIP->IsLineHold(nItemNo))
			{
				if(sItemText.Find("hold") == -1)
					m_ctrlLineStatusList.SetItemText(nItemNo, 1, "hold");
			}
			else
			{
				if(sItemText.Find("busy") == -1)
					m_ctrlLineStatusList.SetItemText(nItemNo, 1, "busy");
			}
		}
		else
		{
			if(sItemText.Find("free") == -1)
				m_ctrlLineStatusList.SetItemText(nItemNo, 1, "free");
		}
	}
}

void CVCSampleDlg::OnSelchangeComboRecordSelectLine() 
{
	int nLineNo = m_ctrlRecordSelectLine.GetCurSel();
	
	m_bStartRecording = m_pVaxVoIP->IsRecording(nLineNo);

	UpdateData(FALSE);
}


void CVCSampleDlg::OnSuccessToConnect()
{
	int nVol = m_pVaxVoIP->GetMicVolume();
	m_MicSlider.SetPos(nVol/25);

	nVol = m_pVaxVoIP->GetSpkVolume();
	m_SpkSlider.SetPos(nVol/25);
	
	m_bEnableMicBoost = m_pVaxVoIP->IsMicBoostEnable();

	UpdateData(FALSE);
}


void CVCSampleDlg::OnIncomingCall(LPCTSTR sCallId, LPCTSTR sCLI)
{
	if(m_ctrlIncomingCalIIdListBox.FindString(-1, sCallId) != -1)
		return;
	
	m_ctrlIncomingCallListBox.AddString(sCLI);
	m_ctrlIncomingCalIIdListBox.AddString(sCallId);

	if(m_ctrlIncomingCallListBox.GetCurSel() == -1)
		m_ctrlIncomingCallListBox.SetCurSel(0);
}


void CVCSampleDlg::OnIncomingCallRingingStart(LPCTSTR sCallId)
{
	UpdateData();
	
	if(m_bPlayRingTone)
		::PlaySound("ring.wav", NULL, SND_FILENAME|SND_ASYNC|SND_LOOP|SND_NODEFAULT);
}


void CVCSampleDlg::OnIncomingCallRingingStop(LPCTSTR sCallId)
{
	::PlaySound(NULL, NULL, SND_FILENAME|SND_ASYNC|SND_LOOP|SND_NODEFAULT);
		
	int nIndex = m_ctrlIncomingCalIIdListBox.FindString(-1, sCallId);
	if(nIndex != -1)
	{
		m_ctrlIncomingCallListBox.DeleteString(nIndex);
		m_ctrlIncomingCalIIdListBox.DeleteString(nIndex);
	}

	if(m_ctrlIncomingCallListBox.GetCurSel() == -1)
		m_ctrlIncomingCallListBox.SetCurSel(0);
}


void CVCSampleDlg::OnCheckPlayRingTone() 
{
	UpdateData();
		
	if(!m_bPlayRingTone)
	{
		::PlaySound(NULL, NULL, SND_FILENAME|SND_ASYNC|SND_LOOP|SND_NODEFAULT);
	}
}


void CVCSampleDlg::AddToStatusList(LPCTSTR sText)
{
	m_ctrlStatusLogListBox.AddString(sText);
	m_ctrlStatusLogListBox.SetTopIndex(m_ctrlStatusLogListBox.GetCount() - 1);
}


int CVCSampleDlg::GetSelectedAudioInDeviceId()
{
	int nItemIndex = m_ctrlStatusAudioInListBox.GetCurSel();
	if(nItemIndex == -1) return -1;
	
	return m_ctrlStatusAudioInListBox.GetItemData(nItemIndex);
}

int CVCSampleDlg::GetSelectedAudioOutDeviceId()
{
	int nItemIndex = m_ctrlStatusAudioOutListBox.GetCurSel();
	if(nItemIndex == -1) return -1;
	
	return m_ctrlStatusAudioOutListBox.GetItemData(nItemIndex);
}


void CVCSampleDlg::UpdateAudioInListBox()
{
	m_ctrlStatusAudioInListBox.ResetContent();

	int nItemIndex = m_ctrlStatusAudioInListBox.AddString("Default Device");
	m_ctrlStatusAudioInListBox.SetItemData(nItemIndex, -1);
	
	for(int nDeviceId = 0; nDeviceId < m_pVaxVoIP->GetAudioInDevTotal(); nDeviceId++)
	{
		nItemIndex = m_ctrlStatusAudioInListBox.AddString(m_pVaxVoIP->GetAudioInDevName(nDeviceId));
		m_ctrlStatusAudioInListBox.SetItemData(nItemIndex, nDeviceId); 
	}

	m_ctrlStatusAudioInListBox.SetCurSel(0);
}

void CVCSampleDlg::UpdateAudioOutListBox()
{
	m_ctrlStatusAudioOutListBox.ResetContent();

	int nItemIndex = m_ctrlStatusAudioOutListBox.AddString("Default Device");
	m_ctrlStatusAudioOutListBox.SetItemData(nItemIndex, -1);
	
	for(int nDeviceId = 0; nDeviceId < m_pVaxVoIP->GetAudioOutDevTotal(); nDeviceId++)
	{
		nItemIndex = m_ctrlStatusAudioOutListBox.AddString(m_pVaxVoIP->GetAudioOutDevName(nDeviceId));
		m_ctrlStatusAudioOutListBox.SetItemData(nItemIndex, nDeviceId); 
	}

	m_ctrlStatusAudioOutListBox.SetCurSel(0);
}

⌨️ 快捷键说明

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