碰触华为 (1) INtess CTI API for 1B+1D

92、电话API:简化CTI开发的关键 本文介绍了电话API在计算机电话集成(CTI)开发中的关键作用,详细解析了其核心功能如呼叫控制、电话状态监控和呼叫转移。文章还探讨了不同类型的电话API(包括TAPI、JTAPI和TSAPI)、开发工具与环境,并通过实际案例展示了其应用价值。此外,深入分析了电话API的未来发展趋势,如与Web服务和云平台的集成,以及其在客户服务中心、远程办公、智能家居等场景的应用。同时强调了电话API的安全性问题及应对措施,为开发者提供了全面的技术参考。 阅读详情

很多东西,都是不接触不知道,或者不触及想不到……

 

以前接触的PBX、CTI也不少,却无一不是支持中央集中管理的技术结构。就像TSAPI,它也是具有C/S结构支持属性的接口。这种方式,给第三方集成开发带来很大便利,就是这前面说的“集中管理”、集中控制。

 

开发的中间集成软件,可以以一个服务器模式建立服务、而不用考虑多个Client的问题。
而恰恰,对于华为的了解,四个月前真是无知小孩般地无知。虽然看了很多华为INtess方面的资料,却没有一份提到了其CTI API的技术结构。于是忽略了……

 

在现场开发的时候,经过不停验证,发现……INtess CTI API由于客户采用的1B+1D方式,只能在客户端实现CTI API功能!

 

软件结构也必须随之而变……原来的Server Based变成了Client Based。与此同时,客户却提出新需求——其实是沿袭原来Server模式的思路:开发的软件要是中央控制的,所有的业务逻辑都必须走SAP CRM和集成软件服务器端,而不能放在集成软件客户端!另一个方面,SAP CRM这里是采用SAPphone+WinClient的方式,跟外部集成软件对接,需要建立RFC Destination,如果多个Clients,必须建立对应多的RFC Destinations,1000号左右的业务代表/坐席呀!
集成软件于是一分为二——C/S!
如此,SAPphone-Server-Based、Network-Communication、CTIAPI-Client-Based三部分内容便释释然面世了!

 

INtess CTI API,包含了两部分,APCIO.dll、CTIAPIdll.dll,前者驱动硬件APC卡(可简单理解为插在电脑的PCI电话卡)、后者实现其他电话功能驱动!

 

----
P.S.:对于项目来说,需求分析委实重要,重中之重也!

其实了解到这么一个环节,项目时间已经过去1个半月了,不停的摸索,不停地学习,时间耗呀!早期没有规划一定时间作为调研和需求分析,突然发现这么一个状况,便反过头去确认、去重新设计、重新安排人员与计划……

保姆级教程:从Navicat 11/12到15,平滑升级搞定MySQL 8.0的caching_sha2_password认证 本文提供从Navicat 11/12升级到15的保姆级教程,重点解决MySQL 8.0的caching_sha2_password认证问题。详细介绍了备份配置、新版本功能亮点、跨平台安装步骤、配置迁移流程以及高级使用技巧,帮助用户平滑过渡到Navicat 15,提升数据库管理效率。 阅读详情

相关推荐

20个闭环渗透测试项目:从漏洞发现到简历突围

渗透测试不仅是工具使用,更是对系统设计缺陷与实现偏差的深度推演。理解OWASP Top 10、Burp Suite等基础能力只是起点,真正具备工程价值的是能复现、可验证、可协作的完整攻击链。本文聚焦真实业务场景下的SSRF协议绕过、JWT签名机制缺陷、Redis未授权利用、Kong网关配置风险及etcd存储结构分析等核心热词,揭示漏洞本质在于架构决策与配置偏差的叠加态。适用于红队实战、甲方安全建设与乙方渗透审计等多类岗位,帮助从业者将技术动作升维为技术叙事。

weixin_32234493的博客 414

关于在呼叫中心业务中应用语音识别技术的探讨

关于在呼叫中心业务中应用语音识别技术的探讨摘要:本文首先给出了语音技术的应用现状,接着对语音识别技术在呼叫中心中可应用可尝试的业务进行探讨,最后提出呼叫中心业务中应用语音识别技术的虚拟CSR概念。关键词:SR(Speech Recognition)  TTS(Text to Speech)  虚拟CSR(Virtual Customer Service Representatives)

医疗影像检索 5003

《中国图书馆图书分类法》(第五版)详表(中图分类号查询表)

中文法分类

记录我目之所及的世界 4万+

CTI领域标准API的第一选择——TAPI 3.0

CTI领域标准API的第一选择——TAPI 3.0美国Music Telecom公司技术支持部 王宏TAPI出现已经有很长时间,从1993年公布的TAPI 1.0版,经过1.3、1.4、2.0、2.1直到Windows 2000推出,TAPI也更新到3.0版。事实上,2.x以前的TAPI,虽然也有其独到之处,如开放结构(WOSA),设备无关等,但并没有引起更大关注。随着CT

tchaikov的专栏 1313

如何搭建pikachu靶场

Pikachu靶场本地搭建指南 下载安装PHPStudy并启动Apache/MySQL服务 获取Pikachu靶场源码并解压到网站根目录 配置数据库连接信息(修改config.inc.php文件) 创建pikachu数据库(用户名/密码设为root) 访问http://localhost/pikachu测试功能 常见问题:数据库连接失败需检查服务状态和配置信息,页面报错需检查PHP版本兼容性。建议使用PHP7.3/7.4版本,在隔离环境中搭建使用。 (150字)

2401_85351702的博客 1276

在没有信用卡的情况下怎么申请谷歌云(Google Cloud)?

这笔额度足够用来跑一台云服务器、部署小型网站,甚至可以尝试 AI、机器学习等项目。但问题来了——想要拿到这 300 美元,你必须先通过支付方式验证。默认选项就是绑定一张国际信用卡(Visa、MasterCard 之类),然而不少人没有信用卡,或者信用卡无法支持国际支付,结果就卡在注册第一步。很多人会疑惑:既然是送额度,为什么还要绑卡?原因其实很简单:谷歌需要确认你是真实用户,而不是批量注册薅羊毛;通过支付验证,后续如果你用完 300 美元额度,可以直接进行付费使用;

m0_74824483的博客 5653

CTI技术步入JAVA世界的阶梯

华胜天成公司 吕华 2001/05/29 目录 1. 什么是JTAPI 2. JTAPI的结构3. 利用JTAPI搭建CTI程序4. 应用实例分析4.1 外拨模块4.2 消息处理模块5. 结尾 1. 什么是JTAPI 什么是JTAPI? 谈JTAPI,首先

抢财猫股票课堂 4695

用ADS2023手把手仿真SKYWORKS SMA1234变容二极管:从Datasheet到S参数结果全流程

本文详细介绍了如何使用ADS2023仿真SKYWORKS SMA1234变容二极管的全流程,从Datasheet参数解析到S参数结果验证。通过等效电路建模、关键公式编写和仿真设置,帮助工程师掌握变容二极管在射频电路设计中的应用技巧,提升仿真精度和工程实践能力。

weixin_29233333的博客 502

jtapi范例说明

 当我们 解Call Model的运作情形之後,我们进一步来看JTAPI packages 的结构: 图二、 JTAPI packages结构 图二是JTAPI版本1. 2所规画出来的蓝图。JTAPI packages 设计

skyme 1702

RDKit | 基于Pytorch和RDKit建立QSAR模型

QSAR 定量构效方法(quantitative structure-activity relationship, QSAR)是应用最为广泛的药物设计方法。所谓定量构效方法就是通过一些数理统计方法建立其一系列化合物的生理活性或某种性质与其物理化学性质之间的定量关系,通过这些定量关系。可以预测化合物的生理活性或某些性质,指导我们设计出具有更高活性的化合物。 早在...

DrugOne 5078

全志 camera: 4路AHD摄像头转MIPI

TP2815 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 MIPI 数据,从而实现在 T527 端来对数据进行处理和送显。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 9095

Unix常用命令

more less: less的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less允许使用者往回卷动以浏览已经看过的部份,同时因 为less并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如 vi)来的快速。 unix种类[图] >> Linux ‖ BSD ‖ Solaris ‖ SCO ‖ HP-UX ‖ AIX ‖ AS400 ‖ T

美好回忆 1409

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

openfire connection manager using

----20120622---- openfire connection manager install: 1. cp tar.gz package to connection manager server path 2. tar -xvzf the package 3. modify the conf manager.xml     imopenfire01.sam.com

taizans Blog 1239

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上海-项目-一恍月将去,再晃人憔悴(2)技术事儿

在上海待着,到开发赴现场,到抽调离开,便没再回去过…… 到目前——其实应该说到5月劳动节假日结束,算是告一个段落。但是回过头看看,这个项目,从技术上、从项目上都留有缺陷。今天先说说技术上的事儿!   其一,在技术上,难为地实现了大部分功能——需要的大部分功能,当然其中不少尽善尽美! 之前也有强调,这是一个SAP CRM跟AVAYA呼叫中心的集成项目。   SAP CRM,接触过SAP的

taizans Blog 1076

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

我要监控——RBproMonitor

<br />最近在捣鼓一个监控的程序,因为一个程序不明原因时常无故自动退出,时间不定。<br />用了CreateMutex,查了一些资料,虽然还没完全懂得,也蹒跚而行,一步一步来!<br /> <br />以下是修修改改的代码:<br />  const int PATHSIZE = 1024; char path[PATHSIZE]; memset(path, 0, PATHSIZE); if (!GetModuleFileName(NULL,path,PATHSIZE)) { D

taizans Blog 1032

能否改良Datagrid_DataSet将excel内容导入SQL Server

这个使用Datagrid DataSet将excel内容导入SQL Server有问题么?现在导入一个excel含数据量65535条,需要6分钟的时间。。。慢呀~~~能否改良?------------------------using System;using System.Collections;using System.ComponentModel;using System.Data;

taizans Blog 966

Redis总结汇编

Redis内存使用优化与存储 作者 田琪 发布于 2011年8月16日 总结: 1    根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。 2    当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。 3    如果需要使用持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟

taizans Blog 849

碰触华为 (序)

“ 有幸”碰触华为的产品,而且一来就来个大的。作为曾经的通讯人,接触华为,也是一种“幸运”。 这次接触的是INtess客户服务中心。确实头大。远没有接触Avaya、Nortel那般顺心应手。 INtess客户服务中心,涉及一大套东西。前台排队机(C&C08Q-A/B/E型机器)、CTI Link、CTI Server、CCS(UIS)、IVR、VP台、文件服务器,这是大体上的东

taizans Blog 700

华为昇腾910B4(A2)服务器环境搭建笔记

Qwen3.5 默认支持思考模式。首次测试建议关闭思考模式,更容易判断模型是否成功回答。我建议把模型统一存放在宿主机的 /data/models 目录中。这样即使删除 Docker 容器,模型文件也不会丢失。这里先进行单卡测试,确保容器能正确调用 NPU。安装ModelScope 用于下载模型。继续在刚才的容器内部执行。

guoqingru0311的博客 313

IPD咨询洞察:华为项目管理:分析价值创造的来源

华为项目管理中,价值交付不是笼统的完成任务,而是从两个角度拆解:价值的形态和归属。价值有三个维度——当期商业价值、未来战略目标、整体能力提升。价值归属四类对象:客户、企业、伙伴、团队。先定义价值,再对齐对象,项目才算真正交付了价值。

weixin_58096508的博客 229

IPD咨询洞察:华为项目文化:让胜利成为一种信仰

华为“让胜利成为信仰”的本质是使命必达,落地为五项内核:开放创新、勇于担当、团队协同、契约精神、善思善结。使命必达不能停留在墙面标语,须转化为可落地、可考核的行为准则,胜利才能真正成为团队习惯。

weixin_58096508的博客 115

【2026-11-06】华为研发机试三道编程题解

本文整理了华为11月6日研发岗三道编程题解法:第一题为按列填充句子,通过枚举行数模拟列宽计算,求最小行数;第二题为生鲜库存优化,利用动态分配思想,预处理“采购-销售”成本,贪心选择最便宜来源满足需求;第三题涉及AC自动机与动态规划结合的序列化奖励问题。代码均以Java实现,思路清晰,适合笔试刷题参考。关注公众号【TechGuide】获取更多真题解析。

试问道几许 374

华为运维面试题

华为面试注重真实经历与价值观契合,主管面采用STAR+价值观锚点+反思闭环框架,强调“我”的决策与量化结果。运维手撕题重思路表达与边界处理,需清晰复述、分步讲解、主动验证。云场景设计题须先澄清需求,再分层设计,兼顾可靠性与成本,突出取舍意识。通用心法:聚焦“我”、结构先行、主动说明边界与改进,以数字和反思收尾,展现复盘能力与华为文化匹配度。

dp340823的博客 166

鸿蒙手机远程控制Windows电脑:华为手机控电脑实操完全指南

对于鸿蒙(HarmonyOS)用户来说,用华为手机/平板远程控制Windows电脑,ToDesk是目前最佳选择

球球!? 237
上一篇: 能否改良Datagrid_DataSet将excel内容导入SQL Server
下一篇: 上海-项目-一恍月将去,再晃人憔悴(2)技术事儿
山书生
博客等级 码龄23年 150粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值