Это будет работать до первого обновления кодека GSM. Потому что задача, по сути — сделать свой аналогичный кодек, получить цифровой поток, переколбасить его и результат передать через те частоты, про которые мы априори знаем, что GSM-кодек их не выбросит. А передавать-то нужно не текст, а объём, близкий к предельному для того же самого кодека, на который он и натаскан. То есть выжимать из «невыбрасывающихся» частот придётся всё до последней капли, а для этого нужно точно знать, что и как GSM пожмёт. А он вдруг берёт и начинает жать по-другому…
Другое дело, если это мы не «снаружи к телефону» подключаемся, а эмулируем телефон и отправляем на вышку выхлоп уже нашего туфтового GSM-кодека, который вовсе не GSM-кодек, а надувная имитация, похожая по форме. Там, конечно, будет 100500 тонкостей типа того, какими данными жертвуют при плохом канале, ухудшая (но не совсем убивая) звучание, но по идее должно прокатить. Если попытаться это раскодить как GSM — будет адова кошачья музыка из рандомно воющих частот с рандомными амплитудами.
Ну это как если бы мы взяли вейвлет-преобразование картинки, результат ещё бы зашифровали и полученное говно затолкали бы в JPEG-файл на место 8x8 DCT коэффициентов. По формату был бы совсем как живой %) и любой хостинг картинок его бы сглотнул как легитимный JPEG. Но, естественно, и ежу глазом было бы видно, что на экране полная каша. Зная, что там на самом деле, можно вытащить настоящую картинку. Кстати, там тоже на сервере могут быть 100500 тонкостей типа пережатия, оптимизации и так далее, которые могут наш файлик запороть, если мы к такому будем не готовы. Что, по сути, полностью аналогично деградации качества звука при слабом радиоканале GSM.
Если что, fk0 явно лучше меня знаком с GSM и про эти «100500 тонкостей» явно может в деталях и матерных красках рассказать %)