Before you start, I suggest contacting the baseband-devel list to get some input... I bet andreas and sylvain have great ideas how this could e integrated best.
I guess something like openbsc / openbts would be good : Some vty command to establish a 'bare' channel and exchange L3 packets on a UDP socket with external application ?
Or possibly map that to TCP / (DCCP ?) connection: When an application connects, it establishes a channel to the BTS then you exchange packets and when you close the socket it releases it.
In any case both should be fairly easy to implement using the ccch_scan code as base.
Cheers,
Sylvain Munaut