Handling of applications of mobile terminals in a serving node

A method of supporting a communication between a mobile terminal UE and a serving node of a telecommunication network, the serving node comprising an application interface, a programming module and a basic code module storing and processing basic functions. The serving node receives an initialization message from the UE and determines a call reference number for the incoming call. An incoming call listener is activated to listen to incoming calls that are related to the call reference number. A signal is created which listens for a trigger-signal in basic functions in the basic code module. After the incoming call, related to the call reference number is detected, the signal listener is allocated to the incoming call, wherein an application in the programming module is executed after the signal listener detects the trigger signal related to the call reference number.

TECHNICAL FIELD

The invention relates to a method of supporting a communication established between a mobile terminal and a serving node of a telecommunication network.

BACKGROUND

Programmable mobile terminals or mobile phones are becoming a huge business case in the future for operators and providers. These mobile terminals are based on special operating systems for mobile terminals like Windows or Linux and comprising a programming area for storing applications. One of the most popular operating systems for programming mobile terminals is the Android operating system which is based on a modified Linux kernel. This operating system allows developers to write so-called managed code in the Java language. With the exception of brief update periods, the operating system Android has been available as open source since October 2008. From this time, a lot of applications have been developed to make the mobile terminals more user-friendly and to enable numerous usages.

To implement the applications of mobile terminals in a telecommunication network, some implementations of applications in packet switched (PS) networks are established. The mobile terminals can e.g. be connected via a gateway GPRS (General Package Radio Service) server to an internet server which provides several applications for mobile terminals. The IP multimedia subsystem (IMS) is another example for delivering Internet Protocol (IP) multimedia services in a PS network with respect to a mobile terminal. The user can connect his IMS terminal, which can be a mobile phone or a mobile computer, to the IMS network using IP. In the IMS, a server can provide applications for the IMS terminal.

To use applications stored in a mobile terminal in a circuit switched (CS) environment without using the implementation of a PS network, the mobile switching center (MSC), which controls the connection between the CS network and a mobile terminal, has to be modified. To implement new features into an existing MSC by changing the basic code is very difficult due to the need of changes in the Global System for Mobile communications (GSM) standards. Even if a change is possible, new MSC features have a long time-to-market gap.

SUMMARY

It is an object of the present invention to enhance the flexibility of a provision of services between a serving node in a telecommunication network and a mobile terminal. This object is achieved by the independent claims. Advantageous embodiments are described in the dependent claims.

According to the present invention, this object is achieved by a method of supporting a communication established between a mobile terminal, UE, and a serving node of a telecommunication network, wherein the serving node comprising an application interface for receiving and sending messages to the UE, a programming module adapted to store and process applications and a basic code module adapted to store and process basic functions of the serving node. The basic functions of the serving node in circuit switched network are the routing of voice calls and other services. The serving node sets up and releases the end-to-end connection, handles hand-over requirements during a call and takes care of charging and real time pre-paid account monitoring. These functions are performed by the basic functions in the basic code module. According to the present invention the serving node receives an initialization message from the UE at the application interface and determining a call reference number for the succeeding incoming call. The call reference number can be an international mobile subscriber identity, IMSI. A further step is the activation of an incoming call listener to listen at incoming calls, related to the call reference number. The incoming call listener is a software program which checks the incoming call reference numbers at the interface of the serving node, which handles the incoming calls. The software can be stored inside the programming module of the serving node. The next step is the creation of a signal listener, which listens at a trigger-signal in the basic functions. The signal listener is a software code in the serving node which is adapted to check the basic code in the basic code module of the serving node. After the incoming call listener detects an incoming call related to the call reference number, the signal listener is allocated to the incoming call. In the basic functions of the serving node, every call is handled in the basic code module. It is therefore important that the signal listener only listens at the call related methods and codes in the basic code module. After the signal listener detects a trigger-signal in the basic functions related to the call reference number; an application is executed in the programming module. To implement new functions and services in a serving node, there is no need to change the basic functions in the serving node. New applications in a programming module can interact with the basic code of the serving node by signal listeners which triggers the execution of additional software code in the programming module.

After the application interface receives an initialization message from the UE, an application, triggered by the application interface, is executed in a further embodiment. This application is adapted to create a signal listener and to trigger basic functions in the basic code module. This application controls the setup of additional functions in the serving node and can be modified without changing the code in the basic functions. If a new service should be adopted in the serving node, a new application has to be inserted in the programming module by an operator. This new application is triggered by the application interface which receives the initialization messages from the UE. To implement a new service, a new identifier has to be inserted in the initialization message to trigger the new application in the programming module.

In a further embodiment of the invention the method further performs the step of starting a call timer associated with the call reference number, after the activation of the incoming call listener. When the call timer expires before the incoming call listener detects an incoming call related to the specified call reference number, the incoming call listener which is: related to the specified call reference number will be deactivated. The deactivation of the incoming call listener can be performed by the application interface or an additional software program, stored in the programming module. The implementation of a call timer has the advantage that if a succeeding call cannot be established in the serving node, the incoming call listener can be deactivated. Storage and processing capacity can be reallocated to other functions or other incoming call listeners.

In a further embodiment the application interface sends or receives data to or from the UE initiated by the application running in the programming module or in the UE. It is possible to display information on a screen of the UE to inform the Operator of the UE about ongoing processes in the serving node. An example is the setup of a multi party call, wherein the serving node sends information related to connected members of the multi party call via the application interface to the UE to inform the operator of the UE, who is already connected to his multi party call.

In a further embodiment of the invention, the basic function in the serving node related to the specified call reference number is blocked during the operation of the application in the programming module after a trigger-signal in the basic functions related to the specified call reference number is detected by the signal listener. It is therefore, possible to test or check a new software code which performs a basic function of a serving node without replacing the basic code in the serving node.

In a further embodiment of the invention the basic function in the serving node related to the specified call reference number proceeds after a trigger-signal in the basic functions related to the specified call reference number is detected by the signal listener. Therefore it is possible to execute several applications and functions in parallel to save time.

In a further embodiment of the invention, the initialization message comprises a delay indication for the serving node to delay the deactivation of an incoming call listener. This has the advantage that if additional applications or software code in the UE can be executed before the UE establishes the call. It is e.g. possible to check data from an external server before setting up the call.

In a further embodiment, a signal adapter translates data which is send between the application of the programming module and the basic function of the basic code module. Therefore it is possible to influence the execution of basic functions of the serving node by the application of the programming module and vice versa. The application in the programming module can e.g. initiates a new call in the serving node for setting up a conference call.

In a further embodiment, every incoming call from another serving node is checked by a B-number listener in the terminating serving node which triggers an application inside the programming module if for a receiving call this function is set by a subscriber at the terminating serving node. The terminating serving node is also able to established further services. The trigger of the execution of additional functions in the terminating serving node is performed by the incoming call.

In a further embodiment a negotiation between the UE and the serving node is performed to check the ability of the serving node to handle the application of the UE before an initialization message is received by the serving node. In an environment which includes serving nodes from different manufacturers or serving nodes with different software or hardware versions, it is advantageously to check the performance of a specified serving node before trying to use any services. It could also happens that the network or the capability of the serving node is not adequate to perform additional services or functions.

In a further embodiment the negotiation comprises the steps of sending a request to the serving node by the UE, wherein the request comprises a service-identity, checking if an according application is implemented in the programming module of the serving node, and sending a result to the UE by the serving node which indicates the availability of the application in the serving node. The service identity can be any kind of identifier which identifies the kind of service which should be performed by the serving node (e.g. conference call).

The invention is also about a serving node, comprising a basic code module, adapted to store and process the basic functions of the serving node, an application interface adapted to receive an initialization message from a mobile terminal, UE, and determining a call reference number from the initialization message. The application interface is further adapted to initiate activation of a call listener. The application interface can also be a server which is not part of the hardware of the serving node. The call listener is adapted to listen at incoming calls related to the specified call reference number, after the application interface received the initialization message from the UE. Further the application interface is adapted to initiate creation of a signal listener, adapted to listen at a trigger-signal related to the specified call reference number in the basic functions of the serving node. The serving node further comprises a programming module, adapted to store and execute an application after the signal listener detects a trigger-signal in the basic functions related to the specified call reference number.

Further embodiments of an inventive serving node relate to a serving node performing one of the already mentioned methods and steps.

The present invention also concerns computer programs comprising portions of software codes in order to implement the method as described above when operated by a respective processing unit of a user device and a recipient device. The computer program can be stored on a computer-readable Medium. The computer-readable medium can be a permanent or rewritable memory within the user device or the recipient device or located externally. The respective computer program can also be transferred to the user device or recipient device for example via a cable or a wireless link as a sequence of signals.

In the following, detailed embodiments of the present invention shall be described in order to give the skilled person a full and complete understanding. However, these embodiments are illustrative and not intended to be limiting.

DETAILED DESCRIPTION

FIG. 1shows a serving node2of a telecommunication network which constitutes the interface between a radio system and the fixed networks. This serving node2can be designated as a mobile switching center, MSC, server in a circuit switched, CS, network. The MSC server2performs all necessary functions in order to handle the CS services to and from a mobile terminal (UE)1. This UE1is capable to store and execute programs and can be a mobile terminal or mobile phone. The UE1can also be a programming mobile terminal or phone such that an operator can write his own software program or download a software program from the internet. The MSC server2is an exchange, which performs all the switching and signaling functions for the UE1, located in a geographical area designated as the MSC area and terminates the user-network signaling and translates it into the relevant network.

The UE1is connected via a non shown radio access network to the MSC server2to perform the necessary data exchange in a communication session.

The MSC server2comprises an application interface21, which is adapted to exchange data with an application11stored in the UE1. The application interface21can be an external or integrated server which is connected to the MSC server2and comprises a processing unit, several interfaces and a program store for storing software code. The application interface21can e.g. designed in using Unstructured Supplementary Service Data (USSD). This data-service is generally associated with real-time or instant messaging type phone services and features the advantage that the response times for interactive USSD-based services are generally quicker than those used e.g. for Short Message Service (SMS). This is because the USSD commands are transferred to the MSC using the fast associated control channel (FACCH). The later incoming call has to be associated to the USSD commands. The data exchange between the UE1and the application interface21is performed over a radio access network which is not shown in all the figures.

The MSC server2further comprises an incoming call listener22which listens to specified identification element or call reference numbers in a call. An example for a specified call reference number is the international mobile subscriber identity (IMSI) Which is a unique number associated with all GSM and UMTS network UEs1. Also other identification methods are possible. It is stored inside the UE1and is sent by the UE1to the network. The data exchange, between the UE1and the incoming call listener22is performed over a radio access network. The incoming call listener22can be an interface allocated with a software which is checking the

One element in the MSC server2is the basic code module25which is adapted to store and proceed the basic MSC switching and signaling functions251in order to handle the circuit switched (CS) services for the UE1. Further the basic module25is enhanced to handle the setup of signal listeners232a,232b. To provide a fast program flow in the MSC server2, the basic functions251of the MSC server2can be programmed in an event-driven, real-time programming language, wherein the code execution is triggered by special events, encoded as signals or methods. One example of such programming language is PLEX (programming language for exchanges) comprising a number of methods252a,252b,252c, shown inFIG. 2a-c. Each method252a,252b,252cneeds a specific method call to be executed. It is therefore possible to stop a process in the MSC server2by suppressing a method call. Because the MSC server2is capable to handle a lot of calls from different UEs1, each method has to be allocated to a specified call. The call reference number has to be allocated to the specified methods252a,252b,252c.

The MSC server2further comprises a programming module23. This module can be programmed in any programming language, e.g. JAVA or C++ and contains applications231a,231b,234which are stored inside this module. The programming module23is adapted to run the stored applications231a,231b,234. The start of an application231a,231bis triggered by a signal listener232a,232b. The start of the application234can be triggered by the application interface21or any other applications231a,231b. The signal listener232a,232blistens to special signals or method calls included in the basic function251of the MSC server2. After the signal listener232a,232bdetects a specified signal or method call or the specified data content of a signal or method call in the basic function251of the MSC server2, it triggers the execution of an application231a,231b.FIG. 1shows two signal listeners231a,231b, wherein the first signal listener232a, which listens to a first signal or method call or a special content in a first signal or method call in the basic function251, triggers the execution of a first application231ain the programming module23. The second signal listener232blistens to a second signal or method call or a special content in a second signal or method call in the basic function251and triggers the execution of a second application231bin the programming module23when it detects the before mentioned second signal or method call or its special content.

To differentiate between calls from different UEs1, the car reference number of a specific call has to allocated to the signal listeners232a,232band the basic function251for this call. This allocation is performed by the incoming call listener22. A signal listener232a,232b, which is allocated to a specific call reference number can only listen to the basic function251, which is allocated to the before mentioned specific call reference number.

The programming module23is further adapted to determine the content of variables related to the specific call reference number from an adapter24which is connected to the basic code module25and to the related basic function251which is allocated to the specific call reference number.

A signal adapter233is arranged between the programming module23and the basic code module25to translate signals or data coming from the basic code module25or signals and data coming from the programming module23.

FIG. 2adepicts a standard situation in the basic code module25, wherein each method252a,252b,252cis called by a signal or method call. In this embodiment, method252ais calling method252band method252cis called by method252b. It is also possible that an external call triggers a method252a,252b,252c.

FIG. 2bdepicts an embodiment of the present invention, wherein a signal listener232alistens at a method call or signal from the method252b. The method call for method252cis blocked. The signal listener232atriggers the execution of an application231ain the programming module23which is adapted to send a signal to the basic function251, translated by a signal adapter233, to call the next method252c. In this embodiment, the application231ain the programming module23replaces a (not shown) method in the basic function251. It is therefore possible to patch the MSC without replacing or changing the basic function251.

FIG. 2cdepicts an embodiment of the present invention, wherein the signal listener232aalso listens at a method call or signal from the method252b. The method call for the next method252cis not blocked and therefore the application231ais executed independently to the method252c. The application231ais e.g. adapted to display data on the UE1or setup further signal listeners232a,232b.

Just in time information, e.g. social data or time related data from a calendar can be concerned when setting up the signal listeners232a,232bor performing code in the applications231a;231b. Even a question/answer interface with the UE1can be started.

FIGS. 3aand3bshow a sequence diagram of a communication established between a UE1, and a MSC server2. In the first step1001, a UE1sends a special initialization message to the application interface21of the MSC server2. This special initialization message comprises at least a call reference number to identify the later incoming call, related to the UE1which initiated this first step1001. This call reference number can be e.g. an IMSI. All further steps are related e.g. to this specific call reference number to restrict this call handling from other calls, which can also be handled by the MSC server2. The initialization message can include several additional data which are necessary to execute applications231a,231b,234in the programming module23or to create call listeners232a,232b. An example for additional data can be call numbers to which the operator of the UE1wants to establish a multi party call. Another example of data in the initialization message is a delay indication to enhance the time on which the incoming call has to be detected by the incoming call listener22. This enhancement may be necessary if the application234needs some more time to establish signal listeners232a,232bor to establish contact to external databases.

In step1002, an incoming call listener22is activated in the MSC server2. This incoming call listener22is related to the before mentioned determined IMSI or call reference number to identify the later incoming call. A call timer can be started in step1003. The duration of this call timer can be specified in the initialization message and depends on the kind of application11which has to be executed in the UE1. When the UE1has to process further steps during the initialization of the call (e.g. consulting an address book), the duration of the call timer will be increased.

In step1004, signal listeners232a,232b, are created. The number and parameters of the signal listeners232a,232bcan be determined from the initialization message e.g. by an application234which is also stored in the programming module23. In the example ofFIG. 1, two signal listeners232a,232bare created, listening at a “signal1” and a “signal2” in the basic function251. It is possible that the signal listeners232a,232bmay also be triggered not only by the signal itself but by the content of a signal in the basic function251. Every signal listener232a,232bis associated with an application231a,231bin the programming module23. If a signal listener232a,232bis triggered, it starts the associated application231a,231bin the programming module23.

In step1005and1006, the call timer is checked by the incoming call listener22. If the call timer is not expired, and an incoming call with the specified call reference number is detected, the call is established and the signal listeners232a,232bremains active. If the call timer has expired, the incoming call listener22is deactivated. All other established signal listeners232a,232bwill be deactivated. If an incoming call is detected thereafter, the call is handled as a normal call without involving the applications231a,231b,234in the programming module23.

After an incoming call is detected by the incoming call listener22, the incoming call listener22allocates the established signal listeners232a,232bto the call program code251with the detected call reference number, e.g. the IMSI. The signal listeners232a,232bonly listen on signals or method calls which are related to the incoming call. Signals and method calls relating to other calls which are also handled by the MSC server2, will not be touched.

In step1008(FIG. 3b), the signal listeners232a,232bcheck the basic functions251for specified signals or contents in these signals. If a signal listener232a,232bdetects a signal or the specified content of a signal, the associated application231a,231bis executed in step1010,1010″. The signal can also be used as a method call for a method252a,252b,252cin the basic function251.

In an embodiment of the invention, a further step1009is included which determines the need to block the execution of the basic function251during the execution of the associated application231a,231b. An example to block the further execution of the basic function251is to block the method call for the next method252a,252b,252cin the basic function251. This decision can be based on an information element which can be determined by an application234in the programming module23with data from the initialization message which was sent in step1001to the application interface21. The decision is based on the kind of signal listener232a,232b. The application231a,231bis adapted to trigger methods252a,252b,252cin the basic function251with the same call reference number or with a different call reference number via the signal adapter233. It is also possible that the application231a,231bcreates new signal listeners232a,232bwhich then triggers the execution of further applications231a,231b.

Step1011is executed which blocks the method call in the basic function251. After the application231a,231binside the programming module23is executed in step1010′, the method call in the basic function251proceeds (step1012). The continuation of the method call can be triggered by the application231a,231bvia the signal adapter233.

It is also possible to establish a parallel process which can be executed in parallel to the basic function251. Therefore, no blocking of the method call252a,252b,252cin the basic function251is performed. The application231a,231bis executed in step1010. The parallel executed application231a,231bcan trigger a method252a,252b,252cin the basic function251with a call reference number which is different from the call reference number of the call which was identified by the incoming call listener22before. It is not possible to have methods252a,252b,252cexecuted in the basic function251in parallel to other methods252a,252b,252cwith identical call reference numbers. The application231a,231bcan also trigger new applications in the UE1or send data to it. It is also possible that the application231a,231bcreates new signal listeners232a,232bwhich then triggers the execution of further applications231a,231b.

A further application234is introduced which is not triggered by a signal listener232a,232b. This application234can be triggered by the application interface21after a first contact to the UE1is established and is also adapted to create signal listeners232a,232b.

During the processing of the application231a,231b,234data can be exchanged between the application231a,231b,234: in the programming module23and the application11located on the UE1. This data exchange is performed by the application interface21. The application231a,231b,234can therefore triggers additional action, e.g. asking for additional input via the user interface in the mobile terminal UE1. The UE1can be any kind of mobile terminal which is adapted to process applications11. The operating system of such a mobile terminal1can be e.g. an Android-system, LINUX-System or a Windows Mobile-System. Also other operating systems for mobile terminals are possible.

It is also possible to exchange data between the applications231a,231b,234and the basic function251located in the basic code module25via the variables adapter24. To translate signals from one programming language to another programming language, a signal adapter233is introduced which is located between the programming module23and the basic code module25. During the process of data exchange, no changes in the basic function251were realized. This is important because a change in the basic function251, particularly if external signal interfaces are touched, is mostly not possible without a change in the standards.

A signal listener232a,232bcan also be activated or set by the application231a,231bto listen at signals in the basic function251.

After all activated signal listeners232a,232bhave triggered an associated application231a,231b(step1013), the special handling of this call ends in step1014. It is possible that the call is ongoing and is therefore handled in the basic code module25according to standard procedures. It is advantageous to release all listeners232a,232b,22to be able to reallocate memory capacity and processing capacity to new calls.

One example to use the inventive method is the setup of a multi party call without any time delay. In a standard environment, a multi party call means serial setup of single discrete segment of a call (call legs) in the mobile terminal1. This results in a time delay for the initiator and also for the members of the multi party call. According to an embodiment of the invention, a user of a mobile terminal1starts a multi party call application11on the UE1. The application11triggers the UE1to send an initialization message via the application interface21to the MSC server2. The call reference number or IMSI of the UE1is determined and a call listener22is activated. In parallel a call timer is started. The initialization message comprises the numbers of the participants of the multi party-call except the one who is called later directly. Due to this numbers, several signal listeners232a,232bare created wherein the number of signal listeners232a,232bdepends on the number of participants in the multi party call. The signal listeners232a,232btry to detect the completion of connection of a call leg. Additionally the same number of signals is sending out via the signal adapter233to trigger the setup of the call legs. Every call leg has its own call reference number. The UE1initiates a basic call to one of the participants (e.g. the first participant on the list of the party). This basic call has to be initiated before the call timer expires. Every call leg is linked to a signal listener232a,232bwhich listens to the “connection-complete-signal” for each call. When a connection is established, the signal listener232a,232btriggers an application231a,231bwhich is able to send information to the UE1. Further the application231a,231bcreates a signal which is translated by the signal adapter233and is sent to the basic function251to set the connection on “hold”. A further signal listener232a,232bis created by the application to listen on a “hold complete” signal from the basic function251. After the “hold complete” signal is detected, a signal, which is translated by the signal adapter233, is sent to the basic function251by the application231a,231bto merge the calls, if other calls already exist. To listen to the “merge complete” signal, an additional signal listener232a,232bis activated by the application231a,231b. After all calls are merged, the multi party call is established.

A slightly different example using the above described mechanism is the establishment of a connection to a subscriber using several available call numbers (e.g. home, work, etc. . . . ). One call number is called directly wherein the other call numbers are sent in the initialization message. The handling of these call numbers is the same as in the multi party call, example. The only difference is that the process is stopped if one connection is made.

Another example for using the inventive method is the establishment of an advanced call without considering the setting in the home location register (HLR). Normally the setup in the HLR can not be changed so easily. One of the settings is e.g. the allowance to display the own call number on the display of the called party. By selecting an application11on the UE1, the application11triggers the UE1to send an initialization message via the application interface21to the MSC server2. The IMSI of the UE1is determined and a call listener22is activated. In parallel a call timer is started. A signal listener232a,232bis created to listen to the HLR checking signal in the basic function251. If the signal is detected, the method call in the MSC is blocked. The information element in the HLR signal, which indicates an allowance for the display of the caller number to the called party, is replaced by an information element which forbids the display of the caller number. After the new information element is send to the basic function251via the signal adapter233, the method call in the basic function251proceeds, triggered by a further signal via the signal adapter233. It is also possible to display the HLR settings to the UE1by sending the data through the application interface21to an application11of the UE1. The user can select the setup-information he wants to use for this call and sends the information back to the application231a,231bof the programming module23. The application231a,231bthen replaces during the call setup the current HLR information elements related to the current call reference number with the changed HLR information element in the basic function251by translating the signals in the signal adapter233.

Another example for using the inventive method is the integration of a calendar of the called party on the terminating side. After the handling of the initialization message and after a call is made and detected by the incoming call listener22, a timer is started in an application234,231a,231blocated in the programming module23. If a signal listener232a,232b, which was established before, does not detect a “connection established” signal in the basic function251before this timer expires, the calendar of the called party is contacted. If the result is an entry of an appointment in the calendar of the called party which currently takes place, a message can be transferred to the UE1of the caller that the called party is busy (e.g. by sending an SMS). An automatic call back function can be set in the UE1which triggers the UE1to build up a call e.g. 5 minutes after the appointment ends. It is also possible that the application234,231a,231btriggers a call to both party members after the end of the appointment of the called party.

After a terminating UE1set an indication to the terminating MSC server2that it is interested to handle the incoming call specially, an incoming call listener22listening on the B-number of an incoming call is activated at the terminating MSC server2. After the incoming call listener22at the terminating MSC server2receives a call13with a specific call reference number or B-number, signal listeners232a,232bare set. One signal listener232a,232bis set to listen for call forwarding cases. If the call forwarding case is detected, the signal is not blocked (method execution ongoing) and an application231ais activated which checks the actual outlook status. If the subscriber of the terminating UE1is in a meeting, this information can e.g. send in an SMS to the called party (triggered by231aand233).

To reduce the traffic in the net, a further embodiment of the present invention is introduced which prevents the participation of the terminating UE1in the call setup procedure. Therefore, a B-number listener235is established in the MSC server2, which detects incoming calls13in the basic code module25, including specified identification signatures. If the B-number listener235detects specified signals in the basic function251, it triggers an application236inside the programming module25which performs e.g. a call forwarding as described above.FIG. 4depicts such a B-number listener235which is always active. The B-number listener235can be located inside the incoming call listener22(pictured by a dashed line). It checks the B-number instead of the IMSI. The B-number listener231does not comprise a timer which terminates the listening process like the incoming call listener22.

FIG. 5depicts additional negotiation interfaces31,32for the communication between an MSC server2and a UE1. Because network configuration can be quite different, it may happen that the necessary implementation is not available in the MSC server2. Some operators have e.g. activated Automatic Cross-Connection Equipment (AXE) features, others not. If a user of a UE1tries to use additional functions which require the prescribed features/environments in the MSC server2, the UE1has to check if the features/environments are available in the MSC server2. The possibilities of an MSC server2can be based on the hardware, on the software version, on the performance or on specific features. Therefore, a negotiation procedure has to be performed.

Before an initialization message is sent by the UE1to the application interface21, a request is sent to a MSC negotiation box31(MSCNB) by a negotiation box32of the UE1(UENB), checking if an according application is implemented in the programming module23of the MSC server2. The MSCNB31checks the received individual code or service identifier of the UENB32which is associated with the application11of the UE1. A result is sent back to the UENB32which indicates the general availability of the application or service in the MSC server2.

One result can be that the MSC server2is not able to handle the application11in the UE1because the MSC server2has no compliant in the programming module23. An announcement can be created on the UE1that this application cannot be performed in this environment at all. Another option can be that a reduced application is triggered instead. If this application is available in the programming module23the other requirements (hardware, performance, etc. . . . ) are checked. Therefore the UENB32sends a request including the for the application relevant checking parameters to the MSCNB31.

Another result of a negotiation can be that the performance is not good enough to provide the requested features. One performance parameter is e.g. the transfer speed or the connection speed. Due to an overload condition in the MSC server2or in the network, the connection speed can be very low. An announcement can be created on the UE1that currently the application cannot be performed due to performance problems.

In another embodiment, the UENB32sends several parameter-requests to the MSCNB31which is needed for executing an application11properly. These parameter-requests can include the type of hardware, the relevant features (applications) and the performance of specified connection channels the MSC server2is supported. After receiving an answer, the UE1can determine if a special application11can be executed.

In another embodiment, listener33can be created by the UE1to listen at specific parameters in the MSC server2. A parameter can e.g. be any kind, of connection speed, which is important to execute an application11in the UE1. If the connection speed is too low, a listener33is created which listens at the connection speed. If the connection speed increases above a certain level, the listener informs the UENB32, that the connection speed does not hamper the execution of the application11any more. Another parameter can e.g. be the number of multi party instances in the MSC server2.

In another embodiment of the invention, a management function34is located inside the MSC server2which is adapted to check the amount of active or hanging calls at this specific MSC server2. If a specific amount of calls are handled by this MSC server2, the management function34prevents the execution of any activity inside the programming module23for a specific application. This kind of resource management prevents that basic calls and e.g. emergency calls cannot be handled by the MSC server2because several applications are running in the programming module23which reduce the performance of the MSC server2. The management function34can also give free resources needed for applications running in the programming module23if resources are available.