Missed call communication protocol
richard.bennett at skynet.be
Wed Feb 7 12:16:33 CET 2007
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
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
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
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?"
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
+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?
More information about the community