首页 > 学院 > 开发设计 > 正文

使用C#开发纽曼USB来电小秘书客户端小结

2019-11-17 03:02:54
字体:
来源:转载
供稿:网友
使用C#开发纽曼USB来电小秘书客户端小结

在前面用C#开发完CRM的来电弹屏之后,有些客户有了新的要求,他们希望不但能够实现来电弹屏,更希望能够将呼入呼出的电话录音并上传到CRM服务器上,方便日后跟踪记录。于是便有了来电小秘书客户端的开发。 来电小秘书客户端的开发是基于纽曼USB来电通客户端的基础上进行开发的,由于纽曼USB来电通的硬件没有录音功能,于是硬件上使用了纽曼的另一个硬件产品来电小秘书,虽然是同一个厂家的产品,可是它们的API却是完全不兼容,更烦的是,来电小秘书API没有来电的回调接口,无法通过回调触发程序,也没有C#的Demo,很多功能只能通过一个不是那么详细的文档和一个Delphi的Demo摸索着做了,经历了一些挫折和困惑,终于完成了这个客户端程序。 首先,开发要做的就是与硬件的API进行沟通,依然通过C#的P/Invoke来完成,以下是来电小秘书的P/Invoke代码。

C#代码收藏代码
  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. usingSystem.Runtime.InteropServices;
  5. namespaceWindowsapplication1
  6. {
  7. classLDT1
  8. {
  9. [DllImport("usbms.dll",EntryPoint="LoadDRV")]
  10. publicstaticexternintLoadDRV();
  11. [DllImport("usbms.dll",EntryPoint="EnableCard")]
  12. publicstaticexternintEnableCard();
  13. [DllImport("usbms.dll",EntryPoint="StopSigCheck")]
  14. publicstaticexternintStopSigCheck(intHandle);
  15. [DllImport("usbms.dll",EntryPoint="ReSetUsb")]
  16. publicstaticexternintReSetUsb(intHandle);
  17. [DllImport("usbms.dll",EntryPoint="HangUp")]
  18. publicstaticexternintHangUp(intHandle);
  19. [DllImport("usbms.dll",EntryPoint="InitDtmfBuf")]
  20. publicstaticexternintInitDtmfBuf(intHandle);
  21. [DllImport("usbms.dll",EntryPoint="SetDialPara")]
  22. publicstaticexternintSetDialPara(UInt16RingBack1,UInt16RingBack0,UInt16BusyLen,UInt16RingTimes,UInt16SendNoSignalLen);
  23. [DllImport("usbms.dll",EntryPoint="DisableCard")]
  24. publicstaticexternintDisableCard();
  25. [DllImport("usbms.dll",EntryPoint="FreeDRV")]
  26. publicstaticexternintFreeDRV();
  27. [DllImport("usbms.dll",EntryPoint="GetDtmfCode")]
  28. publicstaticexternintGetDtmfCode(UInt16Line);
  29. [DllImport("usbms.dll",EntryPoint="IsRing")]
  30. publicstaticexternboolIsRing(UInt16Line);
  31. [DllImport("usbms.dll",EntryPoint="GetCallerIDStr")]
  32. publicstaticexternUInt16GetCallerIDStr(UInt16Line,StringBuilderIDStr);
  33. [DllImport("usbms.dll",EntryPoint="IsOffHook")]
  34. publicstaticexternboolIsOffHook(UInt16Line);
  35. [DllImport("usbms.dll",EntryPoint="StartRecordFile")]
  36. publicstaticexternboolStartRecordFile(UInt16Line,stringFileName,UInt32dwRecordLen);
  37. [DllImport("usbms.dll",EntryPoint="CheckRecordEnd")]
  38. publicstaticexternboolCheckRecordEnd(UInt16Line);
  39. [DllImport("usbms.dll",EntryPoint="StoPRecordFile")]
  40. publicstaticexternboolStopRecordFile(UInt16Line);
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表