The present invention relates to Session Initiation Protocol (SIP) communication technologies, and in particular, to a service enhancement method, a proxy server and a communication system.
With the rapid development of networks, a new generation Internet Protocol (IP)-based Session Initiation Protocol (SIP) is put forward. SIP is applicable to various types of media contents and realizes multi-user sessions and has now become specifications of the Internet Engineering Task Force (IETF). The ITEF SIP working group released RFC 3261 in June 2006, which replaced RFC 2543 that was released in March 1999. SIP is a text based protocol and an application layer control signaling protocol for creating, changing or terminating a session involving one or more participants. SIP mainly supports the setup and termination of multimedia communication sessions. In a traditional SIP system, a SIP proxy server routes and forwards SIP messages.
Users have higher requirements on the communication system and hope the system to provide more diversified services; although SIP proxy servers in the prior art can implement basic setup and termination of multimedia communication sessions, they are not aware of services or cannot control the running of services, and therefore, cannot meet the diversified service requirements.
Embodiments of the present invention provide a SIP service enhancement method and a SIP proxy server so as to enhance the SIP proxy server and meet the diversified service requirements of users.
A SIP service enhancement method includes:
A SIP proxy server includes:
A communication system includes:
In the embodiments of the present invention, a SIP request for using a service is received from a SIP user; the service control logic is obtained according to the SIP request; and the service control logic is executed to deliver the service to the SIP user. In this way, the SIP proxy server is able to control a service and provide diversified services for users by executing different service control logic so as to meet user requirements for diversified services in the current communication system.
Embodiments of the present invention provide a SIP service enhancement method and a SIP proxy server so as to enhance the SIP proxy server and meet the diversified service requirements of users.
The SIP service enhancement method and the SIP proxy server provided in the embodiments of the present invention will be described in detail.
A1. Receive a SIP request for using a service from a SIP user.
A2. Obtain service control logic according to the SIP request.
It is understandable that in this embodiment, the process of obtaining the service control logic includes: parsing the SIP request to obtain a service ID of the service; loading the service process description information corresponding to the service ID, where the service process description information may be stored locally or stored in another network element, or preferably, in view of the need to enhance multiple SIP servers in the network, the service process description information may also be stored in a service process description database which provides services for multiple enhanced SIP proxy servers in the system; and parsing the service process description information to obtain the service control logic.
It is understandable that the service process description information is a control program compiled in a software language and that the control program is parsed to obtain the service logic which the SIP proxy server uses to control the current service. It is understandable that the service process description information may be compiled in multiple languages. In this embodiment, BPEL4SIP is used; in other embodiments, such languages as XML, C++ and JAVA can be adopted. The present invention stresses that an appropriate language parsing platform is built in the SIP proxy server to parse the program language and obtain the service control logic. There are multiple programming languages, which are not limited herein.
A3. Execute the service control logic to deliver the service to the SIP user.
In this embodiment, a SIP proxy server receives a SIP request for using a service from a SIP user, obtains the service control logic according to the SIP request, and executes the service control logic to deliver the service to the SIP user. In this way, the SIP proxy server is able to control a service and provide diversified services for users by executing different service control logic so as to meet user requirements for diversified services in the current communication system.
It is understandable to those skilled in the art that all or part of the steps of the foregoing embodiments may be implemented by hardware instructed by a program. The program may be stored in a computer-readable storage medium. When being executed, the program performs the following steps:
The storage medium may be a read-only memory, a magnetic disk or a compact disk.
B1. Receive a SIP request for using a service from a SIP user.
B2. Parse the SIP request to obtain a service ID of the service.
B3. Load a service process description information corresponding to the service ID.
B4. Parse the service process description information to obtain the service control logic.
B5. Obtain information of participants of the service requested by the SIP user.
In this embodiment, the method for obtaining information of service participants includes: parsing the service process description information to obtain the information of service participants. For example, some services require fixed service participants, like special servers (such as a multimedia server and a network broadcast server). Such service participants are fixed and the information can be stored in the service process description information.
Optionally, the method for obtaining information of service participants is to obtain information of service participants that a user inputs.
Steps B5 and B4 involve no sequence.
User inputs can be transferred to the SIP proxy server as signaling parameters or to a content gateway as content parameters and the SIP proxy server will obtain the user inputs from the content gateway.
It is understandable that the service participants may be SIP users or network resources required by the service.
B6. The SIP user and the service participants interact under the control of the service control logic to complete service delivery.
The Business Process Execution Language for Web Services (BPEL4WS), when applied to a SIP environment, is abbreviated to BPEL4SIP. In this embodiment, a BPEL4SIP engine in the SIP proxy server controls the processing of SIP messages in every step according to the service logic.
The service control logic of BPEL4SIP may be of a serial, parallel, conditional, cyclic or any other structure.
Below is an execution rule and triggering mode of service control logic in this embodiment:
(1) Exchange SIP messages with the participating SIP user according to the control logic; depending on the service requirement, there may be multiple participants and it is understandable that some services may not require participation of other SIP users whereas the network directly provides services for the requesting terminal, for example, weather forecast and web multimedia video services.
(2) SIP interactive messages distinguish between sending and receiving. In the case of receiving SIP signaling, the service focus stays at the current step and waits for the participating user to send the SIP signaling, and when the SIP signaling arrives, the current step is ended; in the case of sending SIP signaling, after a command is sent to the participating user, the service focus stays at the current step and waits for a response and when the response is received, the current step is ended.
(3) A service process usually starts with the reception of SIP signaling, probably a SIP request for starting the service from a SIP user or a SIP request from a participating SIP user who is triggered to start a service.
(4) When the service requires resources from the network, the content gateway is controlled to deliver the content resources to the SIP user; the content gateway encodes, decodes, compresses, encrypts and consolidates the resources.
(5) At the end of the service, the SIP proxy server receives a service end request from the SIP user and unloads the service data.
In this embodiment, the SIP proxy server may be regarded as empty before a specific service process description information is loaded, but it has the ability to parse and execute the service process and SIP signaling. After the SIP proxy server loads different service descriptions according to the service requirement, the SIP proxy server acts as different service proxy servers. In this sense, the SIP proxy server may be regarded as a service driven proxy server.
Table 1 gives an exemplary syntactic structure describing how the SIP service control logic organizes SIP signaling. The BPEL4SIP structure may be sequential, parallel, conditional or cyclic.
A sequential structure includes multiple SIP signaling to be executed sequentially. The SIP signaling is executed in the sequence of their appearance under the Sequence element. After the last SIP signaling is executed, the entire sequential structure is complete.
A parallel structure includes multiple commands to be executed in parallel. The SIP signaling has no sequence in time. When all SIP signaling is executed, the entire parallel structure is complete.
A conditional structure includes SIP signaling to be executed. These conditions are defined in If, Zero, or multiple ElseIf and optional Else elements. If and ElseIf are sequential in time. The branch where the condition is first met is executed; when no conditions are met, the Else branch is executed. When the SIP signaling of the branch where the condition is first met or the Else branch is executed, the entire conditional structure is complete.
A cyclic structure includes SIP signaling to be executed repetitively. The structure is defined in RepeatUntil and While elements. The cyclic structure defined by RepeatUntil means the SIP signaling is repeated until the condition is met; when the condition is met, the cycling is ended and the entire cyclic structure is complete. The cyclic structure defined by While means the SIP signaling is executed so long as the condition is met; when the condition is not met, the cycling is ended and the entire cyclic structure is complete.
A nested structure means that the four types of structure may be nested within each structure and nested between structures during implementation. For example, a branch of a parallel structure may be sequential; a branch of a sequential structure may be parallel; a conditional structure may be nested in a conditional structure; and a cyclic structure may be nested in a cyclic structure.
As mentioned above, SIP signaling distinguishes between sending and receiving. In SIP signaling defined by SIP-Command, a certain attribute of the SIP-Command element is configured to represent the two types of SIP signaling as below:
The Direction attribute has two options, OUT and IN, which indicate a sent SIP signaling and a received SIP signaling respectively; the Type attribute indicates the specific SIP signaling.
According to this embodiment, a new service may be developed by compiling a service process description information and loading and parsing the description information by an appropriate platform. When a new SIP service is under development, the SIP new service may be described by using BPEL4SIP in an offline manner. First, the SIP service process logic is abstracted; then SIP signaling is organized in one of or a combination of sequential, parallel, conditional, cyclic, and nested structures to describe the logic of the new SIP service. When the new service description file is added to the service process description information database, the development of the new SIP service is complete.
The second embodiment of the present invention is different from the first embodiment in that the second embodiment requires the service participant to execute the service jointly.
The method in the second embodiment is applicable to more service scenarios.
A specific scenario will be described to clarify the application of the embodiment of the present invention.
C1. A conference initiator initiates a SIP request for a multiparty conference call.
C2. A SIP proxy server parses the SIP request to obtain the service ID of the conference call.
C3. A BPEL4SIP engine obtains the service process description information of the conference call from a service process description information database according to the service ID of the conference call.
C4. The BPEL4SIP engine parses the service process description information to obtain service control logic.
C5. The service control logic is executed to set up the conference call.
In the above conference call setup process, the service control logic is executed according to the process shown in
D1. The initiator sends an INVITE request, which carries a parameter indicating information of participants.
The SIP proxy server receives the INVITE request and executes the parallel structure of the service description. The parallel structure has no sequence.
D2. The SIP proxy server sends an INVITE request to a participant to invite the participant to join the conference and waits for a response from the participant; if the participant does not respond, the SIP proxy server sends another INVITE request in 120 seconds and repeats the operation until the participant responds.
D3. After the participant joins the conference successfully, the SIP proxy server controls the content gateway to allocate a conference resource.
The SIP proxy server executes steps D2 and D3 with respect to different participants so as to invite all participants.
D4. After execution on all parallel branches is complete, the SIP proxy server sends a success response to the conference initiator. Now, the process of initiating a conference call ends.
E1. A user sends a SIP request for weather forecast to the SIP proxy server.
E2. The SIP proxy server parses the SIP request to obtain the service ID of weather forecast.
E3. The BPEL4SIP engine obtains a service process description information of weather forecast from the service process description information database.
E4. The BPEL4SIP engine parses the service process description information to obtain service control logic.
E5. The service control logic is executed to provide weather forecast for the user.
In this embodiment, the process of executing the service control logic to provide the weather forecast service for the user is shown in
F1. The SIP proxy server controls the content gateway according to the service control logic to send an input page to the service initiator so that the user can input the place and time of inquiry.
F2. The SIP proxy server receives a message which carries the place and time from the user.
F3. The SIP proxy server queries a third-party application with the input place and time to obtain the weather forecast information and displays the result page to the user via the content server.
F4. The SIP proxy server sends a SIP message for ending the service to the user.
An example of the process description of the weather forecast service is as follows:
A SIP proxy server is provided according to the fifth embodiment of the present invention.
As shown in
In this embodiment, the service processing unit 820 includes a protocol processing unit 821, a service control logic parsing unit 822, and a service executing unit 823.
The protocol processing unit 821 is configured to parse the SIP request received by the SIP transfer interface unit 810 to obtain the service ID of the service.
The service control logic parsing unit 822 is configured to: load the service process description information corresponding to the service ID obtained by the protocol processing unit 821 and parse the service process description information to obtain the service control logic.
The service executing unit 823 is configured to execute the service control logic obtained by the service control logic parsing unit 822 to deliver the service to the SIP user.
It is understandable that the service control logic parsing unit 822 may include:
It is understandable that, in the case of a service requiring other service participants, the service processing unit may further include:
The service executing unit 823 is further configured to execute the service control logic to control the SIP user and the service participants so as to complete the service delivery.
The service process description information database 901 stores descriptions of various service processes which can be parsed and executed by the enhanced SIP proxy server 902.
Herein, a SIP service may be a communication service or a web service that adopts the SIP protocol. The location server is configured to locate the address of the SIP user 903.
The enhanced SIP proxy server 902 processes SIP messages so as to set up a service path and control the content gateway to deliver a content resource to the SIP user. The content resource may be a communication resource or a web resource depending on the SIP service.
When the service requires multiple participants, the enhanced SIP proxy server 902 can exchange SIP messages with not only other enhanced SIP proxy servers but also traditional SIP proxy servers so that they complete the service control together.
The enhanced SIP proxy server 902 shown in
The SIP service enhancement method and SIP proxy server of the present invention have been described through exemplary embodiments. According to the embodiments of the present invention, the SIP proxy server receives a SIP request for using a service from a SIP user, obtains the service control logic according to the SIP request, and executes the service control logic to deliver the service to the SIP user. In this way, the SIP proxy server is able to control a service and provide diversified services for users by executing different service control logic so as to meet user requirement for diversified services in the current communication system. It is apparent that those skilled in the art can make various modifications and variations to the invention without departing from the spirit and scope of the present invention. The embodiments of the present invention are not intended to limit the present invention.
Number | Date | Country | Kind |
---|---|---|---|
200810000803.1 | Jan 2008 | CN | national |
This application is a continuation of International Application No. PCT/CN2009/070223, filed on Jan. 20 2009, which claims priority to Chinese Patent Application No. 200810000803.1, filed on Jan. 22, 2008, both of which are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2009/070223 | Jan 2009 | US |
Child | 12822575 | US |