MXPA03002792A - Controles de comunicacion extensibles. - Google Patents

Controles de comunicacion extensibles.

Info

Publication number
MXPA03002792A
MXPA03002792A MXPA03002792A MXPA03002792A MXPA03002792A MX PA03002792 A MXPA03002792 A MX PA03002792A MX PA03002792 A MXPA03002792 A MX PA03002792A MX PA03002792 A MXPA03002792 A MX PA03002792A MX PA03002792 A MXPA03002792 A MX PA03002792A
Authority
MX
Mexico
Prior art keywords
communication
communications
extensible
activity
extendable
Prior art date
Application number
MXPA03002792A
Other languages
English (en)
Inventor
Andrew F Boardman
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA03002792A publication Critical patent/MXPA03002792A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/48Message addressing, e.g. address format or anonymous messages, aliases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4535Network directories; Name-to-address mapping using an address exchange platform which sets up a session between two nodes, e.g. rendezvous servers, session initiation protocols [SIP] registrars or H.323 gatekeepers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

La presente invencion esta dirigida a proporcionar controles de comunicaciones de software, extensibles y adaptables, para manejar comunicacion entre dispositivos. Un control de comunicaciones extensibles se utiliza para comunicarse entre el dispositivo de computo y un dispositivo de comunicaciones remoto. En un programa de computo que ha sido adaptado para utilizar el control de comunicaciones extensible, se recupera la informacion con respecto a una persona de contacto. A partir de la informacion de contacto recuperada, se determina que tipo de actividad puede ser utilizada para comunicarse con la persona de contacto en el dispositivo de comunicaciones remoto. Una vez que una actividad de comunicacion ha sido determinada a partir de la informacion de la persona de contacto, se envia una peticion de comunicaciones a una direccion de comunicacion asociada con esa actividad de comunicacion. Despues de la aceptacion, el control de comunicaciones extensible comienza la comunicacion con el dispositivo de comunicaciones remoto.

Description

CONTROLES DE COMUNICACION EXTENSIBLES CAMPO DE LA INVENCION La presente invención se refiere en general a comunicaciones de red y, en particular, a controles empotrables de aplicación para comunicación sobre redes.
ANTECEDENTES DE LA INVENCION Las redes de comunicación son bien conocidas en los campos de comunicaciones por computadora y telefonía. Por definición una red es un grupo de computadoras y/o dispositivos conectados a través de instalaciones o enlaces de comunicaciones. Las comunicaciones en red pueden ser de una naturaleza permanente, tal como a través de cables, o puede ser de una naturaleza temporal, tal como conexiones hechas a través de enlaces telefónicos o inalámbricos. Las redes pueden variar en tamaño, de una red de área local ("LAN"), consistiendo de pocas computadoras o estaciones de trabajo o dispositivos relacionados, a una red de área amplia ("WAN"), la cual interconecta computadoras y LANs que están geográficamente dispersadas, a un servicio de acceso remoto ("RAS"), que interconecta computadoras remotas a través de enlaces de comunicaciones temporales. Una red intermedia, a su vez, es la unión de múltiples redes de computadora, tanto similares como diferentes, a través de compuertas o enrutadores, que facilitan la transferencia de datos y conversión de varias redes. Una abreviatura bien conocida para la red intermedia de término es la "Internet". Como se entiende actualmente, el término capitalizado "Internet" se refiere a la colección de redes y enrutadores que utilizan el Protocolo Internet ("IP"), junto con protocolos de nivel más alto, tal como el Protocolo de Control de Transmisión/Protocolo Internet ("TCP/IP") o el Paquete de Datagrama Uniforme/Protocolo de Internet ("UDP/IP"), para comunicarse entre sí. La Internet recientemente ha visto un crecimiento explosivo en virtud de su habilidad para enlazar computadoras y dispositivos ubicados a través del mundo. Otros ambientes interactivos pueden incluir ambientes propietarios, tales como aquellos provistos por la red de Microsoft ("MSN") u otros proveedores de servicio en línea, así como la "web inalámbrica" provista por varios proveedores en red inalámbrica, especialmente aquellos en la industria de teléfono celular. Como se apreciará a partir de la siguiente descripción, la presente invención puede aplicarse en dichos ambientes interactivos; sin embargo, para propósitos de discusión, la Internet se utiliza como un ambiente interactivo ilustrativo para implementar la presente invención. La Internet rápidamente se ha vuelto un método popular de comunicación debido en gran parte a su habilidad para suministrar información en una variedad de formatos. Para comunicar la información sobre ia Internet, un usuario típicamente ejecuta un programa de comunicaciones se comunica con otros programas de comunicaciones que se ejecutan en computadoras remotas que también están conectadas a la Internet. Estos programas de comunicaciones convencionales generalmente utilizan un protocolo de comunicaciones individual asociado con el tipo de programa de comunicaciones. Por ejemplo, un programa de comunicaciones de vídeo puede utilizar un protocolo de comunicaciones de vídeo de propietario, y un programa de plática de texto puede utilizar un protocolo de comunicaciones de plática propietario. Diferentes tipos de protocolos de comunicaciones por lo general son específicos a programas de comunicaciones particulares. Por lo tanto un programa de plática textual de un proveedor de software puede no necesariamente utilizar el mismo protocolo de plática que un programa de plática de otro proveedor de software. Dicho ambiente de comunicaciones de propietario ha conducido a una miríada de diferentes tipos de comunicaciones y dentro de esos tipos de comunicaciones una miríada de diferentes de protocolos para habilitar cada tipo de comunicación. Otro resultado del ambiente de aplicación de comunicaciones diversificado es que a medida que se descubren mejores prácticas por un desarrollador de software particular y se implementan en su programa de comunicaciones, solamente ese programa de comunicaciones se beneficia de estas mejores prácticas. Otros desabolladores de software podrían necesitar que cada uno individualmente actualice su software si fuera necesario implementar una "mejor práctica" recientemente desarrollada. Otra desventaja con los programas de comunicaciones actuales es que cada programa de aplicación generalmente almacena información de contacto solamente para otros usuarios de ese programa de comunicaciones particular. Por consiguiente, cuando se trata de buscar un usuario particular quien pueda estar en línea utilizando un programa de comunicaciones, el procedimiento de poner en contacto al usuario generalmente es un procedimiento de ensayo y error hasta que se ubica la ubicación de comunicaciones correcta. Además, la información de contacto necesita volver a ser introducida para cada programa de comunicaciones separado. Otra ventaja más de los programas de comunicaciones convencionales es que generalmente están separados de otras aplicaciones utilizadas en ambientes de cómputo. Por ejemplo, aunque es posible en realidad correr una conferencia de vídeo una aplicación de procesamiento de palabra, generalmente es difícil correr una sesión de procesamiento de palabra colaborativa que podría incluir un componente de comunicaciones de vídeo en la misma aplicación. Es posible diseñar dichas aplicaciones, sin embargo, esta capacidad es equivalente a diseñar una aplicación de comunicaciones y una aplicación de procedimiento de palabra y después crear las integraciones en forma manual. Dichas creaciones manuales son de un propósito individual (por ejemplo, procesamiento de palabra y conferencia de vídeo, procesamiento de palabra y charla de texto, o juego de vídeo y charla de audio). Estas creaciones manuales no son extensibles (por ejemplo, no pueden ser actualizados, modificadas o substituidas como componentes modulares) y presentan las desventajas de mantener contactos separados. También, a medida que nuevos tipos de comunicaciones se hacen disponibles, podría ser necesario actualizar dichas aplicaciones de comunicaciones híbridas manualmente para incluir nuevos tipos o combinaciones de tipos de comunicaciones. Por consiguiente, existe la necesidad de un ambiente de comunicaciones más flexible y extensible. Podría ser deseable que un nuevo ambiente de comunicaciones tenga la habilidad de definir dinámicamente un tipo de protocolo y/o comunicación proporcionando información de contacto para un usuario particular. Además podría ser deseable poder obtener las mejores prácticas para aplicaciones de comunicaciones, de tal manera que todas las aplicaciones adaptadas ai uso de las comunicaciones podrían recibir las mejores prácticas en cualquier aplicación de comunicación que se obtenga.
COMPENDIO DE LA INVENCION La presente invención está dirigida a proporcionar controles de comunicaciones de software extensibles y adaptables (componentes de programa) para manejar la comunicación entre dispositivos. En un aspecto de la presente invención, un control de comunicaciones extensible se utiliza para comunicarse entre dispositivo de cómputo y un dispositivo de comunicaciones remoto. En un programa de cómputo en el dispositivo de cómputo que ha sido adaptado para utilizar el control de comunicaciones extensible, se recupera información con respecto a una persona de contacto. A partir de la información de contacto recuperada, se determina que tipos de actividades se pueden utilizar para comunicarse con la persona de contacto en el dispositivo de comunicaciones remoto. Las actividades de contacto incluyen no solo una dirección de comunicación de persona de contacto, sino que también que tipo de comunicación y potencialmente que programa de comunicaciones debe ser utilizado cuando se hace ia comunicación. Una vez que se ha determinado la actividad de comunicación a partir de la información de la persona de contacto, se envía una petición de comunicación a una dirección de comunicación asociada con esa actividad de comunicación. Asumiendo que la petición de comunicación es aceptada, entonces el control de comunicaciones extensible puede comenzar la comunicación con el dispositivo de comunicación remoto. En algunas modalidades de la presente invención, es posible que la actividad de comunicación no especifique un programa de comunicaciones particular, sino que más bien el dispositivo de comunicaciones remoto determina un programa por omisión con el cual comunicarse. En otra modalidad ilustrativa de la presente solicitud, el programa por omisión es un programa de caparazón que aloja un control de comunicaciones extensible. La comunicación entre dispositivos puede ser cualquiera de una miríada de tipos de comunicación, incluyendo, pero no limitándose a, pláticas de texto, mensajes instantáneos, conferencia en vídeo, conferencia en audio, y similares. Estas comunicaciones pueden tomar lugar sobre redes de cómputo convencionales y otros tipos de redes, tales como redes telefónicas. En otro aspecto de la presente invención, el dispositivo de comunicaciones y el dispositivo de cómputo no se comunican en una forma par a par. Por consiguiente, se crea una "conversación" separada que ambos dispositivos hacen contacto en una ubicación intermediaria en donde se comunican. Dicha conversación puede ser etiquetada con un identificador, de manera que el dispositivo de cómputo y el dispositivo de comunicaciones remoto pueden comunicarse con el otro una vez que ambos hayan utilizado el identificador de conversación para conectase a la conversación. En otro aspecto más de la presente solicitud, el control de comunicaciones extensible es un módulo adaptable que puede ser utilizado por muchos tipos de programas incluyendo, pero no limitándose a, programas de comunicaciones. Este aspecto de la capacidad de extensión de la presente invención permite que los programas especifiquen que control de comunicaciones debe ser utilizado, pero el control después puede ser dirigido para proporcionar diferentes servicios de comunicación según sea necesario o deseado. Estos programas pueden especificar extensiblemente qué tipos de comunicaciones, protocolos, direcciones y configuraciones deben ser utilizados por el control de comunicaciones extensibles. Ya que en este aspecto de la presente invención el control de comunicaciones extensible en un nodulo que es sensible a aplicaciones adaptadas para utilizarlo, y el control de comunicaciones extensible puede ser separado de un programa y unirse a otro programa. En dicha modalidad, una separación y una unión podrían romper la conexión de comunicaciones, pero la vuelve a unir una vez que el control de comunicaciones extensible ha sido unido a otro programa. En una modalidad alternativa de la presente invención, la comunicación puede continuar a un después de que el control de comunicaciones extensible ha sido separado de un programa y mientras está siendo transferido para ser unido a otro programa. En otros aspectos más de la presente invención, el control de comunicaciones extensible puede ser adaptado para comunicarse ya sea con dispositivos que no sean de cómputo o con dispositivos de cómputo, como dispositivos de comunicaciones remotos. Por consiguiente, en una modalidad, el dispositivo de comunicaciones remoto también puede incluir un programa sensible a las peticiones de comunicaciones de un control de comunicaciones extensible. Dicho programa en un dispositivo de comunicaciones remoto puede determinar de una petición de comunicación recibida cualesquiera actividades de comunicación extensible y activar uno o más programas de comunicaciones en el dispositivo de comunicaciones remoto para comunicarse utilizando dichas actividades de comunicación extensible. Como se puede ver a partir del compendio anterior, la presente invención proporciona un ambiente de comunicación extensible y adaptable para proporcionar comunicaciones entre dispositivos junto con un medio y sistema legible por computadora.
BREVE DESCRIPCION DE LOS DIBUJOS Los aspectos anteriores y muchas de las ventajas pendientes de esta invención serán más fácilmente apreciadas al mismo tiempo que se entiendan mejor haciendo referencia a la siguiente descripción detallada, cuando se tomen junto con los dibujos anexos en donde: La Figura 1 es un diagrama pictórico de un número de dispositivos conectados a una red que proporciona una conexión de comunicaciones entre dispositivos de acuerdo con la presente invención; La Figura 2 es un diagrama de bloque de un dispositivo de comunicaciones tal como una computadora, que permite conexiones de comunicación de acuerdo con la presente invención; La Figura 3 es un diagrama que ilustra las acciones tomadas por un dispositivo de cliente, una base datos de contacto, un almacenamiento de conversación, y un dispositivo de comunicaciones para proporcionar una conexión de comunicación de acuerdo con la presente invención; La Figura 4 es diagrama de flujo de resumen ilustrando una rutina de conexión de comunicación implementada por un dispositivo de comunicaciones para proporcionar una conexión de comunicación de acuerdo con la presente invención; La Figura 5 es un diagrama de flujo de resumen ilustrando una rutina de conexión de contactos para formar una conexión de comunicación de acuerdo con la presente invención; La Figura 6 es un diagrama de flujo de resumen ilustrando una rutina de conexión de contactos para formar una conexión de comunicación de acuerdo con la presente invención; La Figura 7 es un diagrama de flujo de resumen ilustrando una subrutina de conexión de comunicación para establecer y comunicarse sobre una conexión de comunicaciones de acuerdo con ia presente invención; La Figura 8 es una representación pictórica simplificada de comunicaciones entre aplicaciones con controles de comunicaciones embebidos de acuerdo con la presente invención; La Figura 9 muestra una aplicación de caparazón ilustrativa para contener un control de comunicaciones de acuerdo con la presente invención; La Figura 10 es un diagrama de flujo de resumen ilustrando una rutina de separación de control de comunicaciones de acuerdo con la presente invención; y La Figura 11 muestra un diagrama ilustrativo de un control de comunicaciones que se está separando de una aplicación que tuvo un control de comunicaciones embebido de acuerdo con la presente invención.
DESCRIPCION DETALLADA DE LA MODALIDAD PREFERIDA La descripción detallada que sigue está representada enormemente en términos de procedimientos y representaciones simbólicas de operaciones a través de componentes de computadora convencionales, incluyendo un procesador, dispositivos de almacenamiento de memoria para el procesador, dispositivos de presentación conectados y dispositivos de entrada. Además, estos procedimientos y operaciones pueden utilizar componentes de cómputo convencionales en un ambiente de cómputo distribuido heterogéneo, incluyendo servidores de archivo remotos, servidores de computadora y dispositivos de almacenamiento de memoria. Cada uno de estos componentes de cómputo de distribución convencional es accesible por el procesador a través de una red de comunicaciones. La presente invención está dirigida a proporcionar comunicaciones entre controles de comunicaciones extensibles en ambientes de red de cómputo y que no son de cómputo. Un control de comunicaciones extensible se utiliza para comunicarse entre un dispositivo de cómputo 200 y un dispositivo de comunicaciones remoto 150. El dispositivo de cómputo 200 tiene por lo menos un programa de cómputo que ha sido adaptado para utilizar un control de comunicaciones extensible de acuerdo con la presente invención. Este control de comunicaciones después puede ser utilizado para comunicarse con otros dispositivos en la red, tales como un dispositivo de comunicaciones 150. Los detalles de dichas comunicaciones y las interrelaciones entre los controles de comunicaciones, programas que han sido adaptados para utilizar controles de comunicaciones, y dispositivos serán explicados con mauro detalle más adelante. Como se explicó previamente, el término capitalizado "Internet" se refiere a la colección de redes y enrutadores que utilizan comunicaciones entre sí. La Figura 1 ilustra un diagrama de bloque funcional de un sistema de comunicaciones 100 para proporcionar conexiones de comunicaciones entre dispositivos. Aunque el sistema 100 generalmente opera en un ambiente de cómputo distribuido que comprende sistemas de computadora individuales interconectados sobre una red 110 (tal como la Internet), se apreciará por aquellos expertos en la técnica que el sistema 100 puede funcionar igualmente en redes que no son de cómputo, tales como la red POTS (Sistema Telefónico Antiguo Completo) como se describe más adelante. El sistema 100 mostrado en la Figura 1 incluye un dispositivo de cliente 200, una base de datos de contacto 105, un dispositivo de comunicaciones 150, un proveedor de servicios de comunicación 120 y un almacenamiento de conversación 125, todos interconectados a través de una red 110. El dispositivo de cliente 200 tiene capacidades de cómputo y puede ser cualquier forma de dispositivo capaz de procesar las rutinas de la presente invención. El dispositivo de comunicaciones 150 también puede ser un dispositivo de cómputo o un dispositivo más simple, tal como un teléfono. Se apreciará por aquellos expertos en la técnica que el almacenamiento de conversación 125 y la base de datos de contacto 105 pueden residir en cualquier dispositivo accesible por el dispositivo de cliente 200 mostrado en el sistema de comunicaciones 100. Un dispositivo de cliente de computadora ilustrativo 200 se muestra con mayor detalle en la Figura 2 y se describe a continuación. Además, aunque solamente se han mostrado un dispositivo de cliente individual 200 y un dispositivo de comunicaciones individual 150, se apreciará que se pueden incluir en el sistema 100 más dispositivos de cliente 200 y/o dispositivos de comunicaciones 150. El dispositivo de cliente 200 también puede ser denominado como un dispositivo de origen, y el dispositivo de comunicaciones 150 puede ser denominado como o un dispositivo de contacto. La Figura 2 ilustra un dispositivo de cliente ilustrativo 200 para implementar los aspectos de aquí en adelante descritos de la presente invención. En su forma más básica, el dispositivo de cliente 200 típicamente incluye por lo menos una unidad de procesamiento 202 y una memoria 204. Dependiendo de la configuración y tipo exactos de dispositivo de cliente, la memoria 204 puede ser volátil (tal como RAM), no volátil (tal como ROM, memoria flash, etc.), o alguna combinación de las dos. Esta configuración más básica se ilustra en la Figura 2 a través de la línea punteada 206. El dispositivo de cliente 200 además puede tener características/funcionalidad adicionales. Por ejemplo, el dispositivo 200 también puede incluir almacenamiento adicional (removible y/o no removióle) incluyendo, pero no limitándose a, discos o cintas magnéticas u ópticas. Dicho almacenamiento adicional se ilustra en la Figura 2 a través del almacenamiento removible 208 y el almacenamiento no removible 210. El medio de almacenamiento de computadora incluye medios volátiles y no volátiles, removibles y no removibles, implementados en cualquier método o tecnología para el almacenamiento de información, tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos. La memoria 204, el almacenamiento removible 208 y el almacenamiento no removible 210 todos son ejemplos de medios de almacenamiento por computadora. Los medios de almacenamiento de computadora incluye, pero no se limitan a, RAM, ROM, EEPROM, memoria flash, u otra tecnología de memoria, CD-ROM, discos versátiles digitales ("DVD"), u otro almacenamiento óptico, casetes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda ser utilizado para almacenar o leer información deseada y que pueda ser accesado por el dispositivo de cliente 200. Cualquier medio de almacenamiento por computadora puede ser parte del dispositivo de cliente 200. Los medios de almacenamiento por computadora del dispositivo de cliente 200 también contienen programas y/o rutinas de computadora adecuados para comunicarse con y procesar información de computadoras remotas, tales como el proveedor de servicio de comunicación 120 y los dispositivos de cliente remotos 200. El dispositivo de cliente 200 también puede contener una conexión de comunicaciones 212 que permite que el dispositivo se comunique con otros dispositivos. La conexión de comunicaciones 212 es un ejemplo de medios de comunicación. Los medios de comunicación típicamente modalizan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte, e incluye cualquier información de medios de suministro. El término "señal de datos modulada" significa una señal que tiene una o más de sus características fijas o cambiadas de tal manera que codifica la información en la señal. A manera de ejemplo y no de limitación, los medios de comunicación incluyen medios con cable, tales como una red con cable o conexión con cable directa y medios inalámbricos, tales como medios acústicos, radiofrecuencia, infrarrojos y otros medios inalámbricos. El término "medios legibles por computadora" como se utiliza aquí, incluye medios de almacenamiento, medios de comunicación, y cualquier otro medio legible por computadora conocido por aquellos expertos en la técnica. El dispositivo de cliente 200 también puede tener dispositivos de entrada 214 tales como un teclado, ratón, pluma, dispositivo de entrada de voz, dispositivo de entrada táctil, etc. El dispositivo(s) de salida 216, tal como una presentación, bocinas, impresora, etc., también puede ser incluido. Ya que todos estos dispositivos son bien conocidos en la técnica, éstos no se describen aquí. Para ilustrar la operación de los controles de comunicaciones formados de acuerdo con esta invención, la Figura 3 ilustra una secuencia de interacciones entre dispositivos y el sistema de comunicaciones 100 mostrado en la Figura 1. Los dispositivos del sistema 100 ilustrados en la Figura 3 incluyen el dispositivo de cliente 200 y el dispositivo de comunicaciones 150 junto con una base de datos de contacto 100 y un almacenamiento de conversación 125. Las interacciones de y las rutinas realizadas por los varios dispositivos se ¡lustran y se describen con mayor detalle haciendo referencia a las Figuras 4-7. Como se puede ver a partir de la discusión anterior de la comunicación entre dispositivos de la presente invención, mucho del procesamiento de comunicaciones es manejado por el dispositivo de cliente 200. En otros aspectos de la presente invención, el dispositivo de comunicaciones 150 puede ser un dispositivo menos sofisticado que el dispositivo de cliente 200. Por ejemplo, cuando se utiliza un tipo de telefonía de comunicación de audio, podría ser posible que el dispositivo de cliente 200 inicie una petición de comunicación a un dispositivo de comunicaciones 150 que es un teléfono. Esto podría lograrse teniendo las definiciones de los protocolos de telefonía que son necesarios para comunicarse con un teléfono y la dirección necesaria (es decir, número telefónico) para buscar un contacto particular en su dispositivo de comunicaciones (es decir, el teléfono). La Figura 6 ilustra más adelante el procesamiento simplificado que podría llevar a una interacción del dispositivo de comunicaciones de contacto simple 150 con un dispositivo de cliente 200 más sofisticado. Regresando a la Figura 3, la conexión y procesamiento de comunicaciones se inicia cuando un dispositivo de cliente 200 inicia una nueva "actividad" de comunicación 302. La nueva actividad de comunicación 302 requerirá de información de contacto, la cual en esta interacción ilustrativa es obtenida utilizando una petición de dirección 304 a la base de datos de contacto 105. La petición de dirección 304 enviada a la base de datos de contacto 105 incluye información con respecto ala comunicación iniciada incluyendo los tipos de comunicación que pueden ser deseados y cualquiera protocolos y/o detalles de comunicación preferidos enviados por el dispositivo de cliente 200. La base de datos de contacto 105 entonces determina que direcciones, si hay alguna, satisface los requerimientos enviados por la petición de dirección. Por ejemplo, si tanto una petición de vídeo como una petición de plática de texto fueran indicadas en la petición de dirección enviada a la base de datos de contacto 105, entonces la base de datos de contacto 105 puede regresar posibles actividades 306 que coinciden con los tipos de requerimientos de plática de vídeo y de texto de la petición de dirección 304. El concepto de una "actividad" incluye las siguientes piezas: una dirección, un tipo de comunicación, y opcionalmente, un programa de comunicaciones, proveedor de servicios, y/o protocolo.
La dirección se utiliza para determinar en donde enviar una invitación para comunicación utilizando la actividad. El tipo de comunicación se utiliza para determinar que tipo de invitación de comunicación iniciar en el extremo de recepción. Si un proveedor de servicio es incluido, éste también puede incluir información sobre donde enviar la invitación de actividad inicialmente (por ejemplo, posiblemente enviando la invitación al proveedor de servicio para después enviarla a la dirección de contacto). La inclusión de un programa de comunicación específico (o programa con un control de comunicaciones extensible empotrado) proporciona una indicación adicional de donde dirigir una invitación de actividad a un dispositivo de comunicaciones 150. Si el dispositivo de comunicaciones 150 no ha cargado el programa(s) especificado, entonces la invitación puede hacer que el programa(s) sea cargado, o por lo menos una indicación de que programa(s) cargar, podría parecer en el dispositivo de comunicaciones 150. En una modalidad ilustrativa, el dispositivo de contacto 150 incluye un programa para manejar tales invitaciones. Un diagrama de flujo ilustrativo para dicho programa se muestra en la Figura 5 y se describe a continuación. Si un programa de comunicaciones para el tipo de comunicación puede utilizar un número de protocolos, entonces al especificar un protocolo en la actividad, el protocolo correcto podría ser utilizado en una invitación de comunicación. En un escenario ilustrativo, si una actividad de charla de texto para el contacto es una sesión de "hablar" UNIX, entonces el nombre del usuario y el nombre del huésped de la computadora UNIX son regresados junto con la indicación de que un protocolo de conversación UNIX es necesario para poner en contacto a la persona de contacto en el nombre de usuario y nombre de huésped. Claro que, más de un tipo de actividad puede estar disponible para un contacto particular, y por consiguiente, múltiples tipos de direcciones y protocolos pueden ser regresados, 306. Aquellos expertos en la técnica apreciarán que muchos tipos de actividades son posibles y compatibles con la presente invención. Además, en un aspecto de la presente invención, la definición de actividad es extensible a través de los dispositivos de cliente. Otros ejemplos ilustrativos serán entendidos a partir de la descripción que sigue. Después, el dispositivo de cliente 200 determina 308 una dirección o direcciones y protocolos para utilizarse para hacer contacto con el contacto en el dispositivo de comunicaciones 150. Por ejemplo, si el contacto o el usuario del dispositivo de cliente 200 ha indicado una preferencia para un tipo particular de actividad, aunque múltiples tipos estén disponibles, esta preferencia puede ser comunicada con las direcciones y el tipo preferido de actividad podría ser seleccionado si se puede utilizar por ambas partes. El procedimiento de determinación 310 puede ser realizado exclusivamente en el dispositivo de cliente 200 o el procedimiento de determinación 308 también puede incluir interacciones con otros dispositivos para determinar si el contacto está actual disponible en una dirección particular utilizando un tipo particular de comunicación. Por ejemplo, con algunos sistemas de charla de texto de mensaje instantáneo, los usuarios y contactos difunden o comunican una indicación de cuando están disponibles para charlar. Por lo tanto, la determinación de que dirección es utilizar para la comunicación además puede incluir determinar que dirección o direcciones está actualmente en contacto en línea. Una vez que las direcciones, protocolos y posiblemente programas de comunicaciones específicos han sido determinados, 308, entonces se genera, 310, una nueva petición o peticiones de comunicación (si se desean múltiples tipos de comunicación). En la interacción mostrada en la Figura 3, existe una comunicación que no es par a par que tiene un servicio intermediario a través del cual se tomará la comunicación real con el contacto. Por lo tanto, el dispositivo de cliente 200 proporciona detalles de conversación 312 a un almacenamiento de conversación 125. El almacenamiento de conversación 125 es un lugar de coincidencia virtual, en donde el dispositivo de cliente 200 y el dispositivo de comunicaciones 150 puede coincidir y procesar sus comunicaciones en una "conversación". Aquellos expertos en la técnica apreciarán que el almacenamiento de conversación 125 puede residir en un proveedor de servicio de comunicación 120, en el dispositivo de cliente 200, en el dispositivo de comunicaciones 150, o aún más en otros dispositivos conocidos por aquellos expertos en la técnica. Una conversación, como se utiliza en la presente invención, es cualquier comunicación que invoca un servicio intermediario que aloja comunicación en un ambiente que no es de par a par por naturaleza. Una vez que los detalles de conversación 312 han sido enviados al almacenamiento de conversación 125, entonces se crea una conversación 314 en el almacenamiento de conversación. Después se regresa una confirmación de conversación 316 al dispositivo de cliente 200 proporcionando los detalles para conectarse a la conversación creada. En seguida, se envía una petición de comunicación 318 a la dirección que ha sido ubicada para el contacto anterior. Esta petición de comunicación (invitación) 318 es enviada, en esta modalidad, al dispositivo de comunicaciones 150 que corresponde a la dirección de comunicación. Una vez que el dispositivo de comunicaciones 150 recibe la petición de comunicación, reconoce, 320, la actividad de la petición de comunicación. Si la invitación es aceptada, el dispositivo de comunicaciones comienza una aplicación 322 que corresponde a la actividad específica de la petición de comunicación. Por ejemplo, una petición de comunicación 318 puede especificar una aplicación particular ya sea a través del nombre o a través de alguna otra indicación (por ejemplo, protocolo, tipo de archivo, tipo de comunicación, etc.) como parte de la actividad especificada en la petición de comunicación. Alternativamente, el dispositivo de comunicaciones 150 puede tener una aplicación por omisión para procesar actividades particulares. Una vez que la aplicación ha iniciado, 322, en el dispositivo de comunicaciones 150, después se envían detalles de conexión 324 al almacenamiento de conversación 125, conectando así el dispositivo de comunicaciones 120 al almacenamiento de conversación 125. Además, se puede enviar directamente un reconocimiento de comunicación 326 al dispositivo de cliente 200. Aquellos expertos en la técnica y otros apreciarán que la unión en una comunicación en el almacenamiento de conversación 125 puede ser un reconocimiento de comunicación suficiente y que en ciertas modalidades de la presente invención, no se envía ningún reconocimiento de comunicación adicional 326 al dispositivo de cliente 200. Una vez que el dispositivo de cliente 200 y el dispositivo de comunicaciones 150 tienen todos los detalles de conexión para conectarse al almacenamiento de conversación 125, éstos pueden proseguir con la comunicación entre sí 328, 330 a través del almacenamiento de conversación 125. Aquellos expertos en la técnica y otros apreciarán que el almacenamiento de conversación 125 puede incluir cualquiera de una miríada de programas de comunicación intermediarios conocidos por aquellos expertos en la técnica. Los almacenamientos de comunicación 125 pueden estar presentes en reflectores de conferencia de vídeo, aplicaciones de servidor de charla de texto, aplicaciones de servidor de charla de audio, y 'similares. También se apreciará por aquellos expertos en la técnica que la Figura 3 representa solamente un grupo ilustrativo de interacciones entre los dispositivos del sistema 100. Por lo tanto, otras configuraciones de dispositivos y conexiones pueden ser incluidas en otras interacciones. Las interacciones de la Figura 3 son meramente ilustrativas para ayudar en el entendimiento de la presente invención, y no representan ser limitantes del alcance de la presente invención. Como se ilustra en las Figuras 1, 2 y 3, la modalidad del sistema de comunicaciones 100 descrito aquí incluye un dispositivo de cliente 200, que es utilizado para iniciar las comunicaciones y procesarlas. Un diagrama de flujo ilustrando una rutina de conexión de usuario 400 para iniciar las comunicaciones a partir de un dispositivo de cliente 200, de acuerdo con una modalidad de la presente invención, se muestra en la Figura 4. La rutina de conexión de usuario 400 comienza en el bloque 401 y prosigue al bloque 405, en donde se inicia una nueva comunicación. Después en el bloque 410, la rutina 400 obtiene posibles actividades de comunicación para una persona de contacto. Estas actividades pueden ser manualmente introducidas por un usuario, obtenidas de una base de datos de contacto loca! 105 u obtenidas de un sitio remoto, tal como un directorio de amplia compañía o un motor de búsqueda, y similares. En la modalidad ilustrativa de la presente invención, la base de datos de contacto 105 contiene un nombre, dirección de correo, direcciones de correo electrónico, direcciones de tiempo real, etc., pero no almacena un mapa entre las direcciones y actividades en tiempo real. El usuario selecciona un contacto para comunicarse con y selecciona una actividad, y dispositivo de cliente 200 establece cual de las direcciones de contacto utilizar la realizar esa actividad con algún proveedor de servicio particular disponible del dispositivo de cliente 200. En modalidades alternativas de la presente invención, un registro de contacto puede indicar una dirección preferida para una actividad. En otra modalidad, la dirección preferida puede ser almacenada en cualquier parte, por ejemplo, en una "base de datos de preferencia de tarea por usuario" que solamente está en lazada débilmente con el registro de contacto, en una preferencia de sistema amplio compartida por todos los usuarios, o determinada en el vuelo basándose en una determinación de presencia del usuario (por ejemplo, en línea a través de un teléfono celular, en línea a través de una conexión de banda amplia, en línea en el trabajo, en línea en la casa, etc.). Después, en el bloque 415, se hace una determinación de que dirección o direcciones y aplicaciones deben ser utilizadas para comunicarse con la persona de contacto. Como se observó anteriormente, la determinación de una dirección o direcciones para comunicarse con una persona de contacto puede ser realizada en una variedad de formas. Sin embargo, en una modalidad ilustrativa de la presente invención, todas las actividades disponibles de una base de datos de contacto 105 para una persona de contacto particular son recuperadas en el bloque 410 y después son comparadas con la nueva comunicación que fue iniciada en el bloque 405 para determinar si cualesquiera son direcciones apropiadas y las combinaciones de tipo de comunicación para comunicarse con un dispositivo de comunicaciones 150 asociado con la persona de contacto.
Una vez que una dirección o direcciones ha sido determinada junto con cualquier tipo de comunicación asociado u otra información de actividad, entonces en el bloque 420 se genera una nueva petición de comunicación incluyendo por lo menos una actividad. En el bloque de decisión 425, se hace una determinación si toda la actividad o actividades son de par a par (por ejemplo, no participa ningún dispositivo intermediario o administrador de comunicación) por naturaleza. Si todas las actividades son para par, entonces las peticiones de comunicación pueden ser enviadas inmediatamente al dispositivo de comunicaciones 150, en el bloque 430. Sin embargo, si se determinó, en el bloque de decisión 425, que no todas las actividades son para par (por ejemplo, existe por lo menos un dispositivo intermediario que participa en o maneja la comunicación), entonces el procesamiento continúa al bloque 440, en donde se inicia una conversación remota después de lo cual la petición de comunicación es enviada en el bloque 430. Después, se hace una determinación en bloque de decisión 435 si se reconoció una petición. Si no se reconoció ninguna petición, entonces la rutina 400 finaliza en el bloque 499. Sin embargo, si por lo menos se reconoce una actividad de la petición de comunicación, entonces el procesamiento puede continuar al bloque 700 de subrutina, en donde la comunicación comienza entre los dispositivos. La subrutina de comunicación 700 se muestra en la Figura 7 y se describe con detalle más adelante. Una vez que la subrutina 700 de comunicación regresa, entonces la rutina 400 finaliza en el bloque 499.
Como se ilustra en las Figuras 1 y 3, la modalidad del sistema de comunicación 100 descrito aquí describe un dispositivo de comunicaciones 150 que se utiliza por una persona de contacto para comunicarse con un dispositivo de cliente 200. Como ya se observó, el dispositivo de comunicaciones 150 puede ser un dispositivo de cómputo como el dispositivo de cliente 200, o puede ser un dispositivo de comunicaciones más simple, tal como un teléfono. Por consiguiente, las Figuras 5 y 6 ilustran rutinas de conexión de comunicación ilustrativas a partir de una perspectiva de una persona de contacto utilizando un dispositivo de comunicaciones 150. La Figura 5 ilustra una rutina de conexión de comunicaciones ilustrativa 500, utilizando un dispositivo de comunicaciones 150 que incluye la habilidad de ejecutar aplicaciones de cómputo y está compuesto de componentes similares aquellos del dispositivo de cliente 200. La rutina de conexión de comunicaciones 500 puede ser modalizada en un procedimiento residente en un dispositivo de comunicaciones 150 para manejar peticiones de comunicación de entrada. Dicho procedimiento residente también puede comunicar el estado de un dispositivo de comunicaciones 150, de manera que los usuarios que desean comunicarse con la persona de contacto estarán al pendiente del estado actual o real de la persona de contacto. La rutina de conexión de comunicaciones de contacto 500 comienza en el bloque 501 y prosigue al bloque 505, en donde se recibe una nueva petición de comunicación. Después, en el bloque 510 se hace una determinación de que tipos de actividades son modalizadas en la petición de comunicación. Una vez que las actividades solicitadas han sido determinadas en el bloque 510, entonces en el bloque de decisión 515 se hace una determinación de que si cualquiera de las actividades determinadas están disponibles, de manera que el programa(s) en el dispositivo de comunicaciones 150 puede responder a la petición de comunicación. Si es así, entonces en el bloque 520 la petición de comunicación es reconocida. La comunicación comienza en el bloque de subrutina 700. La subrutina 700 se ilustra en la Figura 7 y se describe a continuación. Una vez que la subrutina de comunicación 700 regresa, entonces la rutina 500 finaliza en el bloque 599. Sin embargo, si en el bloque de decisión 515 se determinó que no hay ninguna actividad disponible para comunicarse en respuesta a la petición de comunicación, entonces en el bloque 525 se envía una notificación de falla de comunicación al dispositivo de cliente 200 y se finaliza ei procedimiento en el bloque 599. La Figura 6 también ilustra una rutina de conexión de comunicaciones contacto. Sin embargo, la rutina de conexión de comunicaciones de contacto 600 ¡lustrada en la Figura 6 es para el mismo dispositivo de comunicaciones 150, tal como un teléfono, radio, paginador, o similares, que no pueda ejecutar rutinas de cómputo en respuesta a una petición de comunicación. Por consiguiente, la rutina 600 comienza en el bloque 601 y prosigue al bloque 605 en donde se recibe una nueva petición de comunicación. Después, en el bloque de decisión 610, se hace una determinación si la petición de comunicación es reconocida. Si es así, entonces en el bloque 615 la comunicación es conectada. La comunicación después comienza utilizando el tipo reconocido de comunicaciones de la petición de comunicaciones en el bloque 620. Después de que la comunicación finaliza en el bloque 620, la rutina 600 finaliza en el bloque 699. Si en el bloque de decisión 610 no se reconoce ningún tipo de comunicación, entonces otra vez la rutina 600 finaliza en el bloque 699. Aquellos expertos en la técnica y otros apreciarán que al utilizar un control de comunicaciones extensible en el dispositivo de clientes 200, es posible proporcionar un número de diferentes tipos de comunicaciones dentro de un control de comunicaciones extensibles. Este control de comunicaciones puede ser incorporado en otros programas de cómputo en un dispositivo de cliente 200 (y en dispositivo de comunicaciones 150 más avanzados). El control puede ser incorporado cuando un programa es desarrollado, de manera que cuando se ejecuta, el control puede ser dirigido al tipo de comunicación para utilizarse cuando hace contacto con otros dispositivos. Este diseño de marcador de posición permite más flexibilidad en programas de computadora y permite que el control de comunicaciones sea actualizado y mejorado según se desee. A medida que se desarrollan dispositivos de comunicaciones 150 particulares como dispositivos para aquellas comunicaciones que son deseadas, es posible definir nuevos protocolos y. peticiones de comunicación de diseño de manera que serán reconocidas tanto por la rutina de conexión de comunicaciones 400 como por la rutina de conexión de contacto 500 y/o 600. Por ejemplo, un control de comunicaciones de charla de audio adaptado para enviar una señal digital para un programa de charla de audio en un dispositivo de comunicaciones 150 puede ser adaptado en lugar de enviar una señal de audio de telefonía a un dispositivo de comunicaciones de teléfono 150, de manera que las señales provistas por un dispositivo de comunicaciones de teléfono 150 será reconocido por un control de comunicaciones adaptado en un dispositivo de cliente 200 (por ejemplo, tonos de ruido, señales de ocupado, colgar, tonos táctiles, tonos de marcado, etc.). Como se observó anteriormente, la Figura 7 ilustra una subrutina 700 de comunicación ilustrativa. La subrutina de comunicación 700 ilustrativa comienza en el bloque 701 y prosigue al bloque enlazamiento 705, el cual itera a través de todas las aplicaciones que son parte de una conexión de comunicaciones (ya sea aplicaciones especificadas o aplicaciones por omisión para el tipo de comunicación). De manera que para cada aplicación, si no ha sido lanzado, entonces en el bloque 710 la aplicación es lanzada. Después, en el bloque de enlazamiento 715, para cada tipo de comunicación que la aplicación real utiliza, se hace una determinación si la conexión es una comunicación para par. Si es así, entonces en el bloque 725 la aplicación es conectada a este dispositivo par (por ejemplo, el dispositivo de cliente 200 o el dispositivo de comunicaciones 150). Si en el bloque de decisión 720 se determina el tipo de comunicación no es par a par, entonces el procesamiento continúa al bloque 745, en donde la aplicación queda conectada a una conversación remota en un almacenamiento de conversación 125. Después del bloque 745 o 725, se hace otra determinación en el bloque de decisión 730 si existe por lo menos un tipo de comunicación para la aplicación real. Si se encuentra en el bloque de decisión 730 que éste no fue el último tipo de comunicación, entonces el procesamiento se enlaza de regreso al bloque de enlazamiento 715. Sin embargo, si en bloque de decisión 130 se determina que fue el último tipo de comunicación para la aplicación real, entonces el procesamiento continúa al bloque de decisión 735, en donde se hace una determinación si ésta fue la última aplicación. Si no es así, entonces el procesamiento se enlaza de regreso al bloque de enlazamiento 705, en donde la siguiente aplicación se convierte en la aplicación actual. Sin embargo, si en el bloque de decisión 735 se determina que ésta fue la última aplicación, entonces el procesamiento prosigue al bloque 740, en donde la comunicación sobre los tipos conectados de comunicación utilizando todas las aplicaciones asociadas con los tipos de comunicación, prosigue. Una vez que la comunicación finaliza, ya sea a través del dispositivo de comunicaciones y/o el dispositivo de cliente, entonces la subrutina 700 regresa al bloque 799 a su rutina de llamada. La Figura 8 ilustra un diagrama ilustrativo de dos aplicaciones 800, 850 que tienen una comunicación de charla de texto y una de vídeo entre los controles de comunicaciones 810 y 860 embebidos o empotrados en las aplicaciones 800, 850. La charla de texto 815 del control de comunicaciones 810 es una charla de texto que no es de par a par y por consiguiente se conecta una conversación 830. Correspondientemente, el control de comunicaciones 860 de la aplicación 850 tiene una charla de texto 865 que también se conecta con la misma conversación 830 como lo hace la charla de texto 815. Por consiguiente, la aplicación 800 y la aplicación 850 pueden comunicarse a través de la charla de texto utilizando la conversación 830. Como se describió anteriormente, la conversación 830 puede residir en un almacenamiento de conversación .125 en un dispositivo de cliente 200, un dispositivo de comunicaciones 150, un proveedor de servicio de comunicación 120, u otros dispositivos en comunicación con la red de comunicación 100. Además, la aplicación 800 y la aplicación 850 indican que una conexión de vídeo 840 es una conexión par a par. Por lo tanto el control de comunicaciones 810 y el control de comunicaciones 860 tienen una conexión par a par directa para una comunicación de vídeo 840 sin ninguna "conversación" intermediaria. Aquellos expertos en la técnica y otros apreciarán que la Figura 8 ¡lustra solamente una modalidad ilustrativa de aplicaciones y comunicaciones de acuerdo con la presente invención. La Figura 8 de ninguna manera pretende presentar una lista exhaustiva de posibles tipos de aplicaciones y/o comunicaciones. Son posibles interacciones más complejas con controles de comunicaciones de acuerdo con la presente invención. Por ejemplo, es posible mantener comunicaciones utilizando controles de comunicaciones que se mueven entre aplicaciones que han sido adaptadas para adaptar controles de comunicaciones de acuerdo con la presente invención. Un ejemplo podría ser remover una charla de texto de una aplicación de procesamiento de palabra y moverla a una aplicación de examinador web. Esto podría permitir que los usuarios mantengan comunicaciones sin tener que mantener aplicaciones innecesarias abiertas. Además, al tener un control de comunicaciones activo en la aplicación seleccionada por el usuario, es posible una mejor colaboración. Ya no es necesario conmutar entre aplicaciones para comunicarse. La Figura 10 ilustra una rutina de separación 1000 para separar un control de comunicaciones de una aplicación y ya sea utilizarlo como tal dentro de una aplicación por omisión tal como una aplicación de caparazón 900 o volver a unir el control de comunicaciones separado a una aplicación objetivo. La rutina de separación 1000 comienza en el bloque 1001 y prosigue en el bloque 1005 en donde se recibe una indicación para separar un control de comunicaciones, que incluye la actividad o actividades reales que están activas. Una indicación ilustrativa para separar es cuando un usuario "arrastra" (oprime un control y lo mueve) un control fuera de una ventana de una aplicación. Aquellos expertos en la técnica apreciarán que se pueden utilizar otras indicaciones por omisión. Después en el bloque 1010 se hace una determinación de la aplicación(s) por omisión para la actividad o actividades reales. Después, en el bloque 1015, el control de comunicaciones actual físicamente separado de su aplicación previa. La Figura 9 muestra una modalidad ilustrativa de una aplicación de caparazón por omisión para contener un control de comunicaciones de acuerdo con la presente invención. El caparazón ilustrativo 900 mostrado en la Figura 9 incluye un control de comunicaciones de charla 910 como su componente para formar un programa de comunicaciones de caparazón. La Figura 11 ilustra una aplicación ilustrativa 1100 con un control de comunicaciones 1110 que ha sido separado a una aplicación por omisión 1120, tal como la aplicación de caparazón 900. La rutina de separación 1000 después continúa en el bloque 1020, en donde el control de comunicaciones se une a una aplicación por omisión, tal como la aplicación de caparazón 900. Después, en el bloque de decisión 1025, se hace una determinación de que si especificó una aplicación o aplicaciones objetivo. Si en bloque de decisión 1025 se hizo una determinación de que la aplicación o aplicaciones objetivo fue especificada, entonces el procesamiento continúa al bloque 1030, en donde la comunicación o comunicaciones actuales son unidas (arrastrada) a una aplicación o aplicaciones objetivo. Aquellos expertos en la técnica apreciarán que puede existir una mezcla de tipos de comunicación y que uno o más de un tipo de comunicación puede unirse a una aplicación objetivo y que uno o más puede permanecer unido a una aplicación por omisión. Por ejemplo, esto podría permitir una ventana de vídeo flotando que es una conexión separada en lugar de una ventaja de criarla de texto unida. En cualquier caso, si hay o no una aplicación objetivo para hacer especificada en el bloque de decisión 1025, la comunicación continúa en el bloque de subrutina 700, como se describe anteriormente. La subrutina de separación finaliza en el bloque 1099 cuando la subrutina de comunicación 700 regresa. Aquellos expertos en la técnica y otros apreciarán que la comunicación de la subrutina 700 puede ser realizada en un número de diferentes formas. Por ejemplo, cuando la separación de una aplicación existente y la unión a otra aplicación, el control de comunicaciones puede ya sea mantener las conexiones actuales, o simplemente recordar como volver a conectase a las aplicaciones actuales. Esto puede variar dependiendo del tipo de comunicación (por ejemplo, algunos tipos de comunicación pueden no ser capaces de manejar desconexiones y reconexiones inalámbricas). Los diferentes tipos de dispositivos de cliente 200, y/o dispositivos de comunicaciones 150, o simplemente de preferencia es que un usuario puede configurar con respecto a sus controles de comunicaciones. Aunque se han ilustrado y descrito modalidades ilustrativas de la invención se apreciará que se pueden hacer varios cambios en la misma sin apartarse del espíritu y alcance de la invención.

Claims (1)

REIVINDICACIONES
1- Un método para utilizar un control de comunicaciones extensible para comunicarse entre un dispositivo de cómputo y un dispositivo de comunicaciones remoto, el método comprende: determinar, a partir de información de un contacto, una actividad de comunicación extensible; adaptar el control de comunicaciones extensible para generar una petición de comunicación a una dirección de comunicación de dicha actividad de comunicación extensible; y establecer una conexión de comunicaciones conformándose a la actividad de comunicación extensible de dicha comunicación con el dispositivo de comunicaciones remoto. 2. - El método de acuerdo con la reivindicación 1, en donde el control de comunicaciones extensible es proporcionado por un sistema operativo. 3. - El método de acuerdo con la reivindicación 2, que comprende además actualizar el control de comunicaciones extensible y de esta manera actualizar cualquier programa de cómputo adaptado para utilizar el control de comunicaciones extensible. 4. - El método de acuerdo con la reivindicación 1, en donde el programa de cómputo es un programa de caparazón para el control de comunicaciones extensible. 5.- El método de acuerdo con la reivindicación 1, en donde la conexión de comunicaciones se selecciona del grupo que consiste de: charlas de texto, mensajes instantáneos, corriente de vídeo, y corrientes de audio. 6. - El método de acuerdo con la reivindicación 1, en donde la conexión de comunicaciones es sobre una red de cómputo. 7. - El método de acuerdo con la reivindicación 1, en donde la conexión de comunicaciones es sobre una red telefónica. 8. - El método de acuerdo con la reivindicación 1, en donde el dispositivo de comunicaciones remoto es un dispositivo que no es de cómputo. 9. - El método de acuerdo con la reivindicación 1, en donde el establecimiento de una conexión de comunicaciones además comprende crear una conversación y tanto el dispositivo de comunicaciones remoto como el dispositivo de cómputo establecen una conexión a través de dicha conversación. 10. - El método de acuerdo con la reivindicación 1, que comprende además dicho programa de cómputo especificando el control de comunicaciones extensible y actividades de comunicación extensible para utilizarse por el programa de cómputo. 11.- El método de acuerdo con la reivindicación 10, en donde el programa de cómputo especifica actividades de comunicación extensibles con un lenguaje para el análisis formal de documentos web extensible. 12.- El método de acuerdo con la reivindicación 1, que comprende además separar el control de comunicaciones extensible del programa de cómputo. 13. - El método de acuerdo con la reivindicación 12, que comprende además unir el control de comunicaciones extensibie que ha sido separado a un segundo programa de cómputo adaptado para utilizar el control de comunicaciones extensibie. 14. - El método de acuerdo con la reivindicación 13, en donde la separación del control de comunicaciones extensibie y la unión de éste en un segundo programa de cómputo mantiene de conexión de comunicaciones establecida. 15.- El método de acuerdo con la reivindicación 1, en donde la petición de comunicación comprende la actividad de comunicación extensibie, un identificador de origen, y un identificador de regreso. 16. - El método de acuerdo con la reivindicación 15, en donde la actividad de comunicación además comprende una indicación de un programa de comunicaciones específico para responder a la petición de comunicación. 17. - El método de acuerdo con la reivindicación 15, en donde la petición de comunicación comprende una pluralidad de actividades de comunicación, cada actividad especificando un tipo de comunicación y en donde el establecimiento de una conexión de comunicaciones incluye establecer una pluralidad de conexiones de comunicaciones correspondiendo a cada actividad de comunicación específica. 18. - Un medio legible por computadora que tiene instrucciones ejecutables por computadora para utilizar un control de comunicaciones extensible para comunicarse entre un dispositivo de cómputo y un dispositivo de comunicaciones remoto: determinado, a partir de información de un contacto, una actividad de comunicación extensible; adaptando el control de comunicaciones extensible para generar una petición de comunicación a una dirección de comunicación de dicha actividad de comunicación extensible; y estableciendo una conexión de comunicaciones conformándose a la actividad de comunicación extensible de dicha comunicación con el dispositivo de comunicaciones remoto. 19. - El medio legible por computadora de acuerdo con la reivindicación 18, en donde el control de comunicaciones extensible es provisto por un sistema operativo. 20. - El medio legible por computadora de acuerdo con la reivindicación 19, que comprende además actualizar el control de comunicaciones extensible y de esta manera actualizar cualquier programa de cómputo adaptado para utilizar el control de comunicaciones extensible. 21. - El medio legible por computadora de acuerdo con la reivindicación 18, en donde la conexión de comunicaciones se selecciona del grupo que consiste de: charlas de texto, mensajes instantáneos, corriente de vídeo y corriente de audio. 22. - El medio legible por computadora de acuerdo con la reivindicación 18, en donde el establecimiento de una conexión de comunicaciones además comprende crear una conversación y tanto el dispositivo de comunicaciones remoto como el dispositivo de cómputo establecen una conexión a través de dicha conversación. 23. - El medio legible por computadora de acuerdo con la reivindicación 18, que comprende además el programa de cómputo especificando el control de comunicaciones extensible y actividades de comunicación extensible para utilizarse por el programa de cómputo. 24. - El medio legible por computadora de acuerdo con la reivindicación 23, en donde el programa de cómputo especifica actividades de comunicación extensible con un lenguaje para el análisis formal de documentos web extensible. 25. - El medio legible por computadora de acuerdo con la reivindicación 18, en donde la petición de comunicación comprende la actividad de comunicación extensible, un identificador de origen y un identificador de regreso. 26. - El medio legible por computadora de acuerdo con la reivindicación 25, en donde la actividad de comunicación además comprende una indicación de un programa de comunicaciones específico para responder a la petición de comunicación. 27.- El medio legible por computadora de acuerdo con la reivindicación 25, en donde la petición de comunicación comprende una pluralidad de actividades de comunicación, cada actividad especificando un tipo de comunicación y en donde el establecimiento de una conexión de comunicaciones incluye establecer una pluralidad de conexiones de comunicaciones correspondiendo a cada actividad de comunicación especificada. 28. - Un aparato de cómputo que tiene un procesador y una memoria, la memoria teniendo instrucciones ejecutables por computadora para utilizar un control de comunicaciones extensible para comunicarse con un dispositivo de comunicaciones remoto: determinado, a partir de información de un contacto, una actividad de comunicación extensible; adaptando el control de comunicaciones extensible para generar una petición de comunicación a una dirección de comunicación de dicha actividad de comunicación extensible; y estableciendo una conexión de comunicaciones conformándose a la actividad de comunicación extensible de dicha comunicación con el dispositivo de comunicaciones remoto. 29. - El aparato de cómputo de acuerdo con la reivindicación 28, en donde el control de comunicaciones extensible es provisto por un sistema operativo. 30. - El aparato de cómputo de acuerdo con la reivindicación 29, que comprende además actualizar el control de comunicaciones extensible y de esta manera actualizar cualquier programa de cómputo adaptado para utilizar el control de comunicaciones extensible. 31. - El aparato de cómputo de acuerdo con la reivindicación 28, en donde la conexión de comunicaciones se selecciona del grupo que consiste de: charlas de texto, mensajes instantáneos, corriente de vídeo y corriente de audio. 32. - El aparato de cómputo de acuerdo con la reivindicación 28, en donde el establecimiento de una conexión de comunicaciones además comprende crear una conversación y tanto el dispositivo de comunicaciones remoto como el dispositivo de cómputo establecen una conexión a través de dicha conversación. 33. - El aparato de cómputo de acuerdo con la reivindicación 28, que comprende además el programa de cómputo especificando el control de comunicaciones extensible y actividades de comunicación extensible para utilizarse por el programa de cómputo. 34.- El aparato de. cómputo de acuerdo con la reivindicación 33, en donde, el programa de cómputo especifica actividades de comunicación extensible con un lenguaje para el análisis formal de documentos web extensible. 35. - El aparato de cómputo de acuerdo con la reivindicación 28, en donde la petición de comunicación comprende la actividad de comunicación extensible, un identificador de origen y un identificador de regreso. 36. - El aparato de cómputo de acuerdo con la reivindicación 35, en donde la actividad de comunicación además comprende una indicación de un programa de comunicaciones específico para responder a la petición de comunicación. 37. - El aparato de cómputo de acuerdo con la reivindicación 35, en donde la petición de comunicación comprende una pluralidad de actividades de comunicación, cada actividad especificando un tipo de comunicación y en donde el establecimiento de una conexión de comunicaciones incluye establecer una pluralidad de conexiones de comunicaciones correspondiendo a cada actividad de comunicación especificada. 38. - Un método para responder a una petición de comunicación extensible de un dispositivo de cómputo a un dispositivo de comunicaciones, el método comprende: determinar, a partir de una petición de comunicación recibida, una actividad de comunicación extensible; determinar que un programa de comunicaciones responde a dicha actividad de comunicación extensible; y activar el programa de comunicaciones en respuesta a la petición de comunicación. 39. - El método de acuerdo con la reivindicación 20, en donde la petición de comunicación comprende una pluralidad de actividades de comunicación extensible y además comprende activar una pluralidad de programas de comunicaciones en respuesta a la pluralidad de actividades de comunicación extensible. 40. - El método de acuerdo con la reivindicación 20, en donde la petición de comunicación comprende una pluralidad de actividades de comunicación extensible y además comprende activar solamente un programa de comunicaciones en respuesta a la pluralidad de actividades de comunicación extensible. 41. - Un medio legible por computadora que tiene instrucciones ejecutables por computadora para responder a una petición de comunicación extensible a partir de un dispositivo de cómputo para un dispositivo de comunicaciones: determinando, a partir de una petición de comunicación recibida, una actividad de comunicación extensible; determinando que un programa de comunicaciones responde a dicha actividad de comunicación extensible; y activando el programa de comunicaciones en respuesta a la petición de comunicación. 42.- Un aparato de cómputo que tiene un procesador y una memoria, la memoria teniendo instrucciones ejecutables por computadora para responder a una petición de comunicación extensible a partir de un dispositivo de cómputo hacia un dispositivo de comunicaciones: determinando, a partir de una petición de comunicación recibida, una actividad de comunicación extensible; determinando que un programa de comunicaciones responde a una actividad de comunicación extensible; y activando el programa de comunicaciones en respuesta a la petición de comunicación.
MXPA03002792A 2003-01-15 2003-03-28 Controles de comunicacion extensibles. MXPA03002792A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/346,891 US7577705B2 (en) 2003-01-15 2003-01-15 Extensible communication controls

Publications (1)

Publication Number Publication Date
MXPA03002792A true MXPA03002792A (es) 2005-02-14

Family

ID=23361452

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA03002792A MXPA03002792A (es) 2003-01-15 2003-03-28 Controles de comunicacion extensibles.

Country Status (13)

Country Link
US (1) US7577705B2 (es)
EP (1) EP1439681A3 (es)
JP (1) JP2004220549A (es)
KR (1) KR20040065961A (es)
CN (1) CN1518290A (es)
AU (1) AU2003202437A1 (es)
BR (1) BR0300982A (es)
CA (1) CA2422385A1 (es)
MX (1) MXPA03002792A (es)
NO (1) NO20031214L (es)
RU (1) RU2313188C2 (es)
TW (1) TWI271058B (es)
ZA (1) ZA200302349B (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001061596A1 (en) 2000-02-16 2001-08-23 Bea Systems, Inc. Conversation management system for enterprise wide electronic collaboration
US7409427B2 (en) * 2003-02-25 2008-08-05 Bea Systems, Inc. Systems and methods for lightweight conversations
CN1315307C (zh) * 2004-08-05 2007-05-09 北京航空航天大学 一种利用Mbus通讯中间件来进行传输的方法
US8255818B2 (en) 2005-11-17 2012-08-28 Oracle International Corporation System and method for providing drag and drop functionality in a communities framework
US20070113188A1 (en) * 2005-11-17 2007-05-17 Bales Christopher E System and method for providing dynamic content in a communities framework
US7805459B2 (en) * 2005-11-17 2010-09-28 Bea Systems, Inc. Extensible controls for a content data repository
US7493329B2 (en) 2005-11-17 2009-02-17 Bea Systems, Inc. System and method for providing generic controls in a communities framework
US8185643B2 (en) 2005-11-17 2012-05-22 Oracle International Corporation System and method for providing security in a communities framework
US8078597B2 (en) 2005-11-17 2011-12-13 Oracle International Corporation System and method for providing extensible controls in a communities framework
US8046696B2 (en) 2005-11-17 2011-10-25 Oracle International Corporation System and method for providing active menus in a communities framework
US20070112781A1 (en) * 2005-11-17 2007-05-17 Mcmullen Cindy System and method for providing search controls in a communities framework
US7680927B2 (en) 2005-11-17 2010-03-16 Bea Systems, Inc. System and method for providing testing for a communities framework
US7590687B2 (en) 2005-11-17 2009-09-15 Bea Systems, Inc. System and method for providing notifications in a communities framework
ATE438997T1 (de) * 2007-06-18 2009-08-15 Alcatel Lucent Steuerung eines telekommunikationsdienstsystems mittels peer-to-peer-techniken
KR20110073086A (ko) * 2009-12-23 2011-06-29 두산인프라코어 주식회사 건설장비간 통신 지원 시스템 및 방법
US9888210B2 (en) 2013-08-19 2018-02-06 Microsoft Technology Licensing, Llc Seamless call transitions with pinpoint call escalation
US9961608B2 (en) * 2013-08-19 2018-05-01 Microsoft Technology Licensing, Llc Seamless call transitions
US9681095B2 (en) 2013-08-19 2017-06-13 Microsoft Technology Licensing, Llc Seamless call transitions with pre-escalation participation confirmation
CN105430319A (zh) * 2015-11-30 2016-03-23 小米科技有限责任公司 视频通信结束方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HU216669B (hu) 1990-09-19 1999-08-30 Koninklijke Philips Electronics N.V. Információhordozó fő adatállománnyal és vezérlőállománnyal, eljárás és készülék ezen állományok rögzítésére, valamint készülék azok kiolvasására
EP0744689B1 (en) 1995-05-26 2002-10-09 Intel Corporation Extensible communication type manager for a computer system
US6185184B1 (en) * 1995-09-25 2001-02-06 Netspeak Corporation Directory server for providing dynamically assigned network protocol addresses
US6275490B1 (en) * 1996-08-21 2001-08-14 Netspeak Corporation Method and apparatus for establishing communications from browser application
US6430604B1 (en) * 1999-08-03 2002-08-06 International Business Machines Corporation Technique for enabling messaging systems to use alternative message delivery mechanisms
US6941345B1 (en) * 1999-12-03 2005-09-06 Nortel Networks Limited Real-time, text-based messaging between devices in plural communities
EP1139631A1 (en) 2000-03-31 2001-10-04 BRITISH TELECOMMUNICATIONS public limited company Method of initiating a data transfer from a server to a client
US6917612B2 (en) * 2000-09-01 2005-07-12 Telefonaktiebolaged L M Ericsson System and method for address resolution in internet protocol (IP)-based networks
US6988132B2 (en) * 2001-03-15 2006-01-17 Microsoft Corporation System and method for identifying and establishing preferred modalities or channels for communications based on participants' preferences and contexts
US6874126B1 (en) * 2001-11-30 2005-03-29 View Space Technologies Method and apparatus for controlling content display by the cursor motion
US7127685B2 (en) * 2002-04-30 2006-10-24 America Online, Inc. Instant messaging interface having a tear-off element
US7676579B2 (en) * 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
US7363345B2 (en) * 2002-08-27 2008-04-22 Aol Llc, A Delaware Limited Liability Company Electronic notification delivery mechanism selection based on recipient presence information and notification content
US9100218B2 (en) * 2002-11-18 2015-08-04 Aol Inc. Enhanced buddy list interface
US7059159B2 (en) * 2003-02-06 2006-06-13 Mi-Jack Products, Inc. Security system for cargo trailers
US20050055405A1 (en) * 2003-09-04 2005-03-10 International Business Machines Corporation Managing status information for instant messaging users

Also Published As

Publication number Publication date
US7577705B2 (en) 2009-08-18
AU2003202437A1 (en) 2004-08-05
JP2004220549A (ja) 2004-08-05
EP1439681A2 (en) 2004-07-21
BR0300982A (pt) 2004-11-03
KR20040065961A (ko) 2004-07-23
ZA200302349B (en) 2003-10-06
US20040136511A1 (en) 2004-07-15
NO20031214D0 (no) 2003-03-17
CN1518290A (zh) 2004-08-04
EP1439681A3 (en) 2005-01-26
RU2313188C2 (ru) 2007-12-20
TW200412754A (en) 2004-07-16
TWI271058B (en) 2007-01-11
NO20031214L (no) 2004-07-16
CA2422385A1 (en) 2004-07-15

Similar Documents

Publication Publication Date Title
MXPA03002792A (es) Controles de comunicacion extensibles.
US6904140B2 (en) Dynamic user state dependent processing
JP4467220B2 (ja) 音声インスタント・メッセージング
US7908322B2 (en) Initiation and support of video conferencing using instant messaging
EP1703701B1 (en) APIs to build peer to peer messaging applications
EP1579654B1 (en) Controller for multimedia sessions
US6549937B1 (en) System and method for multi-protocol communication in a computer network
KR100686705B1 (ko) 세션 개시 프로토콜-가능 단말기에 다중-클라이언트 지원을제공하기 위한 방법 및 장치
US20050132009A1 (en) Instant message awareness and migration allowing for multiple simultaneous client logins
US20070005711A1 (en) System and method for building instant messaging applications
US20090043849A1 (en) Collaborative web-based computing
US20030063121A1 (en) Determining availability of participants or techniques for computer-based communication
US20050091301A1 (en) Systems and methods for multiparty session invite
US20030065723A1 (en) Computer-based communication using multiple communications channels
US20140032774A1 (en) Client-emulating Gateways for Communication Network Migration
US20030065955A1 (en) Selection and interconnection of computer-based communications techniques
GB2416090A (en) Integrated instant message system with gateway functions
JP2002009846A (ja) マルチメディアプロキシサーバを用いた通信システム
KR101437189B1 (ko) 데이터를 대화에 통합시키기 위한 방법, 시스템 및 컴퓨터 판독가능 매체
US7516408B2 (en) Method, system and program for switching between various computer-based communication techniques
US20090254665A1 (en) Trigger-Based Session Completion Using External Parties
Kim et al. Design and Implementation of Desktop Video Conference System Based on Client-Server and P2P.

Legal Events

Date Code Title Description
FA Abandonment or withdrawal