DeliverSM & Receipt issue

.NET library for SMPP protocol
Locked
NickAskew
Posts: 60
Joined: Tue Oct 07, 2008 1:35 pm

DeliverSM & Receipt issue

Post by NickAskew » Thu May 12, 2011 7:24 pm

Hi Alexey

I have found a couple of issues with [Receipt.cs]

Parse(string text) doesn't catch 'ENROUTE'.

Also, I use the provider mBlox who returns 'ACKED' as a status, which I guess is another 'ENROUTE' designation. Frustratingly, when accessing the whole receipt you rebuild it using the items you've captured.. so any further codes that other providers may use will get masked to 'NONE' by this class.

Regards

Nick
ProcessFlows UK Ltd
http://www.processflows.co.uk/
alt
Site Admin
Posts: 985
Joined: Tue Apr 25, 2006 9:45 am

Re: DeliverSM & Receipt issue

Post by alt » Mon May 16, 2011 8:21 am

Thank you Nick,
Added status ENROUTE and ACKED to parser. I also added OriginalState property for such cases.
prakash
Posts: 3
Joined: Tue May 31, 2011 9:01 am

Re: DeliverSM & Receipt issue

Post by prakash » Tue May 31, 2011 9:13 am

Hi..

i have issue with get delivery from server

i already used
client.evDeliverSmComplete += new Inetlab.SMPP.Common.DeliverSmEventHandler(evDeliverSmComplete);

and

private void evDeliverSmComplete(object sender, DeliverSm data)
{

if (data.MessageType == Inetlab.SMPP.Common.MessageTypes.SMSCDeliveryReceipt)
{
string messageId = data.Receipt.MessageId;
}
if (data.SegmentNumber > 0)
{
AddMessageSegmentToCollector(data);

// string messageText = data.Client.GetMessageText(data.Optional[OptionalTags.MessagePayload].Value, data.DataCoding);
string messageText = data.Client.GetMessageText(data.UserDataPdu.ShortMessage, data.DataCoding);
string text = "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;
AddToLog("sms_data", text);
Console.WriteLine(text);

if (IsLastSegment(data))
{
string fullMessage = RetrieveFullMessage(data);
string text1 = "Full message: " + fullMessage;
AddToLog("sms_data", text1);
Console.WriteLine(text1);
}
}
else
{
string messageText = data.Client.GetMessageText(data.UserDataPdu.ShortMessage, data.DataCoding);
string text2 = "DeliverSm received : "
+ " Sequence : " + data.Sequence.ToString()
+ " SourceAddr : " + data.SourceAddr
+ " Coding : " + data.DataCoding.ToString()
+ " MessageText : " + messageText;
AddToLog("sms_data", text2);
Console.WriteLine(text2);
}

// Here you can change DeliverSmResp status
// data.Response.Status = CommandStatus.ESME_RINVCMDID;
}



this event is not fired in any case...

i m using

client.SubmitTextAsync( mode, srcTon, srcNpi, srcAdr, dstTon, dstNpi, dstAdr, coding, text);

for sending msgs

Thanx
Waiting for your reply
Locked