Tsahi Levent-Levi posted an article on VoiP Survivor about the AMS and its (lack of) relation with the IMS. Furthermore he talks about the innovative nature of the AMS, expressing his hope that the AMS will not be based on stitching and patching of existing protocols. Finally he comments that: “There are those who believe that IMS is a network designed to make money, while AMS is a network designed to provide services to users”. I hope he doesn’t mean that I form part of the former group, although I’m afraid that …
AMS may possibly bring something new and fresh, I really like the focus on the service/application. Especially the idea of cooperation between end-user devices, the Jini vision comes alive again. As for the comparison between AMS and IMS, since AMS is still in its infancy it is indeed hard to compare the two. But they do overlap! And I think that therefore alone they should be compared, over and over and over. Too much money and time has been invested in SIP, XCAP and such that the overlap can not be ignored.
Also I have my fingers crossed that it stays really free of too much vendor influences. A completely academic standardisation probably wouldn’t be the best of ideas either, since a standard is for a big part meant for industrial use. A balance in this is required, in order for a standard to be successfully adopted.
As for the charging and billing stuff, it is perhaps not the sexiest thing to talk about. But if companies are investing in the development of new technology, and are putting large amounts of money in the day-to-day management and operations of services that are using that technology, someone will need to pay for that. The IP backbone and operator networks don’t run and power themselves. And phones and such still don’t grow of trees.
I’m not saying here that business models might not change, think for instance of sponsorship and such. I also think that a customer is certainly willing to pay for what he perceives as value (instead of distance times duration)!
Furthermore if technologies/networks/services are to be monetized, you should see charging, billing and settlement as an opportunity to further increase the customer experience! For instance: a customer is surely wont mind hearing that he/she received something for free, where he/she normally pays for. So why let him/her know at the end of the month on the bill, instead of immediately after or even during service usage!
To end my ramble on charging/billing: there are too many examples of projects where the order handling, provisioning, billing and other non-service customer-facing processes came last, but hugely impacted on the success of a product! Operators usually get more media attention when they screw up with their bills then when they run a cool new services.
Concluding: I applaud and follow with great anticipation any developments that push the state-of-the-art in new (multimedia) services! Be it research or industry standardisation. I however don’t expect a big-bang of mind-blowing unseen services and a customer value that has yet to be seen before.
Frens Jan Rumph
Interesting post from the CTO of NMS Communications on a study from the University of Helsinki, Finland on the usage of 3G in Finland, his analysis: ‘3G’s biggest success is as a dumb pipe‘ and we don’t need IMS, GSM over SIGTRAN over IP with an IP/MPLS core network will suffice. Dean Bubley also posted on this on his Disruptive Wireless blog. Dean raises the question: ‘is it really worth bothering about all that complex QoS, prioritisation, differential pricing, IMS etc for the remaining 5%?‘ These discussions are all based on a presentation of Antero Kivi (pdf).
Yes, it might be a bit shocking, perhaps not suprising, it probably was not the vision of 3G initiators years and years ago. But, I disagree that we just need ‘plain old’ IP access for internet with some GSM and SMS stuff on top. Sure, the days of walled gardens and the traditional one-sided telco business models are over. I won’t argue against that, and this is probably a good indication that it is.
But we will need QoS and prioritisation since some services simply have different requirements on the communications network then others and that has a tremendous effect on the QoE (Quality of Experience), which in turn is (IMHO) an important aspect of some of todays and a lot of tomorrows services. We will also need differential pricing. Flat fee will not last for ever, nor will services with a business model purely based on advertising. Perhaps we will see third-party based sponsorships in the near future, which will require differential pricing. And the IMS is an enabler for this. Especially if you combine that with the vision of research projects such as Ambient Networks and the Advanced Multimedia System. The future will tell if telco’s will become/stay bit pipes, I’d say that there are loads of opportunities to being more then that!
Frens Jan Rumph
I read an article yesterday titled AMS to the rescue, posted on VoiP Survivor. And to be honest, I was a bit shocked and puzzled. It talks about the Advanced Multimedia System which is currently being standardised by the ITU (in study group 16).
I was a bit shocked because the advances made by AMS (as described in the article) sounded like it would have a lot of overlap with the IP Multimedia System, which is being standardised for the last 8 years or so? Continuing to read the article I became a bit puzzled, since the article didn’t even mention the IMS, let alone making a comparision or describing their relationship. Furthermore, do we really need rescuing? Is this a signal from the ITU that we’re heading the wrong way with our current developments (e.g. the IMS)? This called for a little digging
Some facts on the Advanced Multimedia System:
The objectives of the AMS project are:
Some example applications of the AMS:
The AMS project envisions the following components:
My n cents on AMS:
For further information ake look at this project overview presentation (pdf) from Packetizer, it provides a nice overview of the project. Or check out the AMS project description (pdf).
Frens Jan Rumph
I have recently discovered a European patent, and an US patent from Lucent Technologies, describing the functionality of the IMS Gateway Function (GWF). I have always found the IMS GWF construction a bit odd, and causing extra communication overhead.
The IMS GWF construction (as specified in 3GPP TS 32.260 and 3GPP TS 32.240) is shown in the figure below:
IMS Gateway Function
The ISC was the interface into the OCS for session based charging (connected to the Session Charging Function) in the deprecated 3GPP TS 32.200. This OCS architecture did not include an IMS GWF. The IMS GWF appeared in 3GPP TS 32.240 version 2.0.0. Unfortunately there are no change requests available for that version, so I don’t know who put it in. The funny thing is that the patent descriptions that I found were dated 15 November 2005 for the EU patent and 09 December 2005 for the US patent. But version 2.0.0 of 3GPP TS 32.240 v2.0.0 is dated 20 September 2004. I’m not sure what this means for the patents, my guess would be that it would count as prior art.
But still, the question is: are concepts required for the basic functioning of a standard allowed to be protected by a patent? I have had a number of discussions with colleagues on this topic, and its always a non-conclusive discussion. The good guy in me would immediately say: no. It completely goes into the idea of open standards. But from a financial perspective
If any one can provide some arguments to tip me in either direction…
Regarding the IMS GWF: I hope that the existence of 32.240 v2.0.0 allows people to provide an IMS GWF without having to pay royalties to Lucent, and (more important for me) allows ‘free’ and ‘open’ innovation on the IMS GWF.
Frens Jan Rumph
I finished extracting the diameter specifications for the Re reference point some days ago. I’ve included my semi-proprietary ABNF specifications below.
Not as much work as the Ro reference point, but it took me a bit more time to get my head around it. Ro is pretty straightforward, a lot of it is thoroughly explained in IETF rfc 4006, and from the syntax specified in the 3GPP specs a lot of semantics can be pretty easily deduced.
Re however is a different story, the syntax is specified at an acceptable standard, but a lot of interpretation and even guessing is required to understand it fully. There are still semantics that I don’t feel 100% comfortable about.
An example: the relationship between the Monetary-Tariff AVP and the Counter-Tariff AVP. Does the existence of the Monetary-Tariff AVP mean that there can be only one monetary balance? Hopefully not, the existence of the Counter-Tariff AVP seems to indicate the opposite. However the Monetary-Tariff AVP is mandatory in the Service-Rating AVP, while the Counter-Tariff AVP is not. How should this be interpreted by an OCF?
Another example: I’m not really sure about how to interpret multiple occurrences of the Service-Rating AVP. That is most likely due to the fact that I am working on the concept of the Correlation Function a lot lately. The question is how to include the information from the correlation context … If this not done by include multiple Service-Rating AVP’s, then how? If it is done by including multiple Service-Rating AVP’s, then will all of them be rated? What will happen when using a “B”-class rating function?
Food for thought…
The Re specs (please note that the application and avp ids are To Be Determined):
PRQ ::= < Diameter Header: TBD, REQ, PXY, TBD >
< Session-Id >
{ Origin-Host }
{ Origin-Realm }
{ Destination-Realm }
[ Destination-Host ]
[ Vendor-Specific-Application-Id ]
[ User-Name ]
[ Event-Timestamp ]
{ Actual-Time }
{ Subscription-Id }
* { Service-Rating }
PRS ::= < Diameter Header: TBD, PXY, TBD >
< Session-Id >
{ Origin-Host }
{ Origin-Realm }
[ Vendor-Specific-Application-Id ]
[ User-Name ]
[ Event-Timestamp ]
* { Service-Rating }
TRQ ::= < Diameter Header: TBD, REQ, PXY, TBD >
< Session-Id >
{ Origin-Host }
{ Origin-Realm }
{ Destination-Realm }
[ Destination-Host ]
[ Vendor-Specific-Application-Id ]
[ User-Name ]
[ Event-Timestamp ]
[ First-Request ]
[ Begin-Time ]
{ Actual-Time }
{ Subscription-Id }
* { Service-Rating }
TRS ::= < Diameter Header: TBD, PXY, TBD >
< Session-Id >
{ Origin-Host }
{ Origin-Realm }
[ Vendor-Specific-Application-Id ]
[ User-Name ]
[ Event-Timestamp ]
* { Service-Rating }
SUQ ::= < Diameter Header: TBD, REQ, PXY, TBD >
< Session-Id >
{ Origin-Host }
{ Origin-Realm }
{ Destination-Realm }
[ Destination-Host ]
[ Vendor-Specific-Application-Id ]
[ User-Name ]
[ Event-Timestamp ]
[ Begin-Time ]
{ Actual-Time }
{ Subscription-Id }
* { Service-Rating }
SUS ::= < Diameter Header: TBD, PXY, TBD >
< Session-Id >
{ Origin-Host }
{ Origin-Realm }
[ Vendor-Specific-Application-Id ]
[ User-Name ]
[ Event-Timestamp ]
* { Service-Rating }
Counter ::= < AVP Header: TBD >
{ Counter-ID }
[ Counter-Value ]
[ Counter-Expiry-Date ]
Counter-Price ::= < AVP Header: TBD >
{ Counter-ID }
[ Counter-Type ]
[ Counter-Change ]
[ Set-Counter-To ]
[ Counter-Expiry-Date ]
Counter-Tariff ::= < AVP Header: TBD >
{ Counter-ID }
[ Counter-Type ]
[ Counter-Change-Per-Session ]
[ Counter-Change-Per-Consumed-Service-Unit ]
[ Counter-Change-For-First-Chargeable-Time-Unit ]
[ Counter-Change-Per-Subsequent-Chargeable-Time-Unit ]
[ Counter-Change-Per-Chargeable-Volume-Unit ]
[ Counter-Change-For-First-Chargeable-Time-Unit-After-Switch ]
[ Counter-Change-Per-Subsequent-Chargeable-Time-Unit-After-Switch ]
[ Counter-Change-Per-Chargeable-Volume-Unit-After-Switch ]
[ Counter-Threshold ]
[ Set-Counter-To ]
[ Counter-Expiry-Date ]
Destination-ID ::= < AVP Header: TBD >
{ Destination-ID-Type }
{ Destination-ID-Data }
Impact-On-Counter ::= < AVP Header: TBD >
{ Counter-ID }
[ Counter-Value-Begin ]
{ Counter-Value-Change }
[ Counter-Value-End ]
Monetary-Tariff ::= < AVP Header: TBD >
{ EParameter-E1 }
{ EParameter-E2 }
{ EParameter-E3 }
{ EParameter-E4 }
{ EParameter-E5 }
{ EParameter-E6 }
{ EParameter-E7 }
Monetary-Tariff-After-Valid-Units ::= < AVP Header: TBD >
{ EParameter-E1 }
{ EParameter-E2 }
{ EParameter-E3 }
{ EParameter-E4 }
{ EParameter-E5 }
{ EParameter-E6 }
{ EParameter-E7 }
Next-Monetary-Tariff ::= < AVP Header: TBD >
{ EParameter-E1 }
{ EParameter-E2 }
{ EParameter-E3 }
{ EParameter-E4 }
{ EParameter-E5 }
{ EParameter-E6 }
{ EParameter-E7 }
Extension ::= < AVP Header: TBD >
* [ AVP ]
Service-Rating ::= < AVP Header: TBD >
{ Service-Identifier }
* [ Destination-ID ]
[ Service-Information ]
[ Extension ]
[ Price ]
[ Billing-Info ]
[ Tariff-Switch-Time ]
{ Monetary-Tariff }
[ Next-Monetary-Tariff ]
[ Expiry-Time ]
[ Valid-Units ]
[ Monetary-Tariff-After-Valid-Units ]
* [ Counter ]
[ Basic-Price-Time-Stamp ]
[ Basic-Price ]
* [ Counter-Price ]
* [ Counter-Tariff ]
* [ Requested-Counter ]
[ Request-Sub-Type ]
[ Impact-On-Counter ]
[ Requested-Units ]
[ Consumed-Units ]
[ Consumed-Units-After-Tariff-Switch ]
[ Monetary-Quota ]
[ Minimal-Requested-Units ]
[ Allowed-Units ]
First-Request ::= < AVP Header: TBD > Enumerated (
SUBSEQUENT_REQUEST 0
FIRST_REQUEST 1
)
Request-Sub-Type ::= < AVP Header: TBD > Enumerated (
REQ_SUBTYPE_AOC 0
REQ_SUBTYPE_RESERVE 1
REQ_SUBTYPE_DEBIT 2
REQ_SUBTYPE_RELEASE 3
)
Destination-ID-Type ::= < AVP Header: TBD > Enumerated (
DESTINATION_NUMBER 0
DESTINATION_APN 1
DESTINATION_URL 2
DESTINATION_EMAILADDRESS 3
DESTINATION_PRIVATEID 4
)
Actual-Time ::= < AVP Header: TBD > Time
Allowed-Units ::= < AVP Header: TBD > Unsigned32
Basic-Price ::= < AVP Header: TBD > Unsigned32
Basic-Price-Time-Stamp ::= < AVP Header: TBD > Time
Begin-Time ::= < AVP Header: TBD > Time
Billing-Info ::= < AVP Header: TBD > UTF8String
Consumed-Units ::= < AVP Header: TBD > Unsigned32
Consumed-Units-After-Tariff-Switch ::= < AVP Header: TBD > Unsigned32
Counter-Change ::= < AVP Header: TBD > Integer32
Counter-Change-For-First-Chargeable-Time-Unit ::= < AVP Header: TBD > Integer32
Counter-Change-For-First-Chargeable-Time-Unit-After-Switch ::= < AVP Header: TBD > Integer32
Counter-Change-Per-Chargeable-Volume-Unit ::= < AVP Header: TBD > Integer32
Counter-Change-Per-Chargeable-Volume-Unit-After-Switch ::= < AVP Header: TBD > Integer32
Counter-Change-Per-Consumed-Service-Unit ::= < AVP Header: TBD > Integer32
Counter-Change-Per-Session ::= < AVP Header: TBD > Integer32
Counter-Change-Per-Subsequent-Chargeable-Time-Unit ::= < AVP Header: TBD > Integer32
Counter-Change-Per-Subsequent-Chargeable-Time-Unit-After-Switch ::= < AVP Header: TBD > Integer32
Counter-Expiry-Date ::= < AVP Header: TBD > Time
Counter-ID ::= < AVP Header: TBD > Unsigned32
Counter-Threshold ::= < AVP Header: TBD > Integer32
Counter-Type ::= < AVP Header: TBD > Unsigned32
Counter-Value ::= < AVP Header: TBD > Integer32
Counter-Value-Begin ::= < AVP Header: TBD > Integer32
Counter-Value-Change ::= < AVP Header: TBD > Integer32
Counter-Value-End ::= < AVP Header: TBD > Integer32
Destination-ID-Data ::= < AVP Header: TBD > UTF8String
EParameter-E1 ::= < AVP Header: TBD > Integer32
EParameter-E2 ::= < AVP Header: TBD > Integer32
EParameter-E3 ::= < AVP Header: TBD > Integer32
EParameter-E4 ::= < AVP Header: TBD > Integer32
EParameter-E5 ::= < AVP Header: TBD > Integer32
EParameter-E6 ::= < AVP Header: TBD > Integer32
EParameter-E7 ::= < AVP Header: TBD > Integer32
Expiry-Time ::= < AVP Header: TBD > Unsigned32
Minimal-Requested-Units ::= < AVP Header: TBD > Unsigned32
Monetary-Quota ::= < AVP Header: TBD > Unsigned32
Price ::= < AVP Header: TBD > Unsigned32
Requested-Counter ::= < AVP Header: TBD > Unsigned32
Requested-Units ::= < AVP Header: TBD > Unsigned32
Set-Counter-To ::= < AVP Header: TBD > Integer32
Tariff-Switch-Time ::= < AVP Header: TBD > Unsigned32
Valid-Units ::= < AVP Header: TBD > Unsigned32
Frens Jan Rumph