Transparent SIP proxy / proxies
I am currently in the process of planning a ~650 use/500 DID/4 PRI asterisk/trixbox CE install. Our organization is such that we are spread over an area of about 20 square miles with mostly fiber linking our sites. We have 17 sites, of which 13 are connected with fiber, the other 4 are connected via direct point to point data T1's. Here is the proposed plan:
1. All sites must have 4 digit dialing to everyone within our network
2. All sites must be able to forward voicemails to each other
3. A user at site A must be able to monitor BLF status for a user at site B (universal monitoring)
4. The main PBX must be fault tolerant (HA setup, 1 server active at a time).
5. The PRI's must be separated into a minimum of 2 locations.
6. All phones, if possible, must not pass RTP traffic through the asterisk box. They must pass traffic between themselves (canreinvite=yes). If necessary, a Digium transcoder card will be installed to handle any audio transcoding. Though asterisk will be processing as little media as possible, I will still order these servers very stout (IE 4 quad core xeons etc.) We aren't running a call center or conference bridge or anything like that, so the time a caller/callee spends sending/receiving audio from the server will be minimal.
7. Each site will have a single PSTN line for emergency dialing (911) that they MUST be able to dial out on in the event of a main PBX outage (IE severed fiber)
8. For the T1 connected sites, 7 and 10 digit dialing must exit on the local PSTN lines, and they must be able to receive incoming calls on those lines to their desk phones (or an IVR on the main PBX). This functionality does not need to be present in the event of a main PBX outage, though it is preferable.
9. All of the above must be done with minimal manual configuration to asterisk. FreePBX should be in charge of most of the configuration.
Items 1-6 I can do without issue. Items 7 and 8, from my research, are going to require the use of SIP proxies. Adtran was kind enough to send me a demo unit of their Total Access 908e for testing purposes. It supports transparent SIP proxying which allows for local 4 digit calling in the event of a severed connection, and keeps me from having to manage sip extensions on each proxy device (double work).
What I am unable to do, unfortunately, with the Adtran device, is use the built in FXO port for emergency dialing, which is what the port was intended for. It seems the transparent proxy feature ignores the local dialing rules set up in the Adtran.
My question to the community is, do you know of a hardware device similar to the Adtran device that will perform the functions of numbers 7 and 8? If not a hardware device, perhaps a software package? I have looked into OpenSER, and find its configuration to be on par with sendmail, if that is any indication of its cryptic nature. Any help is appreciated.
Thanks,
Josh
Hello -
This sure sounds like a school district to me <
Interesting project, I have a few suggestions and comments:
Our organization is such that we are spread over an area of about 20 square miles with mostly fiber linking our sites
Do you route across the fiber or is it layer 2? What type of switches and routers are you using?
3. A user at site A must be able to monitor BLF status for a user at site
What is your strategy on this? I have several solutions that I am playing with, none of which are very elegant.
4. The main PBX must be fault tolerant (HA setup, 1 server active at a time).
Can you expand on your HA criteria and initial design? If you have database, voice mail and configuration replication along with a fault tolerant network stategy I am very interested in what you are doing. I am currently trying to figure out how to get Rainlink VRRP to play nice with Asterisk.
5. The PRI's must be separated into a minimum of 2 locations.
Have you thought about terminating the PRI's into a router such as the Cisco 2811 then SIP trunking the router to the PBX?
8. For the T1 connected sites, 7 and 10 digit dialing must exit on the local PSTN lines, and they must be able to receive incoming calls on those lines to their desk phones (or an IVR on the main PBX). This functionality does not need to be present in the event of a main PBX outage, though it is preferable.
Have you thought of a distributed architecture with trix boxes at each location trunked back to a main server? Voice mail would run on the main server so you could retain the integration. This would also solve your dial plan issues.
9. All of the above must be done with minimal manual configuration to asterisk. FreePBX should be in charge of most of the configuration.
I think this may be a reach. Certainly for extension assignment and voice mail management.
My question to the community is, do you know of a hardware device similar to the Adtran device that will perform the functions of numbers 7 and 8? If not a hardware device, perhaps a software package? I have looked into OpenSER, and find its configuration to be on par with sendmail, if that is any indication of its cryptic nature.
SER is very powerful and I have been advocating the use of it alongside Asterisk since I arrived in these forums. Once up and running with a few sample routes SER is not as difficult to add functionality to as Sendmail. In my opinion SER is completely unapproachable if you read the documentation on the web site. How I got over my SER-phobia was to setup two trix boxes and a SER box. SER is easy to get up and running. Then I set very simple goals IE: Forward a call from one trix to the other. Then I stated testing other functions. Once I had a foundation I was able to take those building blocks and start using them together to build more complex functionality.
I am very interested in what you are doing. I am currently designing a distributed system for 17 locations. I am using the distributed server model I mentioned with central VM. These sites are interconnected with a managed MPLS network.
Regards.....Scott
Do you route across the fiber or is it layer 2? What type of switches and routers are you using?
The current plan is to implement routing, though all of the fiber terminates in our main data center. This will probably change in the future, as we will likely be adding fiber between 2 of our axillary buildings to implement a "ring". My co-worker usually does all the network design.
What is your strategy on this? I have several solutions that I am playing with, none of which are very elegant.
The plan was to have 1 asterisk instance running for the whole thing (redundant with HA) so BLF info would be available to everyone.
Can you expand on your HA criteria and initial design? If you have database, voice mail and configuration replication along with a fault tolerant network stategy I am very interested in what you are doing. I am currently trying to figure out how to get Rainlink VRRP to play nice with Asterisk.
I was planning to implement either a modified version of the solution presented at this link or use an Adtran or Audiocodes PRI to SIP gateway. The first option requires the asterisk server to process audio, so that may not be an option.
Have you thought of a distributed architecture with trix boxes at each location trunked back to a main server? Voice mail would run on the main server so you could retain the integration. This would also solve your dial plan issues.
This would kill the ability to monitor BLF from another site.
I would really like to use OpenSER to do what I need it to, as I'm pretty sure it can do it. However, the learning curve is pretty steep and the documentation I have seen thus far doesn't really explain anything. If you know of a good guide for me to start off with, then please send it to me.
PS No, we're not a school district, but we are non profit.
Regarding the HA link. That would untrix the box. I see what they are trying to do however it will be difficult to maintain and I have some other concerns. I need to read it again. Also the thread is in Spanish and my Spanish is half baked at best.
though all of the fiber terminates in our main data center
So your fiber terminates to a Layer 2 switch? Reason I am asking is to have you start thinking about VLAN and QoS planning.
This would kill the ability to monitor BLF from another site.
Actually SER could fix this also. Asterisk uses UDP as the transport for SIP. OpenSER can forward the packets as TCP. This would allow the SIP hints to be routed to the UA's across the network. As long as the phone has the correct default gateway it would be able to register with the server the the UA you wish to monitor is homed to for the BLF appearance.
However, the learning curve is pretty steep and the documentation I have seen thus far doesn't really explain anything
Other than my iterative idea on learning SER there is no soft way. You can always pay someone to set it up and then work off their configs.
Scott
Regarding the HA link. That would untrix the box.
I don't think it would. The way the redfone box works (I think) is it simply translates the PRI signal to TDMoE (TDM over ethernet). Any kind of high availability setup that is based on the linux HA software will require some setup, but after it is set up it pretty much takes care of itself. What I will probably end up doing is getting an audiocodes or adtran TDM to SIP device for my PRI's and sticking a cheap digium TDM card in each server for timing. If I have problems with audio, I will stick digium transcoder cards in. Also, I'm not married to trixbox, as they don't currently have a 64 bit edition. PBX in a Flash (from nerdvittles) has a 64 bit version in the making, and I can just as easily utilize the atrpms.net 64 bit packages and borrow the PBX in a flash web interface code. There are many ways to skin this cat :-)
So your fiber terminates to a Layer 2 switch? Reason I am asking is to have you start thinking about VLAN and QoS planning.
No, we have a layer 3 switch. We have enough site to site fiber and in-building cat6 for me to run VoIP on a completely separate network for most of the buildings. Our cabling specialist (yes, we have one of those full time) had the foresight to put in enough cabling everywhere so we wouldn't have to go back later and put more cabling in or strain the already existing infrastructure.
Actually SER could fix this also. Asterisk uses UDP as the transport for SIP. OpenSER can forward the packets as TCP. This would allow the SIP hints to be routed to the UA's across the network. As long as the phone has the correct default gateway it would be able to register with the server the the UA you wish to monitor is homed to for the BLF appearance.
Not entirely sure of what you are talking about here.
Most likely we will end up paying someone to hack together a config for OpenSER, or I will spend a week to learn it.
My goal is to at least get a 2 location system together that can eventually scale to the level we are needing before June 30th. Our current Nortel phone guy is going to have to move our current PBX from our building to a newly constructed building at that time and the IT dept. will be without telephone service for most likely a week. We are trying to implement a system before then and psuedo-integrate via PRI over fiber with the dinosaur Nortel option 11C to enable 4 digit dialing and incoming/outgoing calls.
I don't think it would. The way the redfone box works (I think) is it simply translates the PRI signal to TDMoE (TDM over ethernet).
I need to take a quick look at the product so I am not so ignorant. I assume here is a channel driver for Asterisk for the TDMoE?
No, we have a layer 3 switch.
Sounds like your network and your cabling are in great shape. I always ask these questions of folks when the ask about planing their install. I would say 2/3 of the problems we troubleshoot have nothing to do with Asterisk and can be traced to network issues or bad cable.
Please don't take it personally!
Not entirely sure of what you are talking about here.
I messed that all up. What I am trying to say is on the UA's you can register hints (the SIP method that allows BLW) to any destination that is reachable on your network. It's just another SIP URI hintext@hostname
I am looking forward to how your project progresses. Please keep us in the loop.
Regards....Scott
I need to take a quick look at the product so I am not so ignorant. I assume here is a channel driver for Asterisk for the TDMoE?
Asterisk has built in TDMoE support, but you need a zap card to provide timing. The way the redfone box works is when the primary HA cluster node goes down, the secondary one kicks in, running the config program for the redfone, reconfiguring it to work with the secondary node instead of the primary node. The estimated outage time for asterisk is anywhere from 5-15 seconds during the fail over.
Sounds like your network and your cabling are in great shape. I always ask these questions of folks when the ask about planing their install. I would say 2/3 of the problems we troubleshoot have nothing to do with Asterisk and can be traced to network issues or bad cable. Please don't take it personally!
No offense taken. Layer 2 and 3 will probably be less of an issue than most installs simply because we have enough fiber to run a completely separate voice network. as an example, the fiber trunk that goes between our 2 main buildings has, I believe, 192 strands. I think we are currently using 24.
I messed that all up. What I am trying to say is on the UA's you can register hints (the SIP method that allows BLW) to any destination that is reachable on your network. It's just another SIP URI hintext@hostname
That sounds like that is phone side configuration. Am I wrong?
That is correct, the phone simply subscribes to the hint on the server that the phone it is watching is registered to.
I'm going to have to shy away from that one. People move around a lot where I am, so if their phone moves with them and they register to a different SIP proxy based on their location, that BLF goes dead. Sorry, but I think I'll stick to asterisk for SIP hints.
What I'm trying for is to minimize the amount of administration (and possible things I can forget to configure) of day-to-day asterisk. I want the GUI (freePBX) to do all of my day to day moves/adds/changes (except for phone config, which I will probably write a separate GUI for as the trixbox one is pretty limited) that way everything is consistent. Typo's happen a lot :-)
I would like to get OpenSER to do as much work as possible. Skykingoh, can you list what your OpenSER box(es) do and, if possible, post a scrubbed config (IE remove sensitive info such as user/pass and IP info)
I will be calling Adtran support tomorrow to see if I can get any more info out of them on how to configure their transparent sip proxy. If it won't work, then I'll have to learn OpenSER.
Sorry, but I think I'll stick to asterisk for SIP hints.
I am not talking about peer to peer on the BLF. What I am trying to say is if you placed a server at each location you can subscribe BLF hints in the phone to the server at the location of the phone you want to monitor.
You are going down a different path than multiple servers so this discussions is actually moot at this point. You have a very clear understanding of what you want and I like your strategy.
would like to get OpenSER to do as much work as possible. Skykingoh, can you list what your OpenSER box(es) do and, if possible, post a scrubbed config (IE remove sensitive info such as user/pass and IP info)
I am doing something entirely different with SER. In fact at this point I am sending you an IM and we can discuss this via email.
Scott
You have a very clear understanding of what you want and I like your strategy.
Thanks. I have been working on designing this for about a month now. I have a 4x8 whiteboard on my wall that is almost full with just the basic layout. My goals this next week are to see if I can get the Adtran SIP proxy to work and getting all that information into Visio so I can move it around easier.
If I can't make the Adtran device work, then I will start crash coursing on OpenSER.
This is far closer to what you are trying to accomplish.
Keep in mind that I do not register UA's to SER. I only use SER to proxy multiple trix at customer premise.
So SER provides the following functionality in my network:
- Admission Control
- NAT traversal
- Future *** DID distribution
Once I hit over 100 boxes I will have to hire a consultant to integrate RADIUS or another authentication database with SER. Right now it is simple enough to manually add to the config.
This example shows how to proxy UA's
http://www.voip-info.org/wiki/view/Asterisk+at+large
If nothing else it should put you to sleep.
josh-
i have dozens of redfone HA clusters running. my experience is that the HA does in fact effectively untrix the box. first, the zaptel module that works with redfone is a specific version at the moment [either 1.2.19 - i think - and 1.4.5 work, appropriately patched by redfone] and of course the drbd kernel interface is version specific. the result is that once installed, it is really easy to screw up your system by running any of the package manager based updates. and of course, if you want to experience the kiss of death, just do "yum update -y"
i have found on these large scale installations that it is safer and at the end of the day, easier, to go with a bare metal asterisk install.
I have been weighing that option and either an Adtran or Audiocodes PRI to SIP gateway. I didn't realize that it required a certain kernel to work. The Adtran or Audiocodes devices are looking more enticing now.
I plan on building it from the ground up with CentOS x86_64 and AMP, borrowing bits and pieces from Trixbox and PBX in a flash. ATrpms.net has all the necessary asterisk RPMS for x86_64 along with spandsp and zaptel, though I will compile zaptel myself.
Thanks for the info eoo.
8. For the T1 connected sites, 7 and 10 digit dialing must exit on the local PSTN lines, and they must be able to receive incoming calls on those lines to their desk phones (or an IVR on the main PBX). This functionality does not need to be present in the event of a main PBX outage, though it is preferable.
For item #8 in the original post, would it be possible to use dundi, IAX, and a separate trixbox install to at least get everything but BLF monitoring going? My original concern with dundi was voicemail forwarding, but if it will work, then it seems like a better idea. Does anyone know how to make voicemail forwarding work with dundi?
The sites that are going to require #8 are small (5 to 12 employees per site) and currently have separate PBX systems so they are unable to do BLF to other locations anyway.
just to clarify my previous comment, the redfone HA solution [using both the heartbeat and drbd] works extremely well and is worth the effort for mission critical installations. it's just that trixbox is not the ideal vehicle to work with that solution. it is my understanding but i have no first hand experience, that the elastix package has redfone integrated into it and that redfone are working to get better integrated into trixbox.
eoo your insight has been helpful on the redfone bits.
My question now is, will dundi IAX trunks enable me to keep at least the ability to forward voicemails if FreePBX is used? If so, then I will probably implement separate asterisk installs at my smaller sites with dedicated POTS lines. If not, then I probably will set up dundi trunks anyway and they just won't have that ability.
at least the ability to forward voicemails
To forward voice mail you will need to run a central voice server. You don't even have to use Comedian mail. You can use any SIP compliant VM, We have had very good luck with Iperia.
I have been thinking very hard about the Redfone idea and I want to toss out an option.
Would you consider yourself a Cisco shop? If so you can do everything you want with 2811's and PRI interfaces. Just trunk them over SIP to the Asterisk servers via SIP. You can implement very complex failover scenarios in the Cisco dial plan. Especially if you have the Asterisk server register with the router so the connection is stateful. One of the other cool things is multiple Asterisk servers can pull from a common PRI for outbound calls. In the Cisco Dialplan you could forward DID's to the appropriate Asterisk box and if the box is not registered to the central voicemail server.
For POTS backup you could terminate the POTS lines into smaller 1700 class routers with FXO interfaces. The possibilities are endless.
Scott
Sorry, but we try to avoid cisco whenever possible. We stick with Adtran and HP for all of our networking stuff.
On a side note, I got the Adtran Total Access 908e to perform the proxy functions I want it to. (IE send all sip requests to the asterisk box EXCEPT for 911 calls which are diverted to the built on emergency FXO port, and if the connection to the asterisk box is lost, keep the sip phones alive and allow them to call any device that is connected to that same proxy and dial 911 on the emergency port.)
The device will not do what I want for #8 on the original list so most likely I will be putting separate asterisk installations at those locations. One of the downsides of the Adtran 908e, and perhaps why I will be looking at other options, is that in order for the SIP proxy to function, the device must function as a router. The problem I see with this is that if that device dies, the phones that connect to that device will be dead in the water, instead of being able to register with the main asterisk server (through the use of an alternate SIP registrar address configured in the phone, or DNS SRV records)
Does anyone know how to configure OpenSER to be a transparent proxy (meaning OpenSER doesn't permanently store any SIP registration information, it only stores it in it's real-time DB as a phone registers) and to divert emergency calls out of a separate SIP gateway? Also, does OpenSER have to be on a machine that functions as a router?
What you describe is more like a B2BUA
I have been meaning to play with this.
If you have a chance, give it a look
I like that it is written in python, as that is my favorite scripting language. As far as the actual software goes, it's not enough. In order to get what I needed out of that, I would have to set up a RADIUS server and tinker for days, possibly weeks getting it right.
If you guys know of a hardware device that will do what I need, without having to maintain a separate account store on each device (IE a transparent proxy) that enables me to send emergency dialing out a separate port or to a different SIP gateway, I'm all ears. The current crop of software looks like it's not what I need or requires a PhD in comp sci to master it.
For now, my current choice is the Adtran TotalAccess 908e unless a better device surfaces, as the tech support finally figured out why emergency dialing wasnt working.
Is there any Cisco device that might do this? I'm not completely opposed to Cisco as long as it isn't outrageously expensive and will get the job done.
We need to detail out the requirements however I think that a 28xx series will do what you want.
I need to completely understand the call flows. I will reread the posts tomorrow and make sure I have not missed anything.
As far as a commercial package, take a look at www.acmepacket.com
I think it will do everything you want and more.
Look at the Enterprise version of the net-net session border controller.
Scott


Member Since:
2007-01-20