Rejecting a call before answering the line.

AdemMeral

Customer
Joined
Jul 22, 2010
Messages
5
Reaction score
1
Hi I want to use 3CX to achieve something called "Çaldır Kapat" (Ring and Hang up)in Turkey , . Here is how it works. A customer calls the order number but if the DID is known to be a customer the system takes a new order based on his/her previous order, without any phone charges occuring for the customer. It would be very good if I can also get the number of rings so that in case of the customer ringing more than lets say 3 I connect the call to someone.
Is it possible in 3CX?
In short I want to run a script or something similar before the line is connected.
Thanks, Regards.
 
Is it possible in 3CX?
yes, but:
A regular CFD app always answers a call immediately.

The only way to start a program on a 3CX without the call being answered is currently by using a C# call script that is triggered on every incoming call from a SIP trunk (Admin / Integrations / Call Scripts / <yourcallscript> / Tab 'General' / 'Run this script' = 'Upon receiving a call on a trunk').
Only such a program at exactly this point does not answer the call. The caller hears the ring tone from his provider and in principle no costs are incurred from an active call.
minimal example:
C#:
#nullable disable
using CallFlow;
using System.Threading.Tasks;

namespace dummy
{
    public class dummy_empty_cs : ScriptBase<dummy_empty_cs>
    {
        public override async Task<bool> StartAsync()
        {
            Task.Delay(20000).Wait();
            return true; // return true means: call ends here; return false means: call will further processed by 3CX
        }
    }
}
This program simply waits for 20 seconds and then terminates. The call is also terminated afterward, see comment.
It is up to you what the program should do and whether the call should continue to be processed by the 3CX (return false).
 
Last edited:
A customer calls the order number but if the DID is known to be a customer the system takes a new order
On what basis can it be determined whether the calling number is such a customer or not? Based on CID, contacts in the phone book, or something else? Such a call script can access the CID and contacts and process data and trigger actions accordingly.
 
My assumption is that this is a dedicated DID for "quick sales" and not the main company phone number. I wonder whether it is the receiving phone system that is responsible for rejecting the call, or if it is the person calling that waits for X rings and then hangs up? I also wonder if we need to verify the caller is setup for "quick sales" at the time the call is received, or if we can just log the fact that the call came in, and let some other application process the log. I do not like the idea of needing to lookup the caller's phone number at the time the call comes in simply because of the potential delay, or dependency on, the back end CRM. Better to log the call and process later. But, my opinion is based on a dedicated "quick sales" DID. If the call is coming in on the company main number, I would suggest purchasing a dedicated DID.
 
My assumption is that this is a dedicated DID for "quick sales" and not the main company phone number.
ack

I wonder whether it is the receiving phone system that is responsible for rejecting the call, or if it is the person calling that waits for X rings and then hangs up?
both possible with the trunk call script
 
VoipTools, no call will be rejected. If the customer wants to speak the call will be answered. This system is implemented and moderestly used by our dealers to sell bottled water , Some customers like it very much some do not. It is a very quick way to place an order and also allow customer to place an order outside the working hours of the dealer. I dont believe it has anything to do with cost.
I am the IT manager of a bottled water company. We have more than 400 dealers and those have dedicated numbers to take orders. Some dedicate a line for this, some dont. It is easy for them. But for me it is a bit more complicated because my number will be used all over Turkey. I built a call center to serve customers and our agents can take orders for the customer. But we have to push the order to the dealer and this dont work smoothly. So I built some apps for the dealers. Windows app for the backoffice and mobile apps for the actual delivery guys. Dealer backofiice will collect the orders (via cid, manual) and put the order in a database in our system. Hence no manual order pushing will be needed.
This has many advantages for the dealers too. They are forced to employ people to just answer the calls and pay rent etc. With this system some, not all will be able to cut costs. Customers will be able to place orders outside working hours and will , can be served by another delaer in those hours.
Since we will try to convince our dealers to use this system, we have to replicate their current system. Hence the "call and hangup" should be in the menu. In Turkey you can convert regular numbers to digital ones and if the dealer wants we can host his number too. All good for the officeless dealer.

Thanks all of you for the answers. I will try the scripting way and return with the results. I hope it works because otherwise I will have to develop a sip client which is not a simple task.
 
  • Like
Reactions: fxbastler
@fxbastler can offer suggestions for using a trunk-level C# script. I can offer a service-level solution that monitors inbound calls and performs actions. He is much better at scripts than I am and can explain what is possible through scripts. I can offer what is possible with our approach that uses our VoIPTools events API. If you can get what you need through a script, that is going to be simpler than having us create a custom service for you.

We can watch all inbound calls at the trunk or DID level, wait for X seconds, and divert the call to a CFD application that performs the following tasks:
  1. Drop the call
  2. Look up the phone number of the caller in your CRM
  3. Decide wither to automatically create an order
  4. Create an order (via your CRM API)
But is this really the way to handle this customer interaction? The only thing that makes any sense to me is that the caller is wanting to save money on the phone call? Is that really the goal? If so, then the above solution will work. But I think you should be asking yourself whether reproducing an antiquated/imperfect solution is the goal, or offering your customers a significant improvement would generate more business/conversions.

If the caller's phone call cost is not the issue, but this is just the way it has always been done, then I suggest an significantly different approach. For example, my assumption is that during office hours someone will answer the phone and take the order. If the call comes outside of office hours, then route the call to an IVR that prompts the caller "To place an order, press 1". When they press 1, send the call to a CFD application. Have the CFD perform the following steps:
  1. Get the caller's phone number
  2. Lookup the phone number in the CRM
  3. Determine whether they are allowed to place an auto-order
  4. If allowed:
    1. Create the order in CRM
    2. Play a prompt "your order has been received"
    3. Send email to administrator that a new order was created
  5. If NOT allowed (customer does not exist or is on credit hold)
    1. If on credit hold or other disqualifying conditions
      1. Play a prompt: "I'm sorry, we are unable to create an auto-order for you at this time, please call during office hours"
      2. Send email to administrator that new order was rejected and why
    2. If caller not found
      1. Request necessary details
      2. Create the contact in the CRM
      3. Place the order
      4. Thank them for their order
      5. Send email to administrator that new customer was created and order placed
  6. Disconnect the call
If you want to go down the bleeding-edge, you could use an AI voice receptionist to complete the entire process, but that is much different than what you originally requested.
 
  • Like
Reactions: fxbastler
But is this really the way to handle this customer interaction? The only thing that makes any sense to me is that the caller is wanting to save money on the phone call? Is that really the goal?
...
If the caller's phone call cost is not the issue ..
full ack

both solutions - call script to maintain the existing solution / needs or sevice-level solution on higher abstraction level - are possible, even parallel for some time to migrate

If you want to go down the bleeding-edge, you could use an AI voice receptionist to complete the entire process, but that is much different than what you originally requested.
next month ... xD
 
Thank you VOIP Tools, I was as sceptical as you sound at first but then I understood the situation and than It made sense. Assume the customer realize he/she is out of water at 8 pm. This is a very likely situation for working people. He/she calls but there is no answer because the dealer is closed, unable to place the order. This system allow the order to be placed outside the working hours and forget about it. This does make sense since the orders are always the same. One or two bottles , every week or so. So repetitive orders.
You are right that it is not an elegant solution but many of our dealers are small businesses and they wouldnt put the required capital for an ivr system. But since we ( the factory) already have it I doesnt make sense to implement it that way.
I will rethink about it. Thank you.
 

Forum statistics

Threads
112,276
Messages
591,638
Members
165,393
Latest member
Carlos - EC Mates