Difference between revisions of "OpenBTS: SMS"

From OnnoWiki
Jump to navigation Jump to search
Line 25: Line 25:
 
   */
 
   */
 
  static
 
  static
  struct imsi_phone { char imsi[4+15+1]; char phone[1+15+1]; }  imsi_phone[] = {
+
  struct imsi_phone { char imsi[4+15+1]; char phone[1+15+1]; }  
 +
  imsi_phone[] = {
 
         {"IMSI666410186585295", "+17074700741"},        /* Nokia 8890 */
 
         {"IMSI666410186585295", "+17074700741"},        /* Nokia 8890 */
 
         {"IMSI777100223456161", "+17074700746"},        /* Palm Treo */
 
         {"IMSI777100223456161", "+17074700746"},        /* Palm Treo */

Revision as of 10:01, 10 February 2011

Smqueue is an RFC-3428 store and forward server, used to support SMS in OpenBTS installations. Smqueue runs alongside Asterisk to provide SMS routing service. Smqueue is distributed with OpenBTS releases 2.5 and later. It uses parts of the OpenBTS source code, but has very different build dependencies and may be run on a different machine than the one used to run OpenBTS. Because of these different build and installation requirements, smqueue is not part of the normal GNU build process for the rest of the OpenBTS application.

To build smqueue, go to the smqueue directory and type "make -f Makefile.standalone". That's it. You do not have to run the OpenBTS configure script to do this. If you get build errors, it is probably due to having an out-of-date osip2 installation. You need osip2 release 3.3 or later.

There are known compilation errors if you use g++ >4.3. Set g++-4.3 in makefile and it should compile ok.

As of release 2.5, smqueue uses the Asterisk SIP registry for address resolution and message routing. Therefore smqueue must be run as root and must run on the same machine as your Asterisk server.

The original version of smqueue was written by John Gilmore and used for the experimental SMS system at Burning Man 2009.


Hacking smqueue

smqueue masih belum sempurna perlu edit file

cd /usr/local/src/openbts-2.6.0Mamou/smqueue
vi smqueue.cpp 

Add to the table

/* ==== FIXME KLUDGE ====
 * Table of IMSIs and phone numbers, for translation.
 * This is only for test-bench use.  Real life uses the Home  Location
 * Register (../HLR), currently implemented via Asterisk.
 */
static
struct imsi_phone { char imsi[4+15+1]; char phone[1+15+1]; } 
imsi_phone[] = {
        {"IMSI666410186585295", "+17074700741"},        /* Nokia 8890 */
        {"IMSI777100223456161", "+17074700746"},        /* Palm Treo */
        {"IMSI510110301694405", "2101"},        /* Bob */
        {"IMSI238209700014858", "2102"},        /* SB */
        {"IMSI310260254136340", "2103"},        /* Steve */
        {"IMSI520189606386106", "2104"},
        {{0}, {0}}
};



Referensi

Pranala Menarik