Доброго дня всем! Если кто знает, подскажите по каким правилам создать сообщение для загрузки в SIM. Перерыл кучу рекомендаций, но так и не могу понять главного.
Перейти в PDU Mode, сформировать заголовок и тело сообщения (для нелатинских текстов использовать UCS2). Сохранить. PDUSpy в помощь.
Это понятно. Что должно содержать тело сообщения. Спецификация 23040 описывает только правила определения тела сообщения для текстовых сообщений, в данном случае должны быть служебные команды, но не могу понять какие именно. Если знаете, подскажие, где про них почитать.
Я в свое время все сделал (отправка/прием SMS через GSM-терминал) по документации с сайта Siemens (M20, TC35). Но сейчас документации и примеров везде просто навалом. Или google опять в дауне? Тогда начните отсюда: h**p://softel.narod.ru, h**p://softel.narod.ru/mxterm.html У них же можно найти и несколько полезных программ. PDUSpy я вам уже советовал: h**p://w*w.nobbi.com/pduspy.html Вот еще по теме: New SMS Library at h**p://twit88.com/platform/projects/show/messagingtoolkit
Приём и отправку сообщений в режиме PDU я давно и успешно освоил. Меня интересует возможность получения данных с другого телефона посредством передачи ему короткого сообщения (возникла необходимость определить местоположение аппарата, точнсть подобного метода меня вполне устраивает, завязываться с серверами, предоставляющими подобные возможности не хочу). Иногда бывает проще именно таким образом узнать, где находится родственник, или автомобиль с "забытым" в нём телефоном.
Если речь идет про Java для SIM то, вероятно, поможет вот такой пример: Код (Text): private void sendShortMessage (ProactiveHandler proHdlr) { // Initialize Send short message command with "SMS packing by the ME required" qualifier proHdlr.init(PRO_CMD_SEND_SHORT_MESSAGE, (byte)0x01, DEV_ID_NETWORK); // Append optional "Alpha identifier" to the Send short message command proHdlr.appendTLV(TAG_ALPHA_IDENTIFIER, strings, (short)((MSG_SENDING_SMS * STRING_RECORD_LENGTH)+(short)1), (short)(strings[(short)(MSG_SENDING_SMS * STRING_RECORD_LENGTH)])); // Define and append optional "Service center address" for the message (TON/NPI + number) Util.arrayFillNonAtomic(tempBuffer, (short)0, (short)tempBuffer.length, (byte)0x00); tempBuffer[0] = (byte)0x91; tempBuffer[1] = (byte)0x21; tempBuffer[2] = (byte)0x43; tempBuffer[3] = (byte)0x65; tempBuffer[4] = (byte)0x87; proHdlr.appendTLV(TAG_ADDRESS, tempBuffer, (short)0, (short)5); // Define and append SMS TPDU Util.arrayFillNonAtomic(tempBuffer, (short)0, (short)tempBuffer.length, (byte)0x00); // TP-MTI tempBuffer[0] = (byte)0x01; // TP-MR tempBuffer[1] = (byte)0x00; // TP-DA length tempBuffer[2] = (byte)0x04; // TP-DA tempBuffer[3] = (byte)0x91; tempBuffer[4] = (byte)0x34; tempBuffer[5] = (byte)0x12; // TP-PID tempBuffer[6] = (byte)0x41; // TP-DCS tempBuffer[7] = (byte)0xF2; // TP-UDL tempBuffer[8] = (byte)0x05; // TP-UD 'Hello' in 7-bit packed format tempBuffer[9] = (byte)0xC8; tempBuffer[10] = (byte)0x32; tempBuffer[11] = (byte)0x9B; tempBuffer[12] = (byte)0xFD; tempBuffer[13] = (byte)0x06; proHdlr.appendTLV(TAG_SMS_TPDU, tempBuffer, (short)0, (short)14); // Send the command to the mobile proHdlr.send(); return; }
Это только касаемо создания сообщения в режиме PDU. Мне нужна информация, что должно содержать тело сообщеня (UserData). Смутно догадываюсь, что это должны быть команды управления SIM, подобно использованию команд AT+CRSM и AT+CSIM для непосредственного управления SIM, но формат ...?