First of all, I'd like to thank you for this incredibly informative and extensive post.
It seems as though you're saying SIP wasn't designed to be shoehorned onto portable Linux based mini-computers and carried around with constant connectivity everywhere, no matter what network they're currently on. That makes me a little sad, as I love having a "landline" everywhere I go. What would you suggest for end users?
The issue with Skype is that the calls themselves require tons of CPU power on Android devices (my main area of focus for telephony of any kind), meaning that my girlfriend's G1 (and most other entry level Android devices, such as the WildFire) stutters like crazy on Skype calls... SIP via Sipdroid & PBXes.org on the other hand seems much less processor intensive.
This is true, of course, but there's still an an order of magnitude of difference between the actual power consumption of a laptop (10-40W + wall wart inefficiency depending on load) and a desktop (100-300W + PSU inefficiencies).
That's just it - the reason these mobile devices require far less energy to run than was required to manufacture them is that they're optimized for higher battery life, and therefore use relatively little power.
Compare this to desktops with 600W power supplies and I bet the figures will be completely different.
That's not what perplexes me - Blackberry is designed for enterprise, so it's not surprising that the IT department deploys Blackberries along with Thinkpads, EliteBooks and Latitudes... but why are people choosing to use Blackberry for their private device?
The reliability of SIP through a NAT is a function of exactly what sort of NATs are involved all the way along the route. The STUN RFC explicitly states that STUN cannot be reliable through all NATs. Certain combinations of NAT simply won't work, and this is going to get much worse where you have multiple NATs along the route.
Interesting... why is it that systems like Skype always work, whereas something as fundamental as SIP is so problematic? My setup through pbxes.org works fine both through NATed home WiFi connections as well as over the mobile data network - but there's no STUN server involved here.
Direct connection to my SIP provider via mobile data (without PBXes.org) doesn't work, presumably for the reasons you mention - do you know what exactly causes the problem?
Would IPv6 really help in this case? Or is it also possible that the issue is caused by something other than NAS?
push messaging/mail
What people often call "push email" in the mobile environment is only "push" in the loosest possible sense - your mobile phone opens a TCP session and keeps it open for a long time. When an email arrives then a notification is pushed along this open TCP session (e.g. long-poll HTTP). The way this differs from true push services is that your phone has to periodically wake up and shove a keep-alive message over the TCP session in order to prevent the ISP's NAT from dropping it. This, of course, costs battery and reliability. In a true "push" environment, the remote server would connect directly to your phone without requiring any existing sessions to carry the data. The only time your phone would need to contact the server when idle is to inform the server of an IP address change (which should be pretty rare).
To my knowledge, the only true "push email" system in use on mobile networks is Blackberry, and that involves servers to be installed within the MNO's network, specifically because this allows communications between the server and the phone without going through a NAT.
The system uses next to 0 power, and messages arrive instantly - for my purposes, it's push messaging.:)
So why not a Nokia portrait QWERTY device (E series, I think it was), or something similar from the Android domain (OK, battery life could be a problem in the latter case)? Is the keyboard on the Blackberry really that much better?
The hardware is one thing, of course - I just don't understand the BBM mania. My little sister got a Blackberry just because all of her friends have them and therefore use BBM... WTF? I just run a multi-protocol IM app (with push, of course) and, depending on the platform, either Android's version of push Gmail or an E-mail client with IMAP Idle push support... works anywhere! And anyone (even non-Android users, amazing how that works, isn't it?) can contact me via the communication channel of their choice (phone, SIPphone, IM via ICQ/AIM/MSN/Skype/FBChat/Gtalk, FB Message, E-Mail, whatever...).
Same thing with the iPhone users flocking to "Whatsapp" and those other platform dependent messaging services... WHY would you sacrifice interoperability?
Unfortunately, most Asian countries are still (far) behind the curve in terms of raw connection speed, so this likely won't be of much use.
My parents live in Bangkok (with the fastest DSL line available... I made sure of that), and Skyping with them from Germany is a bit of a chore unless it's audio-only. Teamviewer/RDP is also a bitch...
SK and Japan are obvious exceptions and don't count, IMO.
Are you sure? My mobile service provider (o2 Germany) NATs 3G connections, and SIP, push messaging/mail and, well anything else that has the phone as the client, works just fine.
It's when you want to run a private server of some kind that you're going to run into problems (VLC, Subsonic, FTP, HTTP etc.)... outgoing connections like you're talking about shouldn't be a problem...
Mobile devices on cellular networks are *ALREADY* NATed. Chances are that any WiFi devices are also NATed by the router/DSL/Cable Modem combo that provides the actual connection to the Internet.
What you're describing is the additional NATing of home Internet connections, i.e. my DSL modem won't be getting a public IPv4 address any more... and that would suck. No FTP access, no Subsonic streaming, no VLC streaming, no RDP... most consumer connections are too slow in terms of upload speed to sustain the additional overhead of VPN or Hamachi type NAT-traversal VPN services for many of these applications, so basically, anyone who accesses their home network via DynDNS or a similar service would be fucked.
Basically: Buy devices that use a proprietary "security" system, and you're fucked. Gee, who would have guessed?
I'm still trying to fathom why you'd use a closed system on a device that's capable of IM, E-Mail and, well, pretty much anything a computer is capable of these days.
What's keeping people and companies on Blackberry? Other than force of habit?
Interesting, the modding is the only thing that's gotten better/easier with the addition of Javascript - no more scrolling down to the "Apply Moderation" button (which I'd forget more often than not)... are you doing this because you find instant moderation so appalling? Or just as a general protest against all the Javascript?
Adele (or at least the song I've heard - "Rolling in the Deep", I think it was) is actually impressively good for a chart topper these days. Good voice, and not much obvious Autotune going on... the chanting-choir backing vocals are nicely placed and provide a very refreshing contrast.
The mix is a bit on the flubby bass side, but that seems to be the tone they're going for anyway...
If you're into decent vocals, listen in. If not so much, leave it be, because you might get bored:p
I had Greek in the fourth grade, at some Orthodox school in Houston (TX)... horrible little school, with mandatory church sessions and all. Hence why I was only there one year...
Ah crap, you're right... for some reason I was going Watts=>Amps at 1:1 - *facepalm*.
Ouch.
It would charge, just slowly - or keep the battery from draining when in use. 1W (~270mA) is around the average amount my Desire draws in active use (screen on low brightness, online via 3G)...
I'd take a Google-style issues tracker over Bugzilla any day. The problem with Bugzilla is that nobody keeps it up to date properly - take Trillian's Bugzilla, for instance - reporting an issue on the Android app during its beta phase... no appropriate entries for categorization (Android missing from OS, ARM missing from architecture, Android versions missing from app version section, and so on and so forth...).
Interesting that you'd jump straight to the "You just don't want to learn!" defense. Actually, I'm quite familiar with the power of mounts, as well as symlinks, and I actually use them daily on Android;)
I just feel that the file Linux file system is needlessly complicated and counterintuitive. I've learned it and I understand it, but that doesn't mean I think it's any good:(
Even Ubuntu, the "easy" beginners' Linux distro, hides your hard drive by default. Doesn't make much sense, IMO...
In Windows, to find the drive letters I have to go to "My Computer" or something like that. In Linux, KDE and gnome both have an equivalent to "My Computer" that shows all mounted storage media.
Both are equally visible.
Really? Where? o.O
I just booted Ubuntu, and "Computer" shows me:
CD/DVD Drive Floppy Drive File System
So tell me, where the ***** is my hard drive? I'm sure the system has one:P
Yes, Ubuntu does this, and I haven't had any problems with it lately - I just still have nightmares about trying to set up Ubuntu 7.xx or so back when I'd never touched Linux before.
There's just something completely unintuitive about the Linux filesystem for Windows users. Even now that I know how the stuff works, it still doesn't make sense to me - just like mounts - sure, the mount command is incredibly useful for some stuff, but why for the love of God would you NOT automatically mount any physical device that's connected? I remember hunting around for certain hard drive partitions or a CD drive and pulling out my hair at the absurdity of it all.
A quick Google fixes that, of course, but why should someone have to Google just to figure out how to access the drive they just plugged in? Or the drive that's built right in? Sure, that problem's solved now, but it feels like a kludge to me.
The letter isn't the issue - the issue is at the device should be at the absolute root of the file system. I don't care if you call the pen-drive G:, pendrive or bubblegumpopannoyingnamesomething, but don't put it somewhere that isn't *immediately* visible...
Aw, c'mon. Any user who has only used Linux systems will call the Windows method weird. At least the Linux FIlesystem Heirarchy is logical.
Bullshit. My computer file systems are based on the storage devices they're hosted on - the storage devices ARE the root of the system. How is making an imaginary / root directory and then putting the storage media in some folder more logical than directly showing the drives?
Don't get me wrong, I'm liking Ubuntu a lot (had to get used to it for Android building purposes), but the Linux file systems will continue to piss me off for the foreseeable future.
First of all, I'd like to thank you for this incredibly informative and extensive post.
It seems as though you're saying SIP wasn't designed to be shoehorned onto portable Linux based mini-computers and carried around with constant connectivity everywhere, no matter what network they're currently on. That makes me a little sad, as I love having a "landline" everywhere I go. What would you suggest for end users?
The issue with Skype is that the calls themselves require tons of CPU power on Android devices (my main area of focus for telephony of any kind), meaning that my girlfriend's G1 (and most other entry level Android devices, such as the WildFire) stutters like crazy on Skype calls... SIP via Sipdroid & PBXes.org on the other hand seems much less processor intensive.
This is true, of course, but there's still an an order of magnitude of difference between the actual power consumption of a laptop (10-40W + wall wart inefficiency depending on load) and a desktop (100-300W + PSU inefficiencies).
That's just it - the reason these mobile devices require far less energy to run than was required to manufacture them is that they're optimized for higher battery life, and therefore use relatively little power.
Compare this to desktops with 600W power supplies and I bet the figures will be completely different.
That's not what perplexes me - Blackberry is designed for enterprise, so it's not surprising that the IT department deploys Blackberries along with Thinkpads, EliteBooks and Latitudes... but why are people choosing to use Blackberry for their private device?
The reliability of SIP through a NAT is a function of exactly what sort of NATs are involved all the way along the route. The STUN RFC explicitly states that STUN cannot be reliable through all NATs. Certain combinations of NAT simply won't work, and this is going to get much worse where you have multiple NATs along the route.
Interesting... why is it that systems like Skype always work, whereas something as fundamental as SIP is so problematic? My setup through pbxes.org works fine both through NATed home WiFi connections as well as over the mobile data network - but there's no STUN server involved here.
Direct connection to my SIP provider via mobile data (without PBXes.org) doesn't work, presumably for the reasons you mention - do you know what exactly causes the problem?
Would IPv6 really help in this case? Or is it also possible that the issue is caused by something other than NAS?
push messaging/mail
What people often call "push email" in the mobile environment is only "push" in the loosest possible sense - your mobile phone opens a TCP session and keeps it open for a long time. When an email arrives then a notification is pushed along this open TCP session (e.g. long-poll HTTP). The way this differs from true push services is that your phone has to periodically wake up and shove a keep-alive message over the TCP session in order to prevent the ISP's NAT from dropping it. This, of course, costs battery and reliability. In a true "push" environment, the remote server would connect directly to your phone without requiring any existing sessions to carry the data. The only time your phone would need to contact the server when idle is to inform the server of an IP address change (which should be pretty rare).
To my knowledge, the only true "push email" system in use on mobile networks is Blackberry, and that involves servers to be installed within the MNO's network, specifically because this allows communications between the server and the phone without going through a NAT.
The system uses next to 0 power, and messages arrive instantly - for my purposes, it's push messaging. :)
So why not a Nokia portrait QWERTY device (E series, I think it was), or something similar from the Android domain (OK, battery life could be a problem in the latter case)? Is the keyboard on the Blackberry really that much better?
The hardware is one thing, of course - I just don't understand the BBM mania. My little sister got a Blackberry just because all of her friends have them and therefore use BBM... WTF? I just run a multi-protocol IM app (with push, of course) and, depending on the platform, either Android's version of push Gmail or an E-mail client with IMAP Idle push support... works anywhere! And anyone (even non-Android users, amazing how that works, isn't it?) can contact me via the communication channel of their choice (phone, SIPphone, IM via ICQ/AIM/MSN/Skype/FBChat/Gtalk, FB Message, E-Mail, whatever...).
Same thing with the iPhone users flocking to "Whatsapp" and those other platform dependent messaging services... WHY would you sacrifice interoperability?
Senses of meaning, i.e.:
"Something or other is meant in the sense that..."
Unfortunately, most Asian countries are still (far) behind the curve in terms of raw connection speed, so this likely won't be of much use.
My parents live in Bangkok (with the fastest DSL line available... I made sure of that), and Skyping with them from Germany is a bit of a chore unless it's audio-only. Teamviewer/RDP is also a bitch...
SK and Japan are obvious exceptions and don't count, IMO.
Are you sure? My mobile service provider (o2 Germany) NATs 3G connections, and SIP, push messaging/mail and, well anything else that has the phone as the client, works just fine.
It's when you want to run a private server of some kind that you're going to run into problems (VLC, Subsonic, FTP, HTTP etc.)... outgoing connections like you're talking about shouldn't be a problem...
Mobile devices on cellular networks are *ALREADY* NATed. Chances are that any WiFi devices are also NATed by the router/DSL/Cable Modem combo that provides the actual connection to the Internet.
What you're describing is the additional NATing of home Internet connections, i.e. my DSL modem won't be getting a public IPv4 address any more... and that would suck. No FTP access, no Subsonic streaming, no VLC streaming, no RDP... most consumer connections are too slow in terms of upload speed to sustain the additional overhead of VPN or Hamachi type NAT-traversal VPN services for many of these applications, so basically, anyone who accesses their home network via DynDNS or a similar service would be fucked.
Basically: Buy devices that use a proprietary "security" system, and you're fucked. Gee, who would have guessed?
I'm still trying to fathom why you'd use a closed system on a device that's capable of IM, E-Mail and, well, pretty much anything a computer is capable of these days.
What's keeping people and companies on Blackberry? Other than force of habit?
Funnily enough, I actually do that - drives my girlfriend crazy.
Moderating works without problems across all my browsers (Chrome, IE, Firefox, Android). Maybe turn off NoScript? ;)
Interesting, the modding is the only thing that's gotten better/easier with the addition of Javascript - no more scrolling down to the "Apply Moderation" button (which I'd forget more often than not)... are you doing this because you find instant moderation so appalling? Or just as a general protest against all the Javascript?
Same here - I'm quite impressed by Rolling in the Deep, for a song that's actually been in the charts - any other recommendations?
Adele (or at least the song I've heard - "Rolling in the Deep", I think it was) is actually impressively good for a chart topper these days. Good voice, and not much obvious Autotune going on... the chanting-choir backing vocals are nicely placed and provide a very refreshing contrast.
The mix is a bit on the flubby bass side, but that seems to be the tone they're going for anyway...
If you're into decent vocals, listen in. If not so much, leave it be, because you might get bored :p
I had Greek in the fourth grade, at some Orthodox school in Houston (TX)... horrible little school, with mandatory church sessions and all. Hence why I was only there one year...
Ah crap, you're right... for some reason I was going Watts=>Amps at 1:1 - *facepalm*.
Ouch.
It would charge, just slowly - or keep the battery from draining when in use. 1W (~270mA) is around the average amount my Desire draws in active use (screen on low brightness, online via 3G)...
A watt can recharge an entire smartphone battery in 1-2 hours... I'd welcome a pair of shoes that provides me with a Watt of power when I walk around.
I'd take a Google-style issues tracker over Bugzilla any day. The problem with Bugzilla is that nobody keeps it up to date properly - take Trillian's Bugzilla, for instance - reporting an issue on the Android app during its beta phase... no appropriate entries for categorization (Android missing from OS, ARM missing from architecture, Android versions missing from app version section, and so on and so forth...).
Interesting that you'd jump straight to the "You just don't want to learn!" defense. Actually, I'm quite familiar with the power of mounts, as well as symlinks, and I actually use them daily on Android ;)
I just feel that the file Linux file system is needlessly complicated and counterintuitive. I've learned it and I understand it, but that doesn't mean I think it's any good :(
Even Ubuntu, the "easy" beginners' Linux distro, hides your hard drive by default. Doesn't make much sense, IMO...
In Windows, to find the drive letters I have to go to "My Computer" or something like that. In Linux, KDE and gnome both have an equivalent to "My Computer" that shows all mounted storage media.
Both are equally visible.
Really? Where? o.O
I just booted Ubuntu, and "Computer" shows me:
CD/DVD Drive
Floppy Drive
File System
So tell me, where the ***** is my hard drive? I'm sure the system has one :P
Yes, Ubuntu does this, and I haven't had any problems with it lately - I just still have nightmares about trying to set up Ubuntu 7.xx or so back when I'd never touched Linux before.
There's just something completely unintuitive about the Linux filesystem for Windows users. Even now that I know how the stuff works, it still doesn't make sense to me - just like mounts - sure, the mount command is incredibly useful for some stuff, but why for the love of God would you NOT automatically mount any physical device that's connected? I remember hunting around for certain hard drive partitions or a CD drive and pulling out my hair at the absurdity of it all.
A quick Google fixes that, of course, but why should someone have to Google just to figure out how to access the drive they just plugged in? Or the drive that's built right in? Sure, that problem's solved now, but it feels like a kludge to me.
The letter isn't the issue - the issue is at the device should be at the absolute root of the file system. I don't care if you call the pen-drive G:, pendrive or bubblegumpopannoyingnamesomething, but don't put it somewhere that isn't *immediately* visible...
Aw, c'mon. Any user who has only used Linux systems will call the Windows method weird. At least the Linux FIlesystem Heirarchy is logical.
Bullshit. My computer file systems are based on the storage devices they're hosted on - the storage devices ARE the root of the system. How is making an imaginary / root directory and then putting the storage media in some folder more logical than directly showing the drives?
Don't get me wrong, I'm liking Ubuntu a lot (had to get used to it for Android building purposes), but the Linux file systems will continue to piss me off for the foreseeable future.
And yes, I grew up with Windows :(