Dismiss Notice
We would like to remind you that we’re updating our login process for all 3CX forums whereby you will be able to login with the same credentials you use for the Partner or Customer Portal. Click here to read more.

Pathswitch

Discussion in 'Call Flow Designer' started by Josh Dinsdale, Oct 26, 2017.

Thread Status:
Not open for further replies.
  1. Josh Dinsdale

    Joined:
    Oct 11, 2017
    Messages:
    11
    Likes Received:
    0
    Hi Guys

    With our current Askozia system, the Call Flow Editor has a path switch module and I am trying to replicate the functionality in 3CX CFD.
    The path switch module allows a call flow path to be dynamically switched by dialling a special number from a phone.

    Our example is that in some special circumstances we need to divert all of our companies incoming calls to a mobile. So at the start of our current call flow, we have a path switch module which is by default set to send calls to path A which is our main call queue. If someone dials the special code eg 1234567, the path switch module switches to path B and sends calls to an external dialer module that is set to dial a pre-configured mobile number.

    I have come to the conclusion i should be able to replicate this with 3CX's CFD, however I am hitting a few issues.

    My plan is to use a condition, which will check if a variable is 0 or 1, and then route the call correctly. I will then have a second flow that an internal user can dial into to set the variable on or off. However from what i understand variables cannot be shared between multiple projects, so i am not sure if this will work?

    Am i really overthinking this, does anyone have any other suggestions? :)

    Many Thanks in advance!

    Josh
     
  2. edossantos

    edossantos Support Team
    Staff Member 3CX Support

    Joined:
    Jun 27, 2007
    Messages:
    1,609
    Likes Received:
    126
    Hi @Josh Dinsdale,

    A nice a simple approach could be using 3CX parameters for this. You can create a new 3CX parameter (3CX console > Settings > Parameters), for example "ROUTING_CONDITION" and set it to 1.

    Then, you need 2 CFD projects:
    1) Here you have a Menu component with 2 options:
    - 1 > to set ROUTING_CONDITION to 1
    - 2 > to set ROUTING_CONDITION to 0
    You can use the new "Set Global Property" component to set the value.

    2) This is the callflow to which you route all incoming calls. Here you will use the new component "Get Global Property" to read the value of property "ROUTING_CONDITION". Then you use a Condition as usual to decide if you route calls to the internal queue or the mobile.


    This way, you can also change the setting from the console, instead of calling the app in 1.

    Hope the information helps.

    Kind regards.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. Josh Dinsdale

    Joined:
    Oct 11, 2017
    Messages:
    11
    Likes Received:
    0
    edossantos, you are fast becoming my hero! I mostly have this working and will post my full call flow when I've ironed out the kinks.

    That reminds me, do 3CX we have a forum or online location to share Call Flows? It sounds like a could be useful to have some sort of online exchange for this sort of stuff.
     
  4. Josh Dinsdale

    Joined:
    Oct 11, 2017
    Messages:
    11
    Likes Received:
    0
    On a similar note, would it be possible to use a Global Property for PIN code for user auth (is this secure as well?)? I'm working on this now but cant quite seem to work out the CFD logic to compare the entered digits with the Global Property...
     
  5. edossantos

    edossantos Support Team
    Staff Member 3CX Support

    Joined:
    Jun 27, 2007
    Messages:
    1,609
    Likes Received:
    126
    Hi @Josh Dinsdale,

    Thanks for your nice comments ;-)

    Currently there is no forum or site to share CFD project, but that is a good idea! For now you can create a new thread and share your project here, other users have done that in the past! Thanks for sharing, that will certainly help other users!

    RE using a global property for the PIN, that's perfectly possible. The information is securely saved, and you need credentials to access it. However, it depends on who should be able to see it. For example, anyone having access to 3CX settings in the console will be able to see the PIN. But the information is securely saved, for example it is not saved in a plain text file, it is into the database or accesible through the API, and you need to credentials in both cases.

    In order to compare, you need to use the EQUAL function. For example, if the "Get Global Property" component name is "readPinFromGlobalProperty" and your User Input component name (requesting the PIN) is "requestPIN", then you can use the following expression, which will return true when both are equal:
    Code:
    EQUAL(readPinFromGlobalProperty.PropertyValue,requestPIN.Buffer)
    Kind regards.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
Thread Status:
Not open for further replies.