Upgrade 3CX to v18 and get it hosted free!

Using MVBCTI ActiveX for CTI and IVR SERVER

Author image

If you need the full demo codes ,please send email to [email protected].
You can get more information from our website http://www.ipxchina.cn.

The model of MVBCTI.


Using MVBCTI ActiveX for CTI and IVR SERVER

Have a look for MVBCTI

  • MVBCTI控件简介 *
  • *
  • MVBCTI OCX是基于Activex技术的标准控件,可以在任何支持OCX控件的编程语言中使用, *
  • 如VB/VC/Delphi/C++Builder/VFP/VS/Powerbuilder/C#/Javascript等。 *
  • *
  • MVBCTI OCX在一个控件中实现了CTIå’ŒIVR SERVER两个接口,并有独立的初始化和终止方法。 *
  • 开发者可以使用MVBCTI控件的IVR接口在Windows平台上开发基于MVB2000çš„IVR和拨号计划, *
  • 使用CTI接口控制和监视MVB2000的运行,通过非常简单的代码实现来电弹屏、点击拨号、强 *
  • 插、强拆、质检、会议、示忙、上线等专业坐席功能。 *
  • *

MVBCTI控件分普及版和专业版。普及版免费,专业版在开发环境需要授权。以下内容为控件手册
目录。带*的功能需要专业版支持。

文档说明 2
1. 简介 9
1.1. MVBCTI控件结构 9
1.1.1. AGI接口 10
1.1.2. Manager API接口 10
2. 如何设置开发环境 11
3. MVBCTI 使用样例 11
3.1. Manager API 样例(以VB6为例) 11
3.2. AGI 样例(以VB6为例) 12
3.3. AGI 样例(以VC6为例) 14
4. 项目说明 15
4.1. MVBCTI.ocx 普及版 15
4.2. MVBCTI.ocx 专业版 15
4.3. 区别 15
5. MVBCTI AGI 接口 15
5.1. AGI命令函数返回值 15
5.2. 属性 16
5.3. 函数 17
5.3.1. FAGI_Init 启动AGI服务 17
5.3.2. FAGI_Freeå…³é-­AGI服务 17
5.3.3. FAGI_Answer应答 17
5.3.4. FAGI_AbsoluteTimeout指定通道最大存活秒数 18
5.3.5. FAGI_AutoHangup指定通道自动挂机æ-¶é-´ 18
5.3.6. FAGI_ChannelStatus 通道状态 18
5.3.7. FAGI_ControlStreamFile 控制播放语音文件 19
5.3.8. FAGI_DBDel 删除注册表键 19
5.3.9. FAGI_DBDeltree 删除注册表键树 20
5.3.10. FAGI_DBGet 获取注册表键值 20
5.3.11. FAGI_DBPut 增加/保存注册表键值 20
5.3.12. FAGI_Dial调用拨号程序 21
5.3.13. FAGI_Exec调用应用程序 22
5.3.14. FAGI_GetData 播放语音并获取按键 22
5.3.15. FAGI_GetFullVar 获取指定通道变量 23
5.3.16. FAGI_GetOption播放一个语音文件获取DTMF按键 24
5.3.17. FAGI_GetResAttribute获取属性值 24
5.3.18. FAGI_GetResFeild获取å­-段值 24
5.3.19. FAGI_GetResMessage获取消息值 25
5.3.20. FAGI_GetResResult获取结果 26
5.3.21. FAGI_GetResStatus获取状态 26
5.3.22. FAGI_GetVar 获取当前通道变量 26
5.3.23. FAGI_Goto 跳转 27
5.3.24. FAGI_Hangup 拆除指定通道 27
5.3.25. FAGI_MeetMe 发起电话会议 27
5.3.26. FAGI_MeetMeAdmin会议控制 28
5.3.27. FAGI_Monitor 开始录音 29
5.3.28. FAGI_NoOp空指令 29
5.3.29. FAGI_RecordFile 录音 30
5.3.30. FAGI_ReceiveChar 获取å­-符 30
5.3.31. FAGI_ReceiveText 获取文å­- 31
5.3.32. FAGI_StopMonitor 停止录音 31
5.3.33. FAGI_SetGlobalVar设置全局变量 31
5.3.34. FAGI_SetAccount设置计费账号 32
5.3.35. FAGI_SetCallHandler设置来电处理回调接口 32
5.3.36. FAGI_SayAlpha 播报å­-母 32
5.3.37. FAGI_SayBalance 播报人民币余额 32
5.3.38. FAGI_SayDate 播报æ-¥æœŸ 33
5.3.39. FAGI_SayDateTime 播报æ-¥æœŸæ-¶é-´ 33
5.3.40. FAGI_SayDigits 逐位播报数å­- 34
5.3.41. FAGI_SayFloat 播报浮点数 34
5.3.42. FAGI_SayNumber 播报整数 35
5.3.43. FAGI_SayPhoneNo 播报电话号码 35
5.3.44. FAGI_SayPhonetic播报å­-符串 35
5.3.45. FAGI_SayTime 播报æ-¶é-´ 36
5.3.46. FAGI_SendImage 发送图像 36
5.3.47. FAGI_SendText 发送文å­- 36
5.3.48. FAGI_SetCallerID 设置主叫号码 37
5.3.49. FAGI_SetContext 设置入口 37
5.3.50. FAGI_SetExtension 设置号码 37
5.3.51. FAGI_SetMusic 设置保持音乐 38
5.3.52. FAGI_SetPriority设置序号 38
5.3.53. FAGI_SetVar设置变量 38
5.3.54. FAGI_StreamFile播放语音文件 39
5.3.55. FAGI_SetTDDMode设置TDD模式 39
5.3.56. FAGI_Sleep 挂起 39
5.3.57. FAGI_WaitForDigit 等待DTMF按键 40
5.3.58. FAGI_Wait设置等待指定秒数 40
5.3.59. FAGI_WaitMusicOnHold设置保持指定秒数 40
5.4. 事件 41
5.4.1. OnFAGINewCall 新呼叫 41
6. MVBCTI ManagerAPI接口 42
6.1. 属性 42
6.2. 函数 43
6.2.1. CTI_Init CTI初始化 43
6.2.2. CTI_Free 释放CTI资源 43
6.2.3. CTI_ About 显示关于çª-口 43
6.2.4. *CTI_AbsoluteTimeout设置绝对超æ-¶é™åˆ¶ 44
6.2.5. *CTI_Agents以事件方式返回A类坐席通道åˆ-表 44
6.2.6. *CTI_AgentCallbackLogin A类坐席通道回拨登入 44
6.2.7. *CTI_AgentLogoff A类坐席通道登出 45
6.2.8. *CTI_AGI 呼叫指定设备执行AGI应用 45
6.2.9. * CTI_Axfer 询é-®è½¬æŽ¥ 46
6.2.10. *CTI_BindUser 绑定用户与设备 46
6.2.11. *CTI_Challenge 获取MD5动态密钥 47
6.2.12. *CTI_ChangeMonitor修改录音文件名称 47
6.2.13. *CTI_ChanSpy 监听指定分机 47
6.2.14. *CTI_Command执行控制台命令 48
6.2.15. *CTI_Conference 建立静态或动态电话会议 48
6.2.16. *CTI_ConfControl 会议控制 50
6.2.17. *CTI_DBGet 获取注册表数据,以事件返回 50
6.2.18. *CTI_DBPut 建立或修改注册表数据 51
6.2.19. *CTI_DeviceList返回注册表设备设置 51
6.2.20. *CTI_DeadAGI呼叫指定设备执行DeadAGI应用 51
6.2.21. *CTI_Events设置事件接收开关 52
6.2.22. CTI_ExtensionState 取设备状态 53
6.2.23. *CTI_FeatureCode 通过编号调用快捷功能 53
6.2.24. *CTI_FeatureName 通过名称调用快捷功能 54
6.2.25. *CTI_Filters设置事件过滤 54
6.2.26. *CTI_FileLog 记录用户æ-¥å¿- 54
6.2.27. CTI_GetActionID生成ACTION编号 55
6.2.28. *CTI_GetDeviceItem返回设备指定项目内容 55
6.2.29. *CTI_GetUserDevice 返回用户绑定的设备 56
6.2.30. *CTI_GetDeviceUser 返回与设备绑定的用户 56
6.2.31. *CTI_GetUserBinds 返回所有用户的绑定设置 56
6.2.32. *CTI_GetDeviceBinds 返回所有设备的绑定设置 57
6.2.33. *CTI_GetDeviceDials 返回所有设备的拨号设置 57
6.2.34. *CTI_GetDeviceContexts 返回所有设备的拨号权限 58
6.2.35. *CTI_GetDeviceItem 绑定用户与设备 58
6.2.36. *CTI_GetConfUserCount 返回参加会议人数 59
6.2.37. *CTI_GetResResult返回结果集指定变量值 59
6.2.38. *CTI_GetResSuccess返回结果集成功标å¿- 59
6.2.39. CTI_GetVar 取通道变量值 60
6.2.40. CTI_Hangup 指定通道拆线 60
6.2.41. *CTI_IAXnetstats 返回IAX网络统计数据 60
6.2.42. *CTI_IAXpeers以事件方式返回IAX终端åˆ-表 61
6.2.43. *CTI_IAXShowpeers 返回IAX终端åˆ-表 61
6.2.44. *CTI_ListCommands 返回CTI命令åˆ-表 62
6.2.45. CTI_Login CTI登录 63
6.2.46. *CTI_MailboxCount 获取语音留言条数 63
6.2.47. *CTI_MailboxStatus 获取指定分机语音留言状态 64
6.2.48. *CTI_ModuleCheck 检查模å-是否加载 64
6.2.49. *CTI_ModuleLoad 加载/卸载/重载模å- 64
6.2.50. *CTI_Monitor 通话录音 65
6.2.51. *CTI_MohList返回彩铃类别åˆ-表 66
6.2.52. CTI_Originate 发起呼叫 66
6.2.53. CTI_Ping 检测网络连接 68
6.2.54. *CTI_Park 电话驻留 68
6.2.55. *CTI_ParkedCalls 获取驻留电话åˆ-表 69
6.2.56. *CTI_PickUp 代接指定分机 69
6.2.57. *CTI_PBXSettings 获取PBX核心设置 69
6.2.58. *CTI_PBXStatus 获取PBX核心状态 70
6.2.59. *CTI_PBXShowChannels以事件方式返回活动通道åˆ-表 70
6.2.60. *CTI_QM 通话质检 70
6.2.61. *CTI_QueueAdd 登入队åˆ- 71
6.2.62. *CTI_QueueRemove 登出队åˆ- 71
6.2.63. *CTI_QueuePause 坐席示忙/é-² 72
6.2.64. *CTI_QueueStatus 事件方式返回队åˆ-状态 72
6.2.65. *CTI_Redirect 转接电话 73
6.2.66. *CTI_Reload重新加载模å- 73
6.2.67. *CTI_SendDTMF发送DTMF 74
6.2.68. *CTI_SendText发送文å­- 74
6.2.69. CTI_SetVar 设置通道变量 75
6.2.70. CTI_Status 以事件方式返回指定或全部通道状态 75
6.2.71. *CTI_SIPpeers 以事件方式返回SIP终端åˆ-表 75
6.2.72. *CTI_SplitUser分离用户与设备 76
6.2.73. *CTI_SIPshowpeer返回指定SIP终端详情 76
6.2.74. *CTI_StopMonitor 停止录音 77
6.2.75. *CTI_ThreeWay 强插或三方会议 78
6.2.76. *CTI_ZapDialOffhook ZAP通道摘机拨号 78
6.2.77. *CTI_ZapHangup Zap通道拆线 79
6.2.78. *CTI_ZapTransfer ZAP通道转接 79
6.2.79. *CTI_ZapDNDoff ZAP通道关é-­å…æ‰“扰 79
6.2.80. *CTI_ZapDNDon ZAP通道开启免打扰 80
6.2.81. *CTI_ZapShowChannels 以事件方式返回Zap通道åˆ-表 80
6.2.82. *CTI_UnPark 取消驻留 80
6.2.83. *CTI_UpTime 返回平台运行æ-¶é-´ 81
6.2.84. *CTI_UserList返回注册表用户设置 81
6.2.85. *CTI_VoiceMailList返回语音信箱åˆ-表 82
6.2.86. *CTI_WaitEvent 等待指定事件发生 82
6.3. 事件 82
6.3.1. *OnAgents A类坐席通道状态åˆ-表 83
6.3.2. *OnAgentcallbacklogin A类坐席回叫登入 83
6.3.3. *OnAgentcallbacklogoff A类坐席回叫登出 83
6.3.4. OnAgentCalled 坐席振铃 84
6.3.5. *OnAgentComplete 坐席通话结束 84
6.3.6. *OnAgentConnect 坐席摘机 85
6.3.7. *OnAgentDump坐席拒接 85
6.3.8. *OnAgentlogin A类坐席通道登入 86
6.3.9. *OnAgentlogoff A类坐席通道登出 86
6.3.10. *OnAlarm Zap通道告警 86
6.3.11. *OnAlarmClear Zap通道告警清除 87
6.3.12. *OnCdr话单产生事件 87
6.3.13. *OnDBGetResponse读取注册表数据事件 88
6.3.14. OnDial拨号事件 88
6.3.15. *OnDNDState Zap通道免打扰状态 89
6.3.16. *OnDTMF按键事件 89
6.3.17. *OnExtensionStatus 设备状态 89
6.3.18. OnHangup 通道拆线 90
6.3.19. *OnHold 呼叫保持 90
6.3.20. *OnJoin 呼叫进入队åˆ- 90
6.3.21. *OnLeave 呼叫离开队åˆ- 91
6.3.22. OnLink 通话建立 91
6.3.23. *OnMeetmeJoin 进入会议室 91
6.3.24. *OnMeetmeLeave离开会议室æ-¶è§¦å‘ 92
6.3.25. *OnMeetmeStopTalking发言结束æ-¶è§¦å‘ 92
6.3.26. *OnMeetmeTalking发言æ-¶è§¦å‘ 93
6.3.27. *OnMessageWaiting 语音留言条数 93
6.3.28. *OnMusicOnHold 呼叫保持开始结束 93
6.3.29. *OnNewcallerid 新来显号码 94
6.3.30. *OnNewchannel新通道建立 94
6.3.31. *OnNewexten执行号码 94
6.3.32. *OnNewstate 通道状态变化 95
6.3.33. *OnOriginateSuccess 发起呼叫成功 95
6.3.34. *OnOriginateFailure 发起呼叫失败 96
6.3.35. *OnParkedCall电话驻留åˆ-表 96
6.3.36. *OnParkedCallsComplete电话驻留åˆ-表发送完成 97
6.3.37. *OnParkedCallGiveUp放弃驻留 97
6.3.38. *OnParkedCallTimeOut驻留超æ-¶ 97
6.3.39. *OnPeerEntry SIP/IAX2终端对象åˆ-表 98
6.3.40. *OnPeerlistComplete终端åˆ-表发送完成 98
6.3.41. *OnPeerStatus终端状态 98
6.3.42. *OnQueueCallerAbandon 队åˆ-中的排队者挂机 99
6.3.43. *OnQueueEntry 返回队åˆ-中的排队对象 99
6.3.44. *OnQueueMember 队åˆ-成员状态 100
6.3.45. *OnQueueMemberAdded坐席登入队åˆ- 100
6.3.46. *OnQueueMemberPaused坐席示é-²/示忙 101
6.3.47. *OnQueueMemberRemoved坐席登出队åˆ- 101
6.3.48. *QueueMemberStatus队åˆ-成员线路状态 102
6.3.49. *OnQueueParams队åˆ-统计数据 102
6.3.50. *OnQueueStatusComplete 队åˆ-状态发送完成 103
6.3.51. *OnRegistry注册状态 103
6.3.52. *OnReload CTI重新加载 103
6.3.53. *OnRename活动通道改名 103
6.3.54. *OnShutdownå…³é-­PBX 104
6.3.55. OnStatus 活动通道状态 104
6.3.56. OnStatusComplete 活动通道状态发送完成 105
6.3.57. *OnShowChannel活动通道状态 105
6.3.58. *OnShowChannelsComplete活动通道åˆ-表发送完成 106
6.3.59. *OnOther 其他事件 106
6.3.60. *OnUnhold取消保持 106
6.3.61. OnUnlink通话断开 106
6.3.62. *OnUnParkedCall取出驻留电话 107
6.3.63. *OnUserEvent 自定义事件 107
6.3.64. *OnZapShowChannels 返回Zap通道åˆ-表 107
6.3.65. *OnZapShowChannelsComplete Zap通道åˆ-表结束 108

CTI API Sample codes for MVBCTI in VB.


Private Sub Command1_Click()

MVBCTI1.CTI_HostName = “192.168.0.102”
‘MVBCTI1.CTI_Port = 5038
MVBCTI1.CTI_ThreadType = 1
res = MVBCTI1.CTI_Init()
If res <> 0 Then
MsgBox “CTI Init Failed”
Exit Sub
End If
‘Text1.Text = MVBCTI1.CTI_Challenge(“MD5”, “aaa”)
s_msg = MVBCTI1.CTI_Login(“tapi”, “tapi”, “”, “”, “”, “”)

res = MVBCTI1.CTI_GetResSuccess(s_msg)

If res = 0 Then
MsgBox “CTI Login Failed” + Chr(10) + Chr(13) + MVBCTI1.CTI_GetResResult(s_msg, “Message”)
Exit Sub
End If
MsgBox “init ok”

End Sub

Private Sub Command4_Click()
Text1.Text = MVBCTI1.CTI_CallParkExt(“SIP/7001”, “7011”, “8899”, “”)
End Sub

Private 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 As String, ByVal MVB_DestUniqueID As String)
Text1.Text = Text1.Text + “MVBCTI1_OnDial:” + Chr(13) + Chr(10) + MVB_Destination + Chr(13) + Chr(10) + mvb_Source + Chr(13) + Chr(10) + MVB_Callerid + Chr(13) + Chr(10)

s_dev = Left(MVB_Destination, Len(“SIP/7001”))
If s_dev = “SIP/7001” Then
MsgBox “Call from ” + MVB_Callerid
End If
End Sub

IVR SERVER Sample codes for MVBCTI in VC.


void CMvbctit2Dlg::OnFAGINewCallMvbcti1(long id, LPCTSTR MVB_CallInfo, LPCTSTR MVB_Network, LPCTSTR MVB_NetworkScript, LPCTSTR MVB_Request, LPCTSTR mvb_channel, LPCTSTR MVB_Language, LPCTSTR MVB_Type, LPCTSTR MVB_Uniqueid, LPCTSTR MVB_Callerid, LPCTSTR MVB_CalleridName, LPCTSTR MVB_CallingPres, LPCTSTR MVB_CallingANI2, LPCTSTR MVB_CallingTON, LPCTSTR MVB_CallingTNS, LPCTSTR MVB_DNID, LPCTSTR MVB_RDNIS, LPCTSTR mvb_context, LPCTSTR mvb_priority, LPCTSTR MVB_Enhanced, LPCTSTR mvb_accountcode)
{
// TODO: Add your control notification handler code here
S_CallInfo callinfo;
callinfo.ThreadId=id;
callinfo.hInstance =this;
HANDLE ehThread;
DWORD eThreadId;
ehThread= CreateThread(NULL, 0, ThreadProc, &callinfo, 0, &(eThreadId));
::AfxMessageBox(MVB_CallInfo);
return;

}
DWORD CMvbctit2Dlg::ThreadProc(LPVOID lpParameter)
{
// TODO: Add your control notification handler code here
S_CallInfo *callinfo = (S_CallInfo*)lpParameter;
CMvbctit2Dlg *maindlg = (CMvbctit2Dlg *)callinfo->hInstance;
LONG id=callinfo->ThreadId;

maindlg->m_cti.FAGI_Answer(id);
maindlg->m_cti.FAGI_StreamFile(id,_T(“custom/jaloninfo”),_T(“12345”),0);
maindlg->m_cti.FAGI_StreamFile(id,_T(“beep”),_T(“12345”),0);
maindlg->m_cti.FAGI_StreamFile(id,_T(“custom/jaloninfo”),_T(“12345”),0);
maindlg->m_cti.FAGI_Hangup(id,_T(“”));
return TRUE;
}

Related Posts:

Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.