How can send message in Main

Smpp v3.4 client

Moderator: alt

Locked
komil
Posts: 11
Joined: Tue Jul 06, 2010 6:41 am

How can send message in Main

Post by komil » 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;
}
alt
Site Admin
Posts: 985
Joined: Tue Apr 25, 2006 9:45 am

Post by alt » Tue Jul 06, 2010 2:23 pm

Try another event evDeliverSmComplete.

In the evDeliverSm event response DeliverSmResp is not sent yet and SMSC waits when client send response.
evDeliverSmComplete event is raised when response already sent.
komil
Posts: 11
Joined: Tue Jul 06, 2010 6:41 am

Post by komil » Tue Jul 06, 2010 5:46 pm

alt wrote:Try another event evDeliverSmComplete.

In the evDeliverSm event response DeliverSmResp is not sent yet and SMSC waits when client send response.
evDeliverSmComplete event is raised when response already sent.
Can you write some example? Because I`m trying but have error (
komil
Posts: 11
Joined: Tue Jul 06, 2010 6:41 am

Post by komil » Tue Jul 06, 2010 5:55 pm

komil wrote:
alt wrote:Try another event evDeliverSmComplete.

In the evDeliverSm event response DeliverSmResp is not sent yet and SMSC waits when client send response.
evDeliverSmComplete event is raised when response already sent.
Can you write some example? Because I`m trying but have error (
I`m write some like:

DeliverSmResp resp = client.evDeliverSmComplete();

but VS answered with this error:
Error 1 The event 'ALT.SMS.SmppClient.evDeliverSmComplete' can only appear on the left hand side of += or -=
alt
Site Admin
Posts: 985
Joined: Tue Apr 25, 2006 9:45 am

Post by alt » Tue Jul 06, 2010 6:27 pm

evDeliverSmComplete is event, but you are trying to use it as method

in your code should be line with

client.evDeliverSm += ...

replace it with

client.evDeliverSmComplete += ...
komil
Posts: 11
Joined: Tue Jul 06, 2010 6:41 am

Post by komil » Tue Jul 06, 2010 6:49 pm

alt wrote:evDeliverSmComplete is event, but you are trying to use it as method

in your code should be line with

client.evDeliverSm += ...

replace it with

client.evDeliverSmComplete += ...
I can`t use some idea here ( write some example with sending process because which sending process in ALT.SMS I`m used but given error ((
alt
Site Admin
Posts: 985
Joined: Tue Apr 25, 2006 9:45 am

Post by alt » Tue Jul 06, 2010 6:58 pm

client.evDeliverSmComplete += new ALT.SMS.SmppClient.DeliverSmEventHandler(client_evDeliverSmComplete);


...

public void client_evDeliverSmComplete(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);

}

}
Last edited by alt on Tue Jul 06, 2010 7:49 pm, edited 1 time in total.
komil
Posts: 11
Joined: Tue Jul 06, 2010 6:41 am

Post by komil » Tue Jul 06, 2010 7:37 pm

alt wrote:client.evDeliverSmComplete += new Inetlab.SMPP.SmppClient.DeliverSmEventHandler(client_evDeliverSmComplete);

...

public void client_evDeliverSmComplete(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);

}

}

I`m used this code but error in namespace in where I have to write this?
alt
Site Admin
Posts: 985
Joined: Tue Apr 25, 2006 9:45 am

Post by alt » Tue Jul 06, 2010 7:50 pm

Oh, sorry, I did it in wrong project

correct code should start with

client.evDeliverSmComplete += new ALT.SMS.SmppClient.DeliverSmEventHandler(client_evDeliverSmComplete);
komil
Posts: 11
Joined: Tue Jul 06, 2010 6:41 am

Post by komil » Wed Jul 07, 2010 4:26 am

alt wrote:Oh, sorry, I did it in wrong project

correct code should start with

client.evDeliverSmComplete += new ALT.SMS.SmppClient.DeliverSmEventHandler(client_evDeliverSmComplete);
I`m so sorry but after when I`m add:
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();






client.evDeliverSmComplete += new ALT.SMS.SmppClient.DeliverSmEventHandler(client_evDeliverSmComplete);





}

// Here you can change DeliverSmResp status
// data.Response.Status = CommandStatus.ESME_RINVCMDID;
}
VS answered to me with this error:
Error 1 The name 'client_evDeliverSmComplete' does not exist in the current context
alt
Site Admin
Posts: 985
Joined: Tue Apr 25, 2006 9:45 am

Post by alt » Wed Jul 07, 2010 7:35 am

SmppClient events should be initialized right after
client = new SmppClient();

client.evDeliverSmComplete += new ALT.SMS.SmppClient.DeliverSmEventHandler(client_evDeliverSmComplete);

Also in your last code you need to rename method client_evDeliverSm to
client_evDeliverSmComplete
komil
Posts: 11
Joined: Tue Jul 06, 2010 6:41 am

Post by komil » Wed Jul 07, 2010 10:05 am

alt wrote:SmppClient events should be initialized right after
client = new SmppClient();

client.evDeliverSmComplete += new ALT.SMS.SmppClient.DeliverSmEventHandler(client_evDeliverSmComplete);

Also in your last code you need to rename method client_evDeliverSm to
client_evDeliverSmComplete
So I`m doing that:

public SmppClientDemo()
{


InitializeComponent();


client = new SmppClient();
client.Timeout = 60000;
client.NeedEnquireLink = true;
client.evConnect += new SmppClient.ConnectedEventHandler(client_evConnect);
client.evDisconnect += new SmppClient.DisconnectEventHandler(client_evDisconnect);
client.evDeliverSmComplete +=new ALT.SMS.SmppClient.DeliverSmEventHandler(client_evDeliverSmComplete);
client.evEnquireLink+=new ALT.SMS.SmppClient.EnquireLinkEventHandler(client_evEnquireLink);
client.evGenericNack+=new ALT.SMS.SmppClient.GenericNackEventHandler(client_evGenericNack);
client.evError +=new ALT.SMS.SmppClient.ErrorEventHandler(client_evError);
client.evReceiveData+=new ALT.SMS.SmppClient.ReceiveDataEventHandler(client_evReceiveData);
client.evSendData +=new ALT.SMS.SmppClient.SendDataEventHandler(client_evSendData);
client.evUnBind +=new ALT.SMS.SmppClient.UnBindEventHandler(client_evUnBind);
client.evDataSm +=new ALT.SMS.SmppClient.DataSmEventHandler(client_evDataSm);
client.evSubmitComplete += new SmppClient.SubmitSmRespEventHandler(client_evSubmitComplete);
client.evQueryComplete += new SmppClient.QuerySmRespEventHandler(client_evQueryComplete);
}

and now how can I answered for the receive message automatically? I1m so sorry for this stupid question but I`m new at C#


ans thanks of lot for your help ALT
Icevewrirtief
Posts: 1
Joined: Tue Nov 02, 2010 6:24 pm
Location: Kemah,Tx
Contact:

How can send message in

Post by Icevewrirtief » Wed Nov 03, 2010 9:43 am

Can someone tell me how I can send a text message to Belarus? I use Verizon wireless and they do not support text messaging to Belarus. I can receive from my friend not just send.

Is there some other way I can send her a text message?

I would prefer to send myself but will have to settle for the text message for the time.
????? ??????? [url=http://suplexx.com]?????? ??????? ????[/url] ?? ???????!
Locked