# US 8,788,683 B2 · Scalable transcoding for streaming audio

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,683 B2
- Document ID: US8788683B2
- Status: Granted
- Kind: B2
- Application number: 13/211,831
- Filed: 2011-08-17
- Published: 2013-02-21
- Granted: 2014-07-22
- Earliest claimed: 2011-08-17
- Assignees: The NASDAQ OMX Group, Inc.
- Applicants: Simon Ball; Adrian Roe; Dom Robinson; Steve Strong
- Inventors: Simon Ball; Adrian Roe; Dom Robinson; Steve Strong
- Web page: https://patentgrep.com/patent/US8788683B2

## CPC

- G06F 11/2002: {where interconnections or communication control functionality are redundant (flexible arrangements for bus networks involving redundancy H04L12/40176)}
- H04L 65/103: {in the network}
- H04L 65/70: Media network packetisation
- H04L 65/765: {intermediate}
- H04L 65/80: Responding to QoS
- H04N 7/15: Conference systems
- H04N 21/233: Processing of audio elementary streams {(monitoring, identification or recognition of audio in broadcast systems H04H60/58)}
- H04N 21/6473: {Monitoring network processes errors (for recovering from a failure of a protocol instance or entity H04L69/40)}
- H04N 21/64738: {Monitoring network characteristics, e.g. bandwidth, congestion level (data switched network analysis H04L41/14; monitoring functioning in data switched networks H04L43/0817; flow control in packet networks H04L47/10)}
- H04N 21/64784: {Data processing by the network (data processing in packet switching systems H04L12/56; flow control in packet networks H04L47/10; intermediate storage or scheduling H04L49/90; provisioning of proxy services in data packet switching networks H04L67/56)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Systems and techniques for capturing audio and delivering the audio in digital streaming media formats are disclosed. Several aspects of the systems and techniques operate in a cloud computing environment where computational power is allocated, utilized, and paid for entirely on demand. The systems and techniques enable a call to be made directly from a virtual machine out to a Public Switch Telephone Network (PSTN) via a common Session Interface Protocol (SIP) to PSTN Breakout service, and the audio to be delivered onward to one or more Content Delivery Network (CDN). An audio call capture interface is also provided to initiate and manage the digital streaming media formats.

## Claims

### Claim 1

A method of streaming information comprising:
establishing a set of connections between a first public switched telephone network (PSTN) breakout service and a set of machines, a first machine in the set of machines being a first virtual machine instantiated in a first cloud computing environment, the first PSTN breakout service being connected to a conference call;
receiving a digital data stream in the first virtual machines, the digital data stream having been encoded according to a first encoding protocol, wherein the digital data stream is received over one of a set of connections between the first PSTN breakout service and the first virtual machine;
audio encoding the digital data stream on the first virtual machine to generate an encoded digital data stream, the encoding being done according to a second encoding protocol;
transmitting the encoded digital data stream from the first virtual machine to a content delivery network (CDN);
receiving the digital data stream encoded according to the first encoding protocol at a second virtual machine, and when an event affects a performance of the first virtual machine, audio encoding the digital data stream on the second virtual machine to generate an encoded digital data stream, the encoding being done according to the second encoding protocol, and transmitting the encoded data stream from the second virtual machine to the CDN; and
providing a session initiation protocol (SIP) application in each of the first and second virtual machines for receiving and managing the digital data stream in the first encoding protocol.

### Claim 2 (depends on 1)

The method of claim 1, wherein the SIP application in the first virtual machine relays the received audio signal to the second virtual machine.

### Claim 3 (depends on 1)

The method of claim 1, wherein the second virtual machine is instantiated in the first cloud computing environment or a second cloud computing environment different from the first cloud computing environment.

### Claim 4 (depends on 1)

The method of claim 1, further comprising instantiating the first virtual machine in response to a request from a call control interface module.

### Claim 5 (depends on 4)

The method of claim 4, comprising instantiating the second virtual machine from at least one of the call control interface module and the first virtual machine.

### Claim 6 (depends on 1)

The method of claim 1, comprising receiving the digital data stream at the second virtual machine from the first virtual machine.

### Claim 7 (depends on 1)

The method of claim 1, comprising receiving the digital data stream at the second virtual machine from the first PSTN breakout service.

### Claim 8 (depends on 1)

The method of claim 1, comprising receiving the digital data stream from a second PSTN breakout service, the second PSTN breakout service being connected to the conference call.

### Claim 9 (depends on 1)

The method of claim 1, comprising transmitting the digital data stream to the second virtual machine from the first PSTN breakout service upon at least one of a failure and delay in one of the data connections between the first data connection and the first virtual machine.

### Claim 10 (depends on 1)

The method of claim 1, wherein the digital data stream is received using a speech codec.

### Claim 11 (depends on 10)

The method of claim 10, wherein the codec is selected from the group consisting of G.722, G.719, G.711, SPEEX and GSM.

### Claim 12 (depends on 1)

The method of claim 1, further comprising providing an operating system (OS) audio bus for transmitting the digital data stream in each of the first and second virtual machines, the OS audio bus being a software audio driver.

### Claim 13 (depends on 12)

The method of claim 12, wherein the software audio driver is a Windows Driver Model (WDM) audio driver.

### Claim 14 (depends on 1)

The method of claim 1, comprising encoding the digital data stream into a Windows Media Audio (WMA) file.

### Claim 15 (depends on 1)

The method of claim 1, further comprising:
providing a plurality of audio encoders for encoding the digital data stream into at least one third encoding protocol different from the first encoding protocol and the second encoding protocol;
encoding the digital data stream using the third encoding protocol; and
transmitting the encoded digital data stream according to the third protocol to the CDN.

### Claim 16 (depends on 15)

The method of claim 15, wherein a first encoder of the plurality of audio encoders is a Windows Media encoder and a second encoder of the plurality of audio encoders is a Flash Media encoder.

### Claim 17 (depends on 16)

The method of claim 16, comprising encoding the digital data stream into a Flash Media audio file.

### Claim 18 (depends on 1)

The method of claim 1, further comprising providing an audio server in each of the first and second virtual machines, the audio server transmitting the encoded digital data stream to the CDN.

### Claim 19 (depends on 18)

The method of claim 18, wherein the audio server is a flash media server and the encoded digital data stream is a flash media file.

### Claim 20 (depends on 1)

The method of claim 1, further comprising: generating, from the SIP Application, an MP3 audio file from the received digital data stream in the first encoding format; and storing the MP3 audio file in a data store associated with each of the first and second virtual machines.

### Claim 21 (depends on 20)

The method of claim 20, further comprising audio scrubbing the MP3 audio file.

### Claim 22

A system for streaming information comprising:
a call processor configured to initiate a set of connections between a first public switched telephone network (PSTN) breakout service and a set of machines,
a first machine in the set of machines being a first virtual machine instantiated in a first cloud computing environment, the first PSTN breakout service being connected to a conference call;
the first virtual machine including:
a receiver configured to receive a digital data stream having been encoded according to a first encoding protocol;
an audio encoder configured to encode, according to a second encoding protocol, the digital data stream to generate an encoded digital data stream;
a transmitter configured to transmit the encoded digital data stream to a content delivery network (CDN),
wherein the first virtual machine is configured to encode the digital data stream on the first virtual machine in response to receiving the digital data stream over one of the set of connections between the PSTN breakout service and the first virtual machine, and
a transmitter configured to transmit the encoded digital data stream from the first virtual machine to the CDN, and
a second virtual machine including:
a receiver configured to receive the digital data stream having been encoded according to the first encoding protocol;
an audio encoder configured to encode, according to a second encoding protocol, the digital data stream to generate a second encoded digital data stream, when an event affects a performance of the first virtual machine; and
a transmitter configured to transmit the encoded data stream from the second virtual machine to the CDN,
a session initiation protocol (SIP) application included in each of a respective one of the first and second virtual machines, which when implemented by the respective virtual machine, causes the respective virtual machine to receive and manage the digital data stream in the first encoding protocol.

### Claim 23 (depends on 22)

The system of claim 22, wherein the SIP application is configured in the first virtual machine to relay the received audio signal to the second virtual machine.

### Claim 24 (depends on 22)

The system of claim 22, wherein the second virtual machine is instantiated in the first cloud computing environment or a second cloud computing environment different from the first cloud computing environment.

### Claim 25 (depends on 22)

The system of claim 22, comprising means for instantiating the first virtual machine in response to a request from a call control interface module.

### Claim 26 (depends on 25)

The system of claim 25, comprising means for instantiating the second virtual machine from at least one of the call control interface module and the first virtual machine.

### Claim 27 (depends on 22)

The system of claim 22, comprising means for receiving the digital data stream at the second virtual machine from the first virtual machine.

### Claim 28 (depends on 22)

The system of claim 22, comprising means for receiving the digital data stream at the second virtual machine from the first PSTN breakout service.

### Claim 29 (depends on 22)

The system of claim 22, comprising means for receiving the digital data stream from a second PSTN breakout service, the second PSTN breakout service being connected to the conference call.

### Claim 30 (depends on 22)

The system of claim 22, wherein the digital data stream is transmitted to the second virtual machine from the first PSTN breakout service upon at least one of a failure and delay in one of the data connections between the first data connection and the first virtual machine.

### Claim 31 (depends on 22)

The system of claim 22, wherein the digital data stream is received using a speech codec.

### Claim 32 (depends on 31)

The system of claim 31, wherein the codec is selected from the group consisting of G.722, G.719, G.711, SPEEX and GSM.

### Claim 33 (depends on 22)

The system of claim 22, further comprising an operating system (OS) audio bus for transmitting the digital data stream in each of the first and second virtual machines, the OS audio bus being a software audio driver.

### Claim 34 (depends on 33)

The system of claim 33, wherein the software audio driver is a Windows Driver Model (WDM) audio driver.

### Claim 35 (depends on 22)

The system of claim 22, comprising means for encoding the digital data stream into a Windows Media Audio (WMA) file.

### Claim 36 (depends on 22)

The system of claim 22, further comprising a plurality of audio encoders in which a first encoder of the plurality of encoders encodes the digital data stream into at least one third encoding protocol different from the first encoding protocol and the second encoding protocol, and transmits the encoded digital data stream according to the third protocol to the CDN.

### Claim 37 (depends on 36)

The system of claim 36, wherein the first encoder of the plurality of audio encoders is a Windows Media encoder and a second encoder of the plurality of audio encoders is a Flash Media encoder.

### Claim 38 (depends on 36)

The system of claim 36, wherein the digital data stream is encoded into a Flash Media audio file.

### Claim 39 (depends on 22)

The system of claim 22, further comprising an audio server in each of the first and second virtual machines, the audio server configured to transmit the encoded digital data stream to the CDN.

### Claim 40 (depends on 39)

The system of claim 39, wherein the audio server is a flash media server and the encoded digital data stream is a flash media file.

### Claim 41 (depends on 22)

The system of claim 22, wherein the SIP Application generates an MP3 audio file from the received digital data stream in the first encoding format, and stores the MP3 audio file in a data store associated with each of the first and second virtual machines.

### Claim 42 (depends on 41)

The system of claim 41, further comprising means for audio scrubbing the MP3 audio file.
