Douglas Garstang
2005-Dec-11 23:32 UTC
[Asterisk-Users] Mechanisms for Implementing a Common ContactDatabase
I have an idea!!! Someone tell me how this sounds please. We will know the IP addresses of all our phones, and the users/extensions on those phones because we will be the ones provisioning them. We therefore write a script that reads from some source (file/database etc) and somehow (means yet to be determined, probably write to astdb) "PRIME" Asterisk on startup. Ie when asterisk starts up, it's astdb file will contain the location info for every single phone. This sort of info won't change a lot and if it does, it's easy to edit the entries in astdb. Any opinions? -----Original Message----- From: Douglas Garstang Sent: Sun 12/11/2005 10:53 PM To: Asterisk Users Mailing List - Non-Commercial Discussion; Asterisk Users Mailing List - Non-Commercial Discussion Cc: Subject: [Asterisk-Users] Mechanisms for Implementing a Common ContactDatabase Well, I feel like I'm flogging a dead horse here, but I figured I'd at least do my bit and throw some ideas out there about how to implement a common contact database now that it's been confirmed that Realtime can't do this. 1. A script that runs on one or more boxes in the Asterisk farm and at (very) regular intervals replicates the differences in the /var/lib/asterisk/astdb file, such that each Asterisk box always knows wheve every phone is and can therefore terminate calls to all phones. Wouldn't be too hard to write. Major con is that Asterisk has to be reloaded to see the new astdb file and I don't think I'd want to be performing reloads on a production system every say, 10s or so. 2. It'd be cool if the regcontext command actually did something. There's a myth out there that it does something like execute a command upon registration. Even the O'Reilly "The Future of Telephony" seems to think this. After reading some posts in the developer discussion I can say it doesn't. It would be great though, if upon registration from a phone, Asterisk could perform some action, say for example copying the registration to another Asterisk system. 3. Phones register to OpenSER. Openser upon a REGISTER forwards the packets to N number of Asterisk boxes who then get a registration for the user. I've tested this and it works. Each Asterisk system then knows where every phone is and can terminate calls to any phone. However, I'm no SER expert (is anyone) and when the phones start sending SUBSCRIBE and receiving NOTIFY messages, with SER in the middle, it all gets very ugly. 4. Could all Asterisk systems be given access to a common file store? NFS or a SAN maybe? Does anyone know what what happen if multiple Asterisk boxes tried to use/write to the same astdb file? Anyone? Anyone? 5. DUNDi? Couldn't get it to work. Spent weeks on it and then realised that all the examples have RSA keys in what I thought was sip.conf. The sip.conf file doesn't support RSA keys. I really hopes someone takes the time to reply to this message. Surely I'm not the only person in the universe who's trying to implement a HA Asterisk system. I would think it would be for the good of all to come up with some sort of a solution. It amazes me that when I search for Asterisk redundancy on google, I keep coming up with my own posts! I feel like I have been beating my head against a wall. Every time I think I'm close to coming up with some sort of hack or solution, some other limitation gets in the way and stops it dead in it's tracks.
Kevin P. Fleming
2005-Dec-12 07:45 UTC
[Asterisk-Users] Mechanisms for Implementing a Common ContactDatabase
Douglas Garstang wrote:> Someone tell me how this sounds please. We will know the IP addresses of all our phones, and the users/extensions on those phones because we will be the ones provisioning them. We therefore write a script that reads from some source (file/database etc) and somehow (means yet to be determined, probably write to astdb) "PRIME" Asterisk on startup. Ie when asterisk starts up, it's astdb file will contain the location info for every single phone. This sort of info won't change a lot and if it does, it's easy to edit the entries in astdb. Any opinions?If all of that is true, what do you need Realtime for? Just write out configuration files with the information and do a 'reload chan_sip.so'.
Douglas Garstang
2005-Dec-12 09:38 UTC
[Asterisk-Users] Mechanisms for Implementing a Common ContactDatabase
Douglas Garstang wrote:> Someone tell me how this sounds please. We will know the IP addresses of all our phones, and the users/extensions on those phones because we will be the ones provisioning them. We therefore write a script that reads from some source (file/database etc) and somehow (means yet to be determined, probably write to astdb) "PRIME" Asterisk on startup. Ie when asterisk starts up, it's astdb file will contain the location info for every single phone. This sort of info won't change a lot and if it does, it's easy to edit the entries in astdb. Any opinions?If all of that is true, what do you need Realtime for? Just write out configuration files with the information and do a 'reload chan_sip.so'. Just for you I put my reply at the bottom. Can't help you with '>' marks though. Some of us are using Exchange which doesn't put them against previous text. A database solution would be far cleaner, that's why. After all, that's the WHOLE POINT of a database. I still can't even fathom why this doesn't work. Asterisk is just doing a SELECT statement to find the location of the other user. Why on god's green earth doesn't that work?