Skip to content

mattmart3/ABPS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ABPS

Always Best Packet Switching (ABPS) is a software architecture which allows seamless mobility for Linux and Android devices while using VoIP and real-time multimedia applications. This repository is a collection of software tools, applications and kernel patches that enables the ABPS features.

This collection includes:

  • TED patches: linux kernel patches that enables Transmission Error Detector notification system.
  • TED proxy: a proxy application to facilitate vertical handover between WiFi and cellular network through the use of TED notifications
  • UDP Relay: a simple python application that relays UDP traffic between end nodes
  • Correspondent Node (CN) Tools: simple software tools to enable a receiving counterpart

You can find more documentation for each component in their corresponding subdirectory or in the doc folder.
TED patches and TED proxy both reside in tedproxy folder.

See the following for more information on ABPS.

If you want to contribute feel free to fork this repository and work on new development branches.
You may also send me pull requests for new features.

##Run ABPS components After you read the documentation and you installed and configured ABPS components, you can stream some UDP traffic from the multi-homed mobile device to the CN passing through the relay.
For instance let us consider an RTP camera streamer installed on the mobile device that sends RTP packets to the CN. On the mobile device you must first run tedproxy:

./path_to_tedproxy/tedproxy -b -i t:wlan1 -i rmnet0 5006 130.136.4.138 5001

then activate the relay application on the remote proxy:

python3 /path_to_udprelay/udprelay.py 5001:5002

Now start the CN tools with the launcher.sh script:

./path_to_cntools/launcher.sh 130.136.4.138 5002 5006 outputvideo.ogg

It will send an initialization packet to the relay and then it will wait for user confirmation before starting ffmpeg. Before confirming, start the stream from the mobile device. Be sure the RTP streamer application sends packets to 127.0.0.1 and UDP port 5006 which is the port tedproxy is listening to. I used a proprietary camera streamer application (https://play.google.com/store/apps/details?id=com.miv.rtpcamera). However any similar application should work well.

About

Transmission Error Detector for ABPS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 84.3%
  • Python 13.7%
  • Shell 1.2%
  • Makefile 0.8%