Re: [RFC] unique SMS IDs

"Jeetendra Singh" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <009101c368a7$f88af7f0$6f37a8c0@js>
My two (oops! three) cents:

1. A GUID or UUID (Globally unique ID) can be generated. Libraries are available to generate such a unique ID depending on time or a random number on Linux.
Pros: Always guarantees unique ID irrespective of number of bearerboxes or message submission rate.
Con: Platform specific code.

2. Another ID generation can be similar to SMSC standards for generation of message IDs which is <timestamp>:<destination number>. 
Pros: Easy and platform independent.
Con: This is a subset of Stipe's Heuristical msg id generation. And also here most of the SMSC take timestamp to be of seconds granularity. Thus binding on gateways to send only one message per second towards a particular destination. So we can think of keeping a finer granularity approaching Millis. Also, under rare circumstance when multiple bearerboxes are running, it doesn't guarantee unique message ID across boxes. 

3. One of the solution can be to assign unique box id to each bearerbox running in the system and have message ID as <timestamp in  Millis>:<destination>:<box id>

comments?
Jeetendra.
  ----- Original Message ----- 
  From: Stipe Tolj 
  To: [email protected] 
  Sent: Friday, August 22, 2003 5:13 PM
  Subject: [RFC] unique SMS IDs


  Hi list,

  currently bearerbox acts like:
  whenever an SMS is passed to the store-file it get's an incrementaly
  counted ID and then stored.

  It is desirable (for several purposes) to have unique IDs for messages
  coming in (SM-MO), hence when entering the system from SMSC side and
  when leaving to the HTTP (application server) side, and of course vise
  versa.

  Hence, I'd like to discuss how we can acchive uniqueness of IDs
  accross even several parallel running bearerbox instances on one box.

  >From our perspective there are two ideas:

    * heuristical: assume that a constructed ID = timestamp + sender +
  receiver + counter is unique accross all instances.

    * ID pool caching: which means there is a thread in bearerbox with a
  ID queue. The queues in several concurrent bearerbox processes are
  distinct, which means the thread has to garantee whereever he obtains
  a pool of IDs, that those are assign only to himself. 

  Option 1 is of course simpler to do. Option 2 is *stronger* in the
  sense of high-load systems and consistancy.

  Any thoughs for this?

  BTW, I'd also like to add the SMS ID to the access.log. Any
  objecttions here?

  Stipe

  [email protected]
  -------------------------------------------------------------------
  Wapme Systems AG

  Vogelsanger Weg 80
  40470 Düsseldorf

  Tel: +49-211-74845-0
  Fax: +49-211-74845-299

  E-Mail: [email protected]
  Internet: http://www.wapme-systems.de
  -------------------------------------------------------------------
  wapme.net - wherever you are
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.