private void setserver_Click(object sender, EventArgs e) { if (BriSDKLib.QNV_CCCtrl(BriSDKLib.QNV_CCCTRL_SETSERVER, ccsvraddr.Text, 0) <= 0) { AppendStatus("修改服务器IP地址失败 " + ccsvraddr.Text); } else { AppendStatus("修改服务器IP地址完成,可以重新登陆.. " + ccsvraddr.Text); } }
private void logonbtn_Click(object sender, EventArgs e) { if (BriSDKLib.QNV_CCCtrl(BriSDKLib.QNV_CCCTRL_ISLOGON, "", 0) > 0) { BriSDKLib.QNV_CCCtrl(BriSDKLib.QNV_CCCTRL_LOGOUT, "", 0); AppendStatus("已经在线,先离线."); } string strValue = cccode.Text + "," + ccpwd.Text; //','分隔 if (BriSDKLib.QNV_CCCtrl(BriSDKLib.QNV_CCCTRL_LOGIN, strValue, 0) <= 0) //开始登陆 { MessageBox.Show("登陆失败,CC:" + cccode.Text); } else { AppendStatus("开始登陆,CC: " + cccode.Text); } }
private void logoutbtn_Click(object sender, EventArgs e) { BriSDKLib.QNV_CCCtrl(BriSDKLib.QNV_CCCTRL_LOGOUT, "", 0); AppendStatus("CC已经离线"); }
protected override void DefWndProc(ref System.Windows.Forms.Message m) { switch (m.Msg) { case BriSDKLib.BRI_EVENT_MESSAGE: { BriSDKLib.TBriEvent_Data EventData = (BriSDKLib.TBriEvent_Data)Marshal.PtrToStructure(m.LParam, typeof(BriSDKLib.TBriEvent_Data)); string strValue = ""; //AppendStatus("接收到消息:" + " type=" + EventData.lEventType.ToString() + " result=" + EventData.lResult + " data=" + FromASCIIByteArray(EventData.szData)); switch (EventData.lEventType) { case BriSDKLib.BriEvent_PhoneHook: { strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":电话机摘机"; } break; case BriSDKLib.BriEvent_PhoneHang: { strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":电话机挂机"; } break; case BriSDKLib.BriEvent_CallIn: { ////两声响铃结束后开始呼叫转移到CC if (EventData.lResult == 2 && FromASCIIByteArray(EventData.szData) == BriSDKLib.RING_END_SIGN_CH && m_tagGateData[EventData.uChannelID].lCCHandle == 0) { StartCallCC(EventData); return; } else { strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":来电响铃"; } } break; case BriSDKLib.BriEvent_GetCallID: { strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":接收到来电号码 " + FromASCIIByteArray(EventData.szData); //如果接收到来电号码就立即开始呼叫转移到CC StartCallCC(EventData); // } break; case BriSDKLib.BriEvent_StopCallIn: { StopCallCC(EventData.uChannelID); strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":停止呼入,产生一个未接电话 "; } break; case BriSDKLib.BriEvent_GetDTMFChar: strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":接收到按键 " + FromASCIIByteArray(EventData.szData); break; case BriSDKLib.BriEvent_RemoteHang: { StopCallCC(EventData.uChannelID); strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":远程挂机 "; } break; case BriSDKLib.BriEvent_Busy: { StopCallCC(EventData.uChannelID); strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":接收到忙音,线路已经断开 "; } break; case BriSDKLib.BriEvent_DialTone: strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":检测到拨号音 "; break; case BriSDKLib.BriEvent_PhoneDial: strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":电话机拨号 " + FromASCIIByteArray(EventData.szData); break; case BriSDKLib.BriEvent_RingBack: strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":拨号后接收到回铃音 "; break; case BriSDKLib.BriEvent_CC_ConnectFailed: strValue = "通道" + (EventData.uChannelID + 1).ToString() + ":连接CC服务器失败 "; break; case BriSDKLib.BriEvent_CC_LoginFailed: //登陆失败 { strValue = "登陆失败 原因=" + EventData.lResult.ToString(); BriSDKLib.QNV_CCCtrl(BriSDKLib.QNV_CCCTRL_LOGOUT, "", 0); //释放资源 MessageBox.Show("登陆失败"); } break; case BriSDKLib.BriEvent_CC_CallOutSuccess: strValue = "正在呼叫"; break; case BriSDKLib.BriEvent_CC_CallOutFailed: { BriSDKLib.QNV_CCCtrl_Call(BriSDKLib.QNV_CCCTRL_CALL_STOP, EventData.lEventHandle, "", 0); //停止CC呼叫 StopChannel(EventData.lEventHandle); //停止PSTN通道 strValue = "呼叫失败 原因=" + EventData.lResult.ToString(); } break; case BriSDKLib.BriEvent_CC_Connected: { AnswerCCHandle(EventData.lEventHandle); strValue = "CC已经连通"; } break; case BriSDKLib.BriEvent_CC_CallFinished: { StopChannel(EventData.lEventHandle); strValue = "呼叫结束 原因=" + EventData.lResult.ToString(); } break; case BriSDKLib.BriEvent_CC_LoginSuccess: strValue = "CC登陆成功"; break; case BriSDKLib.BriEvent_CC_CallIn: break; case BriSDKLib.BriEvent_CC_ReplyBusy: strValue = "CC对方回复忙"; break; case BriSDKLib.BriEvent_CC_RecvedMsg: strValue = "CC接收到消息"; break; case BriSDKLib.BriEvent_CC_RecvedCmd: strValue = "CC接收到命令"; break; default: break; } if (strValue.Length > 0) { AppendStatus(strValue); } } break; default: base.DefWndProc(ref m); break; } }