Hi Everyone,
I am trying to implement Serial Forking (Find Me Follow Me) where an IVR message
is played out before call forwarding (t-relaying of calls) is initiated.
My implementation is as follows:
“The party you are trying to reach is not answering. You will be forwarded to their secondary numbers. please wait.”
The problem I am having is that at step 4, after the message is played out by the asterisk IVR
successfully, a BYE message is sent by asterisk IVR to SER. In SER, I catch the BYE SIP
message and then try to execute a “t_relay” to forward the call to the callee’s first FindMeFollowMe
number. But, t_relay generates this error:
12(20843) ERROR: t_newtran: transaction already in process 0xb5468b38^M
12(20843) route[2]: t_relay failed^M
12(20843) route[2]: sl_reply_error executed^M
12(20843) ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (1/SL)^M
3.3.6. I receive "ERROR: t_newtran: transaction already in process" in my logs.
That looks like an erroneous use of tm module in script. tm can handle only one transaction per request. If you attempt to instantiate a transaction multiple times, ser will complain. Anytime any of t_newtran, t_relay or t_relay_to_udp actions is encountered, tm attempts to instantiate a transaction. Doing so twice fails. Make sure that any of this commands is called only once during script execution.
And my understanding was that because the first call that I had forwarded to the Asterisk IVR at step 3 had not been terminated,
and therefore its associated transaction still existed, SER did not allow the creation of a new transaction through the invocation of
t_relay. And Asterisk continuously retransmitted the BYE message to SER.
My question is : How can terminate the connection that was set up to Asterisk IVR at step 3 successfully before
Initiating the first call forward at step 4? I tried sending SIP 200 (OK) responses from SER back to Asterisk IVR,
in response to the BYE requests SER receives from it, to force Asterisk IVR to terminate the connection but it
doesn’t seem to work?! I sent these responses back using sl_send_reply and t_reply. I tried t_release() instead
of sending 200 (OK) SIP response back to Asterisk but that didn’t terminate the call either!
Can anyone suggest any solutions?
Thanks
Ramin
rnikaeen@goldline.net