Dual Path Communications


We have the requirement to develop an application which will communicate via GPRS and Ethernet simultaneously to our server, so some data will be sent via both bearers with the same ID and the first that arrives at our server will be used. Giving dual path communications in case of one bearer failing.

I cannot seem to find a way of doing this behavior without starting GPRS bearer and sending data. Then stopping the bearer and starting the Ethernet bearer and sending data. This would be very slow and not really achieve the aims of the application.

Has anyone been able to achieve something like this?



Some time ago I had both the GPRS and Ethernet bearers running simultaneously when using an old Fastrack Supreme and the Ethernet IESM card.

Haven’t got the code with me at work unfortunately - will have to look through the archives to try and find it.

As I recall though, it was a matter of running two state machines - one for the GPRS bearer, and one for the Ethernet bearer. In your case, I suspect that you would create two client comms tasks - one attached to the GPRS bearer and one to the Ethernet bearer. Then, send the same message using each comms task and let your server deal with whichever one gets there first.

ciao, Dave

Thank you, we already have an application developed using the GPRS bearer and Ethernet bearer at the same time but they are on different networks and subnets.

I’m unable to find a way of creating a socket and asking it to use a specific bearer, the only way I can think it might be possible is for our server to have multiple IP addresses and then add static routes in OpenAT to route one through the GPRS gateway and the other through the Ethernet gateway, not sure if that would work though.

So if you’ve done this before it would be great if you can find it in your archives.

Dual Path Communications via GPRS and Ethernet is possible.

The server you are communicating with has to have 2 IP addresses.

Then you add static routes for each IP address like this:

[]wip_ipRouteAdd(ServerIP1, NetMask of, Gateway IP of ethernet bearer);[/]
[]wip_ipRouteAdd(ServerIP2, NetMask of, IP of GPRS bearer);[/]

You can then create a TCPClient socket for each of the 2 IP addresses then

[]The socket to ServerIP1 will be routed through the Ethernet bearer[/]
[]The socket to ServerIP2 will be routed through the GPRS bearer[/]

When you remove the SIM Lock the socket to ServerIP2 is dropped but the socket to ServerIP1 stays alive. Verifying the dual path.