Difference between revisions of "User:Heath/PBX"
(→Equipment/Costs) |
|||
Line 6: | Line 6: | ||
Ultimately, this page will be a set of config files, patches and dependencies for building such a system. | Ultimately, this page will be a set of config files, patches and dependencies for building such a system. | ||
− | Current version doesn't do GSM. Mainly because I have no idea how to do it. | + | Current version doesn't do GSM. Mainly because I have no idea how to do it. Don't know how to do the bluetooth stuff either. |
+ | |||
+ | The only thing on here that's going to be non-obvious to the person familiar to Asterisk is the MELP stuff. Basically MELP is a 2400bps codec. It's very similar to LPC10 except you don't sound like a robot. The quality is pretty good. I wouldn't mind using it for all of my calls. Using MELP with IAX2 makes for a very low bandwidth channel. In trunking mode, IAX2 only has protocol overhead on the first 1 or 2 calls. After that, it starts to become trivial. Since LPC10 and Asterisk are so similar, Asterisk can be tricked into thinking that MELP is actually LPC10. Using the reference code, I've gotten a codec_melp to load, but it just crashes. Unfortunately, this isn't an ultimate solution because the code I did (making the reference code reentrant) can't be released into the wild. That would be beyond "purely philosophical" inquiry and Compandent (the patent holder) could sue me into oblivion. Fortunately, they sell serial modules that can do multiple MELP channels. | ||
== Compression == | == Compression == | ||
* MELP/MELPe - Military grade compression for minimizing bandwidth consumption | * MELP/MELPe - Military grade compression for minimizing bandwidth consumption | ||
− | * | + | * AMRNB - What cellphones use |
* g723.1/g729 - What voip phones use | * g723.1/g729 - What voip phones use | ||
* iLBC/speex - Open source low-bitrate codecs | * iLBC/speex - Open source low-bitrate codecs | ||
Line 34: | Line 36: | ||
* Recurring: $400 per month plus cost of minutes | * Recurring: $400 per month plus cost of minutes | ||
* Doesn't include wiring because that depends entirely on the layout of the structure. | * Doesn't include wiring because that depends entirely on the layout of the structure. | ||
+ | * Amplifiers will be necessary in some situations. | ||
== Dependencies == | == Dependencies == |
Revision as of 15:55, 31 May 2008
This is probably the only area that I can call myself an expert in.
Asterisk can be made to build a tricked out phone system of any size at a trivial cost.
Ultimately, this page will be a set of config files, patches and dependencies for building such a system.
Current version doesn't do GSM. Mainly because I have no idea how to do it. Don't know how to do the bluetooth stuff either.
The only thing on here that's going to be non-obvious to the person familiar to Asterisk is the MELP stuff. Basically MELP is a 2400bps codec. It's very similar to LPC10 except you don't sound like a robot. The quality is pretty good. I wouldn't mind using it for all of my calls. Using MELP with IAX2 makes for a very low bandwidth channel. In trunking mode, IAX2 only has protocol overhead on the first 1 or 2 calls. After that, it starts to become trivial. Since LPC10 and Asterisk are so similar, Asterisk can be tricked into thinking that MELP is actually LPC10. Using the reference code, I've gotten a codec_melp to load, but it just crashes. Unfortunately, this isn't an ultimate solution because the code I did (making the reference code reentrant) can't be released into the wild. That would be beyond "purely philosophical" inquiry and Compandent (the patent holder) could sue me into oblivion. Fortunately, they sell serial modules that can do multiple MELP channels.
Contents
Compression
- MELP/MELPe - Military grade compression for minimizing bandwidth consumption
- AMRNB - What cellphones use
- g723.1/g729 - What voip phones use
- iLBC/speex - Open source low-bitrate codecs
Useful protocols
- Bluetooth will be implemented via chan_bluetooth or chan_cellphone
- GSM will be implemented with a commercial gateway.
- Regular POTS service can be done using hardware
- SIP - VoIP protocol
- IAX2 - Lightweight VoIP protocol
Equipment/Costs
- At least a P4 2.4 2GB server with a focus on reliability (solid disk, passive cooling if possible) $1000
- Backup server/load balancer $1000
- Half decent switch $300
- Digium AEX2460E Analog Card 6x4 FXS + Echo can $1800
- g729 licenses $100
- 20U Rack $500
- Rackmount UPS $500
- Two serial MELPe hardware modules $1000 (This could be way off)
- Far end server colocation $400/month
- Total: $6200
- Recurring: $400 per month plus cost of minutes
- Doesn't include wiring because that depends entirely on the layout of the structure.
- Amplifiers will be necessary in some situations.
Dependencies
- Existing network/Internet
- Cool/dry/secure area
- ~1000 watts available power
Asterisk
- Used to switch calls
- Used to translate between various protocols
- Used to perform IVR functionality such as voicemail
Security
- IAX2 has an aes128 option
- Bluetooth (cough) security
- Not all that great in the open source world, but reasonable security can be achieved.
Instructions
- Build servers. Insert Digium card/s.
- Load the ups/servers/patch panels into the rack.
- Connect power; connect servers to switch
- Load Debian or Ubuntu Server onto the servers.
- Follow these instructions - Easy if you've done it a few times.
- Follow these instructions - Have a friend nearby to take your aggression out on.
- Install my MELPe hacks.
- Install your favorite billing software
- Connect the system to the LAN/WAN
- Order a dedicated server, nothing special.
- Install Debian, then Asterisk, like we did before
- Have colo personnel install MELPe hardware, then install MELPe hacks
- Follow these instructions to connect to the colo server
- Subscribe to server per minute voip providers and configure them on the dedicated server
- Connect to them via _X.,1,Dial(sip/myprovider/${EXTEN})
Using a colo is avoidable if enough bandwidth is available. Will TSI one day be the termination point for HF?