On 12/12/06, JR Richardson <[EMAIL PROTECTED]> wrote:
> 1.) When a registration server fails there doesn't seem to be an easy > way to have clients automatically register to a new server. (our > clients are mostly other asterisk boxes.) To solve this we are > considering using DNS failover.When registering with an Asterisk server to an Asterisk cluster of servers, for the purpose of traversing a NAT or something else (to solve a problem where direct contact cannot be performed), I would suggest doing multiple registration to two registration servers, using different names. Like registration [name1] to registration server 1 registration [name2] to registration server 2 in the outgoing dilaplan exten => _NXXNXXXXXX,1,Dial(IAX2/server1......|j) exten => _NXXNXXXXXX,102,Dial(IAX2/server2...... so if server one is not there the call will jump to the next server or exten => _NXXNXXXXXX,1,Dial(IAX2/server1&IAX2/server2............. first server to answer will get the call. you can do something similar calling from the cluster to the end Asterisk server dundi lookup for [name1] if not available lookup [name2] > > 2.) If you plan to do any direct routing using the fullcontact > address like what is shown in JR's whitepaper, you may find that > fullcontact sometimes contains private network addresses. This makes > it impossible to route inbound calls directly to the client. > I recently started pulling the ipaddress and port from the database instead of using the fullcontact field. Aaron Daniels helped me to get the realtime query working instead of using the mysql connect statements. [lookupmysql] include => invalid exten => _X.,1,RealTime(sippeers|name|${EXTEN}|DN_) exten => _X.,2,GotoIf($["${DN_ipaddr}" = ""]?${EXTEN},105:${EXTEN},3) exten => _X.,3,Set([EMAIL PROTECTED]:${DN_port}) exten => _X.,4,Dial(SIP/${directdial},15,rj) exten => _X.,5,Macro(sendtovm,${EXTEN}) exten => _X.,6,Hangup exten => _X.,105,Macro(sendtovm,${EXTEN}) exten => _X.,106,Hangup The RealTime command pulls all the entire record from the database and prepends all the fields with the last argument (here is have DN_) so when the record is pulled, all the records info is available as a variable like DN_port and DN_ipaddr. This is a really cool command. Hope this helps.
Wow, thanks for the examples JR. This is exactly what I needed. I was not aware of the RealTime command. That will be very useful. David _______________________________________________ --Bandwidth and Colocation provided by Easynews.com -- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
