×

Discussion Board

Page 1 of 2 12 LastLast
Results 1 to 15 of 16
  1. #1
    Registered User
    Join Date
    Mar 2003
    Posts
    16

    Angry Sending SMS using J2ME

    Hi all,
    I have gone through lot of documents on internet but was unable to produce one simple program which can send SMS to just one number in a particular format. What I found was using sms:// which is probably using GPRS and sending through some URL, instead my requirement is that the application should be installed on phone and use basic SMS service of the operator. My handset is Nokia E51 and I am working with NetBeans IDE + WTK 2.5.2. My code is as below, HELP FROM EVERYONE IS WELCOME.


    package example.sms;

    import java.io.IOException;
    import javax.microedition.io.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;
    import javax.wireless.messaging.*;


    /**
    * An example MIDlet to send text via an SMS MessageConnection
    */
    public class SMSSend extends MIDlet implements CommandListener {
    /** user interface command for indicating Exit request. */
    Command exitCommand = new Command("ByeBye", Command.EXIT, 2);
    /** user interface command for proceeding to the next screen */
    Command okCommand = new Command("RequestTUM", Command.OK, 1);

    /* current display.
    * The port on which we send SMS messages
    /** Area where the user enters the phone number to send the message to
    /** Error message displayed when an invalid phone number is entered
    /** Alert that is displayed when a message is being sent
    /** Prompts for and sends the text message
    /** The last visible screen when we paused */
    Display display; String smsPort;
    TextBox destinationAddressBox;
    Alert errorMessageAlert;Alert sendingMessageAlert;
    SMSSender sender;Displayable resumeScreen = null;
    /**
    * Initialize the MIDlet with the current display object and
    * graphical components.
    */
    public SMSSend() {
    smsPort = getAppProperty("SMS-Port");
    display = Display.getDisplay(this);
    destinationAddressBox = new TextBox("TUM Server Number", null, 256, TextField.PHONENUMBER);
    destinationAddressBox.addCommand(exitCommand);
    destinationAddressBox.addCommand(okCommand);
    destinationAddressBox.setCommandListener(this);

    errorMessageAlert = new Alert("SMS", null, null, AlertType.ERROR);
    errorMessageAlert.setTimeout(5000);

    sendingMessageAlert = new Alert("SMS", null, null, AlertType.INFO);
    sendingMessageAlert.setTimeout(5000);
    sendingMessageAlert.setCommandListener(this);
    // sender = new SMSSender(smsPort, display, destinationAddressBox, sendingMessageAlert);
    sender = new SMSSender(smsPort, display, "9650787478", sendingMessageAlert);
    resumeScreen = destinationAddressBox;
    }
    // startApp should return immediately to keep the dispatcher from hanging.
    public void startApp() {
    display.setCurrent(resumeScreen);

    }
    /** Remember what screen is showing */
    public void pauseApp() {
    resumeScreen = display.getCurrent();
    }
    /* Destroy must cleanup everything.* @param unconditional true if a forced shutdown was requested*/
    public void destroyApp(boolean unconditional) {
    }
    /** Respond to commands, including exit @param c user interface command requested @param s screen object initiating the request */
    public void commandAction(Command c, Displayable s) {
    try {
    if ((c == exitCommand) || (c == Alert.DISMISS_COMMAND)) {
    destroyApp(false);
    notifyDestroyed();
    } else if (c == okCommand) {
    promptAndSend();
    }
    } catch (Exception ex) {
    ex.printStackTrace();
    }
    }

    /**
    * Prompt for and send the message
    */
    private void promptAndSend() {
    String address = destinationAddressBox.getString();
    if (!SMSSend.isValidPhoneNumber(address)) {
    errorMessageAlert.setString("Invalid phone number");
    display.setCurrent(errorMessageAlert, destinationAddressBox);
    return;
    }
    //TextMessage myMsg;
    String statusMessage = "Requesting GNOC-TUM" + address + "...";
    sendingMessageAlert.setString(statusMessage);
    sender.promptAndSend("sms://" + address);
    // PunSend();
    }
    /**
    * Check the phone number for validity
    * Valid phone numbers contain only the digits 0 thru 9, and may contain
    * a leading '+'.
    */
    private static boolean isValidPhoneNumber(String number) {
    char[] chars = number.toCharArray();

    if (chars.length == 0) {
    return false;
    }
    int startPos = 0;
    // initial '+' is OK
    if (chars[0] == '+') {
    startPos = 1;
    }
    for (int i = startPos; i < chars.length; ++i) {
    if (!Character.isDigit(chars[i])) {
    return false;
    }
    }
    return true;
    }
    }

  2. #2
    Super Contributor
    Join Date
    Jun 2003
    Location
    Cheshire, UK
    Posts
    7,395

    Re: Sending SMS using J2ME

    Quote Originally Posted by puneet78 View Post
    What I found was using sms:// which is probably using GPRS and sending through some URL, instead my requirement is that the application should be installed on phone and use basic SMS service of the operator.
    When you open a Connection using an "sms:" URL, you will be sending an SMS using the standard operator service. The Java app will use the same SMS message centre settings as your SMS outbox.

    There are three SMS sending scenarios:

    1. Send a regular text message, to be delivered to the target device's SMS inbox.

    2. Send a data message, like contact details, to the target device.

    3. Send a data message for delivery to another MIDlet on the target device.

    Well, (2) and (3) are really the same. The only difference is that in (2), you are sending to some standard application (such as the contact manager), whereas in (3) you are sending to an application of your own.

    Which are you attempting, and in what way doesn't it work?

    Graham.

  3. #3
    Super Contributor
    Join Date
    Apr 2009
    Posts
    572

    Re: Sending SMS using J2ME

    why are u using the port in ur code BTW I dont know what you have done in ur code here is simple class to send sms plz modify it to suit ur requirement

    Class for sms screen
    PHP Code:
    public class Sms extends Form implements CommandListener
    {
        private 
    Command sendCommand = new Command("Send"Command.EXIT, 1);
        private 
    Command backCommand = new Command("Back"Command.OK2);
        private 
    TextField mobilesmsTemplate
        
    String numbermessage;
        
        
    /** Creates a new instance of Sms */
        
    public Sms(/*Setting settingMagicTrack midlet*/)
        {
            
    super("Send SMS");
            
            
    mobile = new TextField("Recipient No."""13TextField.PHONENUMBER);
            
    mobile.setLayout(TextField.LAYOUT_EXPAND);
            
            
    message="hello";
            
    smsTemplate = new TextField("SMS Text"message1000TextField.ANY);
            
    smsTemplate.setLayout(TextField.LAYOUT_VEXPAND);
            
            
    append(mobile);
            
    append(smsTemplate);
            
            
    addCommand(sendCommand);
            
    addCommand(backCommand);
            
    setCommandListener(this);
        }
        public 
    boolean getValues()
        {
            
    number mobile.getString();
            
    message smsTemplate.getString();
            
            if(
    number.length() == 0)
            {
                
    Alert alert=new Alert("Alert","Recipient No. can’t be blank",null,AlertType.INFO);
                
    alert.setTimeout(Alert.FOREVER);
                
    Main.getInstance().showDisplayable(alert);
                return 
    false;
            }
            else if(
    number.length() < 10)
            {
                
    Alert alert=new Alert("Alert","Invalid Number",null,AlertType.INFO);
                
    alert.setTimeout(Alert.FOREVER);
                
    Main.getInstance().showDisplayable(alert);
                return 
    false;
            }
            
            return 
    true;
        }
        public 
    void commandAction(Command commandDisplayable displayable)
        {
            if(
    command == backCommand)
            {
                
    //midlet.mainScreen.loadMap();
                
    Main.getInstance().showGPSDisplayable();
            }
            else if(
    command == sendCommand)
            {
                    try
                    {
                        if(
    getValues())
                        {
                            
    send sms1 = new send(numbermessageMain.getInstance());
                        }
                    } 
                    catch(
    Exception e)
                    {
                        
    DataBaseStore.getInstance().writeToLog("14#: "+e.toString());
                    }
            }
        }    


    Class for sending sms


    PHP Code:
    class send implements Runnable
    {
        private 
    String number message;
        
    Thread t = new Thread(this); 
        private 
    Main midlet;
        
        public 
    send(String numberString messageMain midlet)
        {
            
            
    this.number number;
            
    this.message message;
            
    this.midlet midlet;
            
    t.start();
        }
        
        public 
    void sendMessage() throws IOException
       
    {
           
    MessageConnection conn=null;
           
    // boolean result = true;
            
    try {
              
    //sets address to send message
              
    String addr "sms://"+number;
              
    System.out.println(addr);
              
    // opens connection
              
    conn = (MessageConnectionConnector.open(addr);
              
    // prepares text message
              
    TextMessage msg = (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);
              
    //set text
              
    msg.setPayloadText(message);
              
    // send message
              
    conn.send(msg);
             
    Alert alert=new Alert("Sent","Sms has been sent",null,AlertType.INFO);
             
    alert.setTimeout(Alert.FOREVER);
             
    //alert.setString(se.toString());
             
    midlet.display.setCurrent(alert);
              
    //confirm.
            
    }
            catch (
    SecurityException se
            {
                
    DataBaseStore.getInstance().writeToLog("89#: "+se.toString());
            }
            catch (
    Exception e
            {
                
    DataBaseStore.getInstance().writeToLog("90#: "+e.toString());
            }
            
    finally 
            
    {
                try
                {
                    
    conn.close();
                }
                catch(
    Exception e)
                {
                    
    DataBaseStore.getInstance().writeToLog("15#: "+e.toString());
                }
            }
           
    // return result;
      
    }
        
        public 
    void run()
        {
            try
            {
                
    sendMessage();
            } 
            catch (
    IOException ex)
            {
                
    ex.printStackTrace();
                
    DataBaseStore.getInstance().writeToLog("91#: "+ex.toString());
            }
        }
        

    Note both class are interlinked so used in conjunction
    Regards,
    Saurabh

  4. #4
    Registered User
    Join Date
    Mar 2003
    Posts
    16

    Re: Sending SMS using J2ME

    Hi Graham,
    Thanks a lot for quick reply, Mine is case 1 -> Sending normal SMS to a destination number which is also a cellphone. Sender phone should have j2me application and destination is a normal cellphone. Also, the mobile phone which has the app. is not having GPRS functionality.

    cheers
    Puneet.Khurana@nsn.com

  5. #5
    Registered User
    Join Date
    Mar 2003
    Posts
    16

    Re: Sending SMS using J2ME

    Hi Saurabh
    Thanks a lot for quick reply. But I have no experience in PHP, i have background of VB6 and C++ only. Can you please help me in J2ME (which I have read a bit)

    cheers
    Puneet.Khurana@nsn.com

  6. #6
    Super Contributor
    Join Date
    Jun 2003
    Location
    Cheshire, UK
    Posts
    7,395

    Re: Sending SMS using J2ME

    The code Saurabh sent you is Java (ignore the fact that it says "PHP", that's just the way the forum works).

    As Saurabh says, the problem appears to be that you're using a "port" number. These are only used when sending "data" messages. For example, port 9204 is used for sending contact details. Text messages don't use a port number.

    The basic code is simply:

    Code:
    MessageConnection con = (MessageConnection) Connector.open("sms://" + phoneNumber);
    try {
        TextMessage msg = (TextMessage) con.newMessage(MessageConnection.TEXT_MESSAGE);
        msg.setPayloadText(content);
        con.send(msg);
    } finally {
        con.close();
    }
    Where phoneNumber is a String, like "+4412345678", and content is a String like "this is a test".

    Graham.

  7. #7
    Registered User
    Join Date
    Mar 2003
    Posts
    16

    Re: Sending SMS using J2ME

    Hi Graham,
    I was able to use the code in emulator but when I transfer it on my E51 using bluetooth, it says Registration Failed. Below is my jad file

    MIDlet-1: SMS Send, , example.sms.SMSSend
    MIDlet-Data-Size: 0
    MIDlet-Description: This midlet demonstrates WMA messaging
    MIDlet-Jar-Size: 15721
    MIDlet-Jar-URL: Graham.jar
    MIDlet-Name: TUM
    MIDlet-Permissions: javax.microedition.io.Connector.sms, javax.wireless.messaging.sms.send
    MIDlet-Push-1: sms://:50000, example.sms.SMSReceive, *
    MIDlet-Vendor: PK
    MIDlet-Version: 2.0
    MicroEdition-Configuration: CLDC-1.1
    MicroEdition-Profile: MIDP-2.0
    SMS-Port: 50000

  8. #8
    Super Contributor
    Join Date
    Jun 2003
    Location
    Cheshire, UK
    Posts
    7,395

    Re: Sending SMS using J2ME

    I suggest you don't use that example, it's more complicated that you need. Try using Saurabh's code above, or this:

    Code:
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.io.*;
    import java.io.*;
    import javax.wireless.messaging.*;
    
    public class SendText extends MIDlet {
    
        private static final String PHONE_NUMBER = "+44123456789";
    
        private static interface MessageSentListener {
            public void messageSent(int id, Exception e);
        }
    
        private static class Sender implements Runnable {
            private String content;
            private String phoneNumber;
            private int id;
            private MessageSentListener listener;
            private Exception exception;
            
            public void send(int messageID, String text, String to, MessageSentListener l) {
                id = messageID;
                content = text;
                phoneNumber = to;
                listener = l;
                (new Thread(this)).start();
            }
    
            public void run() {
                try {
                    MessageConnection con = (MessageConnection) Connector.open("sms://" + phoneNumber);
                    try {
                        TextMessage msg = (TextMessage) con.newMessage(MessageConnection.TEXT_MESSAGE);
                        msg.setPayloadText(content);
                        con.send(msg);
                    } finally {
                        con.close();
                    }
                } catch (Exception e) {
                    exception = e;
                }
                listener.messageSent(id, exception);
            }
        }
    
        private static class EventHandler implements CommandListener, MessageSentListener {
            public static final Command CMD_EXIT = new Command("Exit", Command.EXIT, 1);
            public static final Command CMD_SEND = new Command("Send", Command.SCREEN, 1);
    
            private MIDlet midlet;
            private Display display;
    
            public EventHandler(MIDlet m, Display d) {
                midlet = m;
                display = d;
            }
    
            public void commandAction(Command cmd, Displayable disp) {
                if (cmd == CMD_EXIT) {
                    midlet.notifyDestroyed();
                } else if (cmd == CMD_SEND) {
                    new Sender().send(1, "test", PHONE_NUMBER, this);
                }
            }
    
            public void messageSent(int id, Exception e) {
                String s = "Message " + id;
                AlertType t;
                if (e == null) {
                    s = "Sent.";
                    t = AlertType.CONFIRMATION;
                } else {
                    s = "Sending failed: " + e.toString();
                    t = AlertType.ERROR;
                }
                
                Alert alert = new Alert("Message " + id, s, null, t);
                alert.setTimeout(Alert.FOREVER);
                display.setCurrent(alert);
            }
        }
    
        private EventHandler eh;
    
        public void startApp() {
            if (eh == null) {
                Display display = Display.getDisplay(this);
                eh = new EventHandler(this, display);
                Form frm = new Form("SendText");
                frm.addCommand(EventHandler.CMD_SEND);
                frm.addCommand(EventHandler.CMD_EXIT);
                frm.setCommandListener(eh);
                display.setCurrent(frm);
            }
        }
    
        public void pauseApp() {
            // empty
        }
    
        public void destroyApp(boolean unconditional) {
            // empty
        }
    }
    (Remember to change PHONE_NUMBER to the phone number of your target handset - this is a simple app, and doesn't have any phone number input.)

    Graham.

  9. #9
    Super Contributor
    Join Date
    Apr 2009
    Posts
    572

    Re: Sending SMS using J2ME

    Hi puneet its not that I have given you PHP code itys a java one as Graham says I just used PHP code segment so that code looks easy and more understandable the code is working one also the code Graham gave you is fullest one use any one it that u find easy

    Actually problem lies in port no we generally include port when we want to send sms to other app to specific port where(on second mobile) another app is listening for the sms at that particular port but as you say you want to send simple sms so this is nopt needed in your code also port doesn't mean that it sis using some gprs functionality as I assume you are new to J2ME try any one of the code and read a good wiki here on J2ME and sms
    Regards,
    Saurabh

  10. #10
    Registered User
    Join Date
    Mar 2003
    Posts
    16

    Re: Sending SMS using J2ME

    Hi Saurabh
    Thanks for reply, I tried your code, run well in emulator but when I send jad and jar file to my nokia e51 it says REGISTRATION FAILED.
    Code is as below:

    I am facing the same problem, tried your solution but is not working. Please help.
    My JAD file is as
    MIDlet-1: SMSSend,,example.sms.SMSSend
    MIDlet-Data-Size: 0
    MIDlet-Description: Grahams app
    MIDlet-Jar-Size: 15284
    MIDlet-Jar-URL: Graham.jar
    MIDlet-Name: TUM
    MIDlet-Permissions: javax.microedition.io.Connector.sms, javax.wireless.messaging.sms.send
    MIDlet-Vendor: Noida
    MIDlet-Version: 2.0
    MicroEdition-Configuration: CLDC-1.1
    MicroEdition-Profile: MIDP-2.0
    SMS-Port: 50000

    ====
    And my code is
    package example.sms;
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.io.*;
    //import java.io.*;
    import javax.wireless.messaging.*;

    public class SMSSend extends MIDlet {

    private static final String PHONE_NUMBER = "+919650892798";

    private static interface MessageSentListener {
    public void messageSent(int id, Exception e);
    }

    private static class Sender implements Runnable {
    private String content;
    private String phoneNumber;
    private int id;
    private MessageSentListener listener;
    private Exception exception;

    public void send(int messageID, String text, String to, MessageSentListener l) {
    id = messageID;
    content = text;
    phoneNumber = to;
    listener = l;
    (new Thread(this)).start();
    }

    public void run() {
    try {
    MessageConnection con = (MessageConnection) Connector.open("sms://" + phoneNumber);
    try {
    TextMessage msg = (TextMessage) con.newMessage(MessageConnection.TEXT_MESSAGE);
    msg.setPayloadText(content);
    con.send(msg);
    } finally {
    con.close();
    }
    } catch (Exception e) {
    exception = e;
    }
    listener.messageSent(id, exception);
    }
    }

    private static class EventHandler implements CommandListener, MessageSentListener {
    public static final Command CMD_EXIT = new Command("Exit", Command.EXIT, 1);
    public static final Command CMD_SEND = new Command("Send", Command.SCREEN, 1);

    private MIDlet midlet;
    private Display display;

    public EventHandler(MIDlet m, Display d) {
    midlet = m;
    display = d;
    }

    public void commandAction(Command cmd, Displayable disp) {
    if (cmd == CMD_EXIT) {
    midlet.notifyDestroyed();
    } else if (cmd == CMD_SEND) {
    new Sender().send(1, "test", PHONE_NUMBER, this);
    }
    }

    public void messageSent(int id, Exception e) {
    String s = "Message " + id;
    AlertType t;
    if (e == null) {
    s = "Sent.";
    t = AlertType.CONFIRMATION;
    } else {
    s = "Sending failed: " + e.toString();
    t = AlertType.ERROR;
    }

    Alert alert = new Alert("Message " + id, s, null, t);
    alert.setTimeout(Alert.FOREVER);
    display.setCurrent(alert);
    }
    }

    private EventHandler eh;

    public void startApp() {
    if (eh == null) {
    Display display = Display.getDisplay(this);
    eh = new EventHandler(this, display);
    Form frm = new Form("SMSSend");
    frm.addCommand(EventHandler.CMD_SEND);
    frm.addCommand(EventHandler.CMD_EXIT);
    frm.setCommandListener(eh);
    display.setCurrent(frm);
    }
    }

    public void pauseApp() {
    // empty
    }

    public void destroyApp(boolean unconditional) {
    // empty
    }
    }


    =====
    Thanks in advance for your replies

    cheers
    puneet.khurana@nsn.com

  11. #11
    Super Contributor
    Join Date
    Apr 2009
    Posts
    572

    Re: Sending SMS using J2ME

    HI Puneet

    In ur jad you have given port I dont think there is any problem with dat but it seems me fishy, try using installing only jar file without using jad and also try ur app on some other mobile I never used E51 so dont know abt dat I tested on N series based phones and sony phones nd the code worked flawless
    Regards,
    Saurabh

  12. #12
    Registered User
    Join Date
    Mar 2003
    Posts
    16

    Re: Sending SMS using J2ME

    same error with jar only. I checked Nokia site for E51 and it supports MIDP 2.0 CLDC 1.1 and WMA 2.0, any other clue???

  13. #13
    Super Contributor
    Join Date
    Apr 2009
    Posts
    572

    Re: Sending SMS using J2ME

    k U havent used my code try daat one its easy to integrate in ur code just create a midlet in it create an object of 1st class dat I gave you rest is already done when app satrt it will display a no box and messgae box and on pressing send button will send the message the code u r using is bit complex
    Regards,
    Saurabh

  14. #14
    Registered User
    Join Date
    Mar 2003
    Posts
    16

    Re: Sending SMS using J2ME

    Hi Saurabh, I tried your code but gives error as below.

    pre-init:
    pre-load-properties:
    exists.config.active:
    exists.netbeans.user:
    exists.user.properties.file:
    load-properties:
    exists.platform.active:
    exists.platform.configuration:
    exists.platform.profile:
    basic-init:
    cldc-pre-init:
    cldc-init:
    cdc-init:
    ricoh-pre-init:
    ricoh-init:
    semc-pre-init:
    semc-init:
    savaje-pre-init:
    savaje-init:
    sjmc-pre-init:
    sjmc-init:
    cdc-hi-pre-init:
    cdc-hi-init:
    nokiaS80-pre-init:
    nokiaS80-init:
    nsicom-pre-init:
    nsicom-init:
    post-init:
    init:
    conditional-clean-init:
    conditional-clean:
    deps-jar:
    pre-preprocess:
    do-preprocess:
    Pre-processing 1 file(s) into D:\pkhurana\My Documents\NetBeansProjects\Graham\build\preprocessed directory.
    post-preprocess:
    preprocess:
    pre-compile:
    extract-libs:
    do-compile:
    Compiling 1 source file to D:\pkhurana\My Documents\NetBeansProjects\Graham\build\compiled
    D:\pkhurana\My Documents\NetBeansProjects\Graham\src\example\sms\SMSSend.java:41: cannot find symbol
    symbol : variable display
    location: class example.sms.SMSSend
    midlet.display.setCurrent(alert);
    D:\pkhurana\My Documents\NetBeansProjects\Graham\src\example\sms\SMSSend.java:46: cannot find symbol
    symbol : variable DataBaseStore
    location: class example.sms.SMSSend
    DataBaseStore.getInstance().writeToLog("89#: "+se.toString());
    D:\pkhurana\My Documents\NetBeansProjects\Graham\src\example\sms\SMSSend.java:50: cannot find symbol
    symbol : variable DataBaseStore
    location: class example.sms.SMSSend
    DataBaseStore.getInstance().writeToLog("90#: "+e.toString());
    D:\pkhurana\My Documents\NetBeansProjects\Graham\src\example\sms\SMSSend.java:60: cannot find symbol
    symbol : variable DataBaseStore
    location: class example.sms.SMSSend
    DataBaseStore.getInstance().writeToLog("15#: "+e.toString());
    D:\pkhurana\My Documents\NetBeansProjects\Graham\src\example\sms\SMSSend.java:75: cannot find symbol
    symbol : variable DataBaseStore
    location: class example.sms.SMSSend
    DataBaseStore.getInstance().writeToLog("91#: "+ex.toString());
    5 errors
    D:\pkhurana\My Documents\NetBeansProjects\Graham\nbproject\build-impl.xml:368: Compile failed; see the compiler error output for details.
    BUILD FAILED (total time: 1 second)

  15. #15
    Registered User
    Join Date
    Mar 2003
    Posts
    16

    Re: Sending SMS using J2ME

    Also can you send some already created jar file which sends SMS to +919650892798 (my number). By this I can atleast check whehter my Nokia E51 will work for JAD/JAR files or not.

    cheers
    puneet.khurana@nsn.com

Similar Threads

  1. Sending SMS using J2ME
    By vin7805 in forum Mobile Java General
    Replies: 16
    Last Post: 2010-01-26, 15:30
  2. 3410 J2ME Problem Sending SMS on Server connection
    By keithmarsh in forum Mobile Java General
    Replies: 1
    Last Post: 2002-09-06, 08:35
  3. Sending and receiving SMS messages from J2ME application
    By nkn_motoko in forum Mobile Java General
    Replies: 1
    Last Post: 2001-11-06, 20:34

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×