I want to send sms
using AT
commands in C#
. Now it works for one message. It comes with natonial characters. It's encoded in UCS2
.
But I can't send longer message because I have strange characters when added User Data Header
. My code:
string messageSmsEncoded1 = "050003CC0201" + UnicodeStr2HexStr("dddd");
targetPhoneNo = UnicodeStr2HexStr(PhoneNumber);
string phone_number = Char.ConvertFromUtf32(34) + targetPhoneNo + Char.ConvertFromUtf32(34);
serialPort.Write("AT");
Thread.Sleep(100);
var responseAt = serialPort.ReadExisting();
serialPort.Write("AT+CSCS = ?" + Char.ConvertFromUtf32(13));
Thread.Sleep(100);
var responseCscs = serialPort.ReadExisting();
serialPort.Write("AT+CSCS=\"UCS2\"" + Char.ConvertFromUtf32(13));
Thread.Sleep(100);
var responseUcs2 = serialPort.ReadExisting();
serialPort.Write("AT+CMGF=1" + Char.ConvertFromUtf32(13));
Thread.Sleep(100);
var responseCmgf = serialPort.ReadExisting();
// set data coding scheme
serialPort.Write("AT+CSMP=17,167,0,8" + Char.ConvertFromUtf32(13));
Thread.Sleep(100);
var responseCsmp = serialPort.ReadExisting();
serialPort.Write("AT+CMGS=" + phone_number + Char.ConvertFromUtf32(13));
Thread.Sleep(100);
var responseCmgs = serialPort.ReadExisting();
serialPort.Write(messageSmsEncoded1 + Char.ConvertFromUtf32(26) + char.ConvertFromUtf32(13));
And I got:
Ԁόȁdddd
How to add UDH
to message encoded in UCS2
?