Hi can someone please explain me how LCR works. Specifically,

scenario:

prefix 1514 handled by gw_1 and gw_2
all other prefixes handled by gw_3


1) Call comes w/ RURI = 1514111111.
2) load_gws is called. In the database, prefix 1514 is supposed to be handled by gw_1 and gw_2; 
3) next_gw() is called. RURI is now 1541111111@gw_1  
4) call routed to gw_1; gw_1 rejects call
5) we go to failure route and call load_gws() again   -- [QUESTION: what happens here?? how does SER know that we need to replace URI w/ 151411111@gw_2 ]
6) next_gws() called.  I assume call will go to 1541111111@gw_2

7) gw_2 rejects call. We again  go to failure_route. Here again we do a load_gws().
[QUESTION: How does SER know that both gw_1 and gw_2 options have been utilized??

Does load_gws return an error here or does it load gw_3?

]


My problem is that in my case, gw_3 is being used after gw_1 and gw_2 have been used. As per my understanding this should NOT happen since prefix 151411111 is not handled by gw_3.


Any pointers appreciated.. Running ser 0.9.6