Hello!
I have a strange situation:
I use smsj api (http://smsj.sourceforge.net/ - with some changes) to send binary sms to a midlet using UCP/EMI.
When i send a binary message the message is not dispalyed(is not received) on Nokia phones (i tested on N80 and 6260) but when i change the SIM to another phone (Siemens A50 and Samsung SGH-X100) all messages arrive into the inbox as binary-unreadable messages, all messages that was sent hours ago, with the SIM in this old phones(my Siemens and Samsung phones) when i submit a sms to SMSC the sms is instantaneous displayed on the phone.
My midlet is working fine because if i use the modem to send this binary messages all is working ok. If my application is closed, when i send a binary message to Nokia N80 and 6260, the message is dispayed into the inbox.
But with UCP the message is not received by the application nor by the phone inbox.
Here are the UCP strings:
UCP UDH=07060504C350C350
>>>>>>>>>>>> Sending: 37/00152/O/51/0724044995/8222/////////////////4/0216/152242583622064D170506070809000C2036414C570B1621436307////////1139//020104010807060504C350C350///CF
<<<<<<<<<<<< Received: 37/00043/R/51/A//0724044995:280806122119/51
from the SMSC i receive an acknowledge...
Any idea? First i believed that something is wrong with UDH but the header is the same when i use the modem (07060504C350C350)
Here are the fields that i set when sending binary ucp sms.
ucpSubmit.setField(UcpSeries50.FIELD_OTOA, "1139");
ucpSubmit.setField(UcpSeries50.FIELD_OADC, sender.getAddress());
ucpSubmit.setField(UcpSeries50.FIELD_ADC, destination.getAddress());
ud = StringUtil.bytesToHexString(pdu.getUserData().getData());
udhData = pdu.getUserDataHeaders();
// Add length of udh
String udhStr = StringUtil.bytesToHexString(new byte[] { (byte) (udhData.length) });
udhStr += StringUtil.bytesToHexString(udhData);
System.out.println("UCP UDH=" + udhStr);
ucpSubmit.setField(UcpSeries50.FIELD_MSG, ud);
// Numer of of bits in Transperent Data Message
udBits = pdu.getUserData().getLength() * ((isSeptets) ? 7 : 8);
ucpSubmit.setField(UcpSeries50.FIELD_NB, StringUtil.intToString(udBits, 4));
// Set message Type fix to 4
ucpSubmit.setField(UcpSeries50.FIELD_MT, "4");
// Store the UDH
ucpSubmit.clearXSer();
ucpSubmit.addXSer(UcpSeries50.XSER_TYPE_DCS, pdu.getDcs().getValue());
ucpSubmit.addXSer(UcpSeries50.XSER_TYPE_UDH, udhData);
P.S.
When i send text messages (7bit) via UCP all is working fine, the message is receiven on all type of phones.
This is text message that is working fine:
>>>>>>>>>>>> Sending: 02/00232/O/51/0724044995/8222/////////////////3//41206E6577207265706F72742077696C6C2061727269766520696E206170726F782E2035206D696E2C20706C65617365206F70656E204D6F62696C65205265706F7274696E67206170706C69636174696F6E////////1139/////A2
<<<<<<<<<<<< Received: 02/00043/R/51/A//0724044995:280806163535/50
Thank you,
Mihai

Reply With Quote


