This application claims priority to the German application No. 10345548.5 DE, filed Sep. 30, 2003 and which is incorporated by reference herein in its entirety.
The invention relates to an arrangement and a method for controlling communication connections for packet-oriented real-time communication between two communication users.
As well as transmitting data, current packet-oriented networks are used increasingly for transmitting communication data or real-time communication data. The transmission of communication data via a packet-oriented network is often also referred to as Voice over IP or VoIP. The term VoIP thereby refers to a technology for transmitting useful data, such as voice, and an exchange of signaling data for controlling connections via packet-oriented networks.
Two standard protocols for the implementation of VoIP, specifically H.323 and SIP, are known for the packet-oriented transmission of communication data between two users and for switching users and providing performance features.
SIP (Session Initiation Protocol) is a standard proposed by the Internet Engineering Task Force (IETF) for signaling connections via packet-oriented networks and is currently predominantly deployed in the field of internet telephony and for further services such as conference interactions, event notification, message transmission, etc.
The standard H.323 is an international ITU-T standard (International Telecommunication Union—Telecommunication Standardization Sector) for voice, data and video communication via packet-oriented networks, ensuring mutual interoperability of proprietary products.
For the implementation of packet-oriented communication technologies in a communication system, the problem frequently occurs that the above-mentioned protocols H.323 und SIP have to coexist, in order to be able to link communication terminals operating according to the respective communication protocol. It is not however possible for a SIP communication terminal to communicate with an H.323-compatible communication terminal without the provision of further technical devices.
Previous VoIP solutions have been based on so-called standalone software. Standalone software refers to software installed in the communication terminal or—in more general form—in a client to process both signaling data and payload data. One disadvantage of such a solution is that any change to the communication protocol and any introduction of new additional performance features can only be implemented by updating said software at every terminal. For a company this measure requires a great deal of configuration work and therefore a significant cost expenditure.
A further problem is the complexity of said software. As new performance and service features are introduced, said software becomes more and more complex and extensive. The software implemented in the communication terminal—client software—not only has to identify newly added performance features, it must also be able to implement methods to execute said performance features.
With extensive standalone software, integration into applications not provided for communication purposes is problematic. To develop said applications, already existing VoIP functions generally have to be adapted or developed from new. Furthermore the integration of additional performance features from third party manufacturers is almost excluded.
Some VoIP applications provide programming interfaces for integration into other applications and these are known in specialist circles as Application Program Interfaces, API. However a further compilation process is generally required to integrate said programming interfaces into other applications.
The use of so-called gateways is known as a means to ensure the interoperability of the VoIP communication protocols H.323 and SIP. A gateway thereby converts signaling data based on the SIP protocol to a format suitable for H.323 and vice-versa. It is often the case here however that protocol elements of a respective communication protocol are incompatible with protocol elements of the other communication protocol. It is also often the case that one of the two communication protocols supports services, applications, processing methods, etc. which are not supported in the other communication protocol.
To avoid the problems associated with updating stand-alone software as discussed above, some service providers offer VoIP solutions as so-called web applications. Obtaining a so-called applet via a packet-oriented data network and integrating it in a browser environment in the form of a so-called plug-in allows the execution of a VoIP functionality via a web browser. Such an above-mentioned execution improves the above-mentioned update problem but offers no opportunity for seamless integration into any applications.
The object of the invention is to provide a communication environment, the deployment of which avoids the problems of the prior art.
The object is achieved by the claims.
According to the invention at least one communication master computer is provided in a packet-oriented communication system to control communication connections based on exchanged signaling messages—for example SIP or H.323—of a respectively preset communication protocol. At least one service provider unit is also provided to supply communication services for establishing and controlling connections based on bi-directional communication service calls with at least one service user unit. These communication services are provided particularly as web services. The service provider unit is configured with interfaces with the at least one service user unit and with the at least one communication master computer and includes means for characterizing a received signaling message and for extracting parameters contained in the signaling message and for assigning to a communication service. The service provider unit also includes means for generating at least one signaling message further to a communication service call of the at least one service user unit.
One significant advantage of the inventive method is that the communication services for establishing and controlling connections are moved from a communication terminal—such as a so-called SIP phone or a communication terminal operating according to the standard H.323.—to a central service provider unit.
The complex and time-consuming update measures that previously had to be taken in the service user units or clients are therefore not necessary with the inventive means.
The inventive communication services advantageously take over all the signaling tasks of the client, from the point of view of which the inventive service provider unit acts as proxy. The role of proxy means that all communication with the client takes place in both directions between said client and the proxy.
The inventive arrangement proves to be particularly advantageous even with the provision of additional performance features that have to be supported in the communication system. This frequently occurring update measure also only affects the service provider units, while only new or modified abstract communication service calls occur for the service user units.
One particular advantage of the preferably 3-tier architecture with a level arranged between the communication master computers and the service user units acting as communication terminals—implemented in the service provider unit—is the loose coupling and simple integration of communication services—in some instances in the form of so-called web services—into other applications, whereby said integration is advantageously both independent of the programming language used for the application and also independent of the operating system provided for execution of the service user units or the application.
The communication services are advantageously independent of the communication protocols existing or co-existing in the communication system and are therefore also suitable for deployment in communication systems with heterogeneous communication protocols.
Advantageous developments of the invention are specified in the dependent claims.
An exemplary embodiment with further advantages and configurations of the invention is described in more detail below with reference to the drawing, in which:
A first master computer SRV1 assigned to a first logical level LYR1 has—in addition to further functional units (not shown)—a first processing unit BL1.1 and a first interface IF1.1. A second master computer SRV2 also assigned to the first logical level LYR1 correspondingly has a second processing unit BL1.2 and a second interface IF1.2.
A proxy master computer unit assigned to a second logical level LYR2 and hereafter also referred to as the proxy server PRX, is connected to the first interface IF1.1 of the first master computer SRV1 and the second interface IF1.2 of the second master computer SRV2 via the packet-oriented network (not shown). In the drawing this “connection” via a packet-oriented network is shown with a solid line. Such a “connection” thereby serves only to illustrate a communication relation via a—by its nature connectionless per se—packet-oriented network.
The proxy server PRX has—in addition to further functional components (not shown)—an integration unit IL, a processing unit BL2 and an interface IF2.
The proxy server PRX is connected via its interface IF2 to a first and a second communication terminal SC1, SC2. The first communication terminal SC1 and the second communication terminal SC2 are assigned to a third logical level LYR3.
To illustrate interoperability with different communication protocols, it is assumed below that the first master computer SRV1 is a central administrative entity operating according to the H.323 communication protocol, also known in specialist terminology as a gatekeeper.
The second master computer SRV2 corresponds to an administrative entity operating according to the SIP communication protocol. In the case of the communication protocol SIP this administrative entity is generally subdivided into a plurality of units (not shown) such as a SIP proxy server, a redirect server, a registrar and a location server, while one unit in the form of the second master computer SRV2 is used as the basis for the drawing for reasons of clarity.
The first master computer SRV1 exchanges messages configured according to the H.323 communication standard with H.323-compatible terminals (not shown) via an interface (not shown). In a similar manner the second master computer SRV2 exchanges messages configured according to the SIP communication standard with SIP-compatible terminals (not shown) via an interface (not shown).
At the first interface IF1.1 of the first master computer SRV1 messages exchanged in the form of data packets are however not configured according to the H.323 communication standard. In a similar manner the messages exchanged at the second interface IF1.2 of the second master computer SRV2 are not configured according to the SIP communication standard. The messages exchanged at the first or second interface IF1.1, IF1.2 are specifically exchanged in a different format that can be processed for the integration unit IL of the proxy server PRX, as will be examined in more detail below.
After this illustration of hardware components to describe the physical structure of the communication system CSY, the functional units shown in
For the purposes of structural consideration, the units referred to above as communication terminals within the third logical level LYR are introduced as first and second service users SC1,SC2. A service user SC1,SC2 or a service user unit SC1,SC2 is often also referred to in specialist circles as a client and it implements calls for functions, which are provided for example by a so-called service provider or service provider unit—in specialist circles often also referred to as a server.
The functions called by the service user units SC1,SC2 are provided by the service provider unit PRX previously referred to as the proxy server. For the service user units SC1,SC2,
The mode of operation of the logical levels LYR1,LYR2,LYR3 can now be summarized as follows based on this architecture of the communication system CSY:
The respective service user SC1,SC2 sends requests for the establishment of a connection to the service provider PRX and awaits confirmation or rejection of said request. This request is independent of the communication protocol—SIP or H.323—used in the first logical level LYR1 for the actual establishment of the connection but is configured as a call for communication services. This call for communication services is protocol-neutral and is effected for example based on the XML standard (Extended Markup Language). If the request is confirmed, the service user SC1,SC2 receives parameters with the confirmation such as port number and coding method, which are to be used for the subsequent exchange of useful data (not shown). This exchange of useful data and associated media processing is completely separate from the exchange of signaling data.
Communication connections between different logical levels are described in more detail below with further reference to the functional units in
A further communication unit TERM is arranged in the third logical level TERM in addition to the service users SC1,SC2.
Unlike
The communication unit TERM is correspondingly in the form of a SIP communication terminal and exchanges with the master computer SRV on the basis of signaling messages SGN configured according to the SIP standard.
The communication users in the method to be described below are in particular the communication unit TERM, the first service user SC1 and the second service user SC2.
In the case of an existing communication connection between the communication unit TERM and the first service user SC1, useful data PLD1 is exchanged directly between the communication unit TERM and the first service provider SC1.
A similar direct exchange of useful data PLD2 also takes place in the case of an existing communication connection between the first and the second service user unit SC1,SC2.
The first service user unit SC1 uses a first service call PR1 via the first interface IF2.1 of the first master computer PRX1 to call up the latter's communication services or web services.
The second service user unit SC2 correspondingly uses a second service call PR2 to call up communication services of the second master computer PRX2.
An exchange of data also takes place between communication services of the first master computer PRX1 and communication services of the second master computer PRX2 via a third service call PR3.
The functional units located in the first logical level LYR1 are only used in the method provided according to the invention, if a calling or called communication partner can only be addressed via one of the supported communication protocols—SIP in the exemplary embodiment.
A request to establish a connection initiated from the third logical level LYR3, for example by the first connection taker SC1 using the communication unit TERM is routed in such a case via the second logical level LYR2 to the first logical level LYR1, whereby necessary parameters within the signaling information—e.g. call number and characteristics of the calling user—are forwarded in corresponding messages or communication function calls PR1,PR2.
Signaling messages SGN are then exchanged between the called communication unit TERM and the master computer SRV in the first logical level LYR1. The signaling messages SGN are used at the time of establishment of the communication connection for example to agree which port and codec should be used for the communication to be set up. After the end of this signaling phase, confirmation of a successfully established connection and result parameters accompanying this are returned via the second logical level LYR2 and via the third logical level LYR3 to the calling communication unit TERM for voice transmission and monitoring of the communication connection.
From the point of view of the called communication unit TERM the exchange of messages in the logical level LYR1 corresponds to communication with a SIP proxy server or in an alternative embodiment with an H.323 gatekeeper, depending on which of the two communication protocols was used to exchange signaling messages with the communication unit TERM.
From the point of view of the calling first service user SC1 in the third logical level LYR3 this message exchange remains hidden. In this level LYR3 only abstracted communication services PR1 are called up and parameters returned relating to said services PR1.
If however the called communication partner is arranged in the third logical level LYR3 like the calling communication partner, in other words for example in the case of a request for a connection between the first and second service users SC1,SC2, the connection is established directly on the second logical level LYR2.
For this purpose the service provider units PRX1,PRX2 arranged in the second logical level LYR2 are responsible for all the steps required to establish the connection and the associated parameters, such as the request for establishment of the connection, the capacity interrogation, request confirmation, etc.
The time lines 1, 2, 3, 4 and 5 are assigned in this order to the first service provider unit SC1, the second interface IF2.1 of the first service provider unit PRX1, the first interface IF1 of the communication master computer SRV, the first processing unit of the communication master computer SRV, and the communication unit TERM. The time lines 1,2,3,4 and 5 run from top to bottom, so that later times t are lower down than earlier times t.
At a time t0 the first service user unit SC1 calls up the communication service CALL to establish a connection to a communication partner to be specified in parameters. This call is sent via a prompt 310 containing further parameter from the service user unit SC1 to the assigned first service provider unit PRX1 and received by the first interface IF2.1 of the first service provider unit PRX1. As it is already known in the first service provider unit PRX1 on the second logical level LYR2 due to a previous registration of the service user unit SC1 which coding methods or codecs the service user unit SC1 uses or a preferred sequence for their use, it is not necessary for the service user unit SC1 to specify these parameters in the previous prompt 310 and they do not have to be specified additionally in every method call.
The service provider unit PRX1 receives the request for a service call sent with the prompt 310, processes the parameters contained in the prompt 310 and at a time t1 generates a further prompt 312 directed to the first logical level LYR1, which is received at the first interface IF1 of the SIP master computer SRV. This prompt 312 contains a connection identification number identifying the current connection request, also referred to as Call ID, which is allocated by the service provider unit PRX1.
At a time t2 a confirmation message 312 is transmitted from the first interface IF2.1 of the first service provider unit PRX1 to the first service user unit, generally referred to in specialist circles as an acknowledge message 314. This confirmation message 314 sent from the first service provider unit PRX1 via the first interface IF2.1 reports the ongoing processing of the connection set-up initiated with the prompt 310.
During subsequent processing in the first logical level LYR1 all the parameters received with the prompt 312 are extracted from said message and transformed into a standard SIP invite request. SIP session set-up is then started.
At a time t3 this SIP invite request is generated in the form of an invite message 316 by the first interface IF1 of the master computer SRV based on the prompt 312 and using the parameters contained therein and transmitted to the first processing unit BL1 of the master computer SRV. As with the previous comments on the distributed nature of the SIP master computer SRV, it should be noted here that in an alternative embodiment the first processing unit BL1, the converting first interface IF1 and the SIP master computer SRV are implemented in distributed systems, which communicate with each other via the packet-oriented network (not shown).
At a time t4 SIP session set-up is started by the first processing unit BL1 and an invite message 318 is sent to the communication unit TERM. The first processing unit BL1 takes over the role of a SIP proxy in respect of the communication unit. In the present exemplary embodiment the communication unit TERM is in the form of a so-called SIP user agent.
At a time t5 a signaling message 320 is sent from the first communication unit TERM to the first processing unit BL1. After successful verification of the readiness of the communication unit TERM to receive the connection request, the signaling message 320 reports successful signaling of the connection request, which is generally effected with call signaling in conventional communication units. In the case of a preferred implementation of the communication unit in the form of a software application in the exemplary embodiment, a number of other signaling forms can be implemented in addition to acoustic signaling to indicate an incoming connection request. The signaling message 320 is also referred to as ringing in SIP terminology, based on conventional signaling forms. According to SIP conventions this signaling message is categorized with code 180.
At a time t6 the signaling message 320 received by the first processing unit BL1 is forwarded in the form of a further signaling message 322 to the first interface IF1. Optionally some of the parameters contained in the previous signaling message 320 are modified by the first processing unit BL1 before it is forwarded in the form of the signaling message 322.
At a time t7 a signaling message 324 is sent by the first interface IF1 to the second interface IF2.1 located on the second logical level LYR2, in which data from the previous signaling message 322 contained in a SIP format is transformed to a format anticipated by the second interface IF2.1, e.g. XML. The signaling message 324 is now processed in the service provider unit PRX and assigned to the previously started communication service using the determined call ID.
Finally at a time t8 acknowledgement of the called communication service is given to the calling first service user unit SC1 in the form of a signaling message 326 by means of signaling to the called communication unit TERM.
If a user of the called communication unit TERM receives the connection request, at times t9, . . . ,t12 respectively confirmation messages 328, 330, . . . , 334 are sent from the communication unit TERM to the first service user unit SC1. The first confirmation message 328, structured in a SIP format—in SIP terminology also referred to as OK and categorized as code 200 according to SIP conventions, is similarly received finally as acknowledgment of the called communication service in the form of the confirmation message 334 at the first service user unit SC1. If connection set-up is rejected by the called communication unit, a reason for the rejection is contained in the—in this instance negative—confirmation message 334, which is transmitted in an XML format to the first service user SC1.
If a positive confirmation message 334 reaches the first service user SC1, at times t13, . . . ,t16 respectively backward confirmation messages 336, 338, . . . , 342 are similarly sent from the first service user unit SC1 to the communication unit TERM. The first confirmation message 336 in an XML format is sent by the first service user SC1, if this latter agrees to the communication connection.
A direct useful data connection PLD1 is then established between the first service user SC1 and the called communication unit TERM.
The time lines 1,2,3,4 and 5 are assigned in this order to the first service provider unit SC1, the second interface IF2.1 of the first service provider unit PRX1, the second interface IF2.2 of the second service provider unit PRX2 and the communication unit TERM. The time lines 1,2,3 and 4 run from top to bottom, so that later times t are lower down than earlier times t.
If as in the present exemplary embodiment, a communication connection is to be established between two service user units SC1,SC2, functional units of the first logical level LYR1 are not required. From the point of view of the calling service user unit SC1 communication with the second logical level LYR2 is identical to the exemplary embodiment in
At a time t0 the first service user unit SC1 calls up a communication service CALL to establish a connection to a communication partner to be specified in parameters. This call is sent from the service user unit SC1 to the assigned first service provider unit PRX1 via a prompt 410 containing further parameters and received by the first interface IF2.1 of the first service provider unit PRX1. As it is already known in the first service provider unit PRX1 on the second logical level LYR2 due to a previous registration of the service user unit SC1 which coding methods or codecs the service user unit SC1 uses or a preferred sequence for their use, it is not necessary for the service user unit SC1 to specify these parameters in the previous prompt 310 and they do not have to be specified additionally in every method call.
The service provider unit PRX1 receives the request for a service call sent with the prompt 410 and processes the parameters contained in the prompt 410. From a parameter sent to identify the called communication user, the second service user unit SC2, it is particularly clear to the service provider unit PRX1 that the called user like the calling user is associated with the third logical level LYR3.
Then at time t1 a prompt 412 is sent to call up a communication service on the service provider unit PRX2 associated with the second service user unit SC2. This prompt 412 contains parameters required for the communication connection and is sent from the first interface IF2.1 of the first service provider unit PRX1 to the second interface IF2.2 of the second service provider unit PRX2.
At a time t2 a confirmation message 414 is transmitted from the first interface IF2.1 of the first service provider unit PRX1 to the first service user unit SC1, which is also referred to in specialist circles as an acknowledge message 414. This confirmation message 414 sent from the first service provider unit PRX1 via the first interface IF2.1 reports the ongoing processing of the connection set-up initiated with the prompt 410.
At a time t3 a prompt 416 is sent from the second interface IF2.2 of the second service provider unit PRX2 to the second service user unit SC2. This prompt 416 has an XML structure and forwards the request initiated with the prompt 410 to establish a communication connection or call request directly to the second service user unit SC2, optionally with the addition of further administrative parameters by the service provider units PRX1,PRX2.
After successful verification of the readiness of the second service user unit SC2 to receive the connection request, signaling messages 418,420,422 sent at times t4,t5,t6 report successful signaling of the connection request, which is effected with call signaling in conventional communication units. The signaling messages 418,420,422 are therefore also referred to as ringing.
If a user of the called second service user unit SC2 receives the connection request, at times t7,t8,t9 respectively confirmation messages 424,426,428 are sent from the second service user unit SC2 to the first service user unit SC1. The first confirmation message 424, structured in an XML format—also referred to as OK—is similarly received finally as acknowledgment of the called communication service in the form of the confirmation message 428 at the first service user unit SC1. If connection set-up is rejected by the called second service user unit SC2, a reason for rejection is contained in the—in this instance negative—confirmation message 428.
If a positive confirmation message 428 reaches the first service user SC1, at times t10,t11,t12 respectively backward confirmation messages 430, 432, 434 are similarly sent from the first service user unit SC1 to the second service user unit SC2.
It is however assumed with reference to the exemplary embodiment shown according to
The time lines 1,2,3,4 and 5 are assigned in this order to the communication unit TERM, the first execution unit BL1 assigned to the SIP communication master computer SRV, the first interface IF2.1 assigned to the first service provider unit PRX1, the first interface IF1 assigned to the SIP communication master computer SRV and the first service provider unit SC1. The time lines 1,2,3,4 and 5 run from top to bottom, so that later times t are lower down than earlier times t.
At a time t0 the first communication unit TERM sends a prompt 510 in a SIP format to establish a connection with a communication partner, also referred to as a SIP INVITE. This prompt is sent from the communication unit TERM to its assigned SIP master computer SRV and received by the latter's processing unit BL1. The processing unit takes over the role of a SIP proxy. The communication partner specified using parameters in the prompt 510, namely the first service user unit SC1, is not controlled by the processing unit BL1 of the SIP communication master computer SRV, so the prompt 510 is forwarded by this latter at time t1 in the form of the largely unmodified processing message 512 to the second logical level LYR2, more specifically to the first interface IF2.1 of the service provider unit PRX1 there.
From the point of view of the first service user unit SC1 functional units in the second logical level LYR2 interact with the first interface IF2.1 like a proxy, i.e. all the bi-directional signaling messages described below operate via this level LYR2.
At a time t2 the previously received prompt 512 is forwarded via the first interface IF2.1 of the communication master computer PRX1 to the interface IF1 of the SIP communication master computer SRV. This forwarding is effected as an appendix to a message, which is otherwise effected in a format provided for communication between these two interfaces IF2.1,IF1, e.g. in an XML format.
In the first logical level LYR1 a SIP INVITE request, i.e. an invitation in the communication protocol SIP, is identified from this appendix to the message 514 and sends a prompt 516 in XML format at time t3 via the interface IF1 to the first interface IF2.1 of the communication master computer PRX1 to call up a communication service CALL.
In the service provider unit PRX1 on the second logical level LYR2 a communication service call—or call request —is identified for the controlled service user unit SC1, whereupon at time t4 a corresponding prompt 518 in an XML format is sent from the first interface IF2.1 of the communication master computer PRX1 to the first service user unit SC1.
Before an operator or a software application decides to accept the communication connection requested by means of the prompt 518, at time t5 a signaling message 520—also referred to as ringing—is sent to the first interface IF2.1 of the communication master computer PRX1.
At time t6 this signaling message 520 is passed on in the form of a forwarded signaling message 522 to the first logical level LYR1 or to the interface IF1.
The signaling message 522 received at the first interface IF1 is evaluated and a corresponding SIP signaling message 524—categorized as code 180 according to SIP conventions—is transmitted to the processing unit BL1 acting as the SIP proxy.
At a time t8 this SIP signaling message 524 in the form of a further SIP signaling message 526 is forwarded from the processing unit BL1 to the SIP communication unit TERM.
If a user of the called first service user unit SC1 receives the connection request, at times t9, . . . ,t12 respectively confirmation messages 528,530, . . . ,534 are then sent from the first service user unit SC1 to the communication unit TERM. The confirmation messages 528, . . . ,534 exchanged at times t9, . . . ,t12 correspond in the counter direction to the exchanged confirmation messages 328, . . . , 334 known from
At time t9 a first call of a communication service confirming acceptance of the connection—Response or ok—is sent in the form of the confirmation message 528 first to the interface IF2.1 acting as proxy in the second logical level LYR2, which transmits said confirmation message 528 at time t10 in the form of confirmation message 530 to the interface IF1. The confirmation message 530 received at the first interface IF1 is evaluated and a corresponding SIP confirmation message 532—in SIP terminology also referred to as OK and categorized according to SIP conventions as code 200—is transmitted to the processing unit BL1 acting as the SIP proxy, from whence it is finally transmitted at time t12 as a SIP confirmation message 534 of the SIP communication unit TERM.
If a positive confirmation message 534 reaches the SIP communication unit TERM, at times t13, . . . ,t17 respectively backward confirmation messages 536, 538, . . . , 544 are similarly sent from the SIP communication unit TERM to the first service user unit SC1.
Number | Date | Country | Kind |
---|---|---|---|
10345548.5 | Sep 2003 | DE | national |