In the baseband logs, you should find a message from +447786205094
There is a string of hex identified by 'GSM SMS Point to Point PDU (as hex str):' Within the string you should see '06050415790000'. Copy everything after that starting with 'd2'. This is the USER DATA. Make sure you grab the latest one, as it will change every time you toggle iMessage off/on.
Calculating the USER DATA length:
Paste the hex string into the decoder at: http://smspdu.benjaminerhart.com
Check the box 'Contains only User Data'
Get a count of the characters in the result field marked 'User Data /w additional stuff' (Starts with 'REG-RESP')
Add 8 to the result. You should get a result close to 105. Convert it to HEX.
(http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html)
This value replaces YY in the string below:
41000a81XXXXXXXXXX0000YY
The next step is to encode your iPhone number as semi-octets. This is done by grabbing 2 digits at a time and reversing them.
For example:
(123) 456-1234 (your 10 digit phone number)
would become
2143652143
Insert that into the following, replacing the 'XXXXXXXXXX':
41000a81XXXXXXXXXX0000YY
Now concatenate your 2 strings as follows (Spaces added for clarity only):
41000a81XXXXXXXXXX0000YY 06050415790000 d2.....USER DATA....
This is your new SMS SUBMIT message.
Connect your GSM Modem capable phone to your computer (I used USB. Bluetooth may also work). Use a terminal program like ZTerm on a Mac or Hyperterminal on Windows.
Type the following commands:
AT <return> - should return OK. If it doesn't, you'll need to troubleshoot connecting your GSM modem to your computer.
If you see the OK message, continue with the following:
AT+CGMF=0 <return>
AT+CMGS=The Length of your new SMS SUBMIT message divided by 2 <return>
>
Type 00 and then paste your SMS SUBMIT message here and end it with <ctrl-z>
If you did everything correctly, this should send the message to your iPhone and iMessage/Facetime should activate with your phone number.