`
`United States Patent
`Shafer et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,023,839 B1
`Apr. 4, 2006
`
`US007023839B1
`
`(54) SYSTEM AND METHOD FOR DYNAMIC
`CODECALTERATION
`
`(75) Inventors: Shmuel Shaffer, Palo Alto, CA (US);
`O
`O
`Wyam Joseph Beyda, Cupertino, CA
`(US)
`(73) Assignee: Siemens Communications, Inc., Boca
`Raton, FL (US)
`Subject to any disclaimer, the term of this W
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(*) Notice:
`
`6,175,856 B1* 1/2001 Riddle ........................ TO9.204
`6,201.805 B1* 3/2001 Strathmeyer ...
`... 370,356
`6,324, 184 B1 * 1 1/2001 Hou et al. .....
`... 370/468
`ES R ck $39: R al - - - - - - - - - - - - - - - - 370/468
`4
`ala
`( a.
`6.426,945 B1
`7/2002 Sengodan
`6,457,043 B1
`9, 2002 Kwak et al.
`2002/0093982 A1
`7/2002 Joy et al.
`FOREIGN PATENT DOCUMENTS
`W 23: A1
`2.
`OTHER PUBLICATIONS
`Copy of European Search Report for EP Applin. No.
`00300467.8; date search was completed: May 25, 2000.
`Paksoy et al., “Variable Rate Speech Coding For Multiple
`Access Wireless Networks.” IEEE Proceedings of the
`Mediterranean ElectroTechnical Conference, 1994, pp. 47
`50.
`
`(Continued)
`Primary Examiner Brian Nguyen
`57
`ABSTRACT
`(57)
`A bandwidth adjustment server (BWAS) (109) is provided
`which monitors system bandwidth usage, sends requests to
`terminals (102A, 102B and/or 106), to identify their coding
`capabilities, and directs each of the terminals to adjust their
`coding algorithms based on system bandwidth usage. If
`system bandwidth usage is high, the BWAS (109) requires
`the terminals to employ a less bandwidth intensive coding
`algorithm; similarly, when system bandwidth usage is low,
`the BWAS (109) will allow the terminals to employ higher
`bandwidth use coding algorithms. Codec renegotiation may
`be initiated if there is a disparity between the bandwidth
`allocated to new connections versus ongoing connections or
`an increase in data traffic.
`
`14 Claims, 8 Drawing Sheets
`
`21) Appl. No.: 09/378,196
`(21) Appl. No
`9
`(22) Filed:
`Aug. 19, 1999
`
`Related U.S. Application Data
`(63) Continuation-in-part of application No. 09/238,671,
`filed on Jan. 26, 1999, now Pat. No. 6,757,277.
`(51) Int. Cl.
`(2006.01)
`H04L 2/56
`(52) U.S. Cl. ....................................... 370/356; 370/468
`(58) Field of Classification Search ................ 370/356,
`370/351,352,395.1, 395.2, 395.21,395.41,
`370/395.52,395.53, 401, 411,444, 455, 465-466,
`370/468, 477, 493, 235-236, 254. 255,901-902,
`370/905, 908; 709/223-224, 226; 455/67.1,
`455/450, 509
`See application file for complete search history.
`Ref
`Cited
`eerees e
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`8, 1996 Sharma et al. ................ 370/84
`5,546,395 A
`5,835,495 A 11/1998 Ferriere ...................... 370/465
`5,857,147 A *
`1/1999 Gardner et al. ............ 455/67.1
`6,081.513 A * 6/2000 Roy ........................... 370,260
`6,085,241 A
`7/2000 Otis ........................... 709,223
`
`
`
`
`
`BWAS Receives
`Criteria
`
`BWAS Monitors
`Network Conditions
`
`706
`Criteria Me?
`
`y S.
`
`708
`
`Initiate
`Re-negotiation
`
`
`
`Endpoint Set up
`Procedure
`
`Previous Codecs
`Dropped
`
`Configurable
`Delay
`
`72
`
`74
`
`IPR2018-00884
`Apple Inc. EX1005 Page 1
`
`
`
`US 7,023,839 B1
`Page 2
`
`OTHER PUBLICATIONS
`Tham, “H.323: The Multimedia Communications Standard
`for Local Area Networks.” IEEE Communications Maga
`zine, Dec. 1996, pp. 52-56.
`Thom, Gary A., “H.323: The Multimedia Communications
`Standard for Local Area Networks', IEEE Communications
`
`Magazine, US IEEE Service Center. Piscataway, N.J., Dec.
`1, 1996, Vol. 34, No. 12, pp. 52-56, p. 52, right-hand column,
`line 30-p. 53, left-hand column, line. 33.
`European Search Report Application No. EP 00 30 0466,
`completed May 10, 2000.
`* cited by examiner
`
`IPR2018-00884
`Apple Inc. EX1005 Page 2
`
`
`
`U.S. Patent
`
`Apr. 4, 2006
`
`Sheet 1 of 8
`
`US 7,023,839 B1
`
`100 N.
`
`02A
`
`102B
`
`104
`
`H.323 Terminal
`
`H.323 Terminal
`
`aw
`
`1.
`
`1.
`
`O
`
`BWAS
`
`109
`
`FIG. 1
`
`302
`
`Control
`PrOCeSSOr
`
`Bandwidth
`Monitor
`
`306
`
`
`
`FIG. 3
`
`304
`
`IPR2018-00884
`Apple Inc. EX1005 Page 3
`
`
`
`U.S. Patent
`
`Apr. 4, 2006
`
`Sheet 2 of 8
`
`US 7,023,839 B1
`
`
`
`
`
`Video I/O
`
`28
`
`Audio I/O
`
`12
`
`Data
`Equipment
`
`21
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`System
`Control
`User
`Interface
`20
`
`Data int.
`T. 120
`19
`
`Q.931
`Callup
`
`-
`
`
`
`
`
`Coding
`Resources
`111
`
`Packet
`Network
`Interface
`
`13
`
`IPR2018-00884
`Apple Inc. EX1005 Page 4
`
`
`
`U.S. Patent
`
`Apr. 4, 2006
`
`Sheet 3 of 8
`
`US 7,023,839 B1
`
`
`
`402
`
`
`
`
`
`
`
`
`
`Request COding
`
`
`
`
`
`
`
`Receive and
`StOre
`
`Monitor BW
`uSage
`
`41
`
`FIG. 4
`
`Adjust COding
`
`414
`
`
`
`418
`
`
`
`
`
`420
`
`Restore coding
`Scheme
`
`IPR2018-00884
`Apple Inc. EX1005 Page 5
`
`
`
`U.S. Patent
`
`Apr. 4, 2006
`
`Sheet 4 of 8
`
`US 7,023,839 B1
`
`START
`
`
`
`
`
`502
`
`
`
`504
`
`MOnitOr BW
`USage
`
`50
`
`Yes
`
`
`
`
`
`Adjust COding
`
`510
`
`s
`
`Yes
`
`
`
`
`
`516
`
`Restore Coding
`Scheme
`
`FIG. 5
`
`IPR2018-00884
`Apple Inc. EX1005 Page 6
`
`
`
`U.S. Patent
`
`Apr. 4, 2006
`
`Sheet S of 8
`
`US 7,023,839 B1
`
`ARQ
`
`602
`
`ACF
`
`604
`
`
`
`608
`
`610
`
`62
`
`IPR2018-00884
`Apple Inc. EX1005 Page 7
`
`
`
`U.S. Patent
`
`Apr. 4, 2006
`
`Sheet 6 of 8
`
`US 7,023,839 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`BWAS Receives
`Criteria
`
`BWAS MonitorS
`Network Conditions
`
`706
`
`Criteria Met?
`
`Yes
`
`Initiate
`Re-negotiation
`
`
`
`Endpoint Set Up
`PrOCedure
`
`Previous COdeCS
`Dropped
`
`Configurable
`Delay
`
`FIG. 7
`
`
`
`
`
`
`
`Receive QOS
`Levels
`
`800
`
`
`
`Receive New
`QoS Request Level
`
`802
`
`Compare Requested
`QOS with Available
`Bandwidth
`
`804
`
`
`
`
`
`
`
`806
`
`BWAVail?
`
`NO
`
`BWAS ACCeSSes
`QOS Database
`
`810
`
`82
`
`Calls Avail.?
`
`814
`
`YeS
`
`Re-Negotiate
`Codec Speed
`
`816
`
`Make Call
`With LOWer
`Codec Speed
`
`
`
`
`
`
`
`Make Cal
`
`END
`
`FIG. 8
`
`IPR2018-00884
`Apple Inc. EX1005 Page 8
`
`
`
`U.S. Patent
`
`Apr. 4, 2006
`
`Sheet 7 of 8
`
`US 7,023,839 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Client 1 ARO to
`GK
`
`GKACF to
`Client 1
`
`Client 1: H.225.0
`S. Up to GK
`
`GK Relays H.225
`Set Up to Client 2
`
`Client 2 ARO/ACF
`With GK
`
`Client 2 Alerting
`& Connect to GK
`
`
`
`
`
`
`
`
`
`GK Relays Alerting
`& Connect to Client 1
`
`H.245 Control
`Channel
`
`H.245 Capability
`Exchange
`
`
`
`
`
`
`
`
`Open Media Channel
`
`98
`
`920
`
`923
`
`Make Call
`
`BWAS Receives
`QOS Information
`
`BWAS Monitors
`Network Condition
`
`922
`
`Criteria Met?
`
`Yes
`
`lsSue
`ChangeOOdeCSpeed
`
`
`
`
`
`
`
`
`
`Client 1 LOWerS COdeC
`and Sends
`LOWerCodeCSpeed
`to GK
`
`GK Forwards
`LowerCodeCSpeed
`to Client 2
`
`Re-negotiate CodeCS
`
`Drop Old CodeC
`
`
`
`
`
`
`
`
`
`
`
`930
`
`932
`
`933
`
`END
`
`FIG. 9
`
`IPR2018-00884
`Apple Inc. EX1005 Page 9
`
`
`
`U.S. Patent
`
`Apr. 4, 2006
`
`Sheet 8 of 8
`
`US 7,023,839 B1
`
`95
`
`Client 1 ARQ Client H.225
`to GK
`to Client 2
`
`
`
`972
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`GKACF to
`Client 1
`
`Client 1 Set U
`to Client 2
`
`Client 2 ARO/ACF
`With GK
`
`Client 2 H.225
`COnnect
`
`Client 1 & 2
`H.245 Cap. Exch.
`
`H.245
`Master-Slave
`
`Media Channel
`Opened
`
`BWAS Receives
`OOS Information
`
`BWAS Monitors
`NetWOrk Condition
`
`974
`
`981
`
`
`
`
`
`ChangeCodeCSpeed
`
`
`
`Client 1 Changes Codec. 976
`Speed and Sends to
`Client 2
`
`Drop Old
`COdeC
`
`
`
`
`
`Make Call
`
`982
`
`FIG. 10
`
`IPR2018-00884
`Apple Inc. EX1005 Page 10
`
`
`
`1.
`SYSTEMAND METHOD FOR DYNAMIC
`CODECALTERATION
`
`US 7,023,839 B1
`
`2
`their coding capabilities and the specific hierarchy used by
`them. Once this information is returned to the BWAS, the
`BWAS sends another message requiring the user terminals
`to lower their bandwidth usage by selecting a lower speed
`codec. When network traffic drops below a second pre
`configured threshold, the BWAS sends another message
`allowing the user terminals to restore their original codec
`choices.
`The BWAS according to one embodiment monitors band
`width usage, and if there is a disparity between the band
`width allocated to new connections versus ongoing ones or
`an increase in data traffic, the BWAS sends a Lower Codec
`Speed message to all active H.323 entities. This causes the
`H.323 entities to renegotiate their codecs. The original
`calling party then selects a lower speed codec and sends a
`message to the called party to proceed with H.323 codec
`negotiation.
`A better understanding of the invention is obtained when
`the following detailed description is considered in conjunc
`tion with the following drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a diagram illustrating a telecommunications
`system according to an embodiment of the invention;
`FIG. 2 is a diagram of an exemplary H.323 interface
`according to an embodiment of the invention;
`FIG. 3 is a diagram illustrating an exemplary bandwidth
`allocation server (BWAS) according to an embodiment of
`the invention;
`FIG. 4 is a flowchart illustrating operation of an embodi
`ment of the invention;
`FIG. 5 is a flowchart illustrating operation of another
`embodiment of the invention;
`FIG. 6 is a flowchart illustrating communication employ
`ing an embodiment of the invention;
`FIG. 7 is a flowchart illustrating operation of an embodi
`ment of the invention;
`FIG. 8 is a flowchart illustrating bandwidth monitoring
`according to another embodiment of the invention;
`FIG. 9 is a flowchart illustrating operation of an embodi
`ment of the invention; and
`FIG. 10 is a flowchart illustrating operation of another
`embodiment of the invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`CROSS REFERENCE TO RELATED
`APPLICATION
`
`The present application is a continuation-in-part of U.S.
`patent application Ser. No. 09/238,671, entitled “System and
`Method for Coding Algorithm Policy Adjustment in Tele
`phony-Over-LAN Networks” (with inventors Shmuel Shaf
`fer, William J. Beyda and Uwe Wrede), filed Jan. 26, 1999,
`now U.S. Pat. No. 6,757,277.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`15
`
`The present invention relates to telecommunications sys
`tems, and in particular, to an improved telephony-over-LAN
`(local area network) system.
`Modern telephony-over-LAN (ToL) systems allow each
`endpoint (e.g., client, gateway) to choose a default hierarchy
`of coding algorithms. For example, an endpoint might be
`configured to first try using adaptive pulse code modulation
`(ADPCM), next G.723, then GSM, etc., until a common
`codec Supported by both the calling and called endpoints is
`found.
`However, the endpoints or clients typically have static
`configurations of preferred codecs. As a consequence, net
`work bandwidth is assigned on a simple availability basis,
`without regard to other users who might wish to place phone
`calls in the future. As a consequence, a few users who
`communicate using coding algorithms that result in high
`bandwidth consumption could use the entire network band
`width, without even realizing bandwidth was in short supply,
`thereby preventing others from placing calls. As such,
`system bandwidth may be inefficiently utilized and even
`result in denial of service to some users. Moreover, Subse
`quently callers with a higher QoS (quality of service) may be
`forced to use a less optimal codec while a preceding call
`with a low QoS communicates using its desired codec.
`While certain data modems, such as described in U.S. Pat.
`No. 5,546,395, allow for dynamic bandwidth adjustment
`between two communicating endpoints, by way of selecting
`the compression rates for voice transmission and the modu
`lation rate, such systems do not allow for broad network
`based supervision of bandwidth allocation.
`
`25
`
`30
`
`35
`
`40
`
`45
`
`SUMMARY OF THE INVENTION
`
`These and other drawbacks in the prior art are overcome
`in large part by a coding algorithm policy adjustment system
`according to the present invention. A bandwidth adjustment
`server or bandwidth allocation server (BWAS) is provided
`which monitors system bandwidth usage, sends requests to
`user terminals to identify their coding capabilities, and
`directs each of the user terminals to adjust their coding
`algorithms based on system bandwidth usage. If system
`bandwidth usage is high, the BWAS requires the user
`terminals to employ a less bandwidth-intense coding algo
`rithm; similarly, when system bandwidth usage is low, the
`BWAS will allow the user terminals to employ higher
`bandwidth-use coding algorithms.
`The BWAS is configured with a first threshold identified
`as the threshold for reducing the coder/decoder (codec)
`speeds of the idle endpoints. The BWAS monitors system
`traffic, or communicates with other system monitors to
`determine system bandwidth usage. The BWAS sends a
`message to the user terminals, requiring them to identify
`
`50
`
`55
`
`60
`
`65
`
`FIG. 1 is a diagram illustrating a telecommunications
`system 100 according to an embodiment of the present
`invention. In particular, the telecommunications system 100
`includes a local area network (LAN) or packet network 101.
`Coupled to the LAN 101 may be a variety of H.323
`terminals 102A, 102B, a multi-point control unit (MCU)
`104, an H.323 gateway 106, an H.323 gatekeeper 108, a
`LAN server 112 and a plurality of other devices such as
`personal computers (not shown). The H.323 terminals 102A,
`102B are in compliance with the H.323 standard. Thus, the
`H.323 terminals 102A, 102B support H.245 for negotiation
`of channel usage, Q.931 for call signaling and call setup,
`registration admission status (RAS), and RTP/RTCP for
`sequencing audio and video packets. The H.323 terminals
`102A, 102B may further implement audio and video codecs,
`T. 120 data conferencing protocols and MCU capabilities.
`Further details concerning the Recommendation H.323 may
`be obtained from the International Telecommunications
`Union (ITU); the Recommendation is hereby incorporated
`
`IPR2018-00884
`Apple Inc. EX1005 Page 11
`
`
`
`US 7,023,839 B1
`
`3
`by reference in its entirety as if fully set forth herein. In
`addition, the gatekeeper 108 has coupled thereto a band
`width allocation server (BWAS) 109 according to a specific
`embodiment of the invention. As will be discussed in greater
`detail below, the BWAS 109 monitors system bandwidth
`usage and directs each H.323 terminal to adopt a particular
`codec or coding algorithm according to bandwidth avail
`ability. It is noted that in other specific embodiments the
`BWAS functionality may also be incorporated into the
`gatekeeper 108, placed on any terminal or server, or embod
`ied as a separate unit separately coupled to the network 101,
`as long as the BWAS can communicate with the endpoints.
`Thus, the figures are merely exemplary.
`A logical diagram of an H.323 interface to LAN 101 is
`shown in FIG. 2, according to an embodiment of the present
`invention. The interface includes a known network terminal/
`device 10 utilizing the ITU-T H.323 protocol, and a packet
`network interface 13 that is coupled to network terminal 10.
`Network interface 13 couples the H.323 device to LAN 101.
`H.323 terminals/devices and equipment carry real-time
`voice, video and/or data. It should be noted that H.323 is an
`umbrella recommendation that sets standards for multimedia
`communications, including telephony-over-LAN communi
`cations. The network can include packet-switched Trans
`mission Control Protocol/Internet Protocol (TCP/IP) and
`Internet Packet Exchange (IPX) over Ethernet, Fast Ethernet
`and Token Ring networks.
`The network terminal 10 is coupled to a video input/
`output (I/O) interface 28, an audio I/O interface 12, a user
`application interface 19, and a system control user interface
`(SCUI) 20. Network terminal 10 also includes an H.225
`layer 24, a video coder/decoder (codec) 15, an audio codec
`14, H.245 protocol functionality 18, Q.931 protocol func
`tionality 16, and RAS protocol functionality 17.
`As seen in FIG. 2, the video I/O interface 28 which may
`be part of the standard H.323 device connects to the video
`codec 15 Such as an H.261 codec for encoding and decoding
`video signals. Coupled between video I/O interface 28 and
`H.225 layer 24, video codec 15 translates encoded video
`signals to H.225 protocol signals. Although the H.261 codec
`can be the video codec used for an H.323 terminal, other
`Video codecs, such as H.263 codecs and others, may also be
`used for encoding and decoding video. The H.245 protocol
`is used to exchange terminal capability information Such as
`the video coding algorithm. Generally, the called terminal
`specifies its capabilities to the calling terminal.
`Audio I/O interface 12, which may be part of a standard
`H.323 terminal, connects to the audio codec 14. Such as a
`G.711 codec, for encoding and decoding audio signals.
`Coupled to audio I/O interface 12, audio codec 14 is coupled
`to H.225 layer 24 and translates audio signals to H.225
`protocol signals. Although the G.711 codec is the mandatory
`audio codec for an H.323 terminal, other audio codecs, such
`as G.728, G.729, G.723.1, G.722, MPEG1 audio, etc. may
`also be used for encoding and decoding speech, in accor
`dance with the present invention. G.723.1 typically is a
`preferred codec because of its reasonably low bit rate, which
`enables preservation of link bandwidth, particularly in
`slower speed network connections. AS is known, when
`communicating, H.323 terminals use a common coding
`algorithm or codec Supported by all entities to the conver
`sation/conference. This information is exchanged during an
`H.245 capability exchange phase.
`The control layer 11 interfaced with SCUI 20 provides
`signaling and flow control for proper operation of the H.323
`terminal. In particular, all non-audio and non-video control
`signaling is handled via SCUI 20. Coupled to SCUI 20 in the
`
`40
`
`45
`
`4
`control layer 11 are H.245 layer 18, Q.931 layer 16 and RAS
`layer 17, which couple to H.225 layer 24. Thus, SCUI 20
`interfaces to the H.245 standard which is the media control
`protocol that allows capability exchange, channel negotia
`tion, Switching of media modes and other miscellaneous
`commands and indications for multimedia communications.
`SCUI 20 also interfaces to the Q.931 protocol which defines
`the setup, teardown, and control of H.323 communication
`sessions. SCUI 20 further interfaces to the Registration,
`Admission, Status (RAS) protocol that defines how H.323
`entities can access H.323 gatekeepers to perform among
`other things address translation, thereby allowing H.323
`endpoints to locate other H.323 endpoints via an H.323
`gatekeeper. The H.225 standard layer 24, which is derived
`from the Q.931 standard, is the protocol for establishing
`connection between two or more H.323 terminals and also
`formats the transmitted video, audio, data and control
`streams into messages for output to the network interface 13
`(e.g., transport over IP network 101). The H.225 layer 24
`also retrieves the received video, audio, data and control
`streams from messages that have been input from network
`interface 13.
`In addition, in accordance with the present invention, the
`H.323 terminals control layer 11 may also include a coding
`resources unit 111 which is used to communicate coding
`resources to the bandwidth allocation server (BWAS), as
`will be described further below. User application interface
`19, which may be a T120 protocol interface as well as other
`types of protocol interfaces, also is coupled between H.225
`layer 24 and a user device 21, which may be for example
`data equipment. Thus, an H.323 network may be configured
`to include several different devices. For example, the net
`work may include a terminal for enabling users connected to
`a LAN to speak, a terminal (i.e., gateway) for enabling a
`caller resident on the LAN to call a second user through the
`public switched network, and/or a terminal for enabling the
`adapter to communicate through a wireless trunk, using a
`wireless telephone. The device may also implement Supple
`mentary services according to the H.450 protocol specifi
`cation.
`The H.323 gateway 106 (FIG. 1) generally provides a
`translation function between H.323 conferencing endpoints
`and other terminal types and performs call setup and clear
`ing on both the LAN side and Switched circuit network (e.g.,
`public switched telephone network or PSTN) side. The
`H.323 gatekeeper 108 performs address translation from
`LAN aliases for terminals and gateways to IP or IPX
`addresses (as defined in the RAS specification) as well as
`bandwidth management (also specified within the RAS
`specification). The H.323 gatekeeper 108 may further be
`used for call routing. Further, according to a specific
`embodiment of the present invention, the gatekeeper 108
`may include BWAS 109 which is used to specify coding
`algorithms (e.g., audio, video and/or both) which may be
`used by particular H.323 terminals, based on available
`system bandwidth. The BWAS 109 communicates the
`required coding algorithm to the H.323 terminals using RAS
`messaging. The H.323 terminals then use standard H.245
`signaling to negotiate coding capabilities among themselves.
`It is noted that, while described primarily with regard to
`audio coding, the present invention is equally applicable to
`Video coding as well.
`More particularly, an exemplary BWAS 109 is illustrated
`in FIG. 3. The BWAS 109 includes a network interface 304
`(which may simply be part of the standard gatekeeper
`interface in some embodiments) which allows for commu
`nication to and from the network terminals. In particular,
`
`10
`
`15
`
`25
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`IPR2018-00884
`Apple Inc. EX1005 Page 12
`
`
`
`US 7,023,839 B1
`
`5
`RAS messaging may be employed by BWAS 109 to control
`bandwidth usage by defining the codecs that may be used by
`the idle H.323 terminals.
`Abandwidth monitor 306 and a control processor 302 are
`coupled to the network interface 304. The bandwidth moni
`tor 306 monitors bandwidth usage, for example, by counting
`the number of active calls being processed by the gatekeeper
`or by other known methods, e.g., monitoring bit rates. The
`control processor 302 is coupled to a memory 308 which is
`used to store bandwidth threshold information, for example
`in the form of look-up tables. The memory 308 may also be
`used to store information concerning the coding capabilities
`of each of the H.323 terminals. In the discussion below,
`“H.323 terminals' may be any H.323 endpoint such as an
`H.323 client or an H.323 connection in gateway 106. The
`control processor 302 Supervises coding request transmis
`sions, reception of the coding information, and determina
`tion of whether a coding adjustment is necessary. In specific
`embodiments, the BWAS 109 continuously monitors traffic
`on the local segment to determine whether traffic has crossed
`any thresholds, and BWAS 109 may communicate with
`other monitoring agents located on other segments to deter
`mine their bandwidth usage. Therefore, BWAS 109 can
`measure and track the network traffic to make the determi
`nations of the relevant thresholds being crossed, as dis
`cussed below. In other embodiments, the BWAS 109 also
`maintains a database of ongoing calls, their bandwidth
`usage, and their QoS (quality of service) requirements. In
`particular, the BWAS 109 is dynamically aware of whether
`ongoing calls are at or below their requested QoS. If one or
`more new calls require a higher QoS (i.e., bandwidth), then
`the BWAS 109 determines whether lower QoS calls may be
`reset to a still lower QoS codec, as will be discussed below.
`As an example, a flowchart illustrating operation of one
`embodiment of the invention is shown in FIG. 4. In a step
`402, the bandwidth allocation server (BWAS) 109 receives
`configuration information concerning the bandwidth thresh
`old X, which is the threshold that must be met before
`reducing codec speeds. The threshold X, typically measured
`in Megabits per second (Mbps), is stored in the memory 308.
`In a step 404, the BWAS 109 similarly receives configura
`tion information concerning the threshold Y, which is the
`threshold that must be met before restoring coding algorithm
`choices. The threshold Y is also stored in the memory 308.
`Of course, the order of receiving thresholds X and Y may be
`reversed.
`Next, in a step 406, the BWAS 109 sends a request
`message to the H.323 terminals, requesting that they return
`an indication of their available coding algorithms and hier
`archies. According to one embodiment, the request is in the
`form of an RAS message. The request message is received
`at the H.323 terminals in their coding resource units 111 (see
`FIG. 2). The terminals coding resource units 111 access this
`information, in a manner similar to that in which the
`terminals access coding information prior to beginning
`communication with another endpoint. The information is
`then transferred to the BWAS 109, either in the form of an
`RAS message or by using H.245 signaling.
`In a step 408, the coding algorithms/hierarchy informa
`tion is received by the BWAS 109 via the network interface
`304 and stored by the processor 302 in the memory 308.
`Next, in a step 410, the BWAS 109, in particular the
`bandwidth monitor 306, proceeds to monitor system band
`width usage. A signal representative of system bandwidth
`usage is provided to the processor 302, which accesses the
`memory 308 for the threshold value X. The processor
`compares the system bandwidth usage against the threshold
`
`40
`
`45
`
`6
`value X, and determines, in a step 412, whether system
`bandwidth usage has exceeded the threshold X. If not, the
`bandwidth monitor 306 continues to monitor bandwidth
`usage (return to step 410). However, if bandwidth usage is
`determined to exceed the threshold X, then in a step 414, the
`BWAS 109 sends a command to the H.323 terminals order
`ing them to adjust their coding hierarchies so that a lower
`speed codec is employed (the adjustment can be either
`stepping down to the next fastest allowed coding algorithm
`or alternatively stepping down directly to a selected algo
`rithm, e.g., the slowest coding algorithm). Again, this may
`take the form of an RAS message or H.245 signaling. Each
`H.323 terminals coding resource unit 111 then adjusts the
`hierarchy so that the higher-speed, more bandwidth-intense
`coding algorithms are not employed.
`The determination of how far to lower the bandwidth in
`step 414 may be based on a variety of factors, including
`load, traffic expectations, and the like. It being understood
`that any of a variety of methods may be employed, an
`exemplary method is described as follows. The BWAS 109
`calculates the remaining network bandwidth divided by the
`number of idle users to obtain a demand, D, which is the
`demand allocable to each of the users if it placed a call. The
`demand, D, is then modified by two pre-configured factors
`which are stored in the memory 308. The first factor is the
`percentage of voice load allowed (VLA), representative of
`for example, the percentage of bandwidth remaining after
`data usage is determined. Thus, if data calls are allowed 60%
`of network bandwidth, then VLA=40%. The second factor is
`the percentage of calls expected to be activated (EA). For
`example, if there are 100 terminals, and only half are
`expected to be active at any time, then EA=50%. A modified
`demand (MD) is then calculated according to the following
`formula: MD=(D*VLA)/EA. For example, if the threshold
`X were to be exceeded such that 1 Mbps network bandwidth
`is remaining, and 50 idle users were present, then D would
`be 1 Mbps/50 users=20 kilobits per second (kbps)/user. The
`modified demand (MD) would then be (20 kbps/user:40%)/
`50%–16 kbps/user.
`Based on the modified demand (MD), the BWAS 109
`determines that the first coding algorithm in each H.323
`terminals hierarchy that is lower than MD should be
`selected. In the example above, the first coding algorithm
`that is 16 kbps or lower should be selected. If the terminal
`does not have such a coding algorithm, the next lowest is to
`be employed (alternatively, the lowest coding algorithm is to
`be employed). Each H.323 terminal is provided with a
`message from BWAS 109 directing it to reset its coding
`algorithm to the appropriate coding algorithm.
`Returning to FIG. 4, the BWAS 109 continues in step 416
`to monitor system bandwidth usage. Again, the bandwidth
`monitor 306 provides a signal to the processor 302 indica
`tive of system bandwidth usage. In response, the processor
`302 accesses the memory 308 for the threshold Y. As
`discussed above, the threshold Y is the bandwidth usage
`threshold below which the default hierarchy of coding
`algorithms may be employed. The processor 302 then com
`pares the bandwidth usage provided from the bandwidth
`monitor 306 with the threshold Y, in a step 418. If usage has
`not fallen below the threshold Y, then the bandwidth monitor
`continues to monitor bandwidth usage (return to step 416).
`If, however, the bandwidth usage has fallen below the
`threshold Y, then in a step 420, the BWAS 109 sends a
`message to each of the H.323 terminals directing them to
`restore their predetermined choice of coding algorithms or,
`alternatively, a BWAS-specified coding algorithm (for
`example, the re-adjustment can be stepping up to the next
`
`10
`
`15
`
`25
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`IPR2018-00884
`Apple Inc. EX1005 Page 13
`
`
`
`US 7,023,839 B1
`
`10
`
`15
`
`7
`fastest coding algorithm or alternatively stepping up directly
`to a selected algorithm, e.g., the fastest coding algorithm).
`Each terminals coding resource unit 111 then re-adjusts the
`coding algorithm hierarchy accordingly.
`An alternative embodiment of a method for adjusting
`bandwidth according to the present invention is described
`with reference to FIG. 5. In particular, FIG. 5 is a flowchart
`illustrating a method in which coding algorithm information
`is not required by the BWAS 109. Instead, the BWAS 109
`simply monitors bandwidth usage and orders each H.323
`terminal to adjust to slower coding algorithms according to
`a fixed, predetermined schedule along the algorithm hierar
`chy.
`In a step 502, the bandwidth allocation server (BWAS)
`109 receives configuration information concerning the band
`width threshold X, which is the threshold that must be met
`before reducing codec speeds. The threshold X, typically
`measured in Mbps, is stored in the memory 308. In a step
`504, the BWAS 109 similarly receives configuration infor
`mation concerning the threshold Y, which is the threshold
`that must be met before restoring coding algorithm choices.
`The threshold Y is also stored in the memory 308. Of course,
`the order of receiving thresholds X and Y is not important.
`Next, in a step 506, the BWAS 109, more particularly the
`bandwidth monitor 306, monitors the system bandwidth
`usage. Again, a signal representative of system bandwidth
`usage is provided to the control processor 302, which
`accesses the memory 308 for the threshold value X. The
`processor compares the system bandwidth usage against the
`threshold value X, and determines in a step 508 whether
`system bandwidth usage has exceeded the threshold X. If
`not, the bandwidth monitor 306 continues to monitor band
`width usage (return to step 506). However, if bandwidth
`usage is determined to exceed the threshold X, then in a step
`510 the BWAS 109 sends a command to the H.323 terminals
`ordering them to adjust their coding hierarchies (the adjust
`ment being either stepping down to the next fastest coding
`algorithm or alternatively stepping down directly to a
`selected algorithm, e.g., their slowest coding algorithms).
`Each H.323 terminals coding resource unit 111 then adjusts
`the hierarchy so that the higher-speed, more bandwidth
`intense coding algorithms are not employed.
`According to this embodiment, the selection in step 510
`of the slower coding algorithm is done on a predetermined
`basis. For example, the BWAS 109 may send an RAS
`45
`command or H.245 signaling to the H.323 terminals to step
`down to the next fastest coding algorithm. Alternatively, the
`BWAS 109 may command the H.323 terminals to step down
`directly to their slowest coding algorithms. The coding
`resource unit 111 of each of the H.323 terminals receives the
`message and adjusts its terminals coding hierarchy.
`Once the H.323 terminals have re-set their default choices
`for coding algorithms, the bandwidth monitor 306 continues
`to monitor bandwidth usage, in a step 512. The bandwidth
`monitor 306 provides a signal indicative of bandwidth usage
`to the processor 302. The processor 302, in turn, accesses the
`memory 308 for the threshold value Y. The processor then
`performs a compare operation