Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
' 拨号后,被叫方摘机事件(该事件仅做参考,原因如下:)
' 原因:
' 该事件只适用于拨打是标准信号音的号码时,也就是拨号后带有标准回铃音的号码.
' 如:当拨打的对方号码是彩铃(彩铃手机号)或系统提示音(179xx)都不是标准回铃音时该事件无效.
'
' 反极信号是模拟线路中唯一可靠的判断对方摘机的方法,只是一方面需要开通才有该功能,另一方面在有些地方,即使申请也未必受理,因为该功能原本是针对公用电话计费的.
' 没有该功能,利用信号音做判断依据,但可靠性不能做到100%,尤其是在被叫方为彩铃时,检测率很低
' 拥有反级服务方式一:向电信的PSTN线路申请开通,该方式操作性不强,原因如上所述
' 拥有反级服务方式二:购买一个手机sim/3g卡,再购买一个带反级服务的sim/3g平台设备(200人民币左右),该设备会引出一个电话线接入到USB设备
'
BRI_EVENT.lResult : 0 为语音信号分析的结果
'
BRI_EVENT.lResult : 1 为反级检测的结果
Public Const
BriEvent_RemoteHook As Integer = 16
' 挂机事件
' 如果线路检测到被叫方摘机后,被叫方挂机时会触发该事件,不然被叫方挂机后就触发BriEvent_Busy事件
' 该事件或者BriEvent_Busy的触发都表示PSTN线路已经被断开
' 备注:该事件是根据线路的忙音信号检测,如果没有忙音就不会触发该事件
' 如果有反级服务就为可靠提示
'
BRI_EVENT.lResult : 0 为语音信号分析的结果
'
BRI_EVENT.lResult : 1 为反级检测的结果
Public Const
BriEvent_RemoteHang As Integer = 17
'取得设备的可用模块
Public Function
GetModule(ByVal chID As Int16) As String
Dim strModule As String = ""
Dim lModule As Long
=BriSDKLib.QNV_DevInfo(chID,BriSDKLib.QNV_DEVINFO_GETMODULE)
If(lModule And BriSDKLib.DEVMODULE_DOPLAY)
Then strModule &= "有喇叭/"
If(lModule And BriSDKLib.DEVMODULE_CALLID)
Then strModule &= "有来电显示/"
If(lModule And BriSDKLib.DEVMODULE_PHONE)
Then strModule &= "话机拨号/"
If(lModule And BriSDKLib.DEVMODULE_SWITCH)
Then strModule &= "断开电话机,接收话机按键/"
If(lModule And
BriSDKLib.DEVMODULE_PLAY2TEL) Then strModule &= "播放语音到电话机/"
If(lModule And BriSDKLib.DEVMODULE_HOOK)
Then strModule &= "软摘机/"
If(lModule And BriSDKLib.DEVMODULE_MICSPK)
Then strModule &= "有耳机/MIC/"
If(lModule And BriSDKLib.DEVMODULE_RING)
Then strModule &= "模拟话机震铃/"
If(lModule And BriSDKLib.DEVMODULE_STORAGE)
Then strModule &= "FLASH数据存储/"
If(lModule And BriSDKLib.DEVMODULE_FAX)
Then strModule &= "收发传真/"
If(lModule And
BriSDKLib.DEVMODULE_POLARITY) Then strModule &= "反级检测/"
Return strModule
End Function
功能描述 (
Description )
打开/关闭级性反转检测呼叫后对方摘挂机
参数介绍 ( Parameters )
[in] nChannelID
控制的通道
[in] nValue
0 — 关闭级性反转摘挂机检测
1 —
打开级性反转摘挂机检测
返回值 (
Return Values )
大于0表示成功,其它表示失败
备注
(Remarks)
- 对支持该功能的设备才有效
- 反极信号是模拟线路中唯一可靠的判断对方摘机的方法,只是一方面需要开通才有该功能,另一方面在有些地方,即使申请也未必受理,因为该功能原本是针对公用电话计费的。
- 没有该功能,利用信号音做判断依据,但可靠性不能做到100%,尤其是在被叫方为彩铃时,检测率很低
例如
(Example)
QNV_SetDevCtrl(0, QNV_CTRL_POLARITY ,1);
全局代码
Default
Public Speaker As
New DotNetSpeech.SpVoice() 'TTS文字转语音
'''
Public EventForm
As FormEventReport
Public
drCurrentRow As DataRow
Public CanAddnew
As Boolean = True
'录音结构
<StructLayout(LayoutKind.Sequential)>
_
Public Structure
tag_pstn_Data
Public uChannelID As Int16 '设备通道
Public lPlayFileHandle As Int32 '播放句柄
Public lRecFileHandle As Int32 '录音句柄
End Structure
'呼叫信息结构,用于号码,录音文件路径等
<StructLayout(LayoutKind.Sequential)>
_
Public Structure
CallLog_Data
<MarshalAs(UnmanagedType.ByValArray,
SizeConst: = BriSDKLib.MAX_BRIEVENT_DATA)> _
Public szData As [Byte]()
End Structure
Public
m_tagpstnData(BriSDKLib.MAX_CHANNEL_COUNT) As tag_pstn_Data '所有通道的录音结构
。。。。。
---------------------------------------------------------------------
'页签的全局代码, 和自定义函数和窗口配合
Public Sub
Tab_SelectedTabChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim Tab As C1Command.C1DockingTab = sender
If Tab.SelectedIndex = 0 Then
Tab.CanCloseTabs = False
Else
Tab.CanCloseTabs = True
End If
End Sub
Public Sub
Tab_TabPageClosing(ByVal sender As Object, ByVal e As
C1.Win.C1Command.TabPageCancelEventArgs)
Functions.Execute("TabPageClosing", sender, e)
End Sub
Public Sub
Tab_TabPageClosed(ByVal sender As Object, ByVal e As
C1.Win.C1Command.TabPageEventArgs)
Functions.Execute("TabPageClosed", sender, e)
End Sub