how to send sms through java program?
807605Oct 10 2007 — edited Oct 10 2007hi,
i am trying to send sms through java program.i am usining ubuntu 6.04.i am using modem MC35i.i use the jSMSEnjine.jar and rxtxcomm.jar.
these are the following program.
import org.jsmsengine.*;
import java.util.*;
class SendMessage
{
public static void main(String[] args)
{
int status;
// Create jSMSEngine service.
CService srv = new CService("Com2",9600);
//CService srv = new CService("COM2",9600);
System.out.println();
System.out.println("SendMessage(): sample application.");
System.out.println(" Using " + srv._name + " " + srv._version);
System.out.println();
try
{
// Initialize service.
srv.initialize();
Thread thread =Thread.currentThread();
thread.sleep(1000);
System.out.println(srv);
// Set the cache directory.
srv.setCacheDir(".\\");
// Set the phonebook.
// srv.setPhoneBook("../misc/phonebook.xml");
// Connect to GSM device.
status = srv.connect();
// Did we connect ok?
int st=CService.ERR_OK;
System.out.println(st);
System.out.println(status);
if (status == CService.ERR_OK)
{
// Set the operation mode to PDU - default is ASCII.
srv.setOperationMode(CService.MODE_PDU);
// Set the SMSC number (set to default).
srv.setSmscNumber("");
// Print out GSM device info...
System.out.println("Mobile Device Information: ");
System.out.println(" Manufacturer : " + srv.getDeviceInfo().getManufacturer());
System.out.println(" Model : " + srv.getDeviceInfo().getModel());
System.out.println(" Serial No : " + srv.getDeviceInfo().getSerialNo());
System.out.println(" IMSI : " + srv.getDeviceInfo().getImsi());
System.out.println(" S/W Version : " + srv.getDeviceInfo().getSwVersion());
System.out.println(" Battery Level : " + srv.getDeviceInfo().getBatteryLevel() + "%");
System.out.println(" Signal Level : " + srv.getDeviceInfo().getSignalLevel() + "%");
// Create a COutgoingMessage object and dispatch it.
// *** Please update the phone number with one of your choice ***
// String smsLengthTest="Hi"+"\nTesting is going on.Test for sending unlimited number of charecter.So you will get N number of SMS.Initially I trancate the whole string by 70 charecter.Later I will put it upto 90 charecter.Some chararecter should kept for header portion.I don't know the total number.It is just test.If you got the sms u should appreciate me...This is Ripon...I have written sms program";
String smsLengthTest="Hi\n"+"This is Govindo";
int mao=smsLengthTest.length();
System.out.println("Length of sms :"+mao);
String smsNo="9433314095";
smsNo="+91"+smsNo;
if(mao<70)
{
COutgoingMessage msg = new COutgoingMessage(smsNo,smsLengthTest);
// Character set is 7bit by default - lets make it UNICODE :)
// We can do this, because we are in PDU mode (look at line 63). When in ASCII mode,
// this does not make ANY difference...
msg.setMessageEncoding(CMessage.MESSAGE_ENCODING_UNICODE);
if (srv.sendMessage(msg) == CService.ERR_OK) System.out.println("Message Sent!");
else System.out.println("Message Failed!");
}
else
{
// COutgoingMessage msg = new COutgoingMessage(smsNo,smsLengthTest);
// LinkedList messageList;
// messageList = new LinkedList();
// messageList.add(msg);
// LinkedList maooo=new LinkedList();
// maooo=srv.splitLargeMessages(messageList);
int sizelength=0;
int counter=0;
sizelength=smsLengthTest.length();
System.out.println("SMS length :"+sizelength);
int smsCntr=sizelength/70;
System.out.println("smsCntr :"+smsCntr);
counter=smsCntr+1;
int j=70;
int k=0;
try
{
for(int i=0;i<smsCntr;i++)
{
String test="";
test=test+i;
test=smsLengthTest.substring(k,j);
System.out.println(test);
System.out.println(test.length());
COutgoingMessage msg = new COutgoingMessage(smsNo, test);
System.out.println("hi this is suman" + smsNo);
// Character set is 7bit by default - lets make it UNICODE :)
// We can do this, because we are in PDU mode (look at line 63). When in ASCII mode,
// this does not make ANY difference...
msg.setMessageEncoding(CMessage.MESSAGE_ENCODING_UNICODE);
if (srv.sendMessage(msg) == CService.ERR_OK) System.out.println("Message Sent!");
else System.out.println("Message Failed!");
k=k+70;
j=j+70;
}
}
catch(Exception e)
{
System.out.println("Error...1");
e.printStackTrace();
e.getMessage();
}
String lastPortion=smsLengthTest.substring(k);
System.out.println(lastPortion);
COutgoingMessage msg = new COutgoingMessage(smsNo, lastPortion);
// Character set is 7bit by default - lets make it UNICODE :)
// We can do this, because we are in PDU mode (look at line 63). When in ASCII mode,
// this does not make ANY difference...
msg.setMessageEncoding(CMessage.MESSAGE_ENCODING_UNICODE);
if (srv.sendMessage(msg) == CService.ERR_OK) System.out.println("Message Sent!");
else System.out.println("Message Failed!");
}
// Disconnect from GSM device.
srv.disconnect();
}
else System.out.println("Connection to mobile failed, error: " + status);
}
catch (Exception e)
{
e.printStackTrace();
}
System.exit(0);
}
}
the error is:
SendMessage(): sample application.
Using jSMSEngine API 1.2.6 (B1)
org.jsmsengine.CService@addbf1
0
-101
Connection to mobile failed, error: -101
please help me,its very urgent.