void encode_cdma_sms(char *pdu, char *to, char *message) { int length; LOGE_IF(strlen(message)>160, "Error: Message String too long"); memset(pdu, '0', 512); setbits(pdu,0,16,0); setbits(pdu,16,24,0x021002); pdu=pdu+10; setbits(pdu,0,8,0x04); length=encode_number(pdu+4, to); setbits(pdu,8,8,length); pdu=pdu+length*2+4; setbits(pdu,0,24,0x060100); pdu=pdu+6; setbits(pdu,0,8,0x08); length=encode_bearer_data(pdu+4, message); LOGE_IF(length>255, "Error: Message Hex too long"); setbits(pdu,8,8,length); pdu=pdu+length*2+4; *pdu=0; }
void encode_cdma_sms(char *pdu, char *to, char *message) { int i; int length; if(strlen(message)>160) LOGE("Error: Message String too long"); for(i=0;i<512;i++) pdu[i]='0'; setbits(pdu,0,16,0); setbits(pdu,16,24,0x021002); pdu=pdu+10; setbits(pdu,0,8,0x04); length=encode_number(pdu+4, to); setbits(pdu,8,8,length); pdu=pdu+length*2+4; setbits(pdu,0,24,0x060100); pdu=pdu+6; setbits(pdu,0,8,0x08); length=encode_bearer_data(pdu+4, message); if(length>255) LOGE("Error: Message Hex too long"); setbits(pdu,8,8,length); pdu=pdu+length*2+4; *pdu=0; }