Call to multiple extensions

Discussion in 'Call Flow Designer' started by tvdir, Aug 29, 2017.

Thread Status:
Not open for further replies.
  1. tvdir

    Joined:
    Feb 17, 2017
    Messages:
    55
    Likes Received:
    15
    Hi all

    I'm trying to develop a voice app which looks up the primary contacts (internal extensions) of a VIP customer in an external database. Each VIP customer might have up to 5 internal contacts.
    The goal is that the voice app transfers the VIP caller to a dynamic ring group of those contacts.

    I have written a C# program which returns an array of extensions, but I have no idea how I to route the call to these extensions simultaneously.

    Any ideas?
     
  2. edossantos

    edossantos Support Team
    Staff Member 3CX Support

    Joined:
    Jun 27, 2007
    Messages:
    1,073
    Likes Received:
    75
    Hi @tvdir,

    You can create a Ring Group on the fly, using the 3CX Call Control API, and then transfer the call to that ring group. The problem is that you need to perform some clean up later, otherwise your PBX will have lots of unused ring groups....

    Kind regards.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. tvdir

    Joined:
    Feb 17, 2017
    Messages:
    55
    Likes Received:
    15
    I don't see any RingGroup.Add method, only a RingGroup.Delete.
    Would it be possible to create the ring group in the mgmt console, and use the API to update the members using RingGroup.Memebers just before the transfer?
     
  4. edossantos

    edossantos Support Team
    Staff Member 3CX Support

    Joined:
    Jun 27, 2007
    Messages:
    1,073
    Likes Received:
    75
    Hi @tvdir,

    The way to create a RingGroup is using "Tenant.CreateRingGroup(String)". And you can get the tenant object using "PhoneSystem.Root.GetTenant()".

    Also, if you prefer, you can have the ring group created from the console and update its members. That way you avoid the clean up, as you always have a single ring group. But please note that using this approach you will only be able to process one call at a time, no simultaneous calls, not sure if that is a problem for your scenario...

    Kind regards.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. SECOIT GmbH

    Joined:
    Apr 3, 2017
    Messages:
    63
    Likes Received:
    18
    On a test I have done where I needed to change ring groups on the fly I thought that the maximum amount of ring groups used at the same time is the amount of external "phone lines".
    So for a test where I have 4 simultaneous external calls created 4 ring groups (or in mycase it was queues in fact) from the GUI and called them CFD1, CFD2. CFD3 and CFD4.
    From the CFD scripts I just modify then the members onthe fly.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
    tvdir likes this.
  6. tvdir

    Joined:
    Feb 17, 2017
    Messages:
    55
    Likes Received:
    15
    Hmm, i don't understand why we would only be able to process one call at a time...

    Call comes in to the queue, CFD app is launched, which adds some members to a ring group and the call is forwarded to that ring group.
    While these phones are ringing, a new call comes in, CFD app launches again, some other members are added to the ring group, maybe some others removed, and the call is forwarded to the ring group containing other members. Will the first call continue to ring on the original members, or will it suddenly start ringing on the "new" members? Or what will happen exactly?

    Anyway, if the first call is already answered by one of the members, there won't be any issue I guess.

    Or am I missing something?
     
  7. edossantos

    edossantos Support Team
    Staff Member 3CX Support

    Joined:
    Jun 27, 2007
    Messages:
    1,073
    Likes Received:
    75
    Hi @tvdir,

    You are considering the case of consecutive calls, but not SIMULTANEOUS calls. This is the case you need to consider:
    - A first call comes to the CFD app.
    - A second call arrives almost at the same time.
    - The app processing the first call decides it needs to add members 100, 101 and 102. It adds the members.
    - The app processing the second call decides it needs to add members 103, 104 and 105. It adds the members.
    - Then the app processing the first call transfers to the ring group. It will be tansfering the call to the numbers of the second call....

    If that case is not a problem for you, then go ahead... Otherwise you need a mechanism to mitigate this case.

    Kind regards.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  8. tvdir

    Joined:
    Feb 17, 2017
    Messages:
    55
    Likes Received:
    15
    So this wil only happen if a second call comes in during the timeframe between adding the members and transferring the call, which I guess will only take a couple of miliseconds?
     
  9. edossantos

    edossantos Support Team
    Staff Member 3CX Support

    Joined:
    Jun 27, 2007
    Messages:
    1,073
    Likes Received:
    75
    Yes, but if you have volume, for sure this will eventually happen at some point!
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
    tvdir likes this.
  10. tvdir

    Joined:
    Feb 17, 2017
    Messages:
    55
    Likes Received:
    15
Thread Status:
Not open for further replies.