Вроде все делаю по букварику:
| Код | string msg = "Test Тест";
tmpData = System.Text.Encoding.BigEndianUnicode.GetBytes(msg);
// sm_length data[pos++] = #if !TEST_LONG_MESSAGE (byte)tmpData.Length #else 0 #endif ;
#if TEST_LONG_MESSAGE data[pos++] = 0; //short_message
// sar_msg_ref_num 0x020c Parameter Tag data[pos++] = 0x02; data[pos++] = 0x0c; // sar_msg_ref_num Length data[pos++] = 0x00; data[pos++] = 0x02; // sar_msg_ref_num Value data[pos++] = 0x00; data[pos++] = 0x01;
// sar_segment_seqnum 0x020f Parameter Tag data[pos++] = 0x02; data[pos++] = 0x0f; // sar_segment_seqnum Length data[pos++] = 0x00; data[pos++] = 0x01; // sar_segment_seqnum Value data[pos++] = 0x1;
// sar_total_segments 0x020e Parameter Tag data[pos++] = 0x02; data[pos++] = 0x0e; // sar_total_segments Length data[pos++] = 0x00; data[pos++] = 0x01; // sar_total_segments Value data[pos++] = 0x1;
// more_messages_to_send 0x0426 Parameter Tag data[pos++] = 0x04; data[pos++] = 0x26; // more_messages_to_send Length data[pos++] = 0x00; data[pos++] = 0x01; // more_messages_to_send Value data[pos++] = 0x0;
// message_payload 0x0424 Parameter Tag data[pos++] = 0x04; data[pos++] = 0x24; data[pos++] = 0x00; data[pos++] = (byte)tmpData.Length; // Length #endif Array.Copy(tmpData, 0, data, pos, tmpData.Length); // short_message || Value pos += tmpData.Length;
|
Но возвращается: ESME_RUNKNOWNERR 0x000000FF Unknown Error
Что нужно покрутить/постучать/пнуть чтобы забегало?
P.S. Короткое сообщение отправляется без проблем |