Using MVBCTI ActiveX for CTI and IVR SERVER

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


The model of MVBCTI.


mvbcti_small.jpg


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;
}




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


The model of MVBCTI.


mvbcti_small.jpg


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;
}




Created by: jalonljc, Last modification: Wed 04 of Aug, 2010 (08:45 UTC)
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+