Jump to content

FASTDEVICE

Members
  • Posts

    437
  • Joined

  • Days Won

    26

Posts posted by FASTDEVICE

  1.  

    Quote

     

    I will throw in doing similar things on the server side (never hurts to have redundancy!):

    1. Classifiers can be used to restrict/allow dialing numbers. In your example, a classifier for "\\+?1900\\d+" could be added to deny access to these numbers

    2. Dial plans can convert "local" dials to appropriate representations. You can prepend area codes, country codes, add access codes, whatever is needed.

     

    @mc_ This is really good information and I moved some of what you said from another thread to this one for consistency on what I'm about to ask.

    I've read the documentation on phone numbers, converters, classifiers, dial plans, and etc., but would like some clarification. 

    • I'm struggling to understand when they take effect as anything that reaches no_match is already formatted correctly and unmodified from the dial plan. I inserted a pivot into no_match and looked at the results. Regardless of what the dial plan matches and converts a normalized number is the outcome. This includes "unknown" extensions. 
    • Where in the account, user, or device doc do you insert the classifier, all I can find is call restrictions.
    • And if I add a classifier, do I then need to add the friendly name to call restrictions to deny?
    • How does pretty print apply to classifiers? That one seems to be coming out of left field for a place that prevents routing of numbers.
    • What is with the "\\" in the regex? It appears in the beginning and again within "\\d"  The '\' means literal and would imply the match should be "\d" Am I missing something as that's not a valid number syntax. 

    Wheew , sorry for so many questions, but this topic appears to be very powerful stuff.

  2. This is more of an informative post around improving client experience with IP Phones. I've been using (Yealink) Dial Plan rules to emulate the response of an analog phone for years. It has been the recipe for a great user experience and I was wondering if anyone else is using them, and if so, how? I'll start by publishing my set of rules, and hopefully this could extend to better practice and rules for other phone manufacturers.    

    Dial Now

    1. 1[0-1]xx
    2. 1[2-9]xx[2-9]xxxxxx
    3. [2-9]xx[2-9]xxxxxx
    4. [3469]11
    5. *[1-9]x
    6. *01xxx
    7. **1xxx

    Block Out

    1. 1900x.
  3. Hi Tuly,

    The easiest way is to download the CDRs from SmartPBX. I'm thinking you want to select "Month" and then download.

    The next step is to open the file in Excel. Select All (Ctrl + A), then format the data columns as a table. Selection should be on the top of the ribbon "Format as Table."

    You can then select filtering from the columns. Use direction, from, or to.  You may have to do additional filtering as there are several legs to each call, but this is the general approach. 

  4. @tomas_ yep your suggestion is our common way to forward calls to after-hours services, but this was more of a quick way to forward every DID; main and all extensions assigned DIDs to a single forwarded number without having to insert time of days in each callflow.

    I've done some further testing with PreFlow and it's not a good idea to assign it a callflow that is connected to a device. It can get quirky, so I'd stick to the intended usage of:

    23 hours ago, Darren Schreiber said:

    Stuff that exits quickly and would be done globally.

        

  5. When configuring a PreFlow with a callflow that uses a cell phone device, and that cell phone is off, the PreFlow stalls for the time indicated by "Ring this device for x seconds."

    1. PreFlow-> CallflowA-> Cell Phone Device. (when cell is off: long delay before normal operations)

    If I place another call element under the cell phone device, the off condition of the mobile phone is immediately detected and the callfow switches to the next call element without delay.  

    2. PreFlow-> CallflowA-> Cell Phone Device-> MainCallflow. (when cell is off: no delay reaching the MainCallflow) 

    Is there a way to configure item 1 to have no delay when a mobile phone is off? In some cases, clients hear 30-50 seconds of silence (no ringing) and then it moves to normal operations.   

  6. 1 hour ago, extremerotary said:

    It's messy, but would probably solve the use-case. 

    Not messy at all, and that solution has been discussed in-depth several times on the forum. I even use that method in my after-hours menu options for forwarding.  However, I was thinking more on the lines of allowing the user to set the forward number from the outside. If the number is static and won't change, then using time-of-day as an off/on switch works great.   

  7. Webhooks is certainly one way to interrogate real-time call information, but 2600hz has asked that we move to Websockets (less resource intensive) for real-time integrations. They have a JavaScript example on their document site.

    Salesforce can integrate in a number of ways,

    1. the first is decoration of telephone numbers on their web panels to be used for click-to-dial. This would require JavaScript looking at the Salesforce web page source and finding all telephone number formats. Once identified you can send a click-to-dial command when a number is clicked.    
    2. second, a more comprehensive integration using Salesforce lightning. Salesforce offers a free account and lightning course online. This type of integration provides direct APIs with Salesforce internal functionality which allows for dialers, pop-up screens and other highly-integrated features. 

    I've had the chance to test all of the above and have item 1 working nicely. I'm still spending time on lightning, learning in my spare time as it's really an elegant way to integrate Kazoo with Salesforce. 

     

  8. @Jack Noe I tested Webhook trigger "channel_create" and it appears to work for this purpose.

    The best way to investigate the contents of a Webhook is to use a service called RequestBin. (please google and find the RequestBin address) Follow the directions on the site and create a RequestBin, the service will return a URL to be inserted in the Webhook. I like to set the Request Type to POST.

    Once you have the Webhook configured with the RequestBin URL, call your callflow and then look at your bin. You should see all the detail from the Webhook appear in the bin. What you do with that data is now up to you, but this is the first step of the process.   

  9. That would be a good feature request of the missed call alert functionality, but, if implemented, they would need to change the name to call alert.

    However, to accomplish this without the easy button, I'd suggest looking at Webhooks. Perhaps "channel_create" may do the job, and then have the hook call out to a routine that sends an email. I bet this could be done using a service like IFTTT to keep coding to a minimum.

  10. My portal UI has tackled the issue of rights management with call recordings and is able to restrict access to recordings. We have done the same with voicemail boxes, giving the ability to share a voicemail box across users that need to administrate others or manage group voicemail boxes.

    However, with call recordings, when you select record all at the account level, transferred calls are recorded additive by 2600hz. I.e. the initial call is appended to the transferred call and becomes part of the user's recording. Therefore, the recordings may contain their bosses' conversation prior to the transfer of the call. We would like 2600hz to change that behavior so users only hear their own recordings. This would enforce a proper rights management scheme where users are privy to only their portion of a recorded call.  

     

  11. Now might also be a good time to bring up the safe use of menus by preventing callers from dialing erroneous extensions.

    It's always a good idea to whitelist values using a regex. In this example I'm restricting callers from dialing anything outside my user extension list of 1xxx.

    The regex is:  ^(1\d{3})$  and a great way to test your regex is here  https://regex101.com/

    image.png.26d702bea7d6992c743992e0f89498b5.png

    of course this applies if you have the following enabled:

    image.png.bb8413c7caa345b4ed766e84632977a4.png

×
×
  • Create New...