Hello,
We will discuss the Stage-3 service description of the PNM Server in this post. I understand that the Stages 1 and 2 are read and understood.
They can be found here:
It will be helpful if the above two posts are referred in concurrence with this post. It will give a more holistic view of the implementation challenge in front of us.
The Stage-3 service description will be divided into the following parts:
===========================================
AGENDA:
A) Procedures to be implemented as per 3GPP specifications
B) XML Handling procedures
C) Graphical User Interface requirements and integration
D) Forward Path
===========================================
A) Procedures to be implemented as per 3GPP specifications
To put things in perspective, the PNM application server will be acting as a User Agent Server (UAS) in the sense of RFC 3261 and as a third-party registrar. It will also need to initiate SUBSCRIBE requests (UAC) and proxy INVITE requests (proxy server). Procedures of RFC 3261 for these behaviors apply. In addition, the major procedures to be handled by the PNM server are as follows:
1. Accept the REGISTER request from the IMS core network
2. Perform certain checks as per 3GPP TS 24.229 Section 5.7.1, Page 148
3. Schedule a timer for the duration indicated by the REGISTER request
4. Send back a success response to the REGISTER (only if the checks pass)
5. Initiate a SUBSCRIBE request for the ‘reg’ event package
6. Once the subscription is established, schedule a timer for the subscription duration.
7. Expect SIP NOTIFY requests for the duration of the subscription.
8. If a REGISTER with expires=0 is received, cancel the REGISTER timer and also send a SUBSCRIBE with expires = 0 and release the subscription timer.
9. Perform SIP session redirection depending upon the XML policy document stored in the XDM server by the mobile device. This XML document can be seen in 3GPP TS 24.259. All specs can be downloaded from here: WHITELASSI FILES SECTION
10. Point 9 above is subject to defining a new XCAP application usage as given in TS 24.259, in the XDM Server. This is a pending issue and can be viewed here: WHITELASSI ISSUES SECTION
11. Apart from the procedures on SIP, there are procedures that have to be implemented as part of another SBB, which will use the XCAP client resource adaptor and the HTTP servlet Resource adaptor. This SBB will be used to interact with the XDM (XML Document Manager) server for checking the policy document stored as XML and then invoking the relevant procedures on SIP. Details on XCAP protocol are given in RFC 4825. The exact configuration procedures on XCAP are given in 3GPP TS 22.259, 23.259 and 24.259, all of which are downloadable from the WHITELASSI FILES section.
12. Details on what the XDM Server is and how it works are given in the form of a specification in the WHITELASSI FILES section. The document name is OMA-TS-XDM_Core-V2_0-20080916-c.pdf
13. Implement the procedures for a UAC, UAS and proxy servers as per RFC 3261 (keeping them in mind).
The basic call flow is given as below:
—————————————————-
B) XML Handling procedures:
—————————————————-
The very first requirement is to define a new application usage for the XDM server. The XDM server acts as a central XML metadata repository for the PNM Server. The XDM server stores a XML document for each user, which specifies the preferences of the user. During SIP call control, this XML document may be consulted to decide the routing of the call.
For the XDM server to correctly understand and store such per user XML data, an XML application usage has to be added to the XDM server. The procedure for adding an application usage to the XDM server is given here: XDMS application usage addition
Once this application usage is completed, we will need to create a SBB named CallControlSbb. This SBB will take care of the SIP INVITE call control flows and will need to make the InternalXDMClientControlSbb as the child sbb. This child sbb is present in the XDM code.
This CallcontrolSbb will create a child Sbb, which will perform XML lookups during the call to decide the further routing of the call. When we get to implementing the CallControlSbb, i will discuss it in more detail.
————————————————————
C) Graphical User Interface requirements and integration
—————————————————–
The major GUI requirements are outlined here in this thread: GUI Requirements for PNM
The graphical user interface for the PNM server will act as a XCAP client in the context of RFC 4825. The user will log into the GUI, specify his preferences and save them. Upon saving, the GUI application bean class will marshal an XML document as per the XML schema defined in the PNM specifications using the JAXB APIs and create a unique XML document for this user. Then the GUI will insert this document in the XDM server. This will be the PNM user provisioning process flow.
Hence the GUI acts as a XCAP client. The interface between the GUI application and the XDM server is XCAP/HTTP. XCAP is not a seperate protocol in itself, but only rides over HTTP. However, it has its own terminology as explained in RFC 4825. XCAP enables us to create a document tree for the users of PNM server. Each document will be created during the provisioning once, as explained above.
The call controller SBB defined in point B above, will also act as a XCAP client, with the help of InternalXDMClientControlSbb, and will query this document in the XDM server to take routing decisions. Hence from the perspective of the XDM server, there are 2 actors: the GUI applications and the CallControllerSbb, as shown below:
D) FORWARD PATH:
—————————————–
1. Some of the procedures mentioned above are already under works. You can browse the code here: WHITELASSI TRUNK CODE
2. Moreover, it is recommended, that the links given in this post are studied and the documents downloaded from the FILES section.
3. I would be needing help in implementing the CallControllerSbb and integrate it with the Child Sbb.
4. Adding a new XCAP application usage to the XDM Server
5. Start working on the GUI application using JSF/RichFaces technologies and prepare a GUI specification document.
If there are any doubts, leave me a message here.
Regards
Aayush

