I've asked this issue before and trying to do some search, but I am still not able to accomplish what I need in my opensips script.
So, on the "outbound" opensips where I send call to the carriers, the sip flow would be
1. INVITE (from opensips server)
2. 100 TRYING (from far end carrier)
3. 18x ringing (from far end carrier)
4. 200 OK
So I need to have a timer between #2 and #3 which both are provisional message after the INVITE.
My current tm.so setting are
modparam("tm", "fr_timer", 5)
modparam("tm", "fr_inv_timer", 120)
modparam("tm", "restart_fr_on_each_reply", 0)
modparam("tm", "onreply_avp_mode", 1)
I would think fr_inv_timer is not the timer for this case because it controls the time between INVITE and 200OK
So the timer I would want to adjust would be fr_timer which in my case currently set to 5 seconds.
But the issue is that carrier always give out 100 TRYING immedately which will "satisfy" the fr_timer. (and not try the next carrier).
I need the timer between 100 trying and 18x ringing.
Someone was saying we can adjust via the onreply_route, but exactly how?
If this is "doable", can some supply me a few line of code as to how to accomplish this?
The main thing I am trying to do is to shortening my PDD because some carrier takes forever to do their LCR. Thus, if carrier do not come back with 18x withing 5 seconds of (either INVITE or 100 TRYING) I will want opensip to send 5xx to Asterisk server so that asterisk server can send another INVITE to another carrier.