The Call Session Control Functions implemented in OpenIMSCore are based on IPTEL's SIP Express Router,a wonderful SIP proxy I would recommend to anyone building a VoIP system.
Surely, you would want your Application Server to track the user status via SIP SUBSCRIBE command, right ?
According to this draft specification , all you need to do is specify Event header to value debug, and Accept header to value "application/debuginfo+xml" , and if all the security settings are in place, your Application Server should be processing incoming NOTIFY messages in no time , right ? Well , not quite .
Caveat : I have not done any verifications on other platforms , but it will certainly not work for OpenIMSCore, source code revision 608, and here is why.
I went along the way I envisaged my application (remember, I was going to use SUBSCRIBE request to receive NOTIFY messages on user status in the IMS network) , however it just did't work . SCSCF kept crashing every time after receiving a perfectly formatted SUBSCRIBE from my AS application through ISC interface !
WT..Hell?!
Some scscf.cfg fiddling and a couple of Wireshark sessions later, I've decided to look into the C code of the actual SCSCF implementation. I am not going to post the code here even though it is released under one of those GPL licences,(and you can get it freely from svn repositories of berlios.de) but it will suffice to say that the only SUBSCRIBE Event headers that are accepted are "reg" (for registration status), which is of no practical use to me as I can get user registation status via either UDR or PNR through the Sh interface . To further support my case, and to paraphrase a dear professor of mine from undergrad studies - if you don't trust me, take a look at the code and see for yourself :)
But wait, there's more ! Not only does this implementation not allow "debug" Event headers, it also limits the acceptable senders to the Proxy Call Session Control Function and the registered UE itself.
So there you go , if you are not going to modify the OpenIMSCore code yourself, with the release source code release revision 608 that I am using, you won't get much of ISC functionality, unless of course you are developing something other than an Application Server.
I would like to close this piece with a remark that I am in no way bashing/critizing the OpenIMSCore development team - I highly admire and value the work that people at Fraunhofer FOKUS have completed thus far, and respect the fact that they were kind to share this platform with the rest of us to play around. Their efforts to help everyone on their mailing lists are commendable as well.
If anyone else has had similar experiences on this or any other IMS platform, I would love to hear them, particularly the stories of the "dreaded" ISC interface.