`
`(12) United States Patent
`Brown et a].
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 7,324,637 B2
`*Jan. 29, 2008
`
`(54)
`
`(75)
`
`RESOURCE ALLOCATION SYSTEM AND
`METHOD
`
`Inventors: Barry D. Brown, Mesquite, TX (US);
`John S. Hogg, Hurst, TX (US)
`
`(73)
`
`Assignee: Securus Technologies, Inc., Dallas, TX
`(Us)
`
`(51)
`
`(52)
`
`(58)
`
`Int. Cl.
`
`US. Cl. .......... ..
`
`(2006.01)
`(2006.01)
`379/207.02; 370/259; 379/201.05;
`379/201.12; 709/226; 718/104
`Field of Classi?cation Search .............. .. 370/259;
`379/201.01, 201.05, 201.12, 207.02, 220.01,
`379/229, 230, 242, 268, 269; 709/226; 718/104
`See application ?le for complete search history.
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`USC 154(b) by 0 days.
`
`(56)
`
`References Cited
`
`U. S. PATENT DOCUMENTS
`
`This patent is subject to a terminal dis
`claimer.
`
`(21)
`
`(22)
`
`(65)
`
`(63)
`
`Appl. N0.: 11/609,397
`
`Filed:
`
`Dec. 12, 2006
`
`Prior Publication Data
`
`US 2007/0127672 A1
`
`Jun. 7, 2007
`
`Related US. Application Data
`
`Continuation of application No. 11/147,979, ?led on
`Jun. 7, 2005, noW Pat. No. 7,164,761, Which is a
`continuation of application No. 10/421,990, ?led on
`Apr. 22, 2003, noW Pat. No. 6,904,139, Which is a
`continuation of application No. 10/115,488, ?led on
`Apr. 2, 2002, noW Pat. No. 6,560,325, Which is a
`continuation of application No. 09/072,436, ?led on
`May 4, 1998, noW Pat. No. 6,381,321.
`
`6,381,321 Bl* 4/2002 Brown et a1. ........ .. 379/20702
`
`* cited by examiner
`
`Primary ExamineriHarry S. Hong
`(74) Attorney, Agent, or F irmiFenWick & West LLP
`
`(57)
`
`ABSTRACT
`
`A telecommunication system includes telecommunication
`resources, points, and a connection manager. The connection
`manager is con?gured to establish connections between the
`telecommunications resources and the points in response to
`a request from an application. The connection manager uses
`routing tables to select the most ef?cient route from the
`available routes between a telecommunications resource and
`a point. The routing tables establish the connection by
`sending a request to allocate a telecommunications resource
`to a session manager.
`
`8 Claims, 12 Drawing Sheets
`
`START
`
`1 1 10
`
`TRKQ'GER
`
`EVENT SIGNAL
`
`“.15
`
`1130
`ALLOCATlON ~—/
`OF A TR
`
`V
`
`1120
`TR RECEIVES \/
`EVENT SIGNAL
`
`APPLICATION 1135
`COMPLETES —/
`EXECUTION
`
`‘7
`PASS EVENT 1125
`SIGNAL TO
`TELECOMM
`UNICATION
`SERVCE
`KERNEL
`
`V
`
`1140
`DE-ALLOCATE J
`TR
`
`‘7
`
`RESULT
`RE-ALLOCABLE
`
`1145
`
`GTL 1001
`IPR of U.S. Patent 7,324,637
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 1 0f 12
`
`US 7,324,637 B2
`
`ZQEQQZDEEOOMJMP
`
`
`
`EmFw>w wO_>mm_m
`
`.0:
`
`vEO>>PwZ
`
`owe
`
`mPw
`
`ZPmQ OF
`
`v .QE
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 2 of 12
`
`US 7,324,637 B2
`
`1103
`
`
`
`/
`
`Q1
`
`FIG.2a
`
`CPU 205
`
`MEM 210
`
`i
`
`\STORAGE 215
`
`V
`
`Ii
`m. -l '3
`
`MEZZANIN:BUS 230
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 3 0f 12
`
`US 7,324,637 B2
`
`wuuw
`EDD U
`
`0
`
`
`
`amsu EMF-m
`
`00000“. D Em mm
`
`00000.“. D Em mm
`
`
`xmobmwz op EEG m m.
`non §whm>w XKOZFmZ
`
`
`ummnmU D
`
`momm E.
`
`
`
`.wDm m7:
`
`UH
`DUB
`
`momw
`
`EU mm
`
`DUUQDHD
`
`$8 unnmmnug
`
`EU mm 6%
`
`QN .QE
`
`0175
`N.LSd OJ.
`
`98E
`ELLS 0.1.
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 4 0f 12
`
`US 7,324,637 B2
`
`ZQEQQZDEEOOM-EP
`
`
`
`.mzmmx mOSMmw
`
`0mm
`
`m _‘ m M33002
`
`
`
`wwosmmw wmOO
`
`mow 3&0
`
`m .GE
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 5 of 12
`
`US 7,324,637 132
`
`Ewkm>w
`
`OZ’V EOVdHEJiNI EOIAEIG 'lVfliHlA
`
`
`
`orrL_mwv.¢‘mo<mm~2mmo<z<5
`
` <I20.23%A3300.2wwoSmmmmmoozofiomzzoo
`
`
`
`mm0<z<_2mw0<z<2
`
`
`
`m3»omv
`
`mm<>>om<I
`
`mwO<Z<E
`
`mmv
`
`momDOmmm
`
`mwO<Z<E
`
`03V
`
`
`
`ZOflmwmw ommszmmx
`
`ZOfi<QZDEEOOM4mF
`
`mo_>mm_w
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jan. 29, 2008
`Jan. 29, 2008
`
`Sheet 6 0f 12
`Sheet 6 of 12
`
`9
`US 7,324,637 B2
`US 7
`324,637 B2
`
`AzO:.<o_u:._.2mo_
`
`o::23
`
`>._.3m_<.:<><
`
`.523kiwi
`
`m:
`
`mjm<|:<><
`
`.223400a
`
`0N5
`
`HZm>m
`
`ZO_._.<O_n=._.OZ
`
`
`
`mg.:23
`
`ZOF<Ofiaa<
`
`ZO_._.<m._.w_Om_m
`
`.EZD
`
`OE
`
`OZEMMXXOOm
`
`.523
`
`omm
`
`>mOkzm>Z_
`
`
`
`own.223
`
`ZO_._.<O_.En_<
`
`owm.523ngb
`
`ZO_._.<O_._n_n_<
`
`.EZDmwmmZ/ch.
`
`0mm
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 7 0f 12
`
`US 7,324,637 B2
`
`
`
`.223 >|Ewm
`
`05
`
`
`
`\kwmDOmE WE.
`
`UZEDOKU
`
`.223
`
`0%
`
`03.
`
`m .QI
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 8 0f 12
`
`US 7,324,637 B2
`
`
`0mm mOmDOwwm
`292223220055 2
`
`
`
`.ZZD 02mm
`
`0N0?
`
`02422200
`
`2, .GE
`
`17
`
`
`
`E23 mZmOmK
`
`05?
`
`A /V.
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 9 0f 12
`
`US 7,324,637 B2
`
`1110
`
`TRIGGER
`
`1115
`‘J
`EVENT SIGNAL
`
`1130
`ALLOCATION -/
`OF ATR
`
`1120
`/
`
`TR RECEIVES
`
`EVENT SIGNAL
`
`1135
`
`APPLICATION
`COMPLETES -/
`EXECUTION
`
`PASS EVENT 1125
`SIGNAL TO ~/
`TELECOMM-
`UNICATION
`SERVCE
`KERNEL
`
`1140
`DE-ALLOCATE J
`TR
`
`RESULT
`RE-ALLOCAB LE
`
`1145
`
`FIG. 11
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 10 0f 12
`
`US 7,324,637 B2
`
`START
`
`1 O
`'1
`2
`
`1
`
`START
`
`1
`B13,’ 0
`
`If
`DETECT EvENT 1215
`SIGNAL AT
`HARDWARE J
`MANAGER
`MODULE
`
`v
`
`NOTIFY SYSTEM 1220
`MANAGER __/
`MODULE OF
`EVENT SIGNAL
`
`v
`ESTABLTSH
`1225
`APPLICATION R/
`SESSION
`
`NOTIFYSESSION 1230
`MANAGER
`/
`MODULE
`APPLICATION
`INITIALIZATION
`
`1235
`RESULT P
`
`(
`
`FIG. 12
`
`f
`
`PROVIDE
`REQUIREMENTS
`FOR TR
`
`‘1315
`
`TR AVAILABLE?
`
`1325
`
`1330
`
`REQUEST TR FROM
`RESOURCE
`MANAGER MODULE
`
`7
`
`REQUEST TR FROM
`HARDWARE
`MANAGER MODULE
`
`1335
`
`RESULT
`
`FIG. 13
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 11 0f 12
`
`US 7,324,637 B2
`
`1415
`\/ REQUEST
`RECEIVED FROM
`APPLICATION
`
`"
`1420
`M BEST ROUTE
`DETERMINED
`AND SETUP
`
`RETURN TELE
`COMMUNICATION
`RESOURCES TO
`POOL
`
`1455
`
`RETURN NO
`VERIFY To
`APPLICATION
`
`1450
`
`v
`
`RESULT
`
`143D
`\/ RETURN
`VERIFICATION TO
`APPLICATION
`
`FIG. 14
`
`
`
`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 12 0f 12
`
`US 7,324,637 B2
`
`(
`
`START
`
`'ID'IU
`
`> /
`
`<
`
`START
`
`1610
`
`v
`
`1515
`RECEIVE COMMAND _/
`FROM APPLICATION
`
`V
`1615
`NOTIFY SESSION
`MANAGER MODULE /
`EXECUTION
`COMPLETED
`
`1520
`
`'
`TRANSLATE
`COMMAND TO __/
`TELE
`COMMUNICATION
`SPECIFIC
`COMMAND
`
`17
`
`ISSUE COMMAND 1525
`TO TELE-
`“J
`COMMUNICATION
`RESOURCE
`
`r
`
`1530
`
`(
`
`RESULT
`
`>—-/
`
`V
`1620
`SHUT DOWN
`APPLICATION “/
`
`1625
`
`NOTIFY RESOURCE
`MANAGER MODULE /
`OF EXECUTION
`COMPLETION
`
`"
`RETURN
`RESOURCES TO
`HARDWARE
`MANAGER MODULE
`
`1630
`/
`
`V
`RESULT
`
`1635
`}\ /
`
`I
`
`FIG. 15
`
`F1G_ 15
`
`
`
`US 7,324,637 B2
`
`1
`RESOURCE ALLOCATION SYSTEM AND
`METHOD
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`This application is a continuation of US. patent applica
`tion Ser. No. 11/147,979, ?led on Jun. 7, 2005 now US. Pat.
`No. 7,164,761, Which is a continuation of US. patent
`application Ser. No. 10/421,990, ?led on Apr. 22, 2003,
`issued as US. Pat. No. 6,904,139 on Jun. 7, 2005, Which is
`a continuation of US. patent application Ser. No. 10/115,
`488, ?led on Apr. 2, 2002, issued as US. Pat. No. 6,560,325
`on May 6, 2003, Which is a continuation US. patent appli
`cation Ser. No. 09/072,436, ?led on May 4, 1998, issued as
`US. Pat. No. 6,381,321 on Apr. 30, 2002, the contents of
`each of Which is incorporated by reference herein.
`
`BACKGROUND
`
`1. Field of the Art
`This invention relates to the ?eld of telecommunications
`systems, and more particularly, to systems and methods for
`allocating telecommunication resources to an application in
`a telecommunications system.
`2. Description of the Related Art
`Conventional computer telephony products alloW for con
`necting applications to particular computer telephony
`resources, or components. To connect these components
`Within a computer telephony product, the application must
`be Written to use each manufacturers programming interface
`for the application to be able to communicate With the
`telephony resources. For each telephony resource Within a
`computer telephony product, it is necessary to Write a
`portion of the application that is dedicated to issuing instruc
`tions to that particular type of telephony resource.
`In conventional computer telephony products, each appli
`cation includes a design phase, coding phase, testing phase,
`and integration phase. Speci?cally, each portion of the
`application must be designed to integrate With a speci?c
`functionality of each dedicated computer telephony resource
`and the overall product. This functionality is speci?cally
`coded, or Written, using computer language code. Each
`coded portion of the application is then tested to ensure that
`it functions exactly as designed. Finally, each portion of the
`application must be integrated to create the ?nal product.
`In creating such conventional computer telephony prod
`ucts, multiple development paths are folloWed during the
`development cycle. Further, the complexity of conventional
`computer telephony products requires a large number of
`paths and a large number of operations along each path.
`Speci?cally, these paths must be folloWed for each portion
`of the overall system, such as an interface to a particular
`computer telephony resource or a particular user interface.
`Moreover, in every instance that a computer telephony
`resource is changed or added, the appropriate development
`paths must also be changed or added. This is particularly
`troublesome When the computer telephony resource
`involves different types of hardWare.
`To help ease development, a ?rst generation of softWare
`based computer telephony products used Computer Aided
`SoftWare Engineering (CASE) tools to design systems.
`These conventional CASE development systems make it
`easier to determine hoW many paths or What changes are
`needed on a given path to build or recon?gure a computer
`telephony product. These conventional systems, hoWever,
`do not reduce complexity because they can not, for example,
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`reduce the number of paths needed to complete changes in
`a conventional computer telephony product.
`A second generation of softWare based computer tele
`phony products used Code Generators (CG) to design sys
`tems. The CG development systems automated the process
`for developing paths to completion. This makes the actual
`time spent folloWing the paths to completion more reason
`able. Conventional CG developed or derived systems, hoW
`ever, have numerous drawbacks. For example, similar to the
`conventional CASE developed systems the CG developed
`systems cannot reduce the number of paths necessary to be
`folloWed for completion.
`Moreover, any additional computer code input beyond
`that generated by the CG program is lost and must to be
`re-done for each change in the path to completion. These
`changes, of course, are tedious and laborious and the process
`is prone to introducing neW or additional errors into the
`computer telephony product.
`To further help ease the development process, a third
`generation of computer telephony products developed
`through the vendor companies that produce the computer
`telephony resources. Speci?cally, these vendors developed
`tWo divergent design schemes that provide design speci?
`cations that computer telephony resource manufactures
`might folloW. If folloWed, the speci?cations alloW for com
`puter telephony resources from different vendors to operate
`Within the same computer telephony product.
`The ?rst of the tWo design schemes developed is Multi
`Vendor Interface Protocol (“MVIP”) and the second design
`scheme is SCBus. It is noted that the original design scheme
`Was called SCSA for Signal Computing System Architec
`ture, later this Was modi?ed to SCBus, Which is Signal
`Computing Bus, and it has noW been extended for multi
`chassis integration and is call SCxBus for Signal Computing
`extended Bus.
`Although these design schemes alloW for having multi
`vendor computer telephony resources Within a single con
`ventional computer telephony product, there are still draW
`backs to this generation of computer telephony products.
`Foremost among the problems is that these standards only
`apply to the communications betWeen telephony resources
`and make no changes in the application to telephony
`resource communication. That is, With the MVIP or SCBus
`protocol, it is possible to put different vendor’s hardWare
`into the same product, but the application must still be
`Written to each individual telephony resource Within the
`product.
`In an attempt to address the shortcomings of the previous
`three generations, a fourth generation of computer telephony
`products Was developed. These conventional computer tele
`phony products Were developed using the MVIP and SCBus
`design schemes and layered on a neW application protocol
`that alloWed multiple applications to run on a given set of
`computer telephony resources.
`These conventional computer telephony products do
`alloW for allocating multiple computer telephony resources
`among multiple applications, but only in a static manner.
`That is, resource allocation in these products is ?xed during
`an initialiZation of the product by using a con?guration ?le
`provided by a product administrator and this con?guration
`?le cannot be changed Without re-starting or re-initialiZing
`the product Which, of course, requires all applications to be
`shut doWn.
`This fourth generation of computer telephony products
`still has a number of draWbacks. For example, the computer
`telephony resources must be allocated to an application
`before any application goes into operation. Further, these
`
`
`
`US 7,324,637 B2
`
`3
`products lack ?exibility, such as dynamic con?guration,
`because all resources must be allocated at initialiZation to
`particular applications. Moreover, these products lack
`dynamic scalability because the addition or subtraction of
`neW computer telephony resources requires re-start and
`re-initialiZing of the computer telephony product.
`Therefore, there is a need for a telecommunication system
`and method that (1) allows for dynamic con?gurability of
`telecommunication resources that (2) does not require appli
`cations to be dedicated to particular telecommunication
`resources at development or system initialization, While (3)
`providing system ?exibility and scalability by allowing for
`addition or subtraction of telecommunication resources
`Without re-initialiZing the telecommunication services sys
`tem and (4) provides feWer and shorter paths to completion
`for applications.
`
`SUMMARY
`
`The present invention includes a telecommunication (in
`cluding computer telephony) system and a method for
`dynamically allocating one or more telecommunication
`resources to a requesting telecommunications application
`Within a telecommunications product. The present invention
`includes computer hardWare components; for example, a
`central processing unit, a memory, and a storage device that
`are coupled through a data bus line. The present invention
`may also include other computer hardWare components; for
`example, a video card, a serial port, a device controller, and
`a netWork card.
`In one embodiment, the telecommunication system or
`product also a plurality of telecommunication resources and
`a telecommunication services kernel. The telecommunica
`tion system Works With one or more applications that
`provide telecommunication functions. Each application is
`capable of responding to an event generated Within the
`telecommunication system. Further, at least one telecommu
`nication resource is capable of generating an event for a
`requested application. This event may include executing
`(processing) a requested application.
`The telecommunication services kernel couples the
`requested application With a required telecommunication
`resource or resources for that application. When the appli
`cation completes execution and ?nishes use of the telecom
`munication resource or resources, the telecommunication
`services kernel de-couples the required telecommunication
`resource or resources from the requested application and
`makes it available for another instance of that application or
`another application Within the system.
`In one embodiment, the telecommunication services ker
`nel includes a system manager module, a session manager
`module, a hardWare manager module, a resource manager
`module, and a connection manager module. The modules are
`coupled through a core services module interface to a core
`services module. The core services module passes messages
`betWeen an operating system that interfaces With the hard
`Ware components of the telecommunication system, and the
`modules of the telecommunication services kernel.
`The system manager module provides an inventory of the
`plurality of logical telecommunication resources in the tele
`communication system. In addition, the system manager
`starts applications as requested in response to the event. The
`session manager module is coupled to the system manager
`and registers each application that is started and currently
`executing in the telecommunication system.
`The hardWare manager module initially con?gures each
`physical telecommunication resource and maps physical
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`resources into logical units that is in or added to the
`telecommunication system. The hardWare manager module
`also tracks each telecommunication resource that is not
`allocated from the plurality of telecommunication resources.
`The resource manager is coupled to the hardWare manager
`module. The resource manager module tracks each telecom
`munication resource that is allocated to and in use by any
`application.
`The connection manager module is coupled to the
`resource manager module. The connection manager module
`establishes routing information in the telecommunication
`system using internal routing tables, internal and external
`telephony resource mapping, and it’s oWn internal connec
`tion map. The routing information includes voice and data
`paths both internally, as Well as externally to, the telecom
`munication system.
`Where possible, the connection manager provides a route
`from this routing information to a telecommunication
`resource in response to the telecommunication resource
`needing a particular voice or data path. The connection
`manager then noti?es the application that the path is either
`successfully set up or Was not successful, in Which case each
`application must determine What further action may be
`necessary.
`The telecommunication system also includes a virtual
`device interface that is coupled, or may be integrated With,
`to the telecommunication services kernel. The virtual device
`interface provides an interface betWeen an application and
`the telecommunication services kernel. The virtual device
`interface is a virtual telephony resource having all possible
`telecommunication resource capabilities. The virtual device
`interface includes a translation unit, a command receive unit,
`and a command send unit.
`The command receive unit receives a request from the
`application to perform a particular function. The translation
`unit translates this virtual device command from the appli
`cation to the speci?c hardWare-related commands that can
`be understood by the vendor- or standards-speci?c telecom
`munication resources in the telecommunication system. The
`command send unit issues the speci?c commands to the
`speci?c telecommunication resource. The components and
`process also function vice versa so that a telecommunication
`resource command is translated for the application.
`Thus, applications may be Written to this single interface
`rather than to each speci?c interface associated With each
`telecommunication resource. This alloWs development of
`systems Without prior knoWledge or understanding of the
`capabilities of particular hardWare vendors or other tele
`phony resources, thereby reducing and shortening the num
`ber of development paths necessary.
`The telecommunication system provides a process for
`dynamically assigning at least one telecommunication
`resource to the application requesting the telecommunica
`tion resources in response to the triggering event signal.
`Speci?cally, the event signal is received by the telecommu
`nication services kernel. The telecommunication system
`starts and executes an application in response to the event
`signal.
`The application then signals a request for a telecommu
`nication resource from the telecommunication services ker
`nel. In response to this request, the telecommunication
`services kernel determines if a telecommunication resource
`is available for allocation. If a telecommunication resource
`is available for allocation it proceeds to allocate that avail
`able telecommunication resource to the application. If tele
`communication resources are not available, the application
`
`
`
`US 7,324,637 B2
`
`5
`is noti?ed and the application provides further responses as
`to a relevant course of action.
`When the application completes execution, it noti?es the
`telecommunication services kernel. The telecommunication
`services kernel de-allocates the telecommunication resource
`from the application. The telecommunication resource is
`noW available to be allocated for a future request for a
`telecommunication resource by an application.
`The telecommunication system and method of the present
`invention advantageously alloWs for allocating a telecom
`munication resource to an application in a dynamic manner.
`By keeping a single pool or multiple administrator de?ned
`pools of telecommunication resources, rather than dedicat
`ing each particular telecommunication resources to particu
`lar applications, the present invention bene?cially increases
`overall system utiliZation and ef?ciency. Moreover, the
`present invention decreases system costs because more
`applications can be introduced into the system Without
`having to arrange for additional dedicated telecommunica
`tion resources.
`In addition, the present invention alloWs for telecommu
`nication resources to be dynamically added or subtracted
`from the telecommunication system Without having to re
`start and re-initialiZe because the telecommunication ser
`vices kernel manages the telecommunication resources and
`the applications are not dedicated to any particular telecom
`munication resource. Further, application developments
`costs are also reduced because applications can be Written to
`a single, standardiZed virtual device interface so that con
`cerns of Writing to speci?c or particular vendor or manu
`facturer de?ned telecommunication resource speci?cations
`are eliminated.
`The features and advantages described in the speci?cation
`are not all inclusive and, in particular, many additional
`features and advantages Will be apparent to one of ordinary
`skill in the art in vieW of the draWings, speci?cation, and
`claims. Moreover, it should be noted that the language used
`in the speci?cation has been principally selected for read
`ability and instructional purposes, and may not have been
`selected to delineate or circumscribe the inventive subject
`matter.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram illustrating one embodiment of
`a telecommunication system in accordance With the present
`invention;
`FIG. 2a is a block diagram illustrating one embodiment of
`a telecommunication service system in accordance With the
`present invention;
`FIG. 2b is a block diagram illustrating another embodi
`ment of a telecommunication service system in accordance
`With the present invention;
`FIG. 3 is a block diagram illustrating one embodiment of
`a telecommunication sub-system in a memory that interfaces
`With a central processing unit in accordance With the present
`invention;
`FIG. 4 is a block diagram illustrating one embodiment of
`a telecommunication service kernel in accordance With the
`present invention;
`FIG. 5 is a block diagram illustrating one embodiment of
`a system manager module in accordance With the present
`invention;
`FIG. 6 is a block diagram illustrating one embodiment of
`a session manager module in accordance With the present
`invention;
`
`5
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`FIG. 7 is a block diagram illustrating one embodiment of
`a hardWare manager module in accordance With the present
`invention;
`FIG. 8 is a block diagram illustrating one embodiment of
`a resource manager module in accordance With the present
`invention;
`FIG. 9 is a block diagram illustrating one embodiment of
`a connection manager module in accordance With the
`present invention;
`FIG. 10 is a block diagram illustrating one embodiment of
`a virtual device interface in accordance With the present
`invention;
`FIG. 11 is a How diagram illustrating one embodiment of
`a general process for allocating a telecommunication
`resource to an application in a telecommunication system in
`accordance With the present invention;
`FIG. 12 is a How diagram illustrating one embodiment of
`a process for executing an application in a telecommunica
`tion system in accordance With the present invention;
`FIG. 13 is a How diagram illustrating one embodiment of
`a process for preparing allocation of a telecommunication
`resource to an application in a telecommunication system in
`accordance With the present invention;
`FIG. 14 is a How diagram illustrating one embodiment of
`a process for establishing a connection betWeen a telecom
`munication resource allocated to an application and another
`point in accordance With the present invention;
`FIG. 15 is a How diagram illustrating one embodiment of
`a process for communication betWeen an application and an
`allocated telecommunication resource through a virtual
`device interface in accordance With the present invention;
`and
`FIG. 16 is a How diagram illustrating one embodiment of
`a process for de-coupling and returning an assigned tele
`communication resource from an application back to a pool
`of telecommunication resources in a telecommunication
`system in accordance With the present invention.
`
`DETAILED DESCRIPTION
`
`The present invention includes a telecommunication (in
`cluding computer telephony) system and a method for
`dynamically allocating one or more telecommunication
`resources to a requesting telecommunication application.
`FIG. 1 is a block diagram illustrating one embodiment of
`a telecommunication system 100 in accordance With the
`present invention. The telecommunication system 100
`includes a primary telecommunication service system 110.
`The telecommunication system 100 may also include one or
`more additional telecommunication service systems 110' and
`a netWork 120.
`The primary telecommunication service system 110 and
`the additional telecommunication service systems 110' are
`coupled as nodes on the netWork 120. The netWork 120 can
`be any data passing netWork, for example, local area net
`Work, Wide area netWork, telecommunication netWork, or
`computer system data bus. Further, a connection to a public
`sWitched telephone netWork (“PSTN”) can be made from
`any node (i.e., the primary node 110 or any of the additional
`nodes 110') Within the system.
`FIG. 2a is a block diagram illustrating a second embodi
`ment of the telecommunication service system 11011 in
`accordance With the present invention. The telecommunica
`tion service system 110a includes a central processing unit
`(“CPU”) 205, a memory 210, a storage device 215, one or
`more telecommunication (including computer telephony)
`resources 22011-22011 (generally 220), a data bus 225, and a
`
`
`
`US 7,324,637 B2
`
`7
`mezzanine bus 230. The central processing unit 205, the
`memory 210, the storage device 215, and each of the
`telecommunication resources 220a-220n are coupled
`through the data bus 225. Further, each of the telecommu
`nication resources 220a-220n are coupled to each other
`through the meZZanine bus 230.
`The telecommunication service system 11011 is coupled to
`one or more standard telecommunication equipment devices
`or systems (“STE”) 235. Speci?cally, each STE device 235
`may be coupled to a telecommunication resource, e. g., 2200.
`The STE device 235 is coupled to a public sWitched tele
`phone netWork (“PSTN”) 240.
`The central processing unit 205 may be a conventional
`processor or processing device or system, for example, a x86
`or PentiumTM processor by Intel Corporation of Santa Clara,
`Calif., a SPARC processor by Sun Microsystems, Inc. or
`Palo Alto, Calif., a PoWerPC processor by Motorola, Inc. of
`Schaumburg, Ill., or other processing device or system that
`processes computer instructions. The memory 210 may be a
`conventional memory device or system, for example, a
`dynamic random access memory, a static random access
`memory, or other memory device or system that stores dates,
`instruction, or the like. It is noted that the memory 210 may
`extend to include the storage device 215.
`The storage device 215 may be a conventional mass
`storage device or system, for example, a hard disk, a
`CD-ROM, a Write-able CD-ROM, a ?ash memory, tape
`drive, a compression storage drive, or other storage device
`or system that alloWs for longer term storage of data,
`instructions, or the like. The data bus 225 may be a con
`ventional data bus, for example, an Industry Standard Archi
`tecture (“ISA”) data bus, a Peripheral Component Interface
`(“PCI”) data bus, or other data bus capable of transferring
`data, instructions, and the like.
`The telecommunication resource (“TR”) 220 may be a
`conventional or custom line card that interfaces With the
`PSTN 240 or the STE 235, for example, a Rhetorex ASI
`Station Interface Card from Lucent Technologies Inc., of
`Murray Hill, N.J., a Natural MicroSystems Station Interface
`Card from Natural MicroSystems, Inc., of Framingham,
`Mass., or other interface card that is cable of interfacing With
`the PSTN 240 or the STE 235. Moreover, the telecommu
`nication resource 220 can be integrated With the PSTN 240
`or the STE 235. The meZZanine bus 230 may be a conven
`tional meZZanine bus, for example, a Multi-Vendor Interface
`Protocol (“MVIP”) bus, the Signal Computing System
`Architecture SCBus (“SCBus”) or Signal Computing
`extended bus (“SCxBus”), or the like.
`The STE 235 device or system may be a conventional
`STE device or system, for example, a public branch
`exchange (“PBX”), a standard telephone, a pay telephone, a
`cellular telephone, an ansWering system, a playback system,
`a facsimile system, a voice mail system, or other STE device
`or system capable of providing voice, media, or data tele
`communication functions. The PSTN 240 is a conventional
`public sWitched telephone netWork, including Wireless com
`munication netWorks, for example, those oWned and oper
`ated by SBC Communications Inc. of San Antonio, Tex. or
`Cellular One Group of Dallas, Tex., or other public sWitched
`telephone netWork that alloWs for telephone communica
`tions.
`FIG. 2b is a block diagram illustrating a third embodiment
`of a telecommunication service system 1101) in accordance
`With the present invention. The telecommunication service
`system 1101) includes a central processing unit system 20511,
`a data port system 255, a video system 260, a netWork
`system 265, a storage controller system 275, a hard disk
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`21511, a high speed communication system 270, a data bus
`225a, one or more sets (pools or banks) of telecommunica
`tion resources (ports) 220a-220b, a meZZanine bus 230a, and
`one or more telecommunication blocks 250. The telecom
`munication blocks 250 coupled the PSTN 240 or the STE
`235 With the telecommunication system 100. In addition, the
`telecommunication service system 1101) may optionally
`include one or more external telecommunication resource
`systems 28011-28019 (generally 280).
`The central processing unit system 20511, the data port
`system 255, the video system 260, the netWork system 165,
`the storage controller 275, the high speed communication
`system 270, and the telecommunication resources 220 are
`coupled through the data bus 22511, that serves as a back
`plane. The netWork system 265 is coupled to the netWork
`120. The storage controller system 275 is coupled to one or
`more hard disks 21511.
`The telecommunication resources 220 are also coupled
`through the meZZanine bus 23011. In one embodiment, the
`external telecommunication resource system 280 may be
`coupled to one or more telecommunication resources 220,
`the PSTN 240 (through the telecommunication blocks 250),
`the data port system 255, and the high speed communication
`system 270. It is noted that the telecommunication resources
`220, as Well as the external telecommunication resource
`system 280, may be coupled to the one or both of the PSTN
`240 and the STE 235.
`It is noted that the CPU system 205a includes the func
`tionality of the central processing unit 205 described above.
`Further, the CPU system 205a may Work in