Line 3: |
Line 3: |
| =='''Pre-Requisites for server implementation'''== | | =='''Pre-Requisites for server implementation'''== |
| {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
− | |<strong>What are the pre-requisites for creating a server and deploying a device?</strong> | + | |<strong>What are the pre-requisites to create and deploy devices on a server?</strong> |
| |- | | |- |
| |To develop the platform, below are the requirements: | | |To develop the platform, below are the requirements: |
| | | |
− | {| class="wikitable" | + | #Hardware Requirements: A high CPU count promotes better cloud tiering throughout because although object storage can be slow in I/O operations per thread, object storage can support many threads. Any standard x86 64-bit servers can be ideally used. |
| + | #Memory/RAM Requirements: Cloud tiering services demand a large amount of memory, which is why the minimum recommended memory size is 8GB. |
| + | #Harddisk Requirements: For a medium-sized server, 300GB RAID1 disks can be recommended. |
| + | #Network Protocols: TCP/IP and UDP are the basic protocols supported by our devices. MQTT is also supported. |
| + | #Knowledge about programming language is an asset, where Python, C#, JAVA can be used for Backend. |
| + | #Database: A database is required to store the records/messages incoming from multiple devices. Further, this data must be assigned to its appropriate device ( recognized by IMEI ). MySQL can be used for the database. |
| + | #Skillsket for Socket Programming is an asset to develop a server. |
| + | #Security: Teltonika device support TLS Encryption which can be implemented on the server side. |
| + | #Hardware Knowledge: It can be found on our Teltonika WIKI: https://wiki.teltonika-gps.com/view/Main_Page |
| + | |} |
| + | |
| + | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
| + | |<strong>How to open ports in my computer for virtual testing?</strong> |
| |- | | |- |
− | ! Requirement !! Description
| + | | |
− | |- | + | The step by step instructions to open a TCP/UDP port can be found here: https://wiki.teltonika-gps.com/view/Opening_TCP/UDP_port |
− | | Network Protocols || TCP/IP and UDP are the basic protocols supported by our devices. MQTT is also supported.
| |
− | |-
| |
− | | Programming Language || Knowledge about programming language is an asset, where Python, C#, JAVA can be used for Backend.
| |
− | |-
| |
− | | Database || MySQL can be used for the database. Database is required to save the data incoming from different devices ( IMEIs )
| |
− | |-
| |
− | | Security || Teltonika device support TLS Encryption which can be implemented on the server side.
| |
− | |-
| |
− | | Hardware Knowledge || It can be found on our Teltonika WIKI: https://wiki.teltonika-gps.com/view/Main_Page
| |
| |} | | |} |
| | | |
− | =='''Server Requirements'''==
| |
| {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
− | |<strong>What are the supported Network Protocols for Teltonika devices which I need to implement on my server</strong> | + | |<strong>What ports should i use to keep connection with the server?</strong> |
| |- | | |- |
− | |Currently, the Teltonika devices works with 03 different protocols for Data Sending; TCP, UDP, and MQTT. Please keep a note that MQTT is supported only via AWS server or a custom server which should be implemented based on the AWS protocols. More information on MQTT ( based on AWS ) can be found here: https://wiki.teltonika-gps.com/view/Getting_Started_with_AWS_IoT_Core. | + | | |
| + | Any Non-reserved ports on the server side, which are not being blocked and used by server's firewall and services respectively. |
| |} | | |} |
| | | |
Line 38: |
Line 41: |
| |} | | |} |
| | | |
− | =='''Implementation'''== | + | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
| + | |<strong>What are the supported Network Protocols for Teltonika devices which I need to implement on my server</strong> |
| + | |- |
| + | |Currently, the Teltonika devices works with 03 different protocols for Data Sending; TCP, UDP, and MQTT. Please keep a note that MQTT is supported only via AWS server or a custom server which should be implemented based on the AWS protocols. More information on MQTT ( based on AWS ) can be found here: https://wiki.teltonika-gps.com/view/Getting_Started_with_AWS_IoT_Core. |
| + | |} |
| + | |
| {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
| |<strong>Is there any ID/Value available corresponding to the paramters that Teltonika devices offer? </strong> | | |<strong>Is there any ID/Value available corresponding to the paramters that Teltonika devices offer? </strong> |
Line 54: |
Line 62: |
| | | |
| 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. | | 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. |
| + | |} |
| + | |
| + | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
| + | |<strong>How to setup records sorting from protocols Codec? </strong> |
| + | |- |
| + | |Records can be sorted by using timestamp as a record sorting method, as it allows us to know what record was received early. |
| + | |} |
| + | |
| + | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
| + | |<strong>How to setup the answer to the Codec protocols in C#, Java, C++ from the server side, while counting records?</strong> |
| + | |- |
| + | |You can write script in your preferred language ( C#, JAVA or Python ) which can extract the number of records received from device and send it as a ACK packet to the device. |
| |} | | |} |
| | | |
Line 66: |
Line 86: |
| |} | | |} |
| | | |
− | =='''Common Mistakes'''==
| |
| {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
− | |<strong>I am getting the error on the server side saying"Protocol Mismatch". What could possible be wrong in this case?</strong> | + | |<strong>How to make multiple session separation from the server side from different devices?</strong> |
| |- | | |- |
− | |This is because of mismatch in the selection of Network Protocol on the device and server side. It is possible that on the Device, TCP is selected and on the server side its UDP or vice-versa. Since the structure for both the protocols is different, this mismatch can restrict establishing a connection on the server. | + | |Multiple devices can be separated by recognizing the IMEIs of the devices on the server side. The very first step by the device is to send the IMEI on the server and server receives IMEI and sends ACK packet back to the module. All the modules have different IMEI which can be used as a point of differenciation. |
| |} | | |} |
| | | |
− | =='''ACK Requirements'''==
| |
| {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
| |<strong>How can we know if the acknowledgment is required on the server or not? Can we change this setting?</strong> | | |<strong>How can we know if the acknowledgment is required on the server or not? Can we change this setting?</strong> |
Line 80: |
Line 98: |
| #If ACK Type, TCP/IP is selected then Server Acknowledgement is not required | | #If ACK Type, TCP/IP is selected then Server Acknowledgement is not required |
| #If ACK Type, AVL is selected then the Server must respond with the Acknowledgement. | | #If ACK Type, AVL is selected then the Server must respond with the Acknowledgement. |
| + | |} |
| + | |
| + | =='''Common Mistakes'''== |
| + | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" |
| + | |<strong>I am getting the error on the server side saying"Protocol Mismatch". What could possible be wrong in this case?</strong> |
| + | |- |
| + | |This is because of mismatch in the selection of Network Protocol on the device and server side. It is possible that on the Device, TCP is selected and on the server side its UDP or vice-versa. Since the structure for both the protocols is different, this mismatch can restrict establishing a connection on the server. |
| |} | | |} |
| | | |