play-project / play

The main repository, used for website and issues
2 stars 0 forks source link

ESR / FT mix of Recommendations #33

Closed johnverg closed 12 years ago

johnverg commented 12 years ago

Hi Antonio,

i realized that we have a new issue. It seems that when we create a 3missed calls complex event (i.e. click2call) then we are also receiving in our phones a toast recommendation message from you (... use twitter to contact your friend) and also we are receiving a call from the mobile that we were trying to contact.

The issue is that when we run our scenario we DON'T want these messages and automated calls from your side, because it will create a mess with the recommendations and notifications that will be produced by ESR.

Are you able to switch off and on your service easily? in order to switch it off when we will be presenting the ESR/SIAFU scenario?

WDYT?

antonioaversa commented 12 years ago

Hello Yiannis, Just to summarize:

If you just need to detect the CEPAT "3 MissedCalls in last x minutes" without trigger the Clic2Call API, I think the clearest way would be to use a different stream, like TaxiUCESRRecom, or alternatively ask @stuehmer to create a new stream with the same CEPAT.

Disabling the Clic2Call is doable for sure, but not easily and fast, as it is not dynamic: I need to comment the code doing the invocation, deploy again the Orange WS, create again new subscription through the Governance to stream of interest... Therefore we can't think to do this in realtime, during the presentation: we have to find another way...

johnverg commented 12 years ago

Hello Antonio,

i believe that the problem i described will still exist even if we use a different event topic than click2call. Imagine that we have Complex2 event topic... when 3 missed calls will happen then one click2call and one Complex2 events will be published by DCEP... so the automatic call and your recommendation will reach again my phone...

To make it more clear... as it is right now ESR will not have a problem once click2call is detected...it will work properly. the problem is that at the same time there will be automatic call from your service, recommendation about twitter from your service, recommendations from ESR and notifications from ESR... So, this will be confusing for the user... and especially for the reviewers... :)

So, since it is difficult to switch off this functionality... just for the review can we exclude some phones... e.g. my phone??? WDYT?

antonioaversa commented 12 years ago

Hello, that's true, but with a different stream we can have more strategies for this feature to be turned off:

Meanwhile I will try to study some quick and feasible solutions for the OrangeWS to dynamic adapt its behavior (it's like I need a small governance for my web service...).

In any case, for the review, for sure we can exclude your hardcoded phone number.

chamerling commented 12 years ago

Adding unsubscribe today:

All to be available as Web service and from the Play.gov.

antonioaversa commented 12 years ago

Having introduced the filtering at Orange WS, this bug can be closed. Hereafter the filters applied: The OrangeWS has been just deployed: hereafter the filtering I’m applying:

for Recommendations
           if (targetTopicContent.contains(STREAM_TAXI_UC_ESR_RECOM) &&
               (uctelco_callerPhoneNumber.matches(greekPhones) ||
                uctelco_calleePhoneNumber.matches(greekPhones))) {
               System.out.println("\tRecom from Orange to greek phones => skip\n");
               return;
           }
           if (targetTopicContent.contains(STREAM_TAXI_UC_ESR_RECOM_DCEP) &&
               (uctelco_callerPhoneNumber.matches(greekPhones) ||
                uctelco_calleePhoneNumber.matches(greekPhones))) {
               System.out.println("\tRecom from DCEP to greek phones => skip\n");
               return;
           }
           if (targetTopicContent.contains(STREAM_ESR_RECOM) &&
               (uctelco_callerPhoneNumber.matches(frenchPhones) ||
                uctelco_calleePhoneNumber.matches(frenchPhones))) {
               System.out.println("\tRecom from ESR to french phones => skip\n");
               return;
           }
for Clic2Call
           if (uctelco_callerPhoneNumber.matches(greekPhones)) {
               System.out.println("\tThe uctelco_callerPhoneNumber is greek => skip\n");
               return;
           }
           if (uctelco_calleePhoneNumber.matches(greekPhones)) {
               System.out.println("\tThe uctelco_calleePhoneNumber is greek => skip\n");
               return;
           }