February 11, 2013

SaskTel LTE Frequencies

This is a follow up to my long-winded state of Canada's 3G+ networks. The article is also a good refresher on some of the terminology used here, if you're unfamiliar.

All major carriers (Bell, MTS, Rogers, SaskTel, Telus) are using AWS Band 4 on 1700/2100. This is in line with USA carriers AT&T, and MetroPCS.

Verizon, Sprint/Nextel, Leap, and US Cellular, all run on some variations of the 700/1900, or 1700/1900/2100 bands. Their LTE devices will not connect to a Canadian data LTE network. Ensure your devices are capable of AWS Band 4 over 1700/2100.

What is LTE?
LTE stands for Long-Term Evolution. It's (probably) the final chapter in what's been coined by the marketing machine as 4G. You'll see it marketed as 4G-LTE, most likely.

It has real-world tested speeds of 75MBit/s-100MBit/s down, 20MBit/s-50MBit/s upload. To put that in perspective, your home internet, most likely, isn't more than 25MBit/s down, 5MBit/s up.

What about coverage?
In those areas where there is no LTE coverage (regardless of carrier) your device will fall-back onto existing 3G/4G infrastructure. That is, UMTS/HSPA for Telus, Bell, and UMTS/HSPA/GSM for Rogers.

Who's got LTE-Voice?
LTE-Voice is a network component where voice and data run over LTE. Currently, from what I understand, no Canadian carrier has this LTE-Voice component active, meaning your phone will drop back to 3G during a voice call.

What's with all the frequencies?
LTE was long heralded as a saviour to the insanity that is GSM/UMTS/HSPA frequency-hell. With that said, thanks to lack of international involvement, slow governments and standardization bodies, LTE is now making customers roll their eyes even more at wireless choices.

The Canadian carriers did a great job during the spectrum auctions, and re-using existing spectrum and it appears as though all major carriers have settled for the same frequency. Meaning an LTE device from Rogers, will port over to SaskTel, vice-versa.

The American carriers, with larger coverage areas, and increased competition struggled harder to come to agreements. For example, AT&T and MetroPCS are on the same frequencies for up/down links, meaning their devices should port from one network to another. But an iPhone 5 on AT&T will not work on Verizon, as their LTE spectrums are completely different.

Empty response from Django after POST request

I am assuming you're serving up your application through Python, Django, uWSGI, and nginx.

There is a chance that an improperly configured uWSGI server will return a 200-code, empty response body when the initiating request had a large POST body.

Larger post bodies, such as those sent by twilio, are dropped by uWSGI, resulting in the above response.

To save you some time digging through logs, the easiest solution is to configure your uWSGI server with a larger post-buffer setting. At SaskTel Labs we've settled on 4096 bytes.