DETAILED ACTION
Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
2. The information disclosure statement (IDS) submitted on 07/01/2025 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Double Patenting
3. The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim either is anticipated by, or would have been obvious over, the reference claim. See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP §§ 706.02(l) (1) - 706.02(l) (3) for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms, which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
5. Claim(s) 1-12 is/are rejected on the ground of nonstatutory double patenting as being unpatentable over claim(s) 1 of U.S. Patent No: US 12,375,606 B2. Although the claims at issue are not identical, they are not patentably distinct from each other because Claim(s) 1-12 of the current application matches directly to every element of Claim 1-12 of Patent No: US 12,375,606 B2.
4. In addition, specifically Independent Claims 1 & 7, is/are rejected on the ground of nonstatutory double patenting as being rejected over claim(s) 1-12 of Patent No: US 12,375,606 B2 in view of Glass (US 2016/0119399 A1) and further in view of Vysotsky et al. (US 2019/0342362 A1).
The claims are not patentable distinct from each other because it would have been obvious to one having ordinary skill in the art at the time the invention was made to take the Glass-Vysotsky teachings and apply them on the teachings of Application No. 19/257,137 to create a method and system for bi-directional quality testing of web real-time communications sessions.
5. The table below shows only a sample of how each of these claims is anticipated by claims such as Claim 1 of Patent No. US 12, 375, 606 B2.
Instant Application 19/257,137
Patent No. 12,375,606 B2
1. A system for bi-directional quality testing of web real-time communications (WebRTC) sessions, comprising:
1. A system for bi-directional quality testing of web real-time communications (WebRTC) sessions, comprising:
a WebRTC application programming interface (API) shim operating in a web browser of a computing device and configured to:
a WebRTC application programming interface (API) shim operating in a web browser of a computing device and configured to:
intercept a WebRTC API call from a client application operating a WebRTC API in a web browser of the computing device;
intercept a WebRTC API call from a client application operating a WebRTC API in a web browser of the computing device;
inject redirection code into the WebRTC API, the redirection code comprising instructions to:
inject redirection code into the WebRTC API, the redirection code comprising instructions to:
connect with an external media server, and establish a real-time transport protocol (RTP) media connection from the client application to an external communication device through the external media server; and
connect with an external media server, and establish a real-time transport protocol (RTP) media connection from the client application to an external communication device through the external media server; and
pass the WebRTC API call to the WebRTC API for handling according to the redirection code; and
pass the WebRTC API call to the WebRTC API for handling according to the redirection code; and
the external media server located at a cloud contact center and configured to:
the external media server operating outside of the web browser and configured to:
accept the connection from the WebRTC API of the web browser;
accept the connection from the WebRTC API of the web browser;
establish the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server;
establish the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server;
capture either incoming media in the form of audio data or video data from the external communication device, or outgoing media in the form of audio data or video data from the client application, or both; and
capture either incoming media in the form of audio data or video data from the external communication device, or outgoing media in the form of audio data or video data from the client application, or both; and
send the captured media to an audio/video quality analyzer; and
send the captured media to an audio/video quality analyzer; and
the audio/video quality analyzer configured to:
the audio/video quality analyzer comprising separate media server software operated in tandem with WebRTC mechanisms employed by a contact center application running inside of the browser and configured to:
receive the captured media;
receive the captured media; and
determine an audio quality or a video quality of the captured media; and.
determine an audio quality or a video quality of the captured media; and
send the determined audio quality or video quality of the captured media to the external media server; and
send the determined audio quality or video quality of the captured media to the external media server.
a relay server with a custom traversal using relays around network address translation (TURN) server configured to relay requests from the external media server located at the cloud contact center to a computer operating a WebRTC engine.
2. The system of claim 1, wherein processing of the incoming media and outgoing media is done by separate media server software operated in tandem with WebRTC mechanisms employed by a contact center application running inside of the browser.
2. The system of claim 1, wherein the external communication device is located at a cloud contact center, and a traversal using relays around network address translation server is used to relay requests from the cloud contact center to a computer operating a WebRTC engine.
3. The system of claim 1, wherein:
the system further comprises a software virtualized speaker operating on a computing device and configured to operate in accordance with instructions contained in the redirection code; and
the redirection code further comprises instructions for the software virtualized speaker to:
take priority of operation of audio output over other connected audio devices, if any, attached either to the computing device or to the external communication device;
generate synthetic audio; and
inject the synthetic audio into the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server, either as the incoming media or the outgoing media.
3. The system of claim 1, wherein:
the system further comprises a software virtualized speaker operating on a computing device and configured to operate in accordance from instructions contained in the redirection code; and
the redirection code further comprises instructions for the software virtualized speaker to:
take priority of operation of audio output over other connected audio devices, if any, attached either to the computing device or to the external communication device;
generate synthetic audio; and
inject the synthetic audio into the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server, either as the incoming media or the outgoing media.
4. The system of claim 3, wherein:
the system further comprises a software virtualized microphone operating on a computing device and configured to operate in accordance with instructions contained in the redirection code; and
the redirection code further comprises instructions for the software virtualized microphone to:
take priority of operation of audio input over other connected audio devices, if any, attached either to the computing device or to the external communication device; and
capture the synthetic audio generated by the software virtualized speaker.
4. The system of claim 3, wherein:
the system further comprises a software virtualized microphone operating on a computing device and configured to operate in accordance from instructions contained in the redirection code; and
the redirection code further comprises instructions for the software virtualized microphone to:
take priority of operation of audio input over other connected audio devices, if any, attached either to the computing device or to the external communication device; and
capture the synthetic audio generated by the software virtualized speaker.
5. The system of claim 1, wherein the external media server handles both media processing and agent automation for the purposes of testing automated agent or client responses in the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server.
5. The system of claim 1, wherein the external media server handles both media processing and agent automation for the purposes of testing automated agent or client responses in the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server.
6. The system of claim 1, wherein the redirection code is a polyfill of API code that bypasses the web browser's internal media server for purposes of calculating voice quality outside of the limitation of the browser-native WebRTC implementation.
6. The system of claim 1, wherein the redirection code is a polyfill of API code that bypasses the web browser's internal media server for purposes of calculating voice quality outside of the limitation of the browser-native WebRTC implementation.
7. A method for bi-directional quality testing of web real-time communications (WebRTC) sessions, comprising the steps of:
operating a WebRTC application programming interface (API) shim in a web browser of a computing device to perform the steps of:
intercepting a WebRTC API call from a client application operating a WebRTC API in a web browser of the computing device;
injecting redirection code into the WebRTC API, the redirection code comprising instructions to:
connect with an external media server, and establish a real-time transport protocol (RTP) media connection from the client application to an external communication device through the external media server; and
passing the WebRTC API call to the WebRTC API for handling according to the redirection code; and
operating the external media server located at a cloud contact center to perform the steps of:
accepting the connection from the WebRTC API of the web browser;
establishing the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server;
capturing either incoming media in the form of audio data or video data from the external communication device, or outgoing media in the form of audio data or video data from the client application, or both; and
sending the captured media to an audio/video quality analyzer;
operating the audio/video quality analyzer comprising separate media server software operated in tandem with WebRTC mechanisms employed by a contact center application running inside of the browser to perform the steps of:
receiving the captured media; and
determine an audio quality or a video quality of the captured media; and
sending the determined audio quality or video quality of the captured media to the external media server; and
operating a relay server with a custom traversal using relays around network address translation (TURN) server configured to relay requests from the external media server located at the cloud contact center to a computer operating a WebRTC engine.
7. A method for bi-directional quality testing of web real-time communications (WebRTC) sessions, comprising the steps of:
operating a WebRTC application programming interface (API) shim in a web browser of a computing device to perform the steps of:
intercepting a WebRTC API call from a client application operating a WebRTC API in a web browser of the computing device;
injecting redirection code into the WebRTC API, the redirection code comprising instructions to:
connect with an external media server, and establish a real-time transport protocol (RTP) media connection from the client application to an external communication device through the external media server; and
passing the WebRTC API call to the WebRTC API for handling according to the redirection code; and
operating the external media server outside of the web browser to perform the steps of:
accepting the connection from the WebRTC API of the web browser;
establishing the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server;
capturing either incoming media in the form of audio data or video data from the external communication device, or outgoing media in the form of audio data or video data from the client application, or both; and
sending the captured media to an audio/video quality analyzer; and
operating the audio/video quality analyzer comprising separate media server software operated in tandem with WebRTC mechanisms employed by a contact center application running inside of the browser to perform the steps of:
receiving the captured media; and
determine an audio quality or a video quality of the captured media; and
sending the determined audio quality or video quality of the captured media to the external media server.
8. The method of claim 7, wherein processing of the incoming media and outgoing media is done by separate media server software operated in tandem with WebRTC mechanisms employed by a contact center application running inside of the browser.
8. The method of claim 7, wherein the external communication device is located at a cloud contact center, and a traversal using relays around network address translation server is used to relay requests from the cloud contact center to a computer operating a WebRTC engine.
9. The method of claim 7, further comprising the steps of: operating a software virtualized speaker on a computing device which is configured to operate in accordance with instructions contained in the redirection code; including further instructions in the redirection code for the software virtualized speaker to perform the steps of: taking priority of operation of audio output over other connected audio devices, if any, attached either to the computing device or to the external communication device; and injecting the synthetic audio into the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server, either as the incoming media or the outgoing media.
9. The method of claim 7, further comprising the steps of: operating a software virtualized speaker on a computing device which is configured to operate in accordance from instructions contained in the redirection code; including further instructions in the redirection code for the software virtualized speaker to perform the steps of: taking priority of operation of audio output over other connected audio devices, if any, attached either to the computing device or to the external communication device; and injecting the synthetic audio into the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server, either as the incoming media or the outgoing media.
10. The method of claim 9, further comprising the steps of: operating a software virtualized microphone on a computing device which is configured to operate in accordance with instructions contained in the redirection code; including further instructions in the redirection code for the software virtualized microphone to perform the steps of: taking priority of operation of audio input over other connected audio devices, if any, attached either to the computing device or to the external communication device; and capturing the synthetic audio generated by the software virtualized speaker.
10. The method of claim 9, further comprising the steps of: operating a software virtualized microphone on a computing device which is configured to operate in accordance from instructions contained in the redirection code; including further instructions in the redirection code for the software virtualized microphone to perform the steps of: taking priority of operation of audio input over other connected audio devices, if any, attached either to the computing device or to the external communication device; and capturing the synthetic audio generated by the software virtualized speaker.
11. The method of claim 7, wherein the external media server handles both media processing and agent automation for the purposes of testing automated agent or client responses in the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server.
11. The method of claim 7, wherein the external media server handles both media processing and agent automation for the purposes of testing automated agent or client responses in the real-time transport protocol (RTP) media connection from the client application to the external communication device through the external media server.
12. The method of claim 7, wherein the redirection code is a polyfill of API code that bypasses the web browser's internal media server for of calculating voice quality outside of the limitation of the browser-native WebRTC implementation.
12. The method of claim 7, wherein the redirection code is a polyfill of API code that bypasses the web browser's internal media server for of calculating voice quality outside of the limitation of the browser-native WebRTC implementation.Page 3 of 74828-7844-2452.1DOCKET NO.: 2016-1796CON/101900002340PATENT
Conclusion
6. The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Glass (US 2016/0119399 A1)
Vysotsky et al. (US 2019/0342362 A1)
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CHRISTOPHER B ROBINSON whose telephone number is (571)270-0702. The examiner can normally be reached M-F 7:00-3:00 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Nicholas R Taylor can be reached on 571-272-3889. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-7
/CHRISTOPHER B ROBINSON/ Primary Examiner, Art Unit 2443