Oh dear... it's failing because as far as t_relay() is concerned, the packet has been delivered, and the transaction is complete, right? If that's the case, how can I also send the REGISTRATION packet to another destination? Can I use forward() with failure_route? Arrgh!.
> -----Original Message----- > From: Douglas Garstang > Sent: Tuesday, December 13, 2005 6:01 PM > To: '[email protected]' > Subject: failure_route.... I could cry... > > I am trying to have OpenSER forward registration requests to multiple > Asterisk boxes with failover. Each Asterisk box has two ip addresses. My > logic tries to relay to the first IP on the first Asterisk box > (192.168.10.100). If that fails, it tries to relay to the second IP on the > first Asterisk box (192.168.10.17). It then goes on and repeats the process > with another Asterisk box who's IP's are 192.168.10.10.101 and 192.168.10.8. > > Actually the first IP address on each Asterisk system is fake (100 and > 101)... that's how I am testing that it will fail to the second one. > > The openser.cfg below is causing this to be logged to messages: > Dec 13 17:50:08 bil-pdev-3 openser[22318]: route10: Asterisk-1, NIC-1 > Dec 13 17:50:08 bil-pdev-3 openser[22318]: route20: Asterisk-2, NIC-1 > Dec 13 17:50:08 bil-pdev-3 openser[22318]: ERROR: t_newtran: transaction > already in process 0xb6126560 < --- Why? > Dec 13 17:50:08 bil-pdev-3 openser[22318]: route20: t_relay returned error > <--- Why? > Dec 13 17:50:09 bil-pdev-3 openser[22328]: failure21: Failed to register with > Asterisk-2, NIC-1 > Dec 13 17:50:09 bil-pdev-3 openser[22328]: route22: Asterisk-2, NIC-2 > Dec 13 17:50:09 bil-pdev-3 openser[22328]: route22: End of routine > Dec 13 17:50:10 bil-pdev-3 openser[22322]: User local found > Dec 13 17:50:10 bil-pdev-3 openser[22320]: User local found > > Why am I getting the t_newtran and t_relay errors in there? What am I doing > wrong? I'm just calling rewritehostport(next-ip), followed by append_branch() > and t_relay. In fact something really weird happens. When I have the code > there for route[20], failure_route[21] and route[22], it causes the code for > the first three routing blocks, route[10], failure_route[11] and route[12] to > act differently. It seems to make route20 fail to connect eventhough it comes > AFTER it in the code. > > I'd really appreciate some help! Am I doing something wrong with > rewritehostport and append_branch, because quite frankly the docs are > terrible. > > > if ( method == REGISTER ) { > if ( !www_authorize("voip.com", "subscriber") ) { > www_challenge("voip.com", "0"); > }; > save("location"); > route(10); > route(20); > > # > # First Asterisk System. > # > > # Try first IP on this system (fake - will fail) > route[10] { > xlog ("L_INFO","route10: Asterisk-1, NIC-1"); > t_on_failure("11"); > rewritehostport("192.168.10.100:5060"); > append_branch(); > if ( !t_relay() ) { > xlog ("L_INFO","route10: t_relay returned error"); > } > } > > failure_route[11] { > xlog ("L_INFO","failure11: Failed to register with Asterisk-1, NIC-1"); > route(12); > } > > # Try second IP on this system (real - should work) > route[12] { > xlog ("L_INFO","route12: Asterisk-1, NIC-2"); > t_on_failure("13"); > rewritehostport("192.168.10.17:5060"); > append_branch(); > if ( !t_relay() ) { > xlog ("L_INFO","route12: t_relay returned error"); > } > xlog ("L_INFO","route12: End of routine"); > return; > } > > # > # Second Asterisk System > # > > # Try first IP on this system (fake - will fail) > route[20] { > xlog ("L_INFO","route20: Asterisk-2, NIC-1"); > t_on_failure("21"); > rewritehostport("192.168.10.101:5060"); > append_branch(); > if ( !t_relay() ) { > xlog ("L_INFO","route20: t_relay returned error");> > } > } > > failure_route[21] { > xlog ("L_INFO","failure21: Failed to register with Asterisk-2, NIC-1"); > route(22); > } > > # Try second IP on this system (real - should work) > route[22] { > xlog ("L_INFO","route22: Asterisk-2, NIC-2"); > t_on_failure("23"); > rewritehostport("192.168.10.8:5060"); > append_branch(); > if ( !t_relay() ) { > xlog ("L_INFO","route22: t_relay returned error"); > } > xlog ("L_INFO","route22: End of routine"); > return; > } > > Doug > > _______________________________________________ Users mailing list [email protected] http://openser.org/cgi-bin/mailman/listinfo/users
