-
Notifications
You must be signed in to change notification settings - Fork 100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dialog Timeout configuration is not working #69
Comments
Here is it @FerUy |
Thanks @nhanth87. Good to know it's a known issue and actually I doubted initially to raise it here and not in jss7. Having said that, and as this issue is affecting a live implementation of USSD Gw, I'd rather keep it here too. Moreover, the product (USSD Gateway) is delivered to customers with this in place, so it must be fixed. |
@FerUy your volunteer is appreciated 👍 |
|
Hi @vetss As for our conversation, I here post the results and conclusions of agreed tests:
Conclusion:
Please find a Wireshark trace of the aforementioned test attached here. |
As for now we have two timers at USSD GW:
We can introduce USSD GW level new timeout timer(s) that will have functionality like option 1) but cover all timeout cases: PS: for timer a) we can try to reuse of a TCAP dialog timeout timer because it has a possiblity of canceling on timeout process by:
|
Hi @vetss , I believe you meant this for timer b)
In other words, if If this is the case and/or I understood it right, I agree with your entire proposal. |
@FerUy yes it will terminate TCAP dialog (and also SIP / HTTP parts) |
Great... then we agree 100% @vetss :) |
Sergey, Instead of introducing new timer shall we have a new flag/parameter in USSD Gw that if set to true, USSD Gw will send TCAP ABORT to peer when TCAP Dialog timesout? By introducing more timers we are increasing the unnecessary complexities. |
Hello @abhayani The functionality This demands of introducing of another behaviour of TCAP dialog timeout when stack sends TC-ABORT to a peer is a dialog timed out. Now we just kill a dialog without announsing to a peer. I checked TCAP spec and have not found clear recommendations - should we send such TC-ABORT to a peer or not. The spec describes only INVOKE timer... |
Hi Sergey, Thanks for details. Yes I think specs is not clear about this. But the testing done at one of our LATAM customer shows that on peer sid eDialog still remains open. I agree this requires TCAP stack level changes and by default we can have this flag IMHO it makes sense to clean resources on peer side too if possible. |
Amit, Also in TCAP level we can send only TC-ABORT. From USSD GW level we can send TC-END with a USSD message to a subscriber with description why the USSD session is terminated. |
@vetss @abhayani @nhanth87 , as told in Slack, TC END in the USSD situation we are talking about makes no sense to me... imagine a user taking too much time to answer to a menu in his handset display (for whatever reason), then we send a TC END with a USSD message like "Application timeout" or whatever, well, he will never get that message and worse, we are violating the USSD session rules -we will receive a TC P-ABORT from the network immediately, being the user oblivious to all of this-, once he does something the dialog is destroyed and nothing else than an MMI message will appear (which is the same as if we send a TC U-ABORT)... in other words, with a TC END we are introducing more signalling and no value added to the user As for ITU-T Q.773 (TCAP): Abort::= SEQUENCE { as for 3GPP TS 29.002 (MAP): Table 7.3/6: Service-primitives for the MAP-U-ABORT service User reason:
Diagnostic information: Table 7.3/7: User reason and diagnostic information
In conclusion, I'd rather go for a TCAP-U-ABORT with User reason application procedure cancellation |
@FerUy Why will he never receive this message? I have tested in live network sending couple of USSD messages back-to-back and they do appear on Phone. The 1st one hides 2nd one. As soon as 1st one is removed (by user action pressing OK or CANCEL), the second appears. "TCAP-U-ABORT with User reason application procedure cancellation" does makes sense technically. But it will not make any sense to end-user. |
@abhayani because most of the time the user will react after the TCAP dialog has been eliminated from the network due to timeout, especially for services like balance inquire, where easily the user takes more than 30 seconds to read/understand the information sent. So, I strongly believe that statistically we will end up sending rubbish to the network. IMO, if we want to send a notification to the user about a transaction (and I also have seen it/experienced it, especially with mobile financial services) I will always send an SMS. Of course, that's not feasible today with our USSD Gw, but it would be soon (e.g. through SMPP), and it's only my opinion on the subject. |
Hi @vetss et. al. As told in other channels of communication, attaching here Wireshark trace with a test having setup the following parameters to 30 seconds at
As can be noticed in the trace, TCAP abort is sent to the SS7 network simultaneously (actually before) with the SIP BYE to Restcomm-Connect after exactly 30 seconds, which is what we were looking for, and with the proper type of Abort and user reason as discussed previously in this thread. This doesn't solve the original reason this issue was brought up, but it does with the aforementioned workaround by setting the Great job @vetss ! USSD-Restcomm_dialogTimeoutTest_patch541forIssue69_params30sec.pcap.pcapng.zip |
Hello, it looks like a first fix for TCAP dialog Now we have
What we still need: d) update manual for clear explanation for what timer is responsible for what |
Hi @vetss As told via chat, I tested the patch by a service between USSD Gw and Restcomm-Connect (RVD). The RVD project is very simple, you can deduce it from the following diagram: The test consisted in going to module Only thing that disturbs me at this point is the fact that no further SIP communication is exchanged between USSD Gw and Restcomm after that, like it happens if Shouldn't then a restcommUSSDgw7.1.61_dialogtimeout15_vs_dialogidletimeout30_test.pcap.pcapng.zip |
Hello @FerUy thanks for your testing that allowed me to prepare a furter patch. I added sending of SIP BYE for both PULL and PUSH and fixed some little bugs. I will prepare new binanaries. @FerUy please retest them. Remember that we have 4 cases generally PULL / PUSH and SS7 side timeout / RC (SIP) side timeout. Better to test all cases. I tested it for HTTP case. I have one doubtes for a following case: This is because of TCAP spec that sais : It is not a big update of SS7 stack to send TC-USER-ABORT to a peer in "Initiation Sent" state, not clear what behavier is correct. |
Hi @vetss ... thanks, I will test it and revert asap. Regarding your last question, I have no experience in such scenario, surely because sending a TC-U-ABORT during the |
I was describing the case PUSH - |
@vetss sorry for the confusion and thanks for the clarification. Let's stick to the spec, it will eventually send its timeout Abort when it's due. From our side, we are good just terminating TCAP and HTTP/SIP dialogues in USSD Gw. |
Hi @vetss Just attaching here the trace of the test commented on Slack... restcommUSSDgw7.1.62_dialogtimeout15_vs_dialogidletimeout30_test.pcap.pcapng.zip |
Hi @vetss, please see my last two comments in RestComm/Restcomm-Connect#2411 |
Apart from the race condition commented, which only happens if some especial configuration is provided on RC side, this issue is solved. Will create another one for that, just for perfection sake ;) |
After experiencing a real life situation with a customer, where USSD Gw Dialog Timeout is set to 15000 (15 secs), but not seeing it effective with tests and traces, a simulation was conducted with identical results. USSD Gw Dialog Timeout was set to 15 secs in the GUI, which is reflected in the correspondent
UssdManagement_ussdproperties.xml
configuration file (attached).Then, the following test was conducted with both Restcomm Connect and USSD Gw running (the latter in simulator mode):
This behaviour is identical as seen on live system onsite with a customer. Attached are the extracts of server logs for the commented simulation test of both USSD Gw and Restcomm-Connect, as well as the correspondent Wireshark trace.
This fix is critical, as apart than the malfunction itself (TCAP dialog configuration is useless, seems to be hardcoded), it impacts performance with high traffic USSD sessions that need to be terminated quickly.
USSD-Restcomm_dialogTimeoutTest.pcap.pcapng.zip
USSDgw_server.log.zip
Restcomm_server.log.zip
UssdManagement_ussdproperties.xml.zip
The text was updated successfully, but these errors were encountered: