Existující GSM s upraveným FW, od kterého většinou nejsou zdrojáky, tě bude asi vždy trochu limitovat. Na druhou stranu existuje třeba OsmocomBB, který používá původní GSM čipset jenom jako tupé rádiové rozhraní, a veškerou logiku dělá v Linuxu. Už jim chodí L2+ implementace GSM klienta, takže i kdybys nakonec dělal něco vlastního, použil bych jako backend toto, protože si ušetříš spoustu práce. Fungují jim SMSky, nevím, jestli už i hovory. Hardware, na kterém to běží, že už několik let nevyrábí, staré se občas dají sehnat na ebay.
Pro SDR bych z OpenBTS/Airprobe/gr-gsm vykostil rádiový frontend a jako backend na to napojil zmíněný OsmocomBB.
Možné problémy se SDR: nedokážeš se rychle přelaďovat mezi timesloty (na bladerf existuje OpenBTS, takže to asi jde -- ale už nevím, jestli i v 1800MHz pásmu, nebo jenom 900MHz). Nedokážeš rychle přepínat Rx/Tx mezi uplinkem a downlinkem (hackrf nemá fullduplex, bladerf jo). Provoz v ČR není legální.