Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Under that scheme, if I called my own line by dialing my own DID, I'd end up with a completed loopback call rather than a connection to my voicemail inbox.


Just have an exception for that case?


I don't know how phone systems work, but in any other programming scenario, a quick if..else would fix that.


To translate into Internet-engineering terms: assume that you might be having to call out through a proxy server (this is true when you e.g. have to "dial 9" to reach an outside line.) If your own phone is public-routable (i.e. your extension has its own DID, and that's what you're calling), then the routing system outside the device will have no idea that what you'll reach is, in fact, your own device. The origin of the call will appear to the POTS system as just "the PBX" (a NAT, basically); and the destination will appear to your PBX as just some anonymous public number owned by a phone company, that happens to proxy back to your own extension on the PBX when you request it. So neither the POTS system nor your PBX will be able to recognize what's going on. (I mean, you can manually program associated numbers into the PBX, but by doing so you're denormalizing DID mappings: they'll break as soon as someone's number changes on the POTS side.)

Much better if dialing out on a line just takes an exclusionary lock on the line so that it can't be dialed into; then anything that forwards back to that line, at any level of indirection, will be told the line is busy and will step to the next part of the call-tree.

(Note that this becomes important when you're trying to e.g. get a [random peer of your support-level] on the line for a consult in tech support, by "adding" to the call the same ring-group you're in. Exclusionary locking here is what ensures that you won't end up adding yourself to the call.


Perfect explanation, thank you!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: