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

Many countries (if not all of them) use localized numbering format - short numbers to hit the local destinations (intra-city calls), numbers with city prefixes to get to the numbers in a different city within the same country, specific prefixes (i.e. 00) for international calls, etc. The most convenient way of processing this mess is to rewrite the numbers (called/calling) on the ingress, into e164, and then processing the call using the routing table/rules of the pbx. On the egress the numbers may be rewritten again using the local numbering rules. This is how I built the international telephony system in one of my previous companies at least.

Some countries are easier in their numbering system (Singapore being an obvious example) and some are not (China doesn’t disclose number ranges allocated for different regions/cities, which makes the renumbering step more difficult)



There's many places where you can skip the area code or similar when dialling, but I think the original poster was thinking of systems where the actual numbering has variable-length components.


Variable length is solved by inter-digit timeout - pbx is waiting for a couple of seconds, then decides that the caller has finished entering the number and processes the collected digits according to the existing rules. Simple as that.


Always been disappointed that nowhere went with arbitrary length numbers for phone numbers, with the excess/end forwarded on to wherever the prefix is. I suppose that's not possible with the amount of time needed to actually do the switching, and would tie up a lot of switches before a call ever connects.

Or, assuming every number ends with many 0s that are omitted when dialling. Mainly to make extending the numbers easier, though you would lose 10% of the available ones.


It is technically possible to use a pound key (#) as an end of input indicator. It is almost impossible to change the users habits though, not mentioning the need to reprogram thousands of telephony switches. Another (better) option here is packet sending of DTMF string - digits are collected on a smart user's device (i.e. iphone) and the complete number is sent as a digit string, not one by one. Problem here is that there are still lots of dumb phones that don’t do that. Analog lines (copper fxo/fxs interfaces) are also present even nowadays. So as usual, legacy and backwards compatibility are holding back progress.




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

Search: