Is it possible to programmatically attach custom metadata to phone calls

mobile

I'm trying to determine if it should be possible for a cell phone app to relay custom data along with a phone call. By "should be possible" I mean that I'm not trying to learn how to do it in iOS/Android/whatever, I'm just trying to determine if:

  • It is permitted by standards: the standards for the metadata that initiates a phone call allow for it to be extended. (I found all kinds of information about high level phone call APIs and CDRs which are kept after a phone call is made, but nothing in the "this is the data header that leaves your phone when you make a call" category).
  • I can be sure that my custom data will be forwarded intact by the cellular network nodes.
  • This type of functionality is typically available to apps (from my research: some cellular functionality is implemented by firmware, other functionality has legal issues and its APIs are restricted to privileged users).

In short, what I would ideally like to hear is something along the lines of:
"When you initiate a phone call, the phone generates this header. This part of the header can be used to send custom data, and cellular network nodes won't mess with it. The API for this should be available; for example on iOS/Android/whatever we have xyz()".

Best Answer

If you want a canonical answer, I think you may need to go to the various standards that define the cell phone network, such as ITU-T, 3GPP, UMTS, etc. They're not light reading and some of them are fairly expensive to obtain.

My understanding is that in classic GSM/3G/ISDN/UMTS/etc. call initiation, there is very little metadata beyond the dialed phone number: there might be a call type (voice/data), an extension/subaddress/DID, possibly an indication of what ring pattern to use, things like that. (And of course in POTS there's no metadata at all.) 3GPP TS 24.008 might be a good place to start looking; it contains the formats of the actual radio packets that are sent and received to set up or tear down a voice call.

I'm not familiar with the newer (4G, LTE, etc) interfaces and they might be able to carry more call metadata, but whether metadata sent by one handset will make it across the network to another handset, or whether any phones have APIs to send or receive that data, is another question.