




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、MVB2000平臺開發(fā)接口MVB2000平臺支持的接口MVB2000智能通信平臺IAX2協(xié)議軟電話控件WEBCTI接口MVBCT I控件數(shù)據(jù)庫及其它接口MVB2000平臺支持的接口IAX2協(xié)議軟電話控件IAXOCX 是什么 ?是基于微軟activex技術(shù)的標(biāo)準(zhǔn)ocx控件,可以在任何支持OCX控件的編程語言中使用。和其它數(shù)字話機(jī)或網(wǎng)關(guān)一樣,IAXOCX是一個運(yùn)行在電腦上,采用IAX2協(xié)議,沒有界面的電話控件,可使用耳麥進(jìn)行通話。可用于瀏覽器、Delphi、VB、VC、PowerBuilder、CBuilder、C#等各類支持Activex控件的編程環(huán)境。用戶只繪制一個圖形界面,調(diào)用控件的方法、響
2、應(yīng)控件的事件,即可開發(fā)出專業(yè)的、與自己項(xiàng)目無縫集成的軟件電話終端,可使用耳麥進(jìn)行通話。如Xlite、Zoiper等。IAXOCX IAX2協(xié)議的軟電話控件MVB2000WAN/LAN網(wǎng)絡(luò)UDP端口4569用于windows系統(tǒng)。用戶可以免費(fèi)使用,無任何功能限制,只在開發(fā)環(huán)境中彈出暢信達(dá)網(wǎng)頁。提供開發(fā)文檔(MVBPHONE.HLP)。向暢信達(dá)客戶提供HTML、VB6、VC6、C#中使用IAXOCX控件的demo代碼。如需技術(shù)支持,另行收費(fèi)。UDP端口簡單易用,無需特殊安裝多線路、多帳戶注冊呼叫轉(zhuǎn)接呼叫保持語音信箱狀態(tài)通知DTMF發(fā)送電平指示點(diǎn)對點(diǎn)撥號GSM、G711A、G711U語音編碼主叫號碼
3、設(shè)置來電號碼顯示未注冊撥號支持明文和MD5驗(yàn)證麥克音量控制揚(yáng)聲器音量控制在多路通話之間切換登錄、注銷音頻設(shè)備設(shè)置音頻設(shè)備獲取使用單一UDP端口,防火墻穿透能力強(qiáng)。您可以在支持Activx的各種開發(fā)工具中使用此控件,輕松定制您自己的軟件電話或坐席軟件。IAXOCX IAX2協(xié)議的軟電話控件特點(diǎn)IAXOCX 代碼示例在瀏覽器中調(diào)用在VB中調(diào)用在VC中調(diào)用在C#中調(diào)用在瀏覽器中調(diào)用IACOCXIAXOCX 瀏覽器代碼示例 onRegistration(RegID, Reply, msgCount, ReplyText); onStateEvents( CallNo, State, AudioForm
4、at, VideoFormat, RemoteNumber, RemoteName, LocalNumber, LocalContext); var is_initOk=false;function Init()try var retvalue; if (is_initOk) alert(Already inited!); return; retvalue=MVBPhone.InitIax(1); if (retvalue=0) is_initOk=true; alert(init ok!); catch(e) return;撥號function Dial() try if (!is_init
5、Ok) alert(Please init firstly!); else MVBPhone.Dial(dialnumber.value); catch(e) return;注冊到平臺 function Register() try if (!is_initOk) alert(Please init it!); MVBPhone.HostName=HostName.value;MVBPhone.Port=Port.value;MVBPhone.UserID=UserID.value;MVBPhone.Password=Password.value;MVBPhone.Register(); ca
6、tch(e) return;在VB中調(diào)用IAXOCXIAXOCX VB代碼示例初始化Private Sub Form_Load() is_InitOk = False MVBphone1.InitIAX (1) MVBphone1.GetAudioDevice ShapeInput.Width = 0 ShapeOutput.Width = 0 VScrollMIC.Value = MVBphone1.GetMicVolume VScrollSPEAKER.Value = MVBphone1.GetSpeakerVolume MVBphone1.ApplyFilter 0, 0, 0, 0,
7、0 Check_AGC.Value = MVBphone1.GetFilterAGC Check_AAGC.Value = MVBphone1.GetFilterAAGC Check_CN.Value = MVBphone1.GetFilterCN Check_RN.Value = MVBphone1.GetFilterNoiseReduce Check_EC.Value = MVBphone1.GetFilterEchoCancel is_InitOk = TrueEnd Sub撥號Private Sub Command2_Click() Dim num As String num = ca
8、llnumber.Text If (Len(num) 0) Then MVBphone1.Dial (num) last_dialout = num Else If (Len(last_dialout) 0) Then MVBphone1.Dial (last_dialout) End If End IfEnd Sub注冊到平臺 Private Sub Command8_Click() MVBphone1.HostName = 6 MVBphone1.Port = 4569 MVBphone1.UserID = 7101 MVBphone1.Password = 7101 MVBphone1.
9、Codec = 4 GSM-2,G711U-4,G711A-8 MVBphone1.PhoneNumber = 7101 MVBphone1.RegisterEnd Sub卸載Private Sub Form_Unload(Cancel As Integer) MVBphone1.ShutdownEnd Sub在VC中調(diào)用IAXOCXIAXOCX VB代碼示例初始化void CIaxphonevc6Dlg:OnInit() if (!m_initphone) m_mvbphone.SetHostName(_T(); m_mvbphone.SetPort(7569); m_mvbphone.Se
10、tUserID(_T(6201); m_mvbphone.SetPassword(_T(6201); m_mvbphone.SetCodec(2); m_mvbphone.InitIAX(1); m_initphone=true; 卸載void CIaxphonevc6Dlg:OnUnregister() m_mvbphone.UnRegister();void CIaxphonevc6Dlg:OnShutdown() if (m_initphone) m_mvbphone.Shutdown();注冊到平臺 void CIaxphonevc6Dlg:OnRegister() if (m_ini
11、tphone) m_mvbphone.Register(); else AfxMessageBox(_T(請先開始服務(wù)!);撥號void CIaxphonevc6Dlg:OnDial() UpdateData(true); if (!m_PhoneNumber.IsEmpty() m_mvbphone.Dial(m_PhoneNumber); else CWnd* pwnd=GetDlgItem(IDC_NUM); pwnd-SetFocus(); AfxMessageBox(_T(請輸入電話號碼!); 在C#中調(diào)用IAXOCXIAXOCX C#代碼示例初始化 private void For
12、m1_Load(object sender, EventArgs e) axMVBphone1.InitIAX(1); 卸載 private void Form1_FormClosed(object sender, FormClosedEventArgs e) axMVBphone1.UnRegister(); axMVBphone1.Shutdown(); 注冊到平臺 private void button4_Click(object sender, EventArgs e) axMVBphone1.HostName = tb_host.Text; axMVBphone1.Port =Con
13、vert.ToInt32(tb_port.Text); axMVBphone1.UserID = tb_user.Text; axMVBphone1.Password = tb_pass.Text; axMVBphone1.Register(); 撥號 private void button1_Click(object sender, EventArgs e) if (tb_number.Text.Length 0) axMVBphone1.Dial (tb_number.Text ); 概念與術(shù)語用戶:待分配的電話號碼。設(shè)備:指物理存在的終端設(shè)備。通過電話線或網(wǎng)絡(luò)連接到mvb2000平臺。分
14、機(jī):通常指分配了號碼的終端設(shè)備。是用戶和設(shè)備的結(jié)合。綁定:為設(shè)備指定一個關(guān)聯(lián)的用戶(號碼)。只有類型為“臨時”的設(shè)備允許此操作。分離:取消與設(shè)備關(guān)聯(lián)的用戶。是綁定的反操作。只有類型為“臨時”的設(shè)備允許此操作。撥號接口:指明與終端進(jìn)行通信的協(xié)議和編號。如:SIP/7001,IAX2/6001,ZAP/2?!?”前的是協(xié)議類型,后面的是唯一編號。活動通道:活動通道用于唯一標(biāo)識參與通話的通道。每路通話由2個活動通道組成,每個終端設(shè)備允許發(fā)起多路通話,每路通話都有自己獨(dú)立的活動通道。轉(zhuǎn)接、拆線等操作都以“活動通道”作為目標(biāo)。如: IAX2/fax2-1807、SIP/627003-b7265460、S
15、IP/-b77044b8等。坐席:登錄到隊(duì)列上的設(shè)備。通常用設(shè)備的撥號接口標(biāo)識。如SIP/7001,IAX2/6001等。工號:與“用戶”相同,登錄到隊(duì)列時設(shè)備所綁定的用戶號作為坐席工作編號使用。隊(duì)列:用于自動分配呼叫、并提供等待排隊(duì)功能的模塊。以隊(duì)列編號標(biāo)識。每個坐席可以登錄多個隊(duì)列。隊(duì)列可以包含固定坐席(開機(jī)就存在,不能登出)和動態(tài)坐席。會議:實(shí)現(xiàn)多方同時進(jìn)行語音互動、并提供發(fā)言管理功能的模塊。以會議編號標(biāo)識,分動態(tài)建立和固定號碼兩種。設(shè)備與用戶關(guān)系MVB2000默認(rèn)配置將設(shè)備與用戶設(shè)置為固定關(guān)聯(lián)關(guān)系,因此不允許動態(tài)綁定和分離。如果您的每個坐席工位都只有一個固定的坐席使用,則不需要進(jìn)行設(shè)備
16、與用戶設(shè)置為分離操作,也不需要進(jìn)行動態(tài)綁定和分離。只需要操作登入和登出隊(duì)列即可。如果您的坐席工位由多個坐席輪流使用,需要修改配置,將設(shè)備與用戶設(shè)置為分離狀態(tài),然后使用CTI接口進(jìn)行動態(tài)綁定和分離。如何設(shè)置設(shè)備與用戶分離:在MVB2000設(shè)置-基本設(shè)置界面:選擇“設(shè)備與分機(jī)分離”,提交后,刷新配置。在左邊的菜單列表中會出現(xiàn)設(shè)備和用戶。使用分離方式時,用戶號和設(shè)備號最好不要重復(fù)。比如設(shè)備號使用5000號段,用戶號使用6000號段。MVB2000平臺支持的接口MVBCT I控件CTI 是什么 ?CTI技術(shù)是指計算機(jī)和通信技術(shù)的集成技術(shù),它傳統(tǒng)的定義是“計算機(jī)電話集成” (Computer Telep
17、hony Integration),隨著電信通信技術(shù)的發(fā)展, 現(xiàn)在有更多的人將之定義為“計算機(jī)電信集成”技術(shù)(Computer Telecommunication Integration)。利用CTI技術(shù)座席可以通過管理界面對呼叫進(jìn)行有效管理,實(shí)現(xiàn)上線、下線、示忙、示閑、轉(zhuǎn)移呼叫、強(qiáng)拆、點(diǎn)擊撥號、來電彈屏、自動外呼等計算機(jī)與電信技術(shù)結(jié)合的功能。MVBCTI 控件是什么 ?基于微軟activex技術(shù)的標(biāo)準(zhǔn)ocx控件,可以在任何支持OCX控件的編程語言中使用。如可用于瀏覽器、Delphi、VB、VC、PowerBuilder、CBuilder、C#等。在一個控件中實(shí)現(xiàn)了CTI、IVR SERVER
18、、FAX Client和DB Client四個接口。 使用CTI接口實(shí)現(xiàn)彈屏、點(diǎn)擊撥號、監(jiān)聽、強(qiáng)插、會議、質(zhì)檢、上線、下線、示忙、示閑、拆線、轉(zhuǎn)接,等功能并可以控制和監(jiān)視MVB2000的運(yùn)行。 使用FAX接口實(shí)現(xiàn)發(fā)送、群發(fā)、查看、刪除、管理傳真。使用DB接口查詢話單和各種狀態(tài)數(shù)據(jù),更新數(shù)據(jù)庫數(shù)據(jù)。開發(fā)者可以使用MVBCTI控件的IVR SERVER接口在Windows平臺上開發(fā)基于MVB2000的IVR和撥號計劃,結(jié)合數(shù)據(jù)庫實(shí)現(xiàn)復(fù)雜的IVR應(yīng)用。開發(fā)者可以單獨(dú)啟動或終止其中的任何一個接口??丶峁┩晟频某跏蓟徒K止方法。MVBCTI控件分普及版和專業(yè)版。普及版免費(fèi),專業(yè)版在開發(fā)環(huán)境需要授權(quán)。使
19、用手冊中帶*的功能需要專業(yè)版支持。MVBCTI 控件應(yīng)用框圖Windows應(yīng)用程序或?yàn)g覽器MVB2000 核心數(shù)據(jù)庫TCP 5038端口連接TCPMVB2000平臺TCP 3306端口連接CTI客戶端傳真客戶端MySQL客戶端 IVR服務(wù)器傳真服務(wù)器TCP 4573端口連接TCP 4559端口連接MVBCTI控件技術(shù)架構(gòu)4合1的ACTIVEX控件MVBCTI 控件版本MVBCTI.ocx 普及版 普及版為免費(fèi)版本,可以在開發(fā)環(huán)境和運(yùn)行環(huán)境免費(fèi)使用。開發(fā)環(huán)境中初始化控件時會彈出我公司網(wǎng)頁,但不影響使用。MVBCTI.ocx 專業(yè)版 專業(yè)版在開發(fā)環(huán)境中使用需要購買授權(quán)。在運(yùn)行環(huán)境使用不需要授權(quán)。區(qū)
20、別CTI部分普及版和專業(yè)版事件數(shù)量和方法數(shù)量不同。普及版支持最基本的應(yīng)用,如彈屏,點(diǎn)擊撥號,拆線,獲取變量,獲取設(shè)備狀態(tài)等。普及版不支持傳真客戶端和數(shù)據(jù)庫客戶端。IVR SERVER部分除并最大發(fā)數(shù)不同,普及版和專業(yè)版功能完全一樣。項(xiàng)目CTIAGI屬性事件方法屬性事件方法最大并發(fā)普及版971161592專業(yè)版965866159512項(xiàng)目FAX ClientMySQL Client是否支持是否支持普及版否否專業(yè)版是是MVBCTI 控件-設(shè)置開發(fā)環(huán)境 使用安裝包安裝完控件以后,在開發(fā)環(huán)境中將名稱為:MVBCTI ActiveX Professional Edition或者M(jìn)VBCTI Active
21、X Free Edition的控件添加到控件工具箱,即可拖放到窗口界面使用。MVBCTI 控件-CTI客戶端通過TCP5038端口與MVB2000連接。實(shí)時接收MVB2000發(fā)送的各類事件,如撥號、掛機(jī)、登入隊(duì)列、呼叫進(jìn)入隊(duì)列、呼叫分配到座席等事件后,在WINDOWS程序中觸發(fā)事件,程序員只要在事件響應(yīng)代碼中填寫少量代碼即可實(shí)現(xiàn)來電彈屏、排隊(duì)狀態(tài)顯示、隊(duì)列狀態(tài)顯示、座席狀態(tài)顯示等功能。通過調(diào)用控件提供的方法,實(shí)現(xiàn)點(diǎn)擊撥號、轉(zhuǎn)接電話、座席上線下線、示忙示閑、駐留電話、代接電話、發(fā)起會議、獲取隊(duì)列和所有分機(jī)狀態(tài)等功能。與IAXOCX完全不同,CTI客戶端實(shí)現(xiàn)對MVB2000進(jìn)行監(jiān)控、調(diào)度和管理的功
22、能。MVBCTI 控件-傳真客戶端通過TCP4559端口與MVB2000連接。通過傳真客戶端通過MVB2000發(fā)送傳真。管理MVB2000上的傳真收件箱、發(fā)件箱。開發(fā)者不需要關(guān)心傳真協(xié)議的細(xì)節(jié),使用幾行代碼就可以使自己的應(yīng)用程序具備傳真發(fā)送功能,并可在windows系統(tǒng)管理、查看MVB2000平臺的傳真文件。MVBCTI 控件-MYSQL數(shù)據(jù)庫客戶端通過TCP3306端口與MVB2000連接。無需安裝MYSQL數(shù)據(jù)庫客戶端,使用控件提供的函數(shù)可以直接訪問MySQL數(shù)據(jù)庫,查詢或更新MVB2000平臺的接口數(shù)據(jù)庫。通過操作MVB2000的接口數(shù)據(jù)庫實(shí)現(xiàn)短信發(fā)送和接收、批量自動外呼、計劃任務(wù)管理、
23、數(shù)據(jù)統(tǒng)計、查看呼叫狀態(tài)和分機(jī)狀態(tài)等信息。MVBCTI 控件-IVR/AGI服務(wù)器呼叫進(jìn)入MVB2000平臺后,平臺通過TCP4573端口與IVR服務(wù)器建立連接。IVR服務(wù)器接收到MVB2000的連接請求后建立新的線程,并根據(jù)業(yè)務(wù)需要查詢數(shù)據(jù)庫數(shù)據(jù),控制MVB2000播放語音、接收用戶按鍵。使用控件的IVR服務(wù)器功能可以開發(fā)運(yùn)行在windows系統(tǒng)的IVR服務(wù)。MVB2000支持IVR實(shí)現(xiàn)方式在MVB2000的撥號腳本中運(yùn)行,與核心直接交互的本地IVR(如客戶應(yīng)用)。在MVB2000上通過STDIN和STDOUT實(shí)現(xiàn)的本地IVR(如PHP實(shí)現(xiàn)的AGI)。運(yùn)行在MVB2000之外的電腦上通過網(wǎng)絡(luò)交
24、互的遠(yuǎn)程IVR。MVBCTI控件 代碼示例CTI客戶端樣例(以VB6為例)傳真客戶端樣例(以VB6為例)數(shù)據(jù)庫客戶端樣例(以VB6為例)IVR服務(wù)器樣例(以VB6為例)CTI客戶端樣例(以VB6為例)初始化MVBCTI1.CTI_HostName = 18MVBCTI1.CTI_Port = 5038MVBCTI1.CTI_ThreadType = 1Res=MVBCTI1.CTI_Init()If Res 0 Then MsgBox CTI Init FailedEnd If登錄s_msg = MVBCTI1.CTI_Login(tapi, tapi, , , , )res = MVBCTI
25、1.CTI_GetResSuccess(s_msg)If res = 0 ThenMsgBox CTI Login Failed + Chr(10) + Chr(13) + MVBCTI1.CTI_GetResResult(s_msg, Message)End If使用方法:設(shè)置只接收與設(shè)備SIP/7001有關(guān)的事件s_msg = MVBCTI1. CTI_Filters(SIP/7001, )res = MVBCTI1.CTI_GetResSuccess(s_msg)If res = 0 ThenMsgBox MVBCTI1.CTI_GetResResult(s_msg, Message)E
26、nd If終止MVBCTI1.CTI_FreePrivate Sub Form_Unload(Cancel As Integer) MVBCTI1.CTI_FreeEnd Sub響應(yīng)事件*直接撥打設(shè)備SIP/7001Private Sub MVBCTI1_OnDial(ByVal id As Long, ByVal mvb_Source As String, ByVal MVB_Destination As String, ByVal MVB_Callerid As String, ByVal MVB_CalleridName As String, ByVal MVB_SrcUniqueID
27、As String, ByVal MVB_DestUniqueID As String)s_dev = Left(MVB_Destination, Len(SIP/7001)If s_dev = SIP/7001 Then MsgBox Call from + MVB_CalleridEnd If通過隊(duì)列呼叫設(shè)備SIP/7001Private Sub MVBCTI1_OnAgentCalled(ByVal id As Long, ByVal MVB_QueueName As String, ByVal MVB_AgentCalled As String, ByVal MVB_AgentName
28、 As String, ByVal MVB_ChannelCalling As String, ByVal MVB_UniqueidCalling As String, ByVal MVB_Callerid As String, ByVal MVB_CalleridName As String, ByVal mvb_context As String, ByVal mvb_extension As String, ByVal mvb_priority As String, ByVal mvb_channel As String, ByVal MVB_Uniqueid As String)s_d
29、ev1 = Left(MVB_AgentCalled, Len(SIP/7001)s_dev2 = Left(MVB_AgentCalled, Len(Local/7001)If s_dev = SIP/7001 Or s_dev2 = Local/7001 Then MsgBox Agent Call from + MVB_CalleridEnd IfEnd Sub傳真客戶端樣例(以VB6為例)MVBCTI1.FAX_HostName = 18MVBCTI1.FAX_Port = 4559MVBCTI1.FAX_DebugLevel = 3MVBCTI1.FAX_KillTime = 0MV
30、BCTI1.FAX_InitMVBCTI1.FAX_Login faxuser, MVBCTI1.FAX_Send 7033, d:fax000002256.tif, 0MVBCTI1.Free數(shù)據(jù)庫客戶端樣例(以VB6為例)MVBCTI1.DB_IP = 18MVBCTI1.DB_Port = 3306MVBCTI1.MySQL_Initres = MVBCTI1.MySQL_Connect(extradbuser_4fad, b592cc059576, mvb2000extra)if (res 0)MsgBox MVBCTI1.MySQL_GetErrorTextMsgBox MVBCTI
31、1.MySQL_SetCharSet(GBK)MVBCTI1.MySQL_SelectDB mvb2000cdrdbres = MVBCTI1.MySQL_Query(select * from cdr order by calldate desc limit 1,5, 0)res = MVBCTI1.MySQL_FetchRow()Do While (res 0)res = MVBCTI1.MySQL_FetchRow()For i = 1 To res Text2.Text = Text2.Text + Str(i) + + MVBCTI1.MySQL_GetFeild(i) + Chr(
32、13) + Chr(10)NextLoopMVBCTI1.MySQL_FreeResultMVBCTI1.MySQL_FreeIVR服務(wù)器樣例(以VB6為例)初始化:MVBCTI1.FAGI_IP = MVBCTI1.FAGI_Port = 4573MVBCTI1.FAGI_ThreadType = 1Res=MVBCTI1.FAGI_Init(10)If Res 0 Then MsgBox FAGI Init FailedEnd If終止MVBCTI1.FAGI_FreePrivate Sub Form_Unload(Cancel As Integer) MVBCTI1. FAGI_Free
33、End Sub在MVB2000加入客戶應(yīng)用名稱:MVBCTITEST內(nèi)容:exten=s,1,DeadAGI(agi:/20:4573/test.agi?mvbvar=ipxchina)exten=s,2,Hangupexten=h,1,Hanguptest.agi?mvbvar=ipxchina 只是為了演示而設(shè)置,OnFAGINewCall事件產(chǎn)生后,可以獲取test.agi和mvbvar=ipxchina部分,開發(fā)人員可以據(jù)此調(diào)用不同的IVR處理流程。然后在呼入路由里設(shè)置使用此客戶應(yīng)用。來電后MVB2000將呼叫送給20處理。MVBCTI控件運(yùn)行在20上,來電后會觸發(fā)OnFAGINewC
34、all事件。響應(yīng)事件*編寫來電IVR流程。由于VB6不支持多線程,此處代碼只作為演示AGI的原理,只支持單路呼叫。要實(shí)現(xiàn)同時處理多路并發(fā)呼叫,應(yīng)使用VC等開發(fā)工具,在OnFAGINewCall事件中為每個呼叫建立線程。Private Sub MVBCTI1_OnFAGINewCall(ByVal id As Long, ByVal MVB_CallInfo As String, ByVal MVB_Network As String, ByVal MVB_NetworkScript As String, ByVal MVB_Request As String, ByVal mvb_channe
35、l As String, ByVal MVB_Language As String, ByVal MVB_Type As String, ByVal MVB_Uniqueid As String, ByVal MVB_Callerid As String, ByVal MVB_CalleridName As String, ByVal MVB_CallingPres As String, ByVal MVB_CallingANI2 As String, ByVal MVB_CallingTON As String, ByVal MVB_CallingTNS As String, ByVal M
36、VB_DNID As String, ByVal MVB_RDNIS As String, ByVal mvb_context As String, ByVal mvb_extension As String, ByVal mvb_priority As String, ByVal MVB_Enhanced As String, ByVal mvb_accountcode As String)從數(shù)據(jù)頭獲取字段值result = MVBCTI1.FAGI_GetResFeild(MVB_CallInfo, agi_callerid)result = MVBCTI1.FAGI_Wait(id, 2
37、)函數(shù)返回結(jié)果處理,根據(jù)情況調(diào)用一下函數(shù)解析結(jié)果result = MVBCTI1.FAGI_GetResMessage(result)result = MVBCTI1.FAGI_GetResAttribute(result, endpos)result = MVBCTI1.FAGI_GetResResult(result)result = MVBCTI1.FAGI_GetResStatus(result)播放彩鈴10秒result = MVBCTI1.FAGI_WaitMusicOnHold(id, 10)播報日期時間result = MVBCTI1.FAGI_SayDateTime(id,
38、2010-07-30 12:01:30, 123, YbdHMS, 12345)播報日期result = MVBCTI1.FAGI_SayDate(id, 2010-07-30, 12345)播報余額result = MVBCTI1.FAGI_SayBalance(id, 12.8, 12345)拆線result = MVBCTI1.FAGI_Hangup(id, )End SubVB不支持多線程,此示例只做演示用,產(chǎn)品環(huán)境需使用支持多線程的編程語言。MVBCTI控件 在C#中使用MVBCTI控件 在Delphi中使用MVBCTI 控件文檔MVBCTI_ActiveX_控件用戶手冊mvbcti
39、_ocx_白皮書MVB2000平臺支持的接口WEBCT I接口WEBCTI 是什么 ?隨MVB2000平臺一起發(fā)行,已經(jīng)內(nèi)置于平臺的一套免費(fèi)的CTI接口。通過HTTPS或HTTP協(xié)議以GET方式訪問。不同的URL和參數(shù)對應(yīng)不同的功能接口??梢栽跒g覽器中使用JavaScript訪問該接口(要考慮跨域),實(shí)現(xiàn)來電彈屏、點(diǎn)擊撥號、座席上下線、轉(zhuǎn)接等功能。可以使用XMLHttpRequest組件或者后臺請求URL的方式進(jìn)行接口調(diào)用。可用于任何瀏覽器以及C#、delphi、java、VB、VC等編程語言。與MVBCTI控件不同,WEBCTI由于采用http協(xié)議,調(diào)用者需要采取輪詢的方式獲取平臺的狀態(tài)數(shù)據(jù)
40、。WEBCTI 接口技術(shù)架構(gòu)Windows應(yīng)用程序?yàn)g覽器WEB服務(wù)器MVB2000 核心數(shù)據(jù)庫XMLHttpRequest WEB服務(wù)器TCP 5038端口連接httpWEBCTIMVB2000平臺TCP 3306端口連接WEBCTI 認(rèn)證方法每次URL請求都必須傳送webkey變量。webkey使用mvb2000基本設(shè)置里的webkey字符串+當(dāng)日日期(格式:yyyy-mm-dd)組成的字符串進(jìn)行MD5運(yùn)算,得到的結(jié)果作為webkey使用。結(jié)果應(yīng)該全部以ascii碼方式表示,使用小寫字母。詳見MEB2000_WEB開發(fā)接口使用方法或MVB2000_WEB開發(fā)接口WEBCTI 接口調(diào)用http
41、:/18/webservice/getcpuload.php?webkey=5589a16d0b48a49ce1c66c2ad11268c0root : row : createtime : 2010-05-14 10:40:08,infotype : cpuload,user : 10.77,system : 6.00,nice : 0.00,idle : 83.23 http:/18/webservice/getcpuload.php?webkey=5589a16d0b48a49ce1c66c2ad11268c0&json=2 WEBCTI 后臺調(diào)用樣例(VB6)Dim xmlHttp A
42、s MSXML2.xmlHttpDim xmlobject As IXMLDOMNodeDim URL As StringDim res As StringDim rows As IntegerSet xmlHttp = New MSXML2.xmlHttpwebkey = get_webkey(0866089e569bbd3d) 需要按照要求實(shí)現(xiàn)此函數(shù)URL = + webkey + &uniqueid=1294228771.15xmlHttp.open GET, URL, FalsexmlHttp.sendSet xmlobject = xmlHttp.responseXMLDim nod
43、elist As IXMLDOMNodeListSet nodelist = xmlobject.selectNodes(/row)If nodelist.length = 0 Then MsgBox 無數(shù)據(jù)End IfFor i = 0 To nodelist.length - 1 res = res + createtime= + nodelist.Item(i).selectSingleNode(createtime).nodeTypedValue + Chr(13) + Chr(10) res = res + infotype= + nodelist.Item(i).selectSin
44、gleNode(infotype).nodeTypedValue + Chr(13) + Chr(10) res = res + user= + nodelist.Item(i).selectSingleNode(user).nodeTypedValue + Chr(13) + Chr(10) res = res + system= + nodelist.Item(i).selectSingleNode(system).nodeTypedValue + Chr(13) + Chr(10) res = res + nice= + nodelist.Item(i).selectSingleNode
45、(nice).nodeTypedValue + Chr(13) + Chr(10) res = res + idle= + nodelist.Item(i).selectSingleNode(idle).nodeTypedValue + Chr(13) + Chr(10)NextText1.Text = resWEBCTI 后臺調(diào)用樣例(C#)Dim xmlHttp As MSXML2.xmlHttpDim xmlobject As IXMLDOMNodeDim URL As StringDim res As StringDim rows As IntegerSet xmlHttp = New
46、 MSXML2.xmlHttpwebkey = get_webkey(0866089e569bbd3d) 需要按照要求實(shí)現(xiàn)此函數(shù)URL = + webkey + &uniqueid=1294228771.15xmlHttp.open GET, URL, FalsexmlHttp.sendSet xmlobject = xmlHttp.responseXMLDim nodelist As IXMLDOMNodeListSet nodelist = xmlobject.selectNodes(/row)If nodelist.length = 0 Then MsgBox 無數(shù)據(jù)End IfFor
47、i = 0 To nodelist.length - 1 res = res + createtime= + nodelist.Item(i).selectSingleNode(createtime).nodeTypedValue + Chr(13) + Chr(10) res = res + infotype= + nodelist.Item(i).selectSingleNode(infotype).nodeTypedValue + Chr(13) + Chr(10) res = res + user= + nodelist.Item(i).selectSingleNode(user).n
48、odeTypedValue + Chr(13) + Chr(10) res = res + system= + nodelist.Item(i).selectSingleNode(system).nodeTypedValue + Chr(13) + Chr(10) res = res + nice= + nodelist.Item(i).selectSingleNode(nice).nodeTypedValue + Chr(13) + Chr(10) res = res + idle= + nodelist.Item(i).selectSingleNode(idle).nodeTypedVal
49、ue + Chr(13) + Chr(10)NextText1.Text = res /*通過web接口獲取返回xml數(shù)據(jù)*/ private XmlDocument get_ctixml(string url) XmlDocument doc = new XmlDocument(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.UnsafeAuthenticatedConnectionSharing = true; request.Method = GET; request.Timeout
50、= 5000; try HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding(gb2312); String retXml = sr.ReadToEnd(); sr.Close(); doc.LoadXml(retXml); response.Close(); catch (Exception exc) System.Di
51、agnostics.Debug.WriteLine(exc.StackTrace); MessageBox.Show(exc.Message); return doc; /*解析xml數(shù)據(jù)*/ private string get_xmlvalue( XmlNode Node,string feild) XmlNode xn = Node.SelectSingleNode(feild); if (xn = null | xn.FirstChild =null) return ; else return xn.FirstChild.Value; WEBCTI 調(diào)用樣例(PHP)$WEBCTI=n
52、ew MVB2000_WEBCTI();$webkey=0866089e569bbd3d;$webhost=;$apiname=getqueuemember.php;$queue=7910;$newkey=$WEBCTI-xml_webkey($webkey);$url=$webhost/webservice/$apiname?webkey=$newkey&queue=$queue;$res=$WEBCTI-xml_parser($url);echo 返回數(shù)據(jù):;print_r($res);?function xml_parser($url)$this-$xml_result=array();$this-$xml_elem = null;$parser = xml_parser_create(); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);xml_set_element_handler($parser, array(&$this, xml_startElement),array(&$this, xml_endElement);xml_set_character_data_handler($parser,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司房屋安全管理辦法
- 智慧場館業(yè)務(wù)管理辦法
- 自動化專業(yè)學(xué)生的就業(yè)前景與職業(yè)發(fā)展
- 退役磷酸鐵鋰正極衍生磷化鐵活性材料在鋰氧氣電池中的應(yīng)用探究
- 金融基礎(chǔ)理論課程知識體系優(yōu)化
- 堿溶處理對硅藻土保水滲透性能的作用機(jī)制探討
- 餐飲業(yè)新店開業(yè)策劃全攻略
- 功能文體學(xué)視角下的歐洲小說人物塑造深度解讀
- 高校心理危機(jī)干預(yù)機(jī)制建設(shè)與實(shí)施研究
- 晉江市封控區(qū)管理辦法
- 余料使用管理制度
- 農(nóng)業(yè)面源防治課件
- 2025至2030中國氨基吡啶行業(yè)項(xiàng)目調(diào)研及市場前景預(yù)測評估報告
- 2025-2030中國商業(yè)展示道具市場應(yīng)用前景及投資價值評估報告
- 2025年甘肅省武威市民勤縣西渠鎮(zhèn)人民政府選聘專業(yè)化管理村文書筆試參考題庫及1套完整答案詳解
- 防洪防汛安全知識試題及答案
- T/CCMA 0137-2022防撞緩沖車
- 江蘇省2025年中職職教高考文化統(tǒng)考數(shù)學(xué)試題答案
- 浙江省公路工程監(jiān)理用表-監(jiān)理旁站記錄2025
- 產(chǎn)科促宮縮藥
- 2024年貴州省余慶縣事業(yè)單位公開招聘醫(yī)療衛(wèi)生崗筆試題帶答案
評論
0/150
提交評論