Missed call communication protocol

Richard Bennett richard.bennett at skynet.be
Wed Feb 7 12:16:33 CET 2007


Hi all,

In keeping with moving the control advantage away from the network operators, 
and to the users, I wonder what you think of this suggestion:

When you use a SIP server, like Openser.org , you can set the CLI (Calling 
line identifier) to any value you like when you send the call on to a PSTN 
gateway.
That means the 'from' number you see on your mobile screen when I call you 
from a SIP proxy can be any numeric value I like. (most PSTN termination 
gateways will require a valid e164 number 
http://www.answers.com/topic/e-164).
So I can send a call to my openmoko number, using a CLI set to +10 followed by 
13 arbitrary numbers, which should satisfy the e164 requirement .
No real phone numbers start with +10 , so I could program my openmoko to 
reject any calls arriving with a CLI starting with +10, and to process the 
next 13 numbers of the CLI as a message, hiding this call from the missed 
calls list.
As far as I know there is no networks charge for a rejected call from a 
mobile, and initiating a call from the openmoko to a number that always 
returns a 'busy' would also be free of charge.
This gives us a free up/down communication channel that can take a payload of 
13 numbers in each packet. 

This could be used for:
* Push email notification.
* Presence. Like the 'online' indicator in a chat app that shows your status. 
This is the next big area carriers are looking to charge us for, with their 
new IM platforms. It can also be used in the routing logic of your own SIP 
proxy/PBX, for instance: "Forward calls to mobile unless GSM presence 
is 'meeting' in that case send calling number by SMS, if SMS presence 
is 'available', and forward calls to secretary".
* Ultra Short Message Service (SMSes that use a phrase-book on both sender and 
receiver, so you send the number that identifies a pre-formatted message 
i.e.: 112='Please call home when you're free').
* Trigger predefined macros (shell scripts) on the phone, like "Send GPS 
coords by SMS".
* Sync applications, like 'mark meeting14 as postponed', or "New updates 
available, do you want to sync now?"
etc

Unless our list lawyers shoot this idea down from the start, we could start 
thinking about the best way to define a missed-call protocol.
I'm thinking of using 4 of the numbers as a identifying pincode, then a 3 
digit action identifier, and use the next 6 digits as payload depending on 
what action was selected .
For instance update our presence info from the Openmoko to a server:
 Call server: +122334455
 send CLI +101234999100100
That is:
+1	=	Required valid international code
0	=	protocol identifier that never occurs in real calls.
1234=	pincode to identify the caller, and assign access rights. (Many 
different servers could send MCP (missed call protocol) messages to the same 
phone, a bit like the bluetooth pincode/identifier)
999	=	matches 'update presence information'
1	=	GSM available.
0	=	GPRS offline
0	=	Bluetooth offline
1	=	SMS available
0	=	reserved
0	=	reserved.

What do you think?

Richard.










More information about the community mailing list