Genesys Cloud - Main

 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.


  • 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

    Top 25 Contributor
    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

    Top 25 Contributor
    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
    ------------------------------



  • 18.  RE: Blocking prank calls

    GENESYS
    Posted 06-17-2022 05:00
      |   view attached

    I attached a PDF file that contains a procedure to create a call flow that blocks calls from specific numbers.
    I also plan to upload a sample call flow for developers who don't want to make the flow from scratch.



    ------------------------------
    Munehito 'Smiley' Suzuki
    Genesys - Employees
    Sr. Technical Support Engineer
    ------------------------------

    Attachment(s)



  • 19.  RE: Blocking prank calls

    GENESYS
    Posted 06-19-2022 21:28
      |   view attached

    As announced in my last post, I have uploaded a sample call flow file to block prank calls.
    Below is a description of what needs to be changed after importing the sample file.

    Please open the PDF file (Block+specific+inbound+numbers+in+Arcitect.pdf) uploaded in the previous post.
    Referring to step 12, enter the phone numbers including the country code you want to block.
    Note that the sample flow assumes a 12-digit phone number and two numbers are set.


    Referring to step 16, change the number of digits in the phone number.
    The PDF file assumes a 10-digit phone number and the sample flow assumes a 12-digit phone number, but if necessary, change the number of digits to match your location.



    Referring to step 18, set up the destination queue.



    BTW, I'm not a call flow specialist. So, please ask someone else about modification or sophistication of the sample flow.

    Regards.



    ------------------------------
    Munehito 'Smiley' Suzuki
    Genesys - Employees
    Sr. Technical Support Engineer
    ------------------------------

    Attachment(s)



  • 20.  RE: Blocking prank calls

    Posted 06-29-2022 08:25

    Our carrier sends an ANI that contains sip:number@ip-address. Here's a more generic expression to match E.164 formatted numbers that are stored in a data table. It returns the E.164 formatted number from Call.ANI or Anonymous, if unavailable:

    If(IsNotSetOrEmpty(Call.Ani),"Anonymous",
    If(ToPhoneNumber(Call.Ani).isSip,Replace(Left(Call.Ani,FindString(Call.Ani,"@")),"sip:",NOT_SET),
    If(ToPhoneNumber(Call.Ani).isTel,Replace(Call.Ani,"tel:",NOT_SET),"Anonymous")
    )
    )


    ------------------------------
    Sven Schiller
    Kognitiv
    ------------------------------



  • 21.  RE: Blocking prank calls

    Posted 03-17-2023 01:10

    Can you provide an expression to blcok the ANI for example +912345678967



    ------------------------------
    Manzoor Kolathingal
    ACI Payments, Inc
    ------------------------------



  • 22.  RE: Blocking prank calls

    Posted 03-20-2023 12:25

    Now, I don't have a need currently to block sip calls, however, I do have to block callers who've harassed our agents. I've created a super simple common module and data table (ANI,ExpirationDate,TicketNumber,Notes) and then placed the common module at the top of all of our inbound call flows so that all that has to be done is to add the blocked caller to the data table and can update it whenever I want.  I have yet to incorporate the expiration date, however it is there in the table for reference.  The intent is that people cancel phone lines and those eventually get reassigned to other people.  So we set a date 1 year into the future so that we remember to remove them around that time frame.  We document the reason for the block in a ticket and not the ticket number in the record in the table for future reference.  We also document leadership approval of the block in the ticket to cover our bases.

    I think it will be a simple enhancement to include what others have contributed to make this a much more robust solution.



    ------------------------------
    Ryan Cheesman
    Senior Manager, IT Integration Services
    Tandem Diabetes Care Inc. | positively different
    ------------------------------



Need Help finding something?

Check out the Genesys Knowledge Network - your all-in-one access point for Genesys resources