Genesys Cloud CX

 View Only
Discussion Thread View
Expand all | Collapse all

Blocking prank calls

  • 1.  Blocking prank calls

    Posted 04-16-2021 08:30
    Good morning to everyone,
    Is it possible to block incoming calls from a specific telephone number on PureCloud? (like a blacklist)
    This is because we have a customer that is receiving a lot of prank calls from a specific telephone number and he wants to block them.
    Thank you in advance.
    Best regards,

    Pietro Messina
    TechneValue GmbH
    pietro.messina@technevalue.com
    #PlatformAdministration
    #Routing(ACD/IVR)
    #SystemAdministration
    #Telephony

    ------------------------------
    Pietro Messina
    TechneValue GmbH
    pietro.messina@technevalue.com
    ------------------------------


  • 2.  RE: Blocking prank calls

    Posted 04-16-2021 12:45
    Pietro,

    If the DNIS is assigned to an architect flow yes.  You can set up decision to  disconnect the call based on the ANI in architect.  I have created a data table for our inbound flows that has a list of fax numbers that constantly call no fax numbers and other numbers that are blocked.  I perform a data table look up, then use a decision, and if the ANI is on the list, the call is disconnected.

    If this is a DID assigned to a phone or an employee, then it cannot be blocked.  There is an idea for this:  https://genesyscloud.ideas.aha.io/ideas/CLINB-I-238.


    ------------------------------
    Jason Tripp
    Independent Health Association, Inc.
    ------------------------------



  • 3.  RE: Blocking prank calls

    Posted 04-17-2021 11:35
    Hi,
    Yes you can block it and following method.

    1.Create a DB table  and add the ANI numbers to be blocked.

    2.In the IVR Check the ANI starting of the call by DB lookup and if matches ANI number disconnect it or if yes go for next step in the flow.

    ------------------------------
    Raghava PVDS
    Cognizant Technology Solutions India
    ------------------------------



  • 4.  RE: Blocking prank calls

    Posted 04-19-2021 08:23
    I am doing something similar to Raghava PVDS described and it is very effective.

    ------------------------------
    Nathan Smith
    ConvergeOne, Inc.
    ndsmith@convergeone.com
    ------------------------------



  • 5.  RE: Blocking prank calls

    Posted 04-21-2021 19:30
    Agreed. I also proactively pulled the top 25 SPAM callers from a monthly updated source (will have to go find the bookmark and post it here) and used them to block calls.  Due to a problem with "inappropriate callers" to a nurse's group, I set up a self service blocking request in ServiceNow that went to the Ops team to quickly block them in the middle of the night.  We made a lot of friends very quickly.

    ------------------------------
    Kevin Brown
    Cognizant Technology Solutions

    I've been working and playing with Genesys since 1995
    Arizona, USA
    ------------------------------



  • 6.  RE: Blocking prank calls

    Posted 01-19-2022 14:16
    Any examples of call flows that can be shared here?

    ------------------------------
    Brenda Wynne
    Alcon Vision LLC
    ------------------------------



  • 7.  RE: Blocking prank calls

    Posted 01-19-2022 14:32
    Hi Brenda
    Not sure if this is what you need, but here's the task in one of my call flows. Prior to using a data table, I was adding each number to be blocked to each call flow, which was a difficult to manage and time consuming. The data table works great. If the caller ANI is found on my data table ("DA Nuisance Numbers"), it disconnects; if not, it moves on to the next designated task in the flow.


    ------------------------------
    Emily Kammerer
    Ascendium Education Solutions, Inc.
    ------------------------------



  • 8.  RE: Blocking prank calls

    Posted 01-19-2022 14:39
    Thank you Emily!!!  This is perfect.  We are also blocking calls using Architect and agree a data table is much easier to maintain!!

    ------------------------------
    Brenda Wynne
    Alcon Vision LLC
    ------------------------------



  • 9.  RE: Blocking prank calls

    Posted 01-21-2022 11:07
    Hi Emily,

    Thanks for providing this flow example , this is super helpful , we have a similar request however was just wondering how to create the expression " left(right "

    Appreciate your feedback

    Regards

    ------------------------------
    Mohamed Hussein
    HelloFresh
    ------------------------------



  • 10.  RE: Blocking prank calls

    Posted 01-23-2022 15:47
    Hi Emily and others,

    I used a different method to clean up the ANI, this is more reliable as it also accounts for an anonymous or NOTSET/Empty Call.ANI, and can strips the Sip: or Tel: and/or the "+" if carriers are sending E.164 numbers, you can also then add or replace prefixes, for instance in Australia, Telstra sends 9 digits so your Left(Right code would break.

    All of the below first checks if Call.ANI is Empty or Not Set and if it is will put in Anonymous, I put in anonymous because if you have Empty or NotSet it can cause some other actions to fail.

    3.1.2 will convert +61 to 0 so that you can add 10 digit australian numbers into your data table for neusence callers numbers

    If you are working with Telstra and they are sending you 9 digits you can also use the below to convert to 10 digit

    If(Contains(Call.ani,"sip:+61"),
    Replace(Call.Ani,"sip:+61","0"),

    or

    If(Contains(Call.Ani,"sip:"),
    Replace(Call.Ani,"sip:","0"),


    3.1.1 Call.ANI - Remove SIP or TEL from only

    CLID Filter to check if Call.Ani is empty first then to remove "sip:" and "tel:"

    If(IsNotSetOrEmpty(Call.Ani),
    "Anonymous",
    If(Contains(Call.ani,"anonymous") or Contains(Call.Ani,"Anonymous"),
    "Anonymous",
    If(Contains(Call.Ani,"sip:"),
    Replace(Call.Ani,"sip:",""),
    If(Contains(Call.Ani,"tel:"),
    Replace(Call.Ani,"tel:",""),
    "Anonymous"
    ))))

    3.1.2 Call.ANI - Remove SIP or TEL and convert E.164 to 10 Digit Australian FNN

    CLID Filter to check if Call.Ani is empty first then to convert +61 into 0 for 10 digit Australian FNN, or just remove "sip:" or "tel:".

    If(IsNotSetOrEmpty(Call.Ani),
    "Anonymous",
    If(Contains(Call.ani,"anonymous") or Contains(Call.Ani,"Anonymous"),
    "Anonymous",
    If(Contains(Call.ani,"sip:+61"),
    Replace(Call.Ani,"sip:+61","0"),
    If(Contains(Call.Ani,"tel:+61"),
    Replace(Call.Ani,"tel:+61","0"),
    If(Contains(Call.Ani,"sip:"),
    Replace(Call.Ani,"sip:",""),
    If(Contains(Call.Ani,"tel:"),
    Replace(Call.Ani,"tel:",""),
    "Anonymous"
    ))))))

    3.1.3 Call.ANI – Remove SIP or TEL and Convert 10 Digit Australian FNN to E.164

    CLID Filter to check if Call.Ani is empty first then then convert 0 to +61 if we receive 07x / 04x / 03x etc, or just remove "sip:" and "tel:".

    If(IsNotSetOrEmpty(Call.Ani),
    "Anonymous",
    If(Contains(Call.ani,"anonymous") or Contains(Call.Ani,"Anonymous"),
    "Anonymous",
    If(Contains(Call.Ani,"sip:0"),
    Replace(Call.Ani,"sip:0","+61"),
    If(Contains(Call.Ani,"tel:0"),
    Replace(Call.Ani,"tel:0","+61"),
    If(Contains(Call.Ani,"sip:"),
    Replace(Call.Ani,"sip:",""),
    If(Contains(Call.Ani,"tel:"),
    Replace(Call.Ani,"tel:",""),
    "Anonymous"
    ))))))




    ------------------------------
    Nathan Kaden
    CALLSCAN AUSTRALIA PTY. LTD.
    ------------------------------



  • 11.  RE: Blocking prank calls

    Posted 01-24-2022 08:02
    Mohamed, to your question - "Phone Number" is the reference key on my data table, and from there it's a simple expression that looks for the 10 right-most characters in the phone number. Hopefully this answers the question
           


    Nathan - Thanks for sharing. We're in the US so I'm looking particularly at your case 3.1.1 for NOT_SET. In your case, in the absence of that coding in the flow, if the ANI is not_set or anonymous are you finding that it's returning a failure in the table look up? Or that it's simply returning a 'not found'?

    ------------------------------
    Emily Kammerer
    Ascendium Education Solutions, Inc.
    ------------------------------



  • 12.  RE: Blocking prank calls

    Posted 01-24-2022 10:56
    Thanks Emily for the clarifications

    ------------------------------
    Mohamed Hussein
    HelloFresh
    ------------------------------



  • 13.  RE: Blocking prank calls

    Posted 01-24-2022 18:20
    Hi Emily,

    I can't remember which action returned a failure, I think it may have been the DT lookup or it could have been something else, I think some evaluations also fail if it's not_set or empty, I would need to go digging.

    But having anonymous rather than NOT_SET is easier then to use evaluations later on, for instance you can use in a dicision action - flow.cleanCLID == "anonymous" - to take a different path and not bother with the DT lookup or any Data Actions

    I'm also big on Participent data and will add in either Call.ANI or flow.cleanCLID to a participent data such as "p_ref_CLID" for fault finding later

    ------------------------------
    Nathan Kaden
    CALLSCAN AUSTRALIA PTY. LTD.
    ------------------------------



  • 14.  RE: Blocking prank calls

    Posted 01-25-2022 09:32
    Thanks Nathan! I'm in the process of cleaning up my call flows, and have recently started doing a deeper dive into participant data as well, so this is really useful info on both accounts.

    ------------------------------
    Emily Kammerer
    Ascendium Education Solutions, Inc.
    ------------------------------



  • 15.  RE: Blocking prank calls

    Posted 01-26-2022 14:31
    Edited by Anton Vroon 01-26-2022 16:54
    Just a slightly different way to also get those values.
    You can check if its sip without all the contains formulas, and get the number without any left right or replace values,
    ToPhoneNumber(Call.Ani).isSip
    ToPhoneNumber(Call.Ani).e164
    ToPhoneNumber(Call.Ani).subscriberNumber
    etc
    https://help.mypurecloud.com/articles/about-the-phone-number-data-type/

    ------------------------------
    Anton Vroon
    ------------------------------



  • 16.  RE: Blocking prank calls

    Posted 01-26-2022 17:37

    Hi Anton,

    Thanks for the code, I didn't know about the .isSip, .e164, and .subscriberNumber

    I've just done some testing in an actual architect flow, using the .isSip or .isTel converts the expression "ToPhoneNumber(Call.Ani).isSip" to a type of Boolean, and is not usable in an If() statement.

    I tried using the below in the expression I get error "If at position x: there is no implementation that accepts a paremeter of type Boolean".

    If(IsNotSetOrEmpty(Call.Ani),
    "Anonymous",
    If(ToPhoneNumber(Call.Ani).isSip),
    Replace(Call.Ani,"sip:+61:","0"),
    If(ToPhoneNumber(Call.Ani).isTel),
    Replace(Call.Ani,"tel:+61:","0"),
    "Anonymous"
    )))

    Whereas if I use the below which is using the Contains method it works becuase I'm not trying to use a boolean.

    If(IsNotSetOrEmpty(Call.Ani),
    "Anonymous",
    If(Contains(Call.ani,"sip:"),
    Replace(Call.Ani,"sip:+61:","0"),
    If(Contains(Call.ani,"tel:"),
    Replace(Call.Ani,"tel:+61:","0"),
    "Anonymous"
    )))

    So if you wanted to use ToPhoneNumber(Call.Ani).isSip then you would have to first use a Decision action which then goes to an Update Data action in each path with the Replace stuff in it, which is then cumbersome, but the ToPhoneNumber(Call.Ani).isSip will be useful in other areas.

    If you want to contain the conversion/cleanup "replace" code in a single Update Data > String Variable action then the Contains() function in the If() is the way to go.

    Thanks,
    Nathan



    ------------------------------
    Nathan Kaden
    CALLSCAN AUSTRALIA PTY. LTD.
    ------------------------------



  • 17.  RE: Blocking prank calls

    Posted 01-26-2022 17:52
    Edited by Anton Vroon 01-26-2022 17:53
    You had a couple of misplaced parenthesis
    Try this


    Just as a note If statements always allow Boolean as the first parameter.
    the format is If(Boolean,True,False), so doesn't matter if you use a boolean variable or an expression that results in a boolean

    ------------------------------
    Anton Vroon
    ------------------------------