Thank you for question.
First, when module connects to server, module sends its IMEI. First comes short identifying number of bytes written and then goes IMEI as text (bytes).
For example, IMEI 356307042441013 would be sent as 000F333536333037303432343431303133.
First two bytes denote IMEI length. In this case 0x000F means, that IMEI is 15 bytes long.
After receiving IMEI, server should determine if it would accept data from this module. If yes, server will reply to module 01, if not - 00. Note that confirmation should be sent as binary packet. I.e. 1 byte 0x01 or 0x00.
Then module starts to send first AVL data packet. After server receives packet and parses it, server must report to module number of data received as integer (four bytes).
If sent data number and reported by server doesn’t match module resends sent data.
What we want to say that before AVL data packet send to the server, device will always send his IMEI.
For AVL data sending are using three protocol types:
- Codec8 is the main protocol;
- Codec8 Extended is using for FMB family devices, which AVL IDs, which are higher than 255 and for Values which using more than 8 bytes for AVL ID value.
- Codec16 is using FMB630 and FM6300 units which AVL ID's is higher than 255.
More information about them you will find here: https://wiki.teltonika.lt/view/Codec
Let us know if something was unclear, if we misunderstood your situation or you will have more questions.