How can send message in Main
Posted: Tue Jul 06, 2010 6:49 am
How can send message in Main class?
Now I`m receive message and write to DB (MSSQL) and want answered to received message which saved at DB, please help me for this.
I`m write some code in Main but it`s don`t working
public void client_evDeliverSm(object sender, DeliverSm data)
{
if (data.SegmentNumber > 0)
{
AddMessageSegmentToCollector(data);
string messageText = SmppClient.GetMessageText(data.UserDataPdu.ShortMessage, data.DataCoding);
AddToLog("DeliverSm part received : "
+ " Sequence : " + data.Sequence.ToString()
+ " SourceAddr : " + data.SourceAddr
+ " Segments ( Number: " + data.SegmentNumber.ToString()
+ ", Total : " + data.TotalSegments.ToString()
+ ", Reference : " + data.MessageReferenceNumber.ToString()
+ " ) Coding : " + data.DataCoding.ToString()
+ " MessageText : " + messageText);
if (IsLastSegment(data))
{
string fullMessage = RetrieveFullMessage(data);
AddToLog("Full message: " + fullMessage);
}
}
else
{
string messageText = SmppClient.GetMessageText(data.UserDataPdu.ShortMessage, data.DataCoding);
AddToLog("DeliverSm received : "
+ " Sequence : " + data.Sequence.ToString()
+ " SourceAddr : " + data.SourceAddr
+ " Coding : " + data.DataCoding.ToString()
+ " MessageText : " + messageText);
SqlConnection conn = new SqlConnection("server=Komil-PC;Integrated Security=SSPI; database=AzSMS");
SqlCommand CmdSql = new SqlCommand("INSERT INTO incomingSM (Sequence, SourceAddr, Coding, MessageText) Values (@Sequence,@SourceAddr,@Coding,@MessageText)", conn);
conn.Open();
CmdSql.Parameters.AddWithValue("@Sequence", data.Sequence.ToString());
CmdSql.Parameters.AddWithValue("@SourceAddr", data.SourceAddr);
CmdSql.Parameters.AddWithValue("@Coding", data.DataCoding.ToString());
CmdSql.Parameters.AddWithValue("@MessageText", messageText);
CmdSql.ExecuteNonQuery();
conn.Close();
DataCodings coding = DataCodings.Default;
SubmitMode mode = SubmitMode.ShortMessage;
// some text in greek upto 160 characters
string sMessageText = txtSMSMessage.Text.ToUpper();
//
// Send SMS ...
//
SubmitSm[] resp = client.SubmitTextAsync(
mode,
byte.Parse(data.SourceAddrTon.ToString()),
byte.Parse(data.SourceAddrNpi.ToString()),
byte.Parse(data.DestAddrTon.ToString()),
byte.Parse(data.DestAddrNpi.ToString()),
data.DestAddr,
coding,
messageText);
}
// Here you can change DeliverSmResp status
// data.Response.Status = CommandStatus.ESME_RINVCMDID;
}
Now I`m receive message and write to DB (MSSQL) and want answered to received message which saved at DB, please help me for this.
I`m write some code in Main but it`s don`t working
public void client_evDeliverSm(object sender, DeliverSm data)
{
if (data.SegmentNumber > 0)
{
AddMessageSegmentToCollector(data);
string messageText = SmppClient.GetMessageText(data.UserDataPdu.ShortMessage, data.DataCoding);
AddToLog("DeliverSm part received : "
+ " Sequence : " + data.Sequence.ToString()
+ " SourceAddr : " + data.SourceAddr
+ " Segments ( Number: " + data.SegmentNumber.ToString()
+ ", Total : " + data.TotalSegments.ToString()
+ ", Reference : " + data.MessageReferenceNumber.ToString()
+ " ) Coding : " + data.DataCoding.ToString()
+ " MessageText : " + messageText);
if (IsLastSegment(data))
{
string fullMessage = RetrieveFullMessage(data);
AddToLog("Full message: " + fullMessage);
}
}
else
{
string messageText = SmppClient.GetMessageText(data.UserDataPdu.ShortMessage, data.DataCoding);
AddToLog("DeliverSm received : "
+ " Sequence : " + data.Sequence.ToString()
+ " SourceAddr : " + data.SourceAddr
+ " Coding : " + data.DataCoding.ToString()
+ " MessageText : " + messageText);
SqlConnection conn = new SqlConnection("server=Komil-PC;Integrated Security=SSPI; database=AzSMS");
SqlCommand CmdSql = new SqlCommand("INSERT INTO incomingSM (Sequence, SourceAddr, Coding, MessageText) Values (@Sequence,@SourceAddr,@Coding,@MessageText)", conn);
conn.Open();
CmdSql.Parameters.AddWithValue("@Sequence", data.Sequence.ToString());
CmdSql.Parameters.AddWithValue("@SourceAddr", data.SourceAddr);
CmdSql.Parameters.AddWithValue("@Coding", data.DataCoding.ToString());
CmdSql.Parameters.AddWithValue("@MessageText", messageText);
CmdSql.ExecuteNonQuery();
conn.Close();
DataCodings coding = DataCodings.Default;
SubmitMode mode = SubmitMode.ShortMessage;
// some text in greek upto 160 characters
string sMessageText = txtSMSMessage.Text.ToUpper();
//
// Send SMS ...
//
SubmitSm[] resp = client.SubmitTextAsync(
mode,
byte.Parse(data.SourceAddrTon.ToString()),
byte.Parse(data.SourceAddrNpi.ToString()),
byte.Parse(data.DestAddrTon.ToString()),
byte.Parse(data.DestAddrNpi.ToString()),
data.DestAddr,
coding,
messageText);
}
// Here you can change DeliverSmResp status
// data.Response.Status = CommandStatus.ESME_RINVCMDID;
}