CN106209882A - 一种基于tcp实现话单下载的方法 - Google Patents
一种基于tcp实现话单下载的方法 Download PDFInfo
- Publication number
- CN106209882A CN106209882A CN201610578526.7A CN201610578526A CN106209882A CN 106209882 A CN106209882 A CN 106209882A CN 201610578526 A CN201610578526 A CN 201610578526A CN 106209882 A CN106209882 A CN 106209882A
- Authority
- CN
- China
- Prior art keywords
- ticket
- tcp
- client
- server
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种基于TCP实现话单下载的方法,包括:1、新建线程,并在线程中创建socket进行监听;2、客户端向服务器发送请求命令进行认证,认证通过后发起话单订阅请求,并确定话单的传输方式;3、服务器收到后,生成一话单传送标识,并将其和TCP连接的地址及端口发送给客户端;4、客户端收到后,根据TCP通道的地址及端口向服务器发起TCP连接,连接建立后,将话单传送标识发送给服务器进行认证,成功后,创建定时器定时向客户端发送保活报文;5、服务器产生话单后,将话单转换成对应的格式并发送给客户端;6、当客户端要停止话单订阅时,服务器找到对应的TCP通道并关闭。本发明能够有效缓解大量话单传送所带来的压力。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种基于TCP实现话单下载的方法。
背景技术
为了响应ECMA(欧洲计算机制造协会)建立CTI标准的运动,专门成立了一个代表主要PBX(程控用户交换机)制造商的委员会,该委员会制订了标准ECMA-179——计算机支持的电信应用服务(CSTA)和标准ECMA-180——计算机支持的电信应用协议,该协议是计算机与电信网间的OSI第7层通信协议。CSTA为集成计算机和电信网平台定义了总体结构、要求和协议。
在该协议中规定了话单的订阅、上报等接口。但是在上报话单的接口中每次只能发送一条话单,当PBX上短时间内产生大量呼叫的时候,话单的传输将严重影响CSTA其他事件的发送,导致其他呼叫事件发送延迟。在使用CSTA标准接口进行话单传送时,如果同时间存在大批量的呼叫时,服务器短时间内发送大量的话单,势必加重服务器的压力,同时客户端的SIP协议栈也会因为话单处理延时不能及时回复导致服务器话单积压,这样不仅会使服务器压力过大,也会导致一些重要话单丢失。另外,使用SIP协议的传送方式可以传送话单及其他事件,传输的数据量大,严重影响了话单的传输速度。
在此基础上我们研发了另一条通道进行话单传输的方式,通过另外开启一条TCP(Transmission Control Protocol,即传输控制协议)通道将产生的话单作为TCP的负载发送到客户端,该TCP通道是专门用来处理话单事件的,这样就可以来减轻服务器处理其他呼叫事件的压力。
发明内容
本发明要解决的技术问题,在于提供一种基于TCP实现话单下载的方法,在CSTA规定的接口上进行拓展,将原先的话单作为SIP(Session Initiation Protocol,会话初始协议)报文负载的方式改为话单作为TCP负载的方式,原有接口与新增接口可以同时使用,一起实现客户端的认证和保活,达到减少SIP报文的交互,减轻由于话单频繁传送给其他呼叫事件带来的压力。
本发明是这样实现的:
一种基于TCP实现话单下载的方法,包括如下步骤:
步骤1、服务器启动后,创建一个新的线程,并在该线程中创建一个socket,用于监听TCP连接;
步骤2、客户端通过SIP报文向服务器发送请求命令进行认证,认证通过之后调用话单开始传送接口向服务器发起话单订阅请求,同时在该话单开始传送接口中确定话单的传输方式;
步骤3、服务器收到该话单订阅请求后,随机生成一个话单传送标识,并将该话单传送标识和TCP连接的地址及端口作为SIP报文的负载发送给客户端;
步骤4、客户端收到该SIP报文的负载后,根据获取的所述TCP连接的地址及端口向服务器发起TCP连接请求,所述socket监听到所述TCP连接请求后,通过服务器的TCP通道建立服务器与客户端之间的连接,客户端将该话单传送标识发送给服务器进行认证,服务器的TCP通道接收到该话单传送标识后,判断该话单传送标识是否正确,如果正确,则发送认证成功的报文给客户端,并创建定时器定时向客户端发送保活报文以确保TCP通道一直可用;否则,发送认证失败的报文给客户端,并关闭该TCP通道;
步骤5、服务器产生话单后,判断话单的传输方式,根据话单的传输方式将话单转换成对应的格式,再发送给客户端;
步骤6、当客户端调用话单订阅停止接口以停止话单订阅时,服务器根据所述话单传送标识查找到对应的TCP通道,将该TCP通道关闭。
进一步地,所述步骤2具体为:
客户端通过SIP报文发送登录请求命令到服务器进行登录,服务器接收到该登录请求命令后,返回请求认证命令给客户端,客户端接收到该请求认证命令后,通过已知的用户名和密码向服务器发起认证,若认证通过,则调用话单开始传送接口向服务器发起话单订阅请求,同时在该话单开始传送接口中确定话单的传输方式;若认证不通过,则重新向服务器发起认证。
进一步地,所述话单的传输方式为使用SIP信令的方式传送话单或使用TCP负载的方式传送话单。
进一步地,所述步骤5具体为:
服务器产生话单后,判断话单的传输方式,若使用SIP信令的方式传送话单,则使用CSTA的标准接口规范将话单组织成xml格式,并使用SIP INFO报文将话单发送给客户端;若使用TCP负载的方式传送话单,则使用CSTA的标准接口规范将话单组织成csv格式压入待发送队列中,找到客户端对应的TCP通道,当TCP通道的socket空闲时,从待发送队列中取出将要发送的话单,并作为TCP的负载发送到客户端;如果TCP连接断开,则话单发送中断,客户端再次连接TCP通道并认证通过后进行话单传送。
本发明具有如下优点:本发明中在使用TCP话单传送技术之后,能够有效缓解大量话单传送所带来的压力,充分利用服务器和客户端的多线程处理能力,使话单传送和呼叫事件传送分通道进行,保证了两条通道传送的可靠性,数据包不积压,不丢失。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种基于TCP实现话单下载的方法执行流程图。
具体实施方式
为了更清楚地说明本发明的技术方案,下面将以一个实例对附图作简单地介绍。对于本领域普通技术人员来讲,本发明不仅仅局限于话单下载,它核心的地方在于通过多线程的协作既保证了下载话单的安全性,也保证了在大批量呼叫时服务器能够有条不紊的进行事件传送,而不是事件积压导致客户端不能收到正常的呼叫事件。
本实例所采用的TCP话单下载方式如附图1所示,本发明的一种基于TCP实现话单下载的方法,包括如下步骤:
步骤1、服务器启动后,加载SIP协议(会话发起协议)栈,服务器创建一个新的线程,并在该线程中创建一个socket,用于监听客户端的连接,打开socket等待客户端的TCP连接;
步骤2、客户端使用SIP协议通过SIP报文发送登录请求命令到服务器进行登录,服务器接收到该登录请求命令后,返回请求认证命令给客户端,客户端接收到该请求认证命令后,通过已知的用户名和密码向服务器发起认证,若认证通过,则服务器为客户端创建一个专门的SIP会话session,后续的SIP报文都在这个SIP会话session中进行,然后调用话单开始传送接口向服务器发起话单订阅请求,同时在该话单开始传送接口中通过字段transferType指定话单的传输方式,所述话单的传输方式为使用SIP信令的方式传送话单或使用TCP负载的方式传送话单,若transferType的取值为xmlOversip,则话单的传输方式为使用SIP信令的方式传送话单;若transferType的取值为csvOverTcp,则话单的传输方式为使用TCP负载的方式传送话单;若认证不通过,则重新向服务器发起认证;
步骤3、服务器收到该话单订阅请求后,随机生成一个字符串作为话单传送标识,并指明这个字符串为cdr的传送标识,后续的发送与停止传送都需要用到该话单传送标识进行认证;并将该话单传送标识和TCP连接的地址及端口作为SIP报文的负载发送给客户端;
步骤4、客户端收到该SIP报文的负载后,根据获取的所述TCP连接的地址及端口向服务器发起TCP连接请求,所述socket监听到所述TCP连接请求后,通过服务器的TCP通道建立服务器与客户端之间的连接,客户端将该话单传送标识作为TCP的负载发送给服务器进行认证,服务器的TCP通道接收到该话单传送标识后,判断该话单传送标识是否正确,如果正确,则发送认证成功的报文给客户端,并创建定时器定时向客户端发送保活报文以确保TCP通道一直可用;否则,发送认证失败的报文给客户端,并关闭该TCP通道;
步骤5、服务器产生话单后,判断话单的传输方式,根据话单的传输方式将话单转换成对应的格式,若transferType的取值为xmlOversip,即使用SIP信令的方式传送话单,则使用CSTA的标准接口规范将话单组织成xml格式,并使用SIP INFO报文将话单发送给客户端;若transferType的取值为csvOverTcp,即使用TCP负载的方式传送话单,则使用CSTA的标准接口规范将话单组织成csv格式压入待发送队列中,找到客户端对应的TCP通道,当TCP通道的socket空闲时,从待发送队列中取出将要发送的话单,并作为TCP的负载发送到客户端;如果TCP连接断开,则话单发送中断,客户端再次连接TCP通道并认证通过后进行话单传送。
步骤6、当客户端调用话单订阅停止接口以停止话单订阅时,服务器根据所述话单传送标识查找到对应的TCP通道,关闭该TCP通道,并释放SIP会话session,断开与客户端的连接。
本发明的优点如下:
在使用CSTA标准接口进行话单传送时,如果同时间存在大批量的呼叫时,服务器短时间内发送大量的话单,势必加重服务器的压力,同时客户端的SIP协议栈也会因为话单处理延时会不能及回复导致服务器话单积压,这样不仅会使服务器压力过大,也会导致一些重要话单丢失。
在使用TCP话单传送技术之后,能够有效缓解大量话单传送所带来的压力,充分利用服务器和客户端的多线程处理能力,使话单传送和呼叫事件传送分通道进行,保证了两条通道传送的可靠性,数据包不积压,不丢失。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (4)
1.一种基于TCP实现话单下载的方法,其特征在于:包括如下步骤:
步骤1、服务器启动后,创建一个新的线程,并在该线程中创建一个socket,用于监听TCP连接;
步骤2、客户端通过SIP报文向服务器发送请求命令进行认证,认证通过之后调用话单开始传送接口向服务器发起话单订阅请求,同时在该话单开始传送接口中确定话单的传输方式;
步骤3、服务器收到该话单订阅请求后,随机生成一个话单传送标识,并将该话单传送标识和TCP连接的地址及端口作为SIP报文的负载发送给客户端;
步骤4、客户端收到该SIP报文的负载后,根据获取的所述TCP连接的地址及端口向服务器发起TCP连接请求,所述socket监听到所述TCP连接请求后,通过服务器的TCP通道建立服务器与客户端之间的连接,客户端将该话单传送标识发送给服务器进行认证,服务器的TCP通道接收到该话单传送标识后,判断该话单传送标识是否正确,如果正确,则发送认证成功的报文给客户端,并创建定时器定时向客户端发送保活报文以确保TCP通道一直可用;否则,发送认证失败的报文给客户端,并关闭该TCP通道;
步骤5、服务器产生话单后,判断话单的传输方式,根据话单的传输方式将话单转换成对应的格式,再发送给客户端;
步骤6、当客户端调用话单订阅停止接口以停止话单订阅时,服务器根据所述话单传送标识查找到对应的TCP通道,将该TCP通道关闭。
2.根据权利要求1所述的一种基于TCP实现话单下载的方法,其特征在于:所述步骤2具体为:
客户端通过SIP报文发送登录请求命令到服务器进行登录,服务器接收到该登录请求命令后,返回请求认证命令给客户端,客户端接收到该请求认证命令后,通过已知的用户名和密码向服务器发起认证,若认证通过,则调用话单开始传送接口向服务器发起话单订阅请求,同时在该话单开始传送接口中确定话单的传输方式;若认证不通过,则重新向服务器发起认证。
3.根据权利要求2所述的一种基于TCP实现话单下载的方法,其特征在于:所述话单的传输方式为使用SIP信令的方式传送话单或使用TCP负载的方式传送话单。
4.根据权利要求3所述的一种基于TCP实现话单下载的方法,其特征在于:所述步骤5具体为:
服务器产生话单后,判断话单的传输方式,若使用SIP信令的方式传送话单,则使用CSTA的标准接口规范将话单组织成xml格式,并使用SIPINFO报文将话单发送给客户端;若使用TCP负载的方式传送话单,则使用CSTA的标准接口规范将话单组织成csv格式压入待发送队列中,找到客户端对应的TCP通道,当TCP通道的socket空闲时,从待发送队列中取出将要发送的话单,并作为TCP的负载发送到客户端;如果TCP连接断开,则话单发送中断,客户端再次连接TCP通道并认证通过后进行话单传送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610578526.7A CN106209882B (zh) | 2016-07-21 | 2016-07-21 | 一种基于tcp实现话单下载的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610578526.7A CN106209882B (zh) | 2016-07-21 | 2016-07-21 | 一种基于tcp实现话单下载的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106209882A true CN106209882A (zh) | 2016-12-07 |
CN106209882B CN106209882B (zh) | 2019-06-07 |
Family
ID=57491342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610578526.7A Active CN106209882B (zh) | 2016-07-21 | 2016-07-21 | 一种基于tcp实现话单下载的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106209882B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030069816A1 (en) * | 2000-04-11 | 2003-04-10 | Dara Ung | Prepaid real-time web based reporting |
CN101262356A (zh) * | 2007-03-07 | 2008-09-10 | 中兴通讯股份有限公司 | 一种通讯网络的话单处理系统 |
CN101742451A (zh) * | 2009-12-11 | 2010-06-16 | 中兴通讯股份有限公司 | 计费信息发送方法、系统和装置 |
CN103095498A (zh) * | 2013-01-17 | 2013-05-08 | 河南省电力通信自动化公司 | 话单采集方法和系统 |
CN104601358A (zh) * | 2013-11-01 | 2015-05-06 | 中兴通讯股份有限公司 | 一种实现采集系统与分析系统间的匹配方法及装置 |
-
2016
- 2016-07-21 CN CN201610578526.7A patent/CN106209882B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030069816A1 (en) * | 2000-04-11 | 2003-04-10 | Dara Ung | Prepaid real-time web based reporting |
CN101262356A (zh) * | 2007-03-07 | 2008-09-10 | 中兴通讯股份有限公司 | 一种通讯网络的话单处理系统 |
CN101742451A (zh) * | 2009-12-11 | 2010-06-16 | 中兴通讯股份有限公司 | 计费信息发送方法、系统和装置 |
CN103095498A (zh) * | 2013-01-17 | 2013-05-08 | 河南省电力通信自动化公司 | 话单采集方法和系统 |
CN104601358A (zh) * | 2013-11-01 | 2015-05-06 | 中兴通讯股份有限公司 | 一种实现采集系统与分析系统间的匹配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106209882B (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104956649B (zh) | 呼叫没准备好的终端 | |
WO2009070999A1 (fr) | Procédé et dispositif pour ajuster l'état de relais | |
KR100794416B1 (ko) | SIP를 기반으로 하는 VoIP 호에 대한 패킷 과금정보의 획득 방법 | |
CN110166479A (zh) | 一种传输系统提升udp发送效率的方法 | |
CN106330513A (zh) | tr069协议信息的处理方法及装置 | |
CN102932564B (zh) | 一种融合VoIP/IM与移动通信技术的通信代理装置及其使用方法 | |
CN104348780B (zh) | 一种登录的方法和系统 | |
CN106209882A (zh) | 一种基于tcp实现话单下载的方法 | |
CN102739877A (zh) | 终端用户信息共享的方法、呼叫的方法及服务器 | |
CN104205727B (zh) | 移动分组核心网络中的会话终止 | |
CN101699905A (zh) | 无线智能终端、网管平台及其对无线智能终端的管理方法 | |
CN115866535A (zh) | 一种多协议实现5g消息接入的方法及系统 | |
CN101106606A (zh) | 实现交互式语音应答向软自动呼叫分配注册的方法及系统 | |
US9374391B2 (en) | Composite endpoint mechanism | |
CN103475491A (zh) | 一种无密码安全登录的远程维护系统和实现方法 | |
CN106453119A (zh) | 一种认证控制方法及装置 | |
US8457294B1 (en) | Transferring a communication session | |
CN103124300A (zh) | 一种实现即时通讯im客户端自动绑定sip话机的方法 | |
CN101005652A (zh) | 一种群组呼叫的方法和装置 | |
CN110545527B (zh) | 呼叫转移方法、视频通信服务器及主叫终端 | |
CN113596083A (zh) | 一种基于状态跟踪的高可用云通信通话恢复的方法及系统 | |
WO2012009994A1 (zh) | 一种实现多方通话的方法及通话终端 | |
CN106878141A (zh) | 一种基于msrp协议的即时通信方法 | |
CN105721726B (zh) | 控制话机的方法和系统 | |
CN101447878B (zh) | 一种预付费业务的计费方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Software Park Siming District of Xiamen city in Fujian province 361000 two sunrise Road No. 56 unit 1001 Patentee after: Fujian Xingwang Intelligent Technology Co., Ltd Address before: Software Park Siming District of Xiamen city in Fujian province 361000 two sunrise Road No. 56 unit 1001 Patentee before: FUJIAN STAR-NET WISDOM TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |