FR2862459A1 - Attribution de connecteur dma - Google Patents

Attribution de connecteur dma Download PDF

Info

Publication number
FR2862459A1
FR2862459A1 FR0411864A FR0411864A FR2862459A1 FR 2862459 A1 FR2862459 A1 FR 2862459A1 FR 0411864 A FR0411864 A FR 0411864A FR 0411864 A FR0411864 A FR 0411864A FR 2862459 A1 FR2862459 A1 FR 2862459A1
Authority
FR
France
Prior art keywords
dma
module
multimedia
connectors
tmc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0411864A
Other languages
English (en)
Other versions
FR2862459B1 (fr
Inventor
Barry K Coffin
Desbrieres Anne Bavazzano
Michele Prieur
Jean Alexis Berranger
Douglas C Ferrin
Mark E Somerville
Richard D Ellison
Christophe Gavrel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of FR2862459A1 publication Critical patent/FR2862459A1/fr
Application granted granted Critical
Publication of FR2862459B1 publication Critical patent/FR2862459B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Des procédés, systèmes, et dispositifs sont fournis à une plate-forme multimédia. Un procédé comprend la réception de demandes DMA pour acheminer un trafic de données multimédia à des connecteurs DMA (230) d'un module mémoire DMA (226). Les connecteurs DMA disponibles (230) sont déterminés à partir d'une réserve de connecteurs DMA disponibles et attribués (209) pour un trafic de données multimédia. Des connecteurs DMA sont libérés (210) vers la réserve de connecteurs DMA disponibles quand un connecteur DMA n'est plus utilisé. Le procédé comprend de plus l'utilisation d'un proxy de TMC (220) pour acheminer un trafic de données multimédia entre le module mémoire DMA (226) et un module logiciel DSP (228) sur la base des connecteurs DMA attribués.

Description

INTRODUCTION
Les systèmes de télécommunication, entre autres, peuvent comprendre des réseaux d'équipements informatiques. Des équipements informatiques comprennent des dispositifs d'ordinateur qui possèdent un logiciel de système d'exploita- tion dans lequel se trouvent des interfaces de programme d'application associées (ou API, acronyme de Application Program Interface). Des programmes de télécommunication sont écrits en général pour s'exécuter avec une API et un logiciel de système d'exploitation particuliers afin de permettre à l'équipement de fonctionner dans différents rôles avec le système ou une architecture de réseau.
Par exemple, divers équipements informatiques de télécommunications peuvent comprendre des programmes pour permettre à un dispositif informatique donné de fonctionner comme une plate-forme multimédia.
Les plates-formes multimédia telles qu'elles sont utilisées dans l'industrie des télécommunications, comprennent des composants matériels, tels que des lignes interurbaines, des commutateurs, des routeurs, des serveurs et des bases de données. Les plates-formes multimédia peuvent également comprendre des logiciels, des modules d'application, des micrologiciels, et d'autres instructions informatiques exécutables utilisables sur celles-ci. Les plates-formes multimédia modernes deviennent de plus en plus fonctionnelles, ou intelligentes, en termes de services qu'elles peuvent fournir en coopération avec les outils logiciels qui y sont fournis.
Certaines fonctions d'une plate-forme multimédia comprennent l'utilisation de modules de traitement numérique des signaux (ou DSP, acronyme de Digital Signal Processing) et des modules d'accès direct à la mémoire (ou DMA, acronyme de Direct Memory Access) en liaison avec des signaux d'appel de traitement. Par exemple, des modules DSP sont utilisés pour analyser des signaux d'appel, pour un traitement et un acheminement, en utilisant divers algorithmes tels que la transformée de Fourier rapide. Les modules DMA comprennent des circuits pour acheminer des données (par exemple, des signaux d'appel ou tout autre trafic de données multimédia) sur la plate-forme multimédia, par exemple, d'une mémoire à l'autre, sans utiliser de processeur dans chaque transfert de données. Un trafic de données multimédia comprend de la voix, des données, des signaux de type vidéo, etc. Des connecteurs DMA associés à un module DMA peuvent être utilisés pour relier des canaux multimédia et/ou d'autres connecteurs de bus de la plate-forme multimédia au module DMA.
Dans certaines plates-formes multimédia, l'attribution de connecteurs DMA est gérée par un module proxy dans la couche système d'exploitation du dispositif informatique. Les connecteurs DMA peuvent être attribués directement et câblés à des canaux multimédia particuliers et/ou à d'autres connecteurs de bus de la plate-forme multimédia ou le module proxy peut attribuer les connecteurs sur la base du premier arrivé premier servi. De tels modules proxy sont conçus pour fonctionner avec un ensemble particulier de matériel, par exemple, des cartes multimédia particulières ayant un type particulier de canaux multimédia, et comprennent un logiciel, par exemple, des instructions exécutables d'ordinateur, afin de travailler avec un type particulier de système d'exploitation. Par exemple, des plates-formes typiques multimédia comprennent un module proxy avec des API pour attribuer des connecteurs DMA aux canaux multimédia d'une carte multimédia de télécommunication (ou TM C, acronyme de Telecommunication Media Card) de type réseau optique synchrone (ou SONET, acronyme de Synchronous Optical NETwork).
Un DSO est un exemple d'un canal multimédia et représente un canal de signalisation à 64 kbits par seconde (kb/s). Les DSO sont les blocs fonctionnels des TMC. Une TMC de type SONET est l'équivalent de 672 DSO et fournit un débit de signaux de 45.736 Mbits par seconde (Mb/s). Une TMC de type Tl, en comparaison, comprend 4 jonctions ou liaisons pour un total de 96 canaux multimédia. Vingt-quatre (24) DSO sont fournis dans chaque jonction ou liaison Ti pour un débit de signaux de 1.544 Mb/s. Une TMC de type El, en comparaison, comprend 4 jonctions ou liaisons pour un total de 124 canaux multimédia. Trente et un (31) DSO sont fournis dans chaque jonction ou liaison El pour un débit de signaux de 2.048 Mb/s. Une jonction ou liaison J1 d'une TMC de type J1 est la spécification japonaise équivalente à une jonction ou liaison Ti d'une TMC.
Des TMC multiples de type Tl, El, et/ou JI peuvent être fournies sur une plate-forme multimédia. Par exemple, sept TMC de type Ti fourniraient 672 canaux multimédia équivalents au nombre d'une TMC de type SONET.
Cependant, les signaux des canaux multimédia d'une TMC de type SONET ont un débit et une structure de trame différents de ceux des canaux multimédia d'une TMC de type Ti, El, et/ou J1. En conséquence, un module proxy conçu pour attribuer des connexions de connecteur DMA aux canaux multimédia d'une TMC de type SONET, ne convient pas pour attribuer des connexions de connecteur DMA aux canaux multimédia d'un autre type: de TMC.
Les TMC d'une plate-forme multimédia peuvent également comprendre des connecteurs de bus, comme le savent et le comprennent les hommes de l'art, pour établir des connexions de signaux entre des TMC multiples et/ou être utilisées pour une autre fonctionnalité du système de réseau. Par exemple, comme le savent et le comprennent les hommes de l'art, un type de connecteur de bus H 100 peut être utilisé pour établir des connexions entre des canaux multimédia de différentes TMC comme entre des canaux multimédia de multiples TMC de type Tl. Des canaux multimédia peuvent être connectés aux connecteurs de bus de la TMC selon des instructions exécutées par des applications de programme et l'utilisation d'API afin de communiquer avec le système d'exploitation de la plate-forme multimédia. Un bus H100 est un exemple d'un type de connecteur de bus, connu des hommes de l'art, qui peut être utilisé pour établir des connexions entre des TMC. Et, comme le savent les hommes de l'art, il est possible d'utiliser des DSO et des connecteurs de bus d'une TMC en tant que partie d'un réseau numérique à intégration de services (RNIS, ou ISDN, acronyme de Integrated Services Digital Network). Comme cela a été mentionné ci-dessus, un signal d'appel est une forme de trafic de données multimédia qui peut être transmis sur un canal multimédia ou sur le connecteur de bus d'une plate-forme multimédia.
Dans le domaine des télécommunications, de nouveaux programmes sont écrits en permanence pour fournir des services d'application de télécommunication supplémentaires. Plusieurs de ces nouveaux programmes sont écrits afin de fonctionner avec des systèmes d'exploitation de type Linux. Les plates-formes multimédia actuelles ne fournissent pas de procédé pour attribuer de manière dynamique des connecteurs DMA aux canaux et aux connecteurs de bus multimédia avec des TMC différentes d'une TMC de type SONET ou en liaison avec un système d'exploitation de type Linux.
L'invention concerne une plate-forme multimédia, comprenant: - un module fournisseur multimédia pour recevoir des demandes d'application d'attribution de connecteur d'accès direct à la mémoire DNA; - un module groupe multimédia pour recevoir des instructions d'attribution de connecteur d'accès direct à la mémoire DMA provenant du module fournisseur multimédia; - un premier pilote associé à une carte multimédia de télécommunication TMC pour recevoir des instructions provenant du module fournisseur multimédia pour fournir des connexions de trafic de données multimédia sur la TMC; et - un module proxy de TMC couplé à un deuxième pilote associé à la TMC, le module proxy de TMC pour recevoir des instructions d'attribution de connecteur DMA provenant du module groupe multimédia et pour communiquer les instructions d'adresses de connecteur DMA et de tampon au deuxième pilote pour connecter les connecteurs DMA.
L'invention concerne une plate-forme multimédia, dans laquelle: - le module fournisseur multimédia et le module groupe multimédia sont fournis dans un espace utilisateur; - les connecteurs DMA permettent aux canaux multimédia et aux connecteurs de bus d'accéder à un module d'accès direct à la mémoire DMA couplé entre le module proxy de TMC et la TMC; - le module groupe multimédia communique des instructions au module fournisseur multimédia pour libérer un connecteur DMA; - le module fournisseur multimédia comprend une première bibliothèque d'interfaces de programme d'application (API), le module fournisseur multimédia pour extraire des API de la première bibliothèque d'API pour exécuter des demandes de connexions pour installer et mettre fin à des connexions de canal multimédia, de connecteur de bus, et de connecteur d'accès direct à la mémoire DMA; - le module groupe multimédia comprend une deuxième bibliothèque d'API, le module groupe multimédia pour extraire des API de la deuxième 25 bibliothèque d'API pour attribuer des connecteurs DMA; - le module proxy de TMC est couplé de plus à un module logiciel de traitement numérique des signaux DSP afin de traiter le trafic de données multimédia avec la TMC; - le module logiciel DSP et une partie du module proxy de TMC sont situés dans un espace utilisateur.
La plate-forme multimédia comprend un système d'exploitation basé sur Linux et la TMC comprend des canaux multimédia Ti et des connecteurs de bus pour des connexions à un réseau numérique à intégration de services.
La plate-forme multimédia comprend un support lisible par un ordinateur ayant un programme qui fait exécuter un procédé à un dispositif, comprenant: - la réception de demandes DMA pour acheminer un trafic de données multimédia à des connecteurs DMA d'un module mémoire DMA; - la détermination de connecteurs DMA disponibles à partir d'une réserve de connecteurs disponibles et l'attribution de connecteurs DMA; - la libération de connecteurs DMA vers la réserve de connecteurs DMA disponibles quand un connecteur DMA n'est plus utilisé ; et l'utilisation d'un proxy de TMC pour acheminer un trafic de données multimédia entre le module mémoire DMA et un module logiciel DSP sur la base des connecteurs DMA attribués.
BRÈVE DESCRIPTION DES DESSINS
- La figure 1 est un mode de réalisation d'un schéma de principe d'une plate-forme multimédia.
- La figure 2A illustre un schéma de principe d'un mode de réalisation de connexions de couche logique sur une plate-forme multimédia.
- La figure 2B illustre un schéma de principe d'un autre mode de réalisation de connexions de couche logique sur une plate-forme multimédia.
- La figure 3 est un schéma de principe qui illustre un mode de réalisation de procédé d'une plate-forme multimédia.
- La figure 4 est un schéma de principe qui illustre un autre mode de réalisation de procédé d'une plate-forme multimédia.
- La figure 5 est un mode de réalisation d'un schéma de principe d'un réseau de télécommunications comprenant une plate-forme multimédia selon des modes de réalisation décrits dans ce document.
DESCRIPTION DÉTAILLÉE
Les modes de réalisation de la présente invention fournissent des programmes et des techniques pour attribuer des connecteurs d'accès direct à la mémoire (DMA) avec des canaux et des connecteurs de bus multimédia d'une TMC de type Tl, El et/ou J1 sur une plate-forme multimédia. Les modes de réalisation de programmes décrits dans ce document comprennent un module proxy composé d'un logiciel pour attribuer en temps réel des points d'extrémité de connexion, par exemple, des canaux et des connecteurs de bus multimédia, associés avec des TMC de type Ti, El, et/ou J1, à des connecteurs DMA de la plate-forme multimédia. L'attribution en temps réel peut améliorer les perfor- mances et la capacité de commutation de la plate-forme multimédia. Les modes de réalisation de programme permettent aux instructions d'attribution de connecteur DMA d'être traitées dans une couche logique (désignée dans ce document sous le nom d'espace noyau ) au-dessus de la couche système d'exploitation (désignée également parfois sous le nom d'espace noyau ) à l'aide d'un module fournisseur multimédia et d'un module groupe multimédia qui sont définis plus loin ci-dessous. Le module fournisseur multimédia et le module groupe multimédia comprennent un accès aux bibliothèques d'interfaces de programme d'application (API). Dans divers modes de réalisation, les API de ces biblio- thèques sont utilisées en liaison avec des instructions exécutées par le module fournisseur multimédia et le module groupe multimédia pour attribuer et libérer des connecteurs DMA en liaison avec des TMC de type Ti, El, et/ou J1.
Les couches logiques, telles qu'elles sont utilisées dans ce document, comprennent la couche système d'exploitation et les couches application. La couche système d'exploitation fixe les normes des programmes d'application qui tournent sur le dispositif informatique. Les couches application sont considérées comme des couches logiques qui sont situées au-dessus de la couche système d'exploitation. Dans ce document, espace utilisateur , ou mode utilisateur implique une couche de code qui est accessible plus facilement, par exemple, en comprenant un code source libre, que la couche de code qui se situe dans la couche système d'exploitation ou dans l'espace noyau . Comme les hommes de l'art le comprendront, le débogage est plus f:àcile dans le mode utilisateur que dans le mode noyau , et les problèmes sont moins fatals, par exemple, presque tout ce qui se déroule mal dans le mode noyau peut conduire à un plantage total du système tandis qu'un problème semblable dans le mode utilisateur ne pourrait nécessiter simplement qu'un redémarrage du processus. En outre, dans des mises en application de Linux, les termes de la licence publique générale (ou GPL, acronyme de General Public License) mandatent un code source libre, par exemple, pour que le code source soit accessible. Comme cela sera indiqué en association avec la figure 2B, divers modes de réalisation placent un certain code source associé à un module proxy et à un module DSP dans l'espace utilisateur pour agrandir la base de code commune et pour favoriser une mesure supplémentaire de facilité de développement et un débogage de nouveaux modules.
La figure 1 est un mode de réalisation d'un schéma de principe d'une plate- forme multimédia 104. Des plates-formes multimédia, telles que celles qu'illustre la figure 1, délivrent, c'est-à-dire fournissent ou offrent, des services de télécommunication aux utilisateurs. Par exemple, une plate-forme multimédia 104 peut recevoir un signal d'appel lancé par une entreprise de téléphonie locale (ou LEC, acronyme de Local Exchange Carrier) et propager le signal d'appel vers un commutateur 154 afin d'acheminer l'appel jusqu'à une destination prévue telle que, à titre d'exemple, une maison, une autre LEC, ou un service de télé-communication particulier (par exemple, une messagerie vocale, un achemine-ment d'appel de numéro d'appel gratuit 800, des applications de réponse vocale interactives, des services multifréquence en code, ainsi que des acheminements d'appel de réseau privé virtuel). Comme cela a été mentionné ci-dessus, certaines fonctions de service de télécommunication d'une plate-forme multimédia utilisent des modules DSP et des modules DMA en association avec des signaux d'appel de traitement.
Une plate-forme multimédia 104 comprend des ressources matérielles et logicielles. Parmi ces dernières, la plate-forme multimédia peut comprendre un processeur 150 et une mémoire 152. La mémoire 152 peut stocker un logiciel (par exemple, des instructions que peut lire l'ordinateur et d'autres programmes) associé à un grand nombre de fonctions et d'applications de service de télé-communication exécutables sur, et par, la plate-forme multimédia 104. Le processeur 150 peut fonctionner à l'aide d'instructions informatiques exécutables en tant qu'élément de la logique de commande pour commander les opérations de la plate-forme multimédia 104. La mémoire 152 peut comprendre une mémoire non volatile et volatile telle qu'une mémoire flash, une mémoire morte (ou ROM, acronyme de Read Only Memory), une mémoire vive (ou RAM, acronyme de Random Access Memory), et une mémoire optique, entre autres.
Pour des besoins d'illustration, des ressources supplémentaires matérielles et logicielles sont présentées dans la figure]'[ et peuvent comprendre un module de traitement numérique des signaux (DSP) 156 et un module d'accès direct à la mémoire (DMA) 158. Le module DSP 156 et le module DMA 158 sont utilisés en association avec des instructions provenant de la mémoire 152, exécutables sur le processeur 150. Le module DSP 156 et le module DMA 158 travaillent en même temps que le processeur 150 et des ressources de mémoire 152 pour fournir un signal d'appel à un canal multimédia particulier, comme il est possible d'en trouver sur une carte multimédia de télécommunication (TMC) 116, afin d'effec- tuer l'acheminement du signal d'appel vers une destination prévue. La figure 1 illustre le fait qu'un certain nombre de TMC. désignées de 116 1 à 116 N, peut être compris sur une plate-forme multimédia donnée. Une carte multimédia de télécommunication (TMC) comprend différents canaux multimédia, et le type de TMC détermine le débit des données et la structure de trame des signaux sur ces canaux multimédia. Les TMC 116 1 à 116 N peuvent comprendre des types de TMC semblables et/ou différents.
Un commutateur 154, tel qu'un commutateur d'un réseau téléphonique public commuté (ou PSTN, acronyme de Public Switched Telephone Network), achemine un signal d'appel, ou tout autre trafic de données multimédia, sur un canal multimédia vers un autre canal multimédia disponible afin de poursuivre l'acheminement du signal jusqu'à la destination prévue. Un commutateur 154 peut exécuter sa fonction sur la base de signaux de commande du système de signalisation numéro 7 (SS7). SS7 est un protocole de communication bien connu basé sur le dialogue, utilisé pour signaler et qui peut être employé pour communiquer avec des plates-formes informatiques telles qu'une plate-forme multimédia de télécommunications.
Comme cela a été mentionné ci-dessus, un module DSP 156 peut analyser des signaux d'appel, pour un traitement et un acheminement, en utilisant divers algorithmes tels que la transformée de Fourier rapide. Un module DMA 158 de la plate-forme multimédia comprend des circuits pour acheminer des données (par exemple, des signaux d'appel ou tout autre trafic de données multimédia) sur la plate-forme multimédia, par exemple, à partir d'une mémoire vers une autre, sans utiliser le processeur 150 lors de chaque transfert de données. Comme cela a été décrit dans l'introduction, la plate-forme multimédia peut comprendre des programmes dans une couche application créée pour une utilisation avec le type de système d'exploitation particulier, par exemple, Linux, Mac, Unix, etc., dans une couche système d'exploitation de la plate-forme multimédia 104. Dans divers modes de réalisation, le type de système d'exploitation est un système d'exploitation Linux utilisé en association avec un matériel de TMC de type Tl, El, et/ou J1. Cependant, les modes de réalisation ne sont pas aussi limités. Par exemple, le système d'exploitation peut comprendre un système d'exploitation de type UNIX utilisé en association avec un matériel de TMC de type Ti, El, et/ou J1.
Le logiciel de la plate-forme multimédia, par exemple, résidant dans la mémoire 152 et exécutable par le processeur 150, peut comprendre des instructions pour enregistrer un message vocal ou un fichier audio dans un emplacement particulier de la mémoire 152, par exemple, une boîte vocale d'un abonné tout en utilisant les modules DSP et: DMA. Le logiciel de la plate-forme multimédia peut également recevoir des signaux d'appel et interpréter et exécuter les instructions codées dans les signaux d'appel, de nouveau en utilisant la mémoire et le processeur et tout autre matériel tels que le module DSP et le module DMA décrits ci-dessus, pour reproduire un message vocal enregistré à partir d'une boîte vocale particulière de nouveau sur un canal multimédia.
Des exemples d'applications de service de télécommunication qui peuvent être exécutées sur la plate-forme multimédia comprennent une messagerie vocale, un acheminement d'appel de numéro d'appel gratuit 800, des applications de réponse vocale interactives (ou IVR, acronyme de Interactive Voice Response), des applications multifréquence en code (ou DTMF, acronyme de Dual Tone Multiple Frequency), ainsi que des acheminements d'appel de réseau privé virtuel. Les applications d'IVR comprennent des applications qui peuvent traiter, par exemple, à l'aide d'un module DSP, des signaux oraux et fournir un signal d'appel à un canal multimédia particulier 116 afin d'établir l'acheminement du signal d'appel jusqu'à une destination prévue. Les services DTMF comprennent des applications qui peuvent traiter le type de signaux audio qui sont produits lors d'une pression sur les boutons d'un téléphone à clavier et fournir le signal d'appel à un canal multimédia particulier d'une TMC 116 afin d'établir l'acheminement du signal d'appel jusqu'à une destination prévue.
Par exemple, le logiciel présent dans la mémoire 152 et exécutable par le processeur 150, peut extraire un signal d'un canal multimédia particulier d'une TMC 116 et avec le matériel associé du module DSP 156, du module DMA 158, et/ou du commutateur 154, acheminer le signal jusqu'à une destination prévue telle qu'une boîte vocale.
Les hommes de l'art comprendront la façon dont les applications de programme peuvent comprendre des instructions exécutables afin de produire et/ou d'extraire des signaux d'appel. Les instructions exécutables peuvent corn- prendre des scripts de commande et des scripts de validation. Les scripts de commande sont des logiciels utilisés pour piloter des signaux d'appel ou reproduire des fichiers multimédia. Les scripts de validation peuvent recevoir des signaux, par exemple, un trafic de données multimédia à partir des canaux multimédia, que les signaux soient des signaux d'appel, des tonalités DTMF, ou des fichiers multimédia reproduits vers, ou à partir de, la plate-forme multimédia 104. À titre d'exemple et non de limitation, les scripts de commande peuvent être utilisés pour produire des signaux DTMF ou reproduire un fichier multimédia et les scripts de validation peuvent être utilisés pour extraire des signaux DTMF ou des fichiers multimédia enregistrés. Les scripts de commande et les scripts de validation peuvent être écrits dans un langage de programmation tel que le langage JavaScript. Cependant, les modes de réalisation ne sont pas limités aux instructions écrites dans un langage de programmation particulier. Les hommes de l'art reconnaîtront que les instructions d'application de programme peuvent comprendre des demandes de connexions de canal multimédia, de connecteur de bus et de connecteur DMA.
La figure 2A illustre un mode de réalisation d'un schéma de principe des couches logiques et de leur interconnexion sur une plate-forme multimédia 200. Dans divers modes de réalisation, la plate-forme multimédia 200 peut comprendre un système d'exploitation basé entre autres sur Linux, Unix, ou Mac. Dans le mode de réalisation de la figure 2A, la plate-forme multimédia est illustrée scindée en trois sections différentes. Ces sections sont illustrées comme étant un espace utilisateur 203 (par exemple, une couche application), un espace noyau 205 (par exemple, une couche système d'exploitation) et un espace matériel 207 (par exemple, une TMC avec des canaux multimédia et des connecteurs de bus associés).
Un dispositif informatique ayant une logique de processeur et une mémoire, tel que la plate-forme multimédia décrite ci-dessus, comprend une couche système d'exploitation et une couche application pour permettre au dispositif d'exécuter divers rôles ou fonctions. La couche système d'exploitation comprend un programme de commande maître qui gère le dispositif informatique. Comme les hommes de l'art le comprendront, le programme de commande maître fournit, entre autres, une gestion des tâches, une gestion du dispositif et une gestion des données. La couche système d'exploitation contient des communications avec des applications de programme qui tournent dessus par l'intermédiaire d'un certain nombre d'API. En d'autres termes, les API comprennent un langage et/ou un format de message utilisés par un programme d'application pour communiquer avec le système d'exploitation. Le langage et/ou le format de message des API permettent à un système d'exploitation d'interpréter des instructions exécutables reçues à partir des applications de programme dans la couche application et de renvoyer les résultats aux applications.
Les API sont mises en application en écrivant des appels de fonction dans le programme, qui fournissent la liaison avec le sous-programme requis pour leur exécution. Il existe plus d'un millier d'appels API dans un système d'exploitation complet tel que Windows, Mac, ou Unix.
Les modes de réalisation de programme de la présente invention fournissent des API dans la mémoire, par exemple, des bibliothèques dans la mémoire, et un nouveau module proxy pour permettre à des applications de programme d'attribuer des connecteurs DMA aux canaux multimédia et des connecteurs de bus sur une TMC de type Ti, El, et/ou J1. Comme l'illustre la figure 2A, les API sont fournies en association avec un module fournisseur multimédia 202 et un module groupe multimédia 206 (décrits dans ce qui suit) pour attribuer et libérer des connecteurs DMA aux canaux multimédia et aux connecteurs de bus.
Dans la figure 2A, l'interaction du processeur logique et de la mémoire dans la couche application a été groupée dans le bloc 201. L'interaction du processeur et de la mémoire peut représenter l'interaction du processeur 150 et de la mémoire 152, comme l'illustre la figure 1. Le bloc 201 comprend le module fournisseur multimédia 202. Le module fournisseur multimédia 202 peut recevoir des demandes d'application de programme de connexions de canal multimédia, de connecteur de bus, et de connecteur d'accès direct à la mémoire (DMA) (décrits ci-dessous). Le module fournisseur multimédia 202 accède à une première bibliothèque d'interfaces de programme d'application (API) 204. Le module fournisseur multimédia peut extraire des API à partir de la première bibliothèque d'API 204 pour exécuter les demandes de connexions et, installer et mettre fin aux connexions de canal multimédia, de connecteur de bus, et de connecteur d'accès direct à la mémoire (DMA). Dans divers modes de réalisation, la première bibliothèque d'API est une bibliothèque d'interfaces natives Java (ou JNI, acronyme de Java Native Interface).
Le bloc 201 comprend de plus un module groupe multimédia 206. En général, le module groupe multimédia 206 reçoit une demande d'application de programme afin de connecter des canaux multimédia, des connecteurs de bus, et des connecteurs DMA. Les modes de réalisation de programme permettent au module groupe multimédia 206 d'exécuter des instructions afin de signaler au module fournisseur multimédia 202 une demande de connexion particulière. Le module groupe multimédia 206 accède à une deuxième bibliothèque d'API 208.
Le module groupe multimédia 206 peut recevoir des instructions d'attribution de connecteur DMA 209 à partir du module fournisseur multimédia 202. Le module groupe multimédia 206 peut extraire des API àpartir de la deuxième bibliothèque d'API 208 pour attribuer des connecteurs DMA selon les instructions d'attribution de connecteur DMA reçues à partir du module fournisseur multimédia 202. Dans divers modes de réalisation, la deuxième bibliothèque d'API est une bibliothèque de JNI et C++.
Le module fournisseur multimédia 202 comprend les modes de réalisation de programme qui peuvent suivre les connecteurs DMA qui sont actuellement en cours d'utilisation et les connecteurs DMA qui ne sont pas actuellement en cours d'utilisation. Dans divers modes de réalisation, le module groupe multimédia 206 peut identifier le moment où un connecteur DMA n'est plus utilisé et peut libérer ou ajouter le connecteur DMA à une réserve de connecteurs DMA disponibles suivis par des instructions exécutables dans le module fournisseur multimédia 202. Le module groupe multimédia 206 peut exécuter une instruction afin de signaler au module fournisseur multimédia 202 qu'un connecteur DMA est de nouveau disponible. C'est-à-dire que le module groupe multimédia 206 peut libérer un connecteur DMA et peut communiquer des instructions 210 au module fournisseur multimédia 202, selon lesquelles un connecteur DMA particulier a été libéré.
Comme l'illustre la figure 2A, en utilisant la première bibliothèque d'API 204, le module fournisseur multimédia 2;02 peut exécuter des demandes de connexions afin d'installer et de mettre fin à des connexions, par l'intermédiaire d'un chemin de commande 212, de canal multimédia, de connecteur de bus, et de connecteur DMA sur une carte multimédia de télécommunication (TMC) 214.
C'est-à-dire que le module fournisseur multimédia 202 peut extraire des API à partir de la première bibliothèque d'AP][ 204 pour attribuer des demandes d'application de connexions de canal multimédia, de connecteur de bus, et de connecteur d'accès direct à la mémoire (DMA) avec un premier pilote 216 associé à la TMC 214. Un pilote peut comprendre un dispositif matériel (en général un transistor) qui fournit des signaux ou un courant électrique pour activer une ligne de transmission. Un pilote peut également comprendre un sous-programme (par exemple, ce peut être un pilote logiciel) qui lie le système d'exploitation à une connexion de dispositif périphérique ou de terminal, par exemple, un canal multimédia ou un connecteur de bus. Écrit par des programmeurs qui compren- nent le langage de commande et les caractéristiques du matériel, le pilote contient le langage machine nécessaire à l'exécution des fonctions requises par l'application. En général, le système d'exploitation appelle le pilote, et le pilote commande le dispositif. Les canaux multimédia sont illustrés par la référence 218. Les connecteurs de bus sont illustrés par la référence 219. Les connexions de canal multimédia et de connecteur de bus de la TMC 214 peuvent comprendre des canaux multimédia Ti et des connecteurs de bus H100 pour des connexions à un réseau numérique à intégration de services. Comme les hommes de l'art le comprendront, dans une telle configuration, plus d'une TMC de type Ti peut être fournie sur la plate-forme multimédia 200 et des connecteurs de bus 219 peuvent être utilisés pour connecter les canaux multimédia 218 d'une TMC aux canaux multimédia d'une autre TMC (non représentée pour des raisons de clarté).
La figure 2A illustre un module proxy de TMC 220 couplé à un deuxième, par exemple, pilote DMA 222 associé à la TMC 214. Le module proxy de TMC 220 peut recevoir des instructions d'attribution de connecteur DMA à partir du module groupe multimédia 206 et peut communiquer les instructions d'adresses de connecteur DMA et de tampon 224 au deuxième pilote 222. Comme l'illustre la figure 2A, un module accès direct à la mémoire (DMA) 226 est couplé entre le module proxy de TMC 220 et la TMC 214. Les canaux multimédia et les connecteurs de bus sont connectés aux connecteurs DMA du module DMA 226 sur la base des instructions d'adresses de connecteur DMA et de tampon.
Comme l'illustre la figure 2A, le module proxy de TMC 220 est couplé de plus à un module logiciel de traitement numérique des signaux (DSP) 228 afin de traiter le trafic de données multimédia avec la TMC 214. Le module logiciel de traitement numérique des signaux (DSP) 228 est couplé au module proxy de TMC 220 afin de traiter le trafic de données multimédia. Le module proxy de TMC 220 fournit un accès de trafic de données multimédia entre le module logiciel DSP 228 et le module mémoire DMA 226 couplé entre le module proxy de TMC 220 et la TMC 214. Comme l'illustre la figure 2A, le module mémoire DMA 226 peut être couplé aux connecteurs de mémoire DMA 230 de la TMC 214 par l'intermédiaire de circuits qui fournissent un chemin de données DMA 232.
La figure 2A illustre un mode de réalisation d'une plate-forme multimédia basée sur un système d'exploitation non Linux, par exemple, une mise en application d'un noyau Unix. Dans ce mode de réalisation, la mise en application a un trafic de données multimédia DMA acheminé dans des tampons du noyau, ou des tampons de la couche système d'exploitation (non représentés). De tels tampons sont bien connus et ne seront pas étudiés ici de manière détaillée afin de ne pas obscurcir le brevet. Les modes de réalisation de programme de la figure 2A comprennent des instructions dans le module proxy 220, comme cela a été décrit ci-dessus, afin d'acheminer un trafic de données multimédia vers une entrée du module DSP 228, décrit ci-dessus. Les modes de réalisation de programme de la figure 2A comprennent de plus des instructions logicielles dans le module proxy 220 qui peuvent compter les établissements de DMA afin de fournir une synchronisation pour le traitement du module DSP. Les hommes de l'art compren- dront la façon dont des instructions logicielles peuvent être utilisées pour compter des établissements de DMA.
La figure 2B illustre un autre mode de réalisation d'une plate-forme multimédia basée sur un système d'exploitation Unix, Linux, ou autre. Comme l'illustre le mode de réalisation de la figure 2B, le module DSP 228 et une partie du module proxy 220 1 sont fournis dans l'espace utilisateur 203. Comme cela a été mentionné ci-dessus, dans des mises en application Linux, les termes de la licence publique générale (GPL) mandatent un code source libre, par exemple, pour que le code source soit accessible. Ainsi, comme l'illustre la figure 2B, des modes de réalisation de programme, qui comprennent des instructions dans le module DSP 228 pour traiter le trafic de données multimédia, sont rendus disponibles dans l'espace utilisateur 203. De même, des modes de réalisation de programme, qui comprennent des instructions logicielles afin de compter des établissements de DMA, sont également rendus disponibles dans la partie du module proxy 220 1 illustrée dans l'espace utilisateur 203. La partie de noyau du module proxy 220 2 de la figure 2B comprend les modes de réalisation de programme qui ont des instructions logicielles pour attendre la prochaine fonction DMA à accomplir. Les hommes de l'art comprendront la façon dont des instructions logicielles peuvent être utilisées pour suivre et attendre la prochaine fonction DMA à accomplir. Dans une mise en application de Linux, la partie de noyau du module proxy 220 2 est libérée en tant que source libre. Comme les hommes de l'art le comprendront, dans le mode de réalisation de la figure 2B avoir l'emplacement du module DSP 228 et une partie du module proxy 220 1 fournis dans l'espace utilisateur 203, offre une mesure de facilité supplémentaire dans le développement et un débogage de nouveaux modules indépendamment du type du système d'exploitation de la plate-forme multimédia étant donné que, comme cela a été reconnu plus tôt, le débogage est plus facile dans une couche application en mode utilisateur que dans une couche système d'exploitation, par exemple, en mode noyau.
En se référant encore à la figure 2B, les exemples suivants sont fournis.
Cependant, les modes de réalisation de l'invention ne sont pas limités à ces exemples. À titre d'exemple et non de limitation, dans une mise en application d'Unix, le trafic de données multimédia DMA est acheminé dans des tampons de l'espace d'utilisateur, par exemple, une couche application plus élevée, un tampon non système d'exploitation (non noyau). C'est ce que montrent les adresses de connecteurs DMA et de tampon 224 en cours d'acheminement vers une partie de l'espace utilisateur du module proxy 220 1. Comme cela a été mentionné précédemment, les tampons eux- mêmes sont bien connus des hommes de l'art et ne sont pas illustrés ici de manière détaillée pour ne pas obscurcir le brevet. Les modes de réalisation de programme de la figure 2B comprennent des instructions dans la partie utilisateur du module proxy 220 1 afin de transférer le trafic de données multimédia provenant des tampons vers le module DSP 228 pour un traitement. De plus, les modes de réalisation de programme comprennent des instructions dans la partie utilisateur du module proxy 220 1 afin de fournir une synchronisation pour le traitement dans le module DSP 228, et d'attendre les établissements de DMA de telle sorte qu'ils puissent être comptés. De nouveau, les hommes de l'art comprendront la façon dont des instructions logicielles peuvent être utilisées pour compter des établissements de DMA. Les modes de réalisation de programme de la figure 2B comprennent des instructions dans la partie noyau du module proxy 220 2 afin d'attendre l'établissement du prochain DMA.
Comme autre exemple en se référant: à la figure 2B, par exemple, une mise en application de Linux, le trafic de données multimédia DMA est acheminé dans des tampons de l'espace noyau. De nouveau, de tels tampons sont bien connus des hommes de l'art et ne sont pas illustrés ici de manière détaillée pour ne pas obscurcir le brevet. Dans cette mise en application, les modes de réalisation de programme de la figure 2B comprennent des instructions dans la partie noyau du module proxy 220 2 qui cartographient les tampons du noyau vers l'espace utilisateur de telle sorte qu'ils sont visibles dans l'espace utilisateur 203. Dans la figure 2B, c'est ce que montrent les adresses de connecteurs DMA et de tampon 224 en train d'être fournies à une partie de l'espace utilisateur du module proxy 220 1. Les modes de réalisation de programme de la figure 2B comprennent des instructions dans la partie utilisateur du module proxy 220 1 afin de transférer le trafic de données multimédia provenant des tampons vers le module DSP 228 pour un traitement. De même que dans l'exemple Unix précédent, les modes de réalisation de programme comprennent des instructions dans la partie utilisateur du module proxy 220 1 afin de fournir une synchronisation pour le traitement dans le module DSP 228, et d'attendre les établissements de DMA de telle sorte qu'ils puissent être comptés. De nouveau, les hommes de l'art comprendront la façon dont des instructions logicielles peuvent être utilisées pour compter des établissements de DMA.
Dans tous les exemples illustrés, les instructions de module proxy qui transfèrent le trafic de données multimédia dans le module DMA identifient, par exemple, à partir des instructions d'attribution de connecteur DMA décrites ci-dessus, le module mémoire DMA, par exemple, 226, qui devrait être utilisé et quel connecteur de mémoire DMA ou quel canal, par exemple, le chemin de DMA 232 parmi les multiples connecteurs de mémoire DMA 230, à utiliser à l'intérieur de ce module.
Le chemin de commande 212 est utilisé selon des instructions provenant du module fournisseur multimédia 202 afin de relier les canaux multimédia 218, les connecteurs de bus 219, et les connecteurs DMA/canaux 230/232.
Les figures 3 et 4 illustrent de plus divers modes de réalisation de procédés d'une plate-forme multimédia. À moins d'indications explicites, les modes de réalisation de procédés décrits dans ce document ne sont pas limités à une séquence ou à un ordre particulier. De plus, certains des modes de réalisation de procédés décrits ou des éléments de ceux-ci, peuvent se produire ou être exécutés au même instant. Les modes de réalisation peuvent être exécutés par des programmes informatiques (par exemple, des instructions informatiques exécutables), du matériel, des modules d'application, et similaires, exécutables sur les systèmes et les dispositifs présentés dans ce document ou autrement. Cependant, les modes de réalisation de l'invention ne sont pas limités au logiciel écrit dans un langage de programmation particulier. De plus, le logiciel, les modules d'application et/ou les instructions informatiques exécutables, appropriés pour réaliser les modes de réalisation de la présente invention, peuvent résider dans un ou plusieurs dispositifs ou emplacements ou dans de nombreux emplacements.
La figure 3 est un schéma de principe qui illustre un mode de réalisation de procédé d'une plate-forme multimédia. Comme l'illustre la figure 3, le procédé comprend la réception de demandes de DMA afin de connecter des canaux multimédia et des connecteurs de bus d'une carte multimédia de télécommunication (TMC) aux connecteurs DMA d'un module mémoire DMA au niveau du bloc 310. Les hommes de l'art reconnaîtront la façon dont les instructions d'application de programme peuvent comprendre des demandes de connexions de canal multimédia, de connecteur de bus et de connecteur DMA. Cela n'est pas décrit ici de manière plus détaillée afin de ne pas obscurcir les modes de réalisation de l'invention. Au niveau du bloc 320, le procédé comprend la détermination des connecteurs DMA disponibles à partir d'une réserve de connecteurs DMA disponibles, et l'attribution de connecteurs DMA à des canaux multimédia et à des connecteurs de bus de la TMC. Dans divers modes de réalisation, le procédé comprend des instructions de programme fournies à un module fournisseur multimédia afin de suivre et d'attribuer des connecteurs DMA disponibles à des canaux multimédia et à des connecteurs de bus d'une TMC à l'intérieur d'un espace utilisateur de la même façon que ce qui a été défini ci- dessus, par exemple, afin de fournir des instructions d'attribution. Les modes de réalisation de programme peuvent exécuter de plus des instructions afin de connecter physiquement les connecteurs DMA disponibles aux canaux multimédia et aux connecteurs de bus de la TMC. Les modes de réalisation de programme utilisent un ensemble d'API associé au module fournisseur multimédia pour exécuter les instructions décrites ci-dessus et pour connecter les connecteurs DMA disponibles aux canaux multimédia et aux connecteurs de bus de la TMC par l'intermédiaire d'un chemin de commande tel que le chemin de commande 212 représenté dans les figures 2A et 2B.
Dans le bloc 330, le procédé comprend la libération de connecteurs DMA vers la réserve de connecteurs DMA disponibles quand un connecteur DMA n'est plus utilisé. Comme cela a été décrit en association avec les figures 2A et 2B, le procédé comprend des instructions de programme fournies à un module groupe multimédia afin de libérer des connecteurs DMA vers la réserve de connecteurs DMA quand un connecteur DMA n'est plus utilisé. Les instructions de programme du module groupe multimédia utilisent un ensemble d'API fourni au module groupe multimédia pour exécuter des connexions de connecteur DMA et pour libérer des connecteurs DMA. Comme cela a été décrit en association avec les figures 2A et 2B, ces instructions de programme sont fournies à l'intérieur d'un espace utilisateur semblable à celui qui a été défini ci-dessus. Et, comme l'illustre le bloc 340, le procédé comprend l'utilisation d'un proxy de TMC pour acheminer le trafic de données multimédia entre le module mémoire DMA et un module logiciel DSP. Dans divers modes de réalisation, le procédé comprend des instructions de programme fournies par le module proxy pour acheminer le trafic de données multimédia provenant des tampons DMA dans le module logiciel DSP. Comme cela a été décrit en association avec les figures 2A et 2B, les instructions de programme du module proxy s'exécutent pour compter des établissements de fonction DMA et pour fournir de ce fait une synchronisation du traitement du module DSP en comptant les établissements de DMA. Les instructions de programme peuvent s'exécuter pour suivre et attendre qu'une fonction de DMA s'accomplisse et fournisse un connecteur DMA disponible. Les instructions de programme du module proxy peuvent fournir les adresses de connexions de connecteur DMA et de tampon à l'espace utilisateur, comme l'illustre la figure 2B. Et, selon certains modes de réalisation, comme l'illustre la figure 2B, des instructions de programme du module logiciel DSP sont fournies de même à l'espace utilisateur, par exemple, dans une mise en application de Linux, pour être conformes aux mandats GPL du source libre. Selon les divers modes de réalisation, les instructions de programme sont écrites afin de permettre l'attribution dynamique et la connexion en temps réel des connecteurs DMA aux canaux multimédia et aux connecteurs de bus des TMC de type Ti, El, et/ou J1, que de telles TMC soient situées sur une plateforme multimédia de type Linux ou sur une plate-forme de tout autre type de système d'exploitation.
À titre d'explication supplémentaire, mais non de limitation, l'exemple suivant est donné. D'abord, un signal d'appel est reçu sur un canal de signalisation SS7 et un canal de téléphonie, par exemple, un canal multimédia Ti ou un connecteur de bus H100, est choisi afin d'acheminer les données vocales. Cela est bien connu et compris des hommes de l'art. Un ensemble d'instructions d'applica- tion de programme de la plate-forme multimédia est choisi et lancé en association avec le canal de téléphonie sélectionné.
Comme le reconnaissent les hommes de l'art, les instructions de l'application de programme sélectionnée s' exécutent et peuvent déterminer, pour un signal d'appel particulier, quel est le type de traitement de signaux à appliquer.
Les instructions d'application de programme sélectionnée peuvent s'exécuter afin de construire un ensemble de besoins de traitement des signaux comme cela se fait sur des plates-formes multimédia. Par exemple, un tel ensemble de besoins de traitement des signaux peut comprendre des scripts de commande et des scripts de validation, comme ceux qui ont été mentionnés ci-dessus, afin de produire et/ou de détecter des signaux DTMF, de reproduire un fichier multimédia tel qu'un enregistrement audio provenant d'une boîte vocale, d'enregistrer vers un fichier multimédia, comme pour enregistrer un signal vocal vers une boîte vocale, de reproduire un texte vers des données vocales, et de reconnaître des paroles comme une IVR, entre autres possibilités.
Les instructions d'application de programme envoient cet ensemble de besoins de traitement des signaux au module groupe multimédia, comme cela a été décrit dans les figures 2A et 2B, qui reçoit la même chose. Le module groupe multimédia exécute des instructions selon les modes de réalisation de programme décrits dans ce document afin de mettre en application la demande des besoins de traitement des signaux.
Lorsque le module groupe multimédia est activé par la réception d'un ensemble de besoins de traitement des signaux, des instructions de programme en association avec un canal de téléphonie, sont fournies au module proxy. Le module proxy exécute des instructions de programme afin d'attribuer un connecteur DMA et de fournir des informations sur les adresses de connecteur DMA et de tampon associés à un pilote de DMA de la TMC. Le pilote de DMA de la TMC connecte le canal de téléphonie particulier, par exemple, un canal multimédia ou un connecteur de bus, au connecteur DMA attribué. De plus, les instructions de programme s'exécutent sur le module proxy pour connecter le connecteur DMA, associé à un module mémoire DMA, au module DSP.
Lorsqu'un appel est en cours, les instructions de programme s'exécutent sur le module proxy afin de recevoir et d'envoyer un trafic de données multimédia en échange entre le module DSP et le connecteur DMA. L'échange du trafic de données multimédia entre le module DSP et le connecteur DMA fait appel au processeur et à la mémoire de la plate-forme multimédia pour exécuter les instructions de programme. Ces instructions de programme s'exécutent de plus pour échanger le trafic de données multimédia entre le connecteur DMA et le canal multimédia et/ou le connecteur de bus de la TMC.
Comme cela a été mentionné ci-dessus, il est fourni des modes de 35 réalisation de programme qui comprennent de plus des instructions pour désacti- ver le module groupe multimédia à partir d'un canal de téléphonie particulier, par exemple, un canal multimédia ou un connecteur de bus, comme quand un appel est fini. Ici, les instructions de programme du module proxy s'exécutent pour demander au pilote de DMA de la TMC de déconnecter le canal de téléphonie particulier, par exemple, un canal multimédia ou un connecteur de bus, du connecteur DMA particulier. De plus, les instructions de programme du module proxy s'exécutent pour déconnecter le connecteur DMA du module DSP. Les instructions de programme du module groupe multimédia s'exécutent également pour informer le module fournisseur multimédia que le connecteur DMA particulier a été libéré.
La figure 4 est un schéma de principe qui illustre un autre mode de réalisation de procédé d'une plate-forme multimédia. Dans la figure 4, le procédé comprend la fourniture d'un premier ensemble d'API à un premier module, par exemple, un module fournisseur multimédia, au niveau du bloc 410. Le premier ensemble d'API peut recevoir des demandes d'attribution de connecteur DMA et peut exécuter des connexions de commutation des canaux multimédia et des connecteurs de bus d'une carte multimédia de télécommunication (TMC) comme cela a été décrit dans ce document. Au niveau du bloc 420, le procédé comprend la fourniture d'un deuxième ensemble d'API à un deuxième module, par exemple, un module groupe multimédia. Le deuxième ensemble d'API peut recevoir des instructions d'attribution de connecteur DMA à partir du premier module et peut exécuter une attribution de connecteur DMA par l'intermédiaire d'un proxy comme cela a été décrit ci-dessus. Le deuxième ensemble d'API peut exécuter des instructions afin de libérer des connecteurs DMA vers le premier module sur la base d'une rétroaction provenant du proxy selon les procédés décrits dans ce document. Au niveau du bloc 430, le procédé comprend la communication d'instructions d'attribution de connecteur DMA à partir du proxy vers la TMC afin d'établir des connexions entre les connecteurs DMA d'un module DMA et les canaux multimédia et les connecteurs de bus de la TMC. Dans les divers modes de réalisation, le proxy comprend des instructions afin d'acheminer le trafic de données multimédia entre un module logiciel DSP et le module DMA selon les connecteurs DMA attribués. Selon les divers modes de réalisation, le premier et le deuxième ensembles d'API, et les instructions de programme associées, sont écrits afin de permettre l'attribution dynamique et la connexion en temps réel des connecteurs DMA aux canaux multimédia et aux connecteurs de bus des TMC de type Ti, El, et/ou J1. Dans divers modes de réalisation, le premier et le deuxième ensembles d'API, et les instructions de programme associées, sont écrits afin de permettre l'attribution dynamique que les TMC mentionnées ci-dessus soient situées sur une plate-forme de type Linux, Unix, Mac, ou de tout autre système d'exploitation.
La figure 5 est un mode de réalisation d'un schéma de principe d'un réseau de télécommunications 500 qui peut comprendre des applications de services améliorés pour un utilisateur de télécommunications. Un appel téléphonique peut être passé par divers dispositifs de télécommunication validés, tels que des téléphones cellulaires, des dispositifs multifDnction (PDA, acronyme de Personal Digital Assistant, ce qui signifie assistant numérique personnel), et similaires, qui doivent se connecter à un réseau 500. Le réseau peut comprendre un ou plusieurs réseaux parmi un grand nombre de réseaux de desserte, comprenant, sans que cela soit une limitation, des réseaux téléphoniques publics commutés (ou PSTN, acronyme de Public Switched Telephone Network), le système mondial de communications mobiles (ou GSM, acronyme de Global System for Mobile communications), des réseaux de l'American National Standards Institute (ANSI), des réseaux locaux publics sans fil (ou PWLAN, acronyme de Public Wireless Local Area Network), et/ou des réseaux à protocole internet (ou IP, acronyme de Internet Protocol), pour n'en citer que quelques uns.
À des fins d'illustration, un appel téléphonique peut être décrit comme partant d'un réseau d'entreprise de téléphonie locale ( LEC ) 502. La LEC propage l'appel vers un commutateur 504, tel qu'un commutateur de départ ou un commutateur d'arrivée qui peut résider sur une plate-forme de télécommunica- tions, ou sur une plate-forme multimédia 506. Le commutateur de départ traite l'appel téléphonique et achemine l'appel jusqu'à sa destination 508. La destination peut se situer dans une LEC différente, une banque d'appels, ou dans un type différent de réseau de télécommunications, comme ceux mentionnés ci-dessus.
La plate-forme multimédia 506 est une plate-forme multimédia qui comprend des programmes et des techniques semblables à ceux qui ont été décrits dans ce document. La plate-forme multimédia 506 peut être utilisée comme une plate-forme de télécommunications propriétaire d'un réseau propriétaire. Cependant, la plate-forme multimédia 506 peut être utilisée également comme un central téléphonique privé (ou PBX, acronyme de Private Branch Exchange), un central tel qu'un central de service mobile (ou MSC, acronyme de Mobile Switching Center), ou un central téléphonique de rattachement, entre autres. Comme il a été possible de le constater cidessus, les plates-formes multimédia comprennent des ressources matérielles et logicielles sous la forme de commutateurs, de routeurs, de processeurs, de modules de traitement numérique des signaux (DSP), de mémoire, de cartes multimédia, et similaires qui peuvent agir sur, ou selon, des instructions informatiques exécutables.
Par exemple, le commutateur de départ 504 peut déterminer le moment où le traitement des services améliorés est requis pour un appel téléphonique. Quand un traitement de services améliorés est requis, le commutateur de départ instaure un dialogue avec la plate-forme multimédia, en échangeant avec la plate-forme multimédia 506 des messages de protocole de niveau plus élevé inclus à l'intérieur des messages de protocole SS7 de niveau plus bas.
Le système de signalisation numéro 7 ( SS7 ) est un protocole de communications bien connu basé sur le dialogue, utilisé pour la signalisation et qui peut être utilisé pour communiquer avec des platesformes informatiques telles qu'une plate-forme multimédia de télécommunications. Les données échangées en utilisant le couple de protocole SS7 entre un commutateur de départ et une plate-forme multimédia, sont formatées en général dans des messages de protocole d'application de réseau intelligent (ou INAP , acronyme de Intelligent Network Application Protocol). À la fin de l'échange des messages INAP qui comprend un dialogue entre un commutateur de départ 504 et une plateforme multimédia 506, la plate-forme multimédia 506 demande au commutateur de départ d'acheminer l'appel téléphonique jusqu'à une destination finale508 afin de faciliter le transfert d'un flot de données multimédia, par exemple, de la voix, des données, et/ou de la vidéo.
Bien que des modes de réalisation particuliers aient été illustrés et décrits dans ce document, les hommes de l'art se rendront compte qu'un agencement calculé pour réaliser les mêmes techniques peut être substitué aux modes de réalisation particuliers présentés. Cette description est prévue pour couvrir des adaptations ou des variations des divers modes de réalisation de l'invention. Il faut comprendre que la description cidessus a été faite de façon illustrative, et non restrictive. Une association des modes de réalisation ci-dessus, et d'autres modes de réalisation qui n'ont pas été décrits de manière particulière dans ce document apparaîtra de manière évidente aux hommes de l'art lors de l'examen de la description ci-dessus. La portée des divers modes de réalisation de l'invention comprend d'autres applications dans lesquelles les structures et les procédés ci-dessus sont utilisés. Par conséquent, la portée des divers modes de réalisation de l'invention doit être déterminée en se référant aux revendications jointes, ainsi qu'à l'ensemble complet des équivalents auxquels de telles revendications donnent droit.
Dans la description détaillée précédente, diverses caractéristiques sont regroupées ensemble en un seul mode d.e réalisation afin de rationaliser la description. Ce procédé de description ne doit pas être interprété en tant qu'un reflet d'une intention selon laquelle les modes de réalisation de l'invention nécessitent plus de caractéristiques que celles qui sont énumérées de manière expresse dans chaque revendication. Plutôt, comme les revendications suivantes le reflètent, le contenu inventif se situe dans moins que toutes les caractéristiques d'un seul mode de réalisation décrit. Ainsi, les revendications qui suivent sont incorporées par les présentes à la description détaillée, chaque revendication ayant une valeur en soi comme un mode de réalisation séparé.

Claims (10)

REVENDICATIONS
1. Plate-forme multimédia (104), comprenant: - un module fournisseur multimédia (202) pour recevoir des demandes d'application d'attribution de connecteur d'accès direct à la mémoire DMA; - un module groupe multimédia (206) pour recevoir des instructions d'attribution de connecteur d'accès direct à la mémoire DMA provenant du module fournisseur multimédia (202) ; - un premier pilote (216) associé à une carte multimédia de télécommunication TMC (214) pour recevoir des instructions provenant du module fournisseur multimédia (202) pour fournir des connexions de trafic de données multimédia sur la TMC (214) ; et un module proxy de TMC (220) couplé à un deuxième pilote (222) associé à la TMC (214), le module proxy de TMC (220) pour recevoir des instructions d'attribution de connecteur DMA provenant du module groupe multimédia (206) et pour communiquer les instructions d'adresses de connecteur DMA et de tampon (224) au deuxième pilote (222) pour connecter les connecteurs DMA (230).
2. Plate-forme multimédia selon la revendication 1, dans laquelle le module fournisseur multimédia (202) et le module groupe multimédia (206) sont fournis dans un espace utilisateur (203).
3. Plate-forme multimédia selon la revendication 1, dans laquelle les connecteurs DMA permettent aux canaux multimédia (218) et aux connecteurs de bus (219) d'accéder à un module d'accès direct à la mémoire DMA (226) couplé entre le module proxy de TMC (220) et la TMC (214).
4. Plate-forme multimédia selon la revendication 1, dans laquelle le module groupe multimédia (206) communique des instructions au module fournisseur multimédia (202) pour libérer un connecteur DMA (230).
5. Plate-forme multimédia selon la revendication 1, dans laquelle le module fournisseur multimédia (202) comprend une première bibliothèque d'interfaces de programme d'application API (204), le module fournisseur multimédia (202) pour extraire des API de la première bibliothèque d'API (204) pour exécuter des demandes de connexions pour installer et mettre fin à des connexions de canal multimédia (218), de connecteur de bus (219) , et de connecteur d'accès direct à la mémoire DMA (230).
6. Plate-forme multimédia selon la revendication 1, dans laquelle le module groupe multimédia (206) comprend une deuxième bibliothèque d'API (208), le module groupe multimédia (206) pour extraire des API de la deuxième bibliothèque d'API (208) pour attribuer des connecteurs DMA (230) .
7. Plate-forme multimédia selon la revendication 1, dans laquelle le module proxy de TMC (220) est couplé de plus à un module logiciel de traitement numérique des signaux DSP (228) afin de traiter le trafic de données multimédia avec la TMC (214).
8. Plate-forme multimédia selon la revendication 7, dans laquelle le module logiciel DSP (228) et une partie (220 1) du module proxy de TMC sont situés dans un espace utilisateur (203).
9. Plate-forme multimédia selon la revendication 1, dans laquelle la plate-forme multimédia (104) comprend un système d'exploitation basé sur Linux (205) et la TMC (214) comprend des canaux multimédia Ti et des connecteurs de bus H100 pour des connexions à un réseau numérique à intégration de services.
10. Plate-forme multimédia selon la:revendication 1, dans laquelle la plate-forme multimédia (104) comprend un support lisible par un ordinateur (152) ayant un programme qui fait exécuter un procédé à un dispositif, comprenant: la réception de demandes DMA pour acheminer un trafic de données multimédia à des connecteurs DMA (230) d'un module mémoire DMA (226) ; la détermination de connecteurs DMA disponibles à partir d'une réserve de connecteurs disponibles et l'attribution (209) de connecteurs DMA; la libération (210) de connecteurs DMA vers la réserve de connecteurs DMA disponibles quand un connecteur DMA n'est plus utilisé ; et l'utilisation d'un proxy de TMC (220) pour acheminer un trafic de données multimédia entre le module mémoire DMA (226) et un module logiciel DSP (228) sur la base des connecteurs DMA attribués.
FR0411864A 2003-11-14 2004-11-08 Attribution de connecteur dma Expired - Fee Related FR2862459B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/714,344 US7188195B2 (en) 2003-11-14 2003-11-14 DMA slot allocation

Publications (2)

Publication Number Publication Date
FR2862459A1 true FR2862459A1 (fr) 2005-05-20
FR2862459B1 FR2862459B1 (fr) 2007-02-16

Family

ID=34522975

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0411864A Expired - Fee Related FR2862459B1 (fr) 2003-11-14 2004-11-08 Attribution de connecteur dma

Country Status (5)

Country Link
US (2) US7188195B2 (fr)
KR (1) KR20050046588A (fr)
CN (1) CN1617556A (fr)
CA (1) CA2487714A1 (fr)
FR (1) FR2862459B1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802022B2 (en) * 2004-04-29 2010-09-21 Microsoft Corporation Generic USB drivers
US8825897B2 (en) * 2004-09-24 2014-09-02 Oracle America, Inc. Positional addressing for a computer cluster
US20070005553A1 (en) * 2005-06-30 2007-01-04 Ravi Sahita System for composite instrumented resource data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724583A (en) * 1991-09-18 1998-03-03 International Business Machines Corporation System for handling requests for DMA data transfers between a host processor and a digital signal processor
EP0871115A2 (fr) * 1997-04-04 1998-10-14 Microsoft Corporation Proxy en mode utiliateur des opérations en mode noyau dans un système d'exploitation d'un ordinateur
WO2000074368A2 (fr) * 1999-06-01 2000-12-07 Bsquare Corporation Couche plate-forme pour pilotes de peripherique

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0488685B1 (fr) * 1990-11-29 2000-11-02 Fujitsu Limited Circuit d'interface RNIS
GB9623298D0 (en) 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
KR100229897B1 (ko) * 1997-01-10 1999-11-15 윤종용 직접 메모리 억세스 전송방법에 따른 타이밍 모드선택장치
US5930525A (en) * 1997-04-30 1999-07-27 Adaptec, Inc. Method and apparatus for network interface fetching initial and data burst blocks and segmenting blocks and scheduling blocks compatible for transmission over multiple virtual circuits
US6092127A (en) * 1998-05-15 2000-07-18 Hewlett-Packard Company Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available
US6425021B1 (en) * 1998-11-16 2002-07-23 Lsi Logic Corporation System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts
WO2000036503A2 (fr) 1998-12-17 2000-06-22 Pcfirst.Com, Inc. Transfert automatique et selectif d'un logiciel et d'informations de configuration d'un ordinateur source a un ordinateur cible et amelioration automatique du logiciel
US6467088B1 (en) * 1999-06-30 2002-10-15 Koninklijke Philips Electronics N.V. Reconfiguration manager for controlling upgrades of electronic devices
US6487585B1 (en) * 1999-08-11 2002-11-26 Lucent Technologies Inc. System and method for “Open Mike” network-based communication
US6990660B2 (en) 2000-09-22 2006-01-24 Patchlink Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US6954928B2 (en) * 2001-08-08 2005-10-11 Hewlett-Packard Development Company, L.P. Method for selecting a set of patches to update a system of programs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724583A (en) * 1991-09-18 1998-03-03 International Business Machines Corporation System for handling requests for DMA data transfers between a host processor and a digital signal processor
EP0871115A2 (fr) * 1997-04-04 1998-10-14 Microsoft Corporation Proxy en mode utiliateur des opérations en mode noyau dans un système d'exploitation d'un ordinateur
WO2000074368A2 (fr) * 1999-06-01 2000-12-07 Bsquare Corporation Couche plate-forme pour pilotes de peripherique

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Direct Memory Access Channel Sharing Mechanism", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 30, no. 7, 1 December 1987 (1987-12-01), New York, US, pages 369 - 370, XP002364462 *
GALEN C HUNT: "Creating User-Mode Device Drivers with a Proxy", PROCEEDINGS OF THE USENIX WINDOWS NT WORKSHOP, 11 August 1997 (1997-08-11), pages 1 - 6, XP002251713 *
UHLIG R ET AL: "SoftSDV: A Pre-silicon Software Development Environment for the IA-64 Architecture", INTEL TECHNOLOGY JOURNAL, US, 1999, pages 1 - 14, XP002250151 *

Also Published As

Publication number Publication date
FR2862459B1 (fr) 2007-02-16
US7552250B2 (en) 2009-06-23
KR20050046588A (ko) 2005-05-18
US20050147253A1 (en) 2005-07-07
CA2487714A1 (fr) 2005-05-14
US7188195B2 (en) 2007-03-06
US20080016258A1 (en) 2008-01-17
CN1617556A (zh) 2005-05-18

Similar Documents

Publication Publication Date Title
US6343116B1 (en) Computer telephony application programming interface
CA2390063A1 (fr) Annuaires d'individus ou de groupes offrant un service d'assistance-annuaire ameliore
US7376710B1 (en) Methods and systems for providing access to stored audio data over a network
JP3490638B2 (ja) ネットワーク・リソース・サーバ
US8804936B2 (en) Shared media access for real time first and third party media control
US20060265088A1 (en) Method and system for recording an electronic communication and extracting constituent audio data therefrom
FR2862459A1 (fr) Attribution de connecteur dma
US20090080639A1 (en) Call volume based ivr call duration and port adjustment
KR100763321B1 (ko) 음성 브라우저, 음성 처리 시스템, 음성 브라우저애플리케이션 관리 방법 및 머신 판독 가능 저장 장치
EP2112811A1 (fr) Procédé et dispositif de fourniture à un appelé d'informations relatives à un appelant, sans décrochage
FR2816471A1 (fr) Systeme telephonique utilisant un ou plusieurs micro-ordinateurs
US20050071109A1 (en) Media platform testing
EP0821512B1 (fr) Procédé de mise à disposition de services à des abonnés d'un réseau téléphonique
US11601547B2 (en) Robocall screening
EP1676412B1 (fr) Procédé pour etablir un liaison directe de coordination entre un premier et un secnd centres de commande d'execution de services
WO2005006724A1 (fr) Procede et appareil de selection d'un son dans un systeme delivrant un son de rappel oriente abonne
EP1336289B1 (fr) Systeme pour l'echange d'informations entre un abonne et une unite de service
US9392111B2 (en) Reduction of on-hold call bandwidth consumption
JP5120805B2 (ja) Ip−pbxシステム
US20090154660A1 (en) Voice mail apparatus and control method of voice mail apparatus
FR3080512A1 (fr) Procede et systeme de detection de coupures de communications mobiles et de retablissement automatique des communications.
EP1466467A1 (fr) Procede, systeme et serveur permettant aux utilisateurs de telephones mobiles, abonnes a un reseau de telephonie mobile, de dialoguer en temps reel de maniere anonyme

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20090731