CN106487541A - Many communication modules fault control method and server - Google Patents

Many communication modules fault control method and server Download PDF

Info

Publication number
CN106487541A
CN106487541A CN201510528154.2A CN201510528154A CN106487541A CN 106487541 A CN106487541 A CN 106487541A CN 201510528154 A CN201510528154 A CN 201510528154A CN 106487541 A CN106487541 A CN 106487541A
Authority
CN
China
Prior art keywords
communication
module
event
modules
content
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
Application number
CN201510528154.2A
Other languages
Chinese (zh)
Other versions
CN106487541B (en
Inventor
苏玉峰
田甜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201510528154.2A priority Critical patent/CN106487541B/en
Publication of CN106487541A publication Critical patent/CN106487541A/en
Application granted granted Critical
Publication of CN106487541B publication Critical patent/CN106487541B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

A kind of many communication modules fault control method, including:When having detected a kind of communication module communication event being there occurs, Content of communciation and the communication object mark of the communication event are analyzed and are preserved;When the communication module that the communication event occurs there occurs fault, according to the mapping table between the communication object mark for prestoring, corresponding other communication modules of communication object for the side that breaks down are determined;There is the history number of times that communication event occurs in all history number of times of communication event or nearest preset time period in statistics other communication modules described;According to the history number of times, other communication modules described are ranked up;And according to above-mentioned sequence, redirect and the maximum communication module of usage history number of times is communicated.The present invention also provides a kind of server suitable for said method.The present invention can jump to other communication modules when a certain communication module breaks down, to provide the service across Tool Room to client.

Description

Many communication modules fault control method and server
Technical field
The present invention relates to communication technique field, particularly a kind of many communication modules fault control method and server.
Background technology
With the development of internet, and the highlighting of Network Marketing Mode importance, online customer service system is Become the important tool of network marketing, and enterprise web image, strengthen enterprise and visitor's interaction must Standby instrument.
Generally, in order to meet the demand of different clients, multiple instant messaging moulds can be configured with customer care server Block, such as telephonic communication module, wechat module, SMS module, e-mail module, webpage IM (instant message) Module etc..However, the data communication between these modules is independent, it is impossible to accomplish information sharing.When certain When individual communication module occurs communication failure, after fault recovery can only being waited, customer service can be just continued as.
Content of the invention
In view of the foregoing, it is necessary to which a kind of many communication modules fault control method and server, its energy are provided Enough when a certain communication module breaks down, other communication modules are jumped to, to provide across Tool Room to client Service.
A kind of many communication modules fault control method, including:
Whether the communication event of multiple communication modules of the detecting in an electronic equipment, have wherein with detecting A kind of communication module there occurs communication event;
When there is one of which communication module that communication event is there occurs, the communication of the communication event is analyzed and is preserved Content and communication object mark;
Detect and judge to occur whether the communication module of the communication event there occurs fault;
When the communication module that the communication event occurs there occurs fault, according to the communication object mark for prestoring Between mapping table, determine that the communication object of the communication event identifies corresponding other communication object marks Know;
There are all of communication event based on other communication modules corresponding in statistics other communication object marks described There is the history number of times of communication event in history number of times or nearest preset time period;
According to the size order of the history number of times, to other communication object marks described other communications corresponding Module is ranked up;And
According to above-mentioned sequence, redirect and communicated using other maximum communication modules of corresponding history number of times.
Preferably, methods described also includes:
The Content of communciation of the communication module for breaking down is shared to the communication module for redirecting.
Preferably, multiple communication modules include telephonic communication module, wechat module, SMS module, postal Part module and webpage IM module;Communication event includes the event of making a phone call, sends out wechat event, breath thing of sending short messages Part, send out mail events and send out web page message event instant;It is right that different communication modules corresponds to different communications As mark.
Preferably, the Content of communciation include telephone voice data, wechat content-data, short message content data, Mail Contents data and web content data, the data type of the Content of communciation include word, picture, Picture and text, voice and video.
Preferably, communication object mark include telephone number, micro-signal, addresses of items of mail, QQ number with And prosperous number, and the communication object includes client and customer service.
A kind of server suitable for said method, the server are provided with multiple communication modules, storage device And processor, wherein:
The memory cell, for storing the mapping table between a communication object mark, is also stored with Communication module fault control system more than one;
The processor, for calling and executing many communication modules fault control system, as follows to execute Step:
Whether the communication event of multiple communication modules that detecting is installed, have one of which communication module with detecting There occurs communication event;
When there is one of which communication module that communication event is there occurs, the communication of the communication event is analyzed and is preserved Content and communication object mark;
Detect and judge to occur whether the communication module of the communication event there occurs fault;
When the communication module that the communication event occurs there occurs fault, according to the communication object mark for prestoring Between mapping table, determine that the communication object of the communication event identifies corresponding other communication object marks Know;
There are all of communication event based on other communication modules corresponding in statistics other communication object marks described In history number of times or nearest preset time period, there is the history number of times of communication event;
According to the size order of the history number of times, to other communication object marks described other communications corresponding Module is ranked up;And
According to above-mentioned sequence, redirect and other maximum communication modules of corresponding usage history number of times are communicated.
Preferably, the processor is called and executes many communication modules fault control system, is also executed such as Lower step:
The Content of communciation of the communication module for breaking down is shared to the communication module for redirecting.
Preferably, the plurality of communication module includes telephonic communication module, wechat module, SMS module, postal Part module and webpage IM module;Communication event includes the event of making a phone call, sends out wechat event, breath thing of sending short messages Part, send out mail events and send out web page message event instant;It is right that different communication modules corresponds to different communications As mark.
Preferably, the Content of communciation include telephone voice data, wechat content-data, short message content data, Mail Contents data and web content data, the data type of the Content of communciation include word, picture, Picture and text, voice and video.
Preferably, communication object mark include telephone number, micro-signal, addresses of items of mail, QQ number with And prosperous number, and the communication object includes client and customer service.
Using many communication modules fault control method of the present invention and server, which can be in a certain communication mould When block breaks down, other communication modules are jumped to, so that the service across Tool Room is provided to client.
Description of the drawings
Fig. 1 is the hardware environment figure of the present invention many communication modules fault control system preferred embodiment.
Fig. 2 is the functional block diagram of the present invention many communication modules fault control system preferred embodiment.
Fig. 3 is the method implementing procedure figure of the present invention many communication modules fault control method preferred embodiment.
Fig. 4 illustrates the mapping table between the communication object mark for prestoring.
Specific embodiment
Refering to the hardware environment for shown in Fig. 1, being the present invention many communication modules fault control system preferred embodiment Figure.Many communication modules fault control system 10 described in the present embodiment can be installed and run on a server 1, The server 1 can be a customer care server.
The server 1 further includes multiple immediate communication tools 11, including the first communication module 111, Two communication modules 112, the 3rd communication module 113 ... and N communication module 11N.Described first leads to News module 111, the second communication module 112, the 3rd communication module 113 ... and N communication module 11N Can be telephonic communication module, wechat module, SMS module, e-mail module, webpage IM (instant respectively Message) module etc..
Further, the server 1 also includes storage device 12 and processor 13.
The storage device 12 can be one or more non-volatile memory cells, such as ROM, EPROM Or Flash Memory (flash memory cell) etc..The storage device 12 can be built-in or be external in clothes Business device 1.
The processor 13 is the arithmetic core (Core Unit) of server 1 and control core (Control Unit), for explaining the instruction in many communication modules control device 1 and the software number in processing server 1 According to.
Many communication modules fault control system 10 includes the executable program code of computer, the program generation Code can be stored in the storage device 12, under the execution of processor 13, realize following function:Detect The communication event of each communication module is surveyed, when detecting one of communication module and there occurs communication event, point Analyse and preserve Content of communciation and the communication object mark of the communication event;When leading to for the generation communication event When news module there occurs fault, according to the mapping table between the communication object mark for prestoring, determine described The communication object of communication event identifies other communication objects marks corresponding, statistics other communication object marks described Know, based on other communication modules corresponding, all history number of times of communication event or nearest preset time period occur The interior history number of times that communication event occurs, according to the size order of the history number of times, to other communications described Object identity other communication modules corresponding are ranked up;And according to above-mentioned sequence, redirect and gone through using correspondence Other maximum communication modules of history number of times are communicated.
In the present embodiment, different communication modules corresponds to different communication object marks.
Further, many communication modules fault control system 10 is under the execution of processor 13, also real Existing following function:The Content of communciation of the communication module for breaking down is shared to the communication module for redirecting.
In the present embodiment, the communication event can include, event of for example making a phone call, send out wechat event, send out Short message event, send out mail events, send out web page message event etc. instant.
In the present embodiment, the Content of communciation of the communication event can include, for example telephone voice data, micro- Letter content-data, short message content data, Mail Contents data, web content data etc..The communication event The data type of Content of communciation can be the types such as word, picture, picture and text, voice, video.
In the present embodiment, the communication object mark can include, such as telephone number, micro-signal, mail Address, QQ number, prosperous number etc..
In the present embodiment, the communication object includes the communication two party user of the communication event, such as includes visitor Family and customer service.
Mapping table between the communication object mark is as shown in Figure 4.In the mapping table, in advance The all communications identification of each user are first stored, and for example, user includes the first communication module, and which is designated AAAAAAAAA, such as QQ number 1234567, the second communication module, which is designated BBBBBBBBBB, As phone number 13011111111, the 3rd communication module, such as its mark CCCCCCCCCC, micro-signal Whoareyou, and N communication module, its mark NNNNNNNNN, such as addresses of items of mail 123456@163.com etc..All communication modules of each user and its mark can be by big numbers According to mode obtain, or the server 1 can also be sent to by each user.
Refering to the functional module for shown in Fig. 2, being the present invention many communication modules fault control system preferred embodiment Figure.
The program code of many communication modules fault control system 10 can be divided according to its different function For multiple functional modules.In the present embodiment, many communication modules fault control system 10 can include detecting Module 100, memory module 101, fault detection module 102, matching module 103, statistical module 104, row Sequence module 105, jump module 106 and sharing module 107.
Whether the detecting module 100 is used for detecting the communication event of each communication module, have wherein with detecting A kind of communication module, such as the first communication module 111 there occurs communication event.First communication module 111 Can be telephonic communication module, wechat module, SMS module, e-mail module, webpage IM (instant message) Any one of module etc..The communication event can be, for example, event of making a phone call, send out wechat event, send out Short message event, send out mail events, send out web page message event etc. instant.
The memory module 101 is used for when there is one of which communication module, and such as the first communication module 111 occurs During communication event, Content of communciation and the communication object mark of the communication event are analyzed and are preserved.Described logical News content can include, such as in telephone voice data, wechat content-data, short message content data, mail Hold data, web content data etc..The data type of the Content of communciation can be word, picture, picture and text, The types such as voice, video.The communication object is identified, such as telephone number, micro-signal, mail Address, QQ number, prosperous number etc..The communication object includes the communication two party user of the communication event, Such as include client and customer service.The Content of communciation of the communication event and communication object mark can be temporarily stored in institute State in storage device 12.
The fault detection module 102 is used for detecting and whether judges to occur the communication module of the communication event There occurs fault.The fault includes, for example, it is impossible to communicate, disconnect.
The matching module 103 is for according to the mapping table between the communication object mark for prestoring, determining The communication object of the communication event identifies other communication objects marks corresponding.For example, matching module 103 According to the mapping table between the as shown in Figure 4 communication object mark for prestoring, the communication object is determined Mark other communication object marks corresponding.For example, the communication module for breaking down is that the first of user X is led to News module 111, then matching module 103 is according to the mapping between the as shown in Figure 4 communication object mark for prestoring Relation table, determines that the communication object identifies other communication module object identities corresponding, including the second communication Module 112 be designated BBBBBBBBBB, such as phone number 13011111111, the 3rd communication module 113 Mark CCCCCCCCCC, the mark of such as micro-signal whoareyou, and N communication module 11N NNNNNNNNN, such as 123456@163.com of addresses of items of mail etc..
The statistical module 104 is used for counting other communication object marks described based on other communication moulds corresponding There is the history time that communication event occurs in all history number of times of communication event or nearest preset time period in block Number.In the preset time period can be, for example, one month, week etc..
The order module 105 is used for according to the history number of times, and other communication object marks described are corresponded to Other communication modules be ranked up.In the present embodiment, the sequence can be according to history number of times from big to Little order.
The jump module 106 is used for according to above-mentioned sequence, redirects and use corresponding history number of times maximum its He is communicated communication module.
The sharing module 107 is used for sharing to the Content of communciation of the communication module for breaking down redirect logical News module.
Implement refering to the method for shown in Fig. 4, being the present invention many communication modules fault control method preferred embodiment Flow chart.Described in the present embodiment, many communication modules fault control method is not limited to step shown in flow chart, In addition shown in flow chart in step, some steps can be omitted, the order between step can change.
Step S10, detecting module 100 detect the communication event of each communication module.The communication event is permissible It is event of for example making a phone call, to send out wechat event, breath event of sending short messages, send out mail events, send out webpage instant Message event etc..
Step S11, detecting module 100 judge whether to detect one of communication module, the such as first communication Module 111 there occurs communication event.First communication module 111 can be telephonic communication module, wechat Any one of module, SMS module, e-mail module, webpage IM (instant message) module etc..When When detecting one of communication module communication event is there occurs, following steps S12 are executed.Otherwise, if not having Detect any one communication module and communication event is there occurs, then continue executing with above-mentioned step S10.
The Content of communciation of the communication event and communication object mark are analyzed and preserved to step S12, memory module 101 Know.The Content of communciation can include, such as telephone voice data, wechat content-data, short message content number According to, Mail Contents data, web content data etc..The data type of the Content of communciation can be word, The types such as picture, picture and text, voice, video.The communication object is identified, such as telephone number, Micro-signal, addresses of items of mail, QQ number, prosperous number etc..The communication object includes the logical of the communication event News two parties, such as include client and customer service.The Content of communciation of the communication event and communication object mark Can be temporarily stored in the storage device 12.
Step S13, fault detection module 102 are detected and whether judge to occur the communication module of the communication event There occurs fault.The fault includes, for example, it is impossible to communicate, disconnect.When the generation communication The communication module of event does not break down, then continue executing with above-mentioned step S12.Otherwise, described when occurring The communication module of communication event there occurs fault, then execute following steps S14.
Step S14, matching module 103 are determined according to the mapping table between the communication object mark for prestoring The communication object of the communication event identifies other communication objects marks corresponding.For example, matching module 103 According to the mapping table between the as shown in Figure 4 communication object mark for prestoring, the communication object is determined Mark other communication module object identities corresponding.For example, the communication module for breaking down is the of user X One communication module 111, then matching module 103 is according between the as shown in Figure 4 communication object mark for prestoring Mapping table, determines that the communication object identifies other communication module object identities corresponding, including second Communication module 112 be designated BBBBBBBBBB, such as phone number 13011111111, the 3rd communication mould Mark CCCCCCCCCC of block 113, such as micro-signal whoareyou, and N communication module 11N Mark NNNNNNNNN, such as 123456@163.com of addresses of items of mail etc..
Step S15, statistical module 104 count all history time that other communication modules described occur communication event There is the history number of times of communication event in number or recently preset time period.The nearest preset time period is permissible It is, for example, in one month, week etc..
Step S16, order module 105 are corresponded to other communication object marks described according to the history number of times Other communication modules be ranked up.In the present embodiment, the sequence can be according to history number of times from big to Little order.
Step S17, jump module 106 are used for according to above-mentioned sequence, redirect and maximum using corresponding history number of times Other communication modules communicated.
The Content of communciation of the communication module for breaking down is shared to redirect logical for step S18, sharing module 107 News module.
It should be noted last that, above example only in order to technical scheme to be described and unrestricted, Although being described in detail to the present invention with reference to preferred embodiment, one of ordinary skill in the art should manage Solution, can modify to technical scheme or equivalent, without deviating from technical solution of the present invention Spirit and scope.

Claims (10)

1. a kind of many communication modules fault control method, it is characterised in that many communication modules fault control method bag Include:
Whether the communication event of multiple communication modules of the detecting in an electronic equipment, have wherein with detecting A kind of communication module there occurs communication event;
When there is one of which communication module that communication event is there occurs, the communication of the communication event is analyzed and is preserved Content and communication object mark;
Detect and judge to occur whether the communication module of the communication event there occurs fault;
When the communication module that the communication event occurs there occurs fault, according to the communication object mark for prestoring Between mapping table, determine that the communication object of the communication event identifies corresponding other communication object marks Know;
There are all of communication event based on other communication modules corresponding in statistics other communication object marks described There is the history number of times of communication event in history number of times or nearest preset time period;
According to the size order of the history number of times, to other communication object marks described other communications corresponding Module is ranked up;And
According to above-mentioned sequence, redirect and communicated using other maximum communication modules of corresponding history number of times.
2. many communication modules fault control method as claimed in claim 1, it is characterised in that many communication moulds Block fault control method also includes:
The Content of communciation of the communication module for breaking down is shared to the communication module for redirecting.
3. many communication modules fault control method as claimed in claim 1, it is characterised in that multiple communications Module includes telephonic communication module, wechat module, SMS module, e-mail module and webpage IM module;Logical News event includes the event of making a phone call, sends out wechat event, breath event of sending short messages, sends out mail events and send out immediately Web page message event;Different communication modules corresponds to different communication object marks.
4. many communication modules fault control method as claimed in claim 1, it is characterised in that the Content of communciation Including in telephone voice data, wechat content-data, short message content data, Mail Contents data and webpage Hold data, the data type of the Content of communciation includes word, picture, picture and text, voice and video.
5. many communication modules fault control method as claimed in claim 1, it is characterised in that the communication object Mark includes telephone number, micro-signal, addresses of items of mail, QQ number and prosperous number, and the communication is right As including client and customer service.
6. a kind of server suitable for many communication modules fault control method described in any one of claim 1 to 5, Characterized in that, the server is provided with multiple communication modules, storage device and processor, wherein:
The memory cell, for storing the mapping table between a communication object mark, is also stored with Communication module fault control system more than one;
The processor, for calling and executing many communication modules fault control system, as follows to execute Step:
Whether the communication event of multiple communication modules that detecting is installed, have one of which communication module with detecting There occurs communication event;
When there is one of which communication module that communication event is there occurs, the communication of the communication event is analyzed and is preserved Content and communication object mark;
Detect and judge to occur whether the communication module of the communication event there occurs fault;
When the communication module that the communication event occurs there occurs fault, according to the communication object mark for prestoring Between mapping table, determine that the communication object of the communication event identifies corresponding other communication object marks Know;
There are all of communication event based on other communication modules corresponding in statistics other communication object marks described In history number of times or nearest preset time period, there is the history number of times of communication event;
According to the size order of the history number of times, to other communication object marks described other communications corresponding Module is ranked up;And
According to above-mentioned sequence, redirect and other maximum communication modules of corresponding usage history number of times are communicated.
7. server as claimed in claim 6, it is characterised in that the processor calls and execute described leading to more News module failure control system, also executes the following steps:
The Content of communciation of the communication module for breaking down is shared to the communication module for redirecting.
8. server as claimed in claim 6, it is characterised in that the plurality of communication module includes telephonic communication Module, wechat module, SMS module, e-mail module and webpage IM module;Communication event includes to make a phone call Event, wechat event, breath event of sending short messages is sent out, is sent out mail events and sends out web page message event instant;No Same communication module corresponds to different communication objects marks.
9. server as claimed in claim 6, it is characterised in that the Content of communciation include telephone voice data, Wechat content-data, short message content data, Mail Contents data and web content data, in the communication The data type of appearance includes word, picture, picture and text, voice and video.
10. server as claimed in claim 6, it is characterised in that the communication object mark includes phone number Code, micro-signal, addresses of items of mail, QQ number and prosperous number, and the communication object includes client and visitor Clothes.
CN201510528154.2A 2015-08-25 2015-08-25 Multi-communication module fault control method and server Active CN106487541B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510528154.2A CN106487541B (en) 2015-08-25 2015-08-25 Multi-communication module fault control method and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510528154.2A CN106487541B (en) 2015-08-25 2015-08-25 Multi-communication module fault control method and server

Publications (2)

Publication Number Publication Date
CN106487541A true CN106487541A (en) 2017-03-08
CN106487541B CN106487541B (en) 2020-07-24

Family

ID=58233262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510528154.2A Active CN106487541B (en) 2015-08-25 2015-08-25 Multi-communication module fault control method and server

Country Status (1)

Country Link
CN (1) CN106487541B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483616A (en) * 2007-12-31 2009-07-15 国际商业机器公司 Message processing method and system
CN101971584A (en) * 2008-02-06 2011-02-09 高通股份有限公司 Method and apparatus for delivery confirmation of a message
CN102404301A (en) * 2010-09-15 2012-04-04 中华电信股份有限公司 Integration method of communication service and system thereof
CN102664909A (en) * 2011-01-28 2012-09-12 微软公司 Re-establishing push notification channels via user identifiers
CN103580998A (en) * 2013-11-22 2014-02-12 中国联合网络通信集团有限公司 Method and device for sharing communication behavior information

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483616A (en) * 2007-12-31 2009-07-15 国际商业机器公司 Message processing method and system
US20110119524A1 (en) * 2007-12-31 2011-05-19 International Business Machines Corporation Maintaining Communication Continuity
CN101971584A (en) * 2008-02-06 2011-02-09 高通股份有限公司 Method and apparatus for delivery confirmation of a message
CN102404301A (en) * 2010-09-15 2012-04-04 中华电信股份有限公司 Integration method of communication service and system thereof
CN102664909A (en) * 2011-01-28 2012-09-12 微软公司 Re-establishing push notification channels via user identifiers
CN103580998A (en) * 2013-11-22 2014-02-12 中国联合网络通信集团有限公司 Method and device for sharing communication behavior information

Also Published As

Publication number Publication date
CN106487541B (en) 2020-07-24

Similar Documents

Publication Publication Date Title
US8352546B1 (en) Contextual and location awareness for device interaction
CN114726947B (en) Message display method, device, user terminal and readable storage medium
CN111010527B (en) Method and related device for establishing video call through short message link
CN102333164B (en) Incoming call screen display method of call system based on B/S (Browser/Server) framework
CN110120909B (en) Message transmission method and device, storage medium and electronic device
US9043388B2 (en) Aggregation and queuing of communications
CN106485520B (en) Cross-channel communication control method and server
CN107547715A (en) Method, software product, telecommunication apparatus and the system of nearest call list are provided
CN104506743B (en) A kind of method and device of dynamic interception phone
CN115951923B (en) Subscription event management method, display system, device and storage medium
US20230300092A1 (en) Multichannel messaging system and method
US10320737B2 (en) Device and method for temporal correlation of communication types
CN105988795B (en) Message processing method and device
US9699121B2 (en) Instant text message conductor
US20210165698A1 (en) Automated troubleshooting system and method for performing an action on a user device
CN106487541A (en) Many communication modules fault control method and server
US20130122870A1 (en) Method for management of a voice mailbox phone
US11605007B2 (en) Automatic response system for wearables
CN114339627A (en) Message centralized control forwarding method
CN114615696A (en) Automatic dial testing method, device, system, server and storage medium
CN111818468A (en) Message processing method, system and related equipment
TW201605222A (en) Call response method integrating social software and phone answering interface
CN113472633B (en) Method, device and equipment for automatically feeding back working state of user and storage medium
CN103985031A (en) Method and device for processing group message replying state
US9569741B2 (en) Virtual management of work items

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant