Jump to content

mc_

2600Hz Employees
  • Posts

    1,768
  • Joined

  • Days Won

    4

Posts posted by mc_

  1. There is a simplistic quickstart guide that will show you some basic API commands.

    Endpoints dial numbers, some endpoints carry around a caller ID so you "know" who is calling. Numbers are assigned to callflows which determine what to do with the caller - put them in a conference, connect them other endpoints, play a recording, put the caller in a conference, etc.

    Triggering calls from a website typically requires using Click-To-Call. You can also front the request with your own server and call the conference dial command from your server.

     

  2. Community-supported call queue app is acdc - open source, free to use on your own installation.

    Qubicle is our paid call center application. There is talk of a "lite" version being free to use / open source but nothing available yet. When the app store is ready, there will be a way to purchase Qubicle for self-managed installations.

  3. Callflows have two ways to determine if a call should be executed by a callflow:

    1. The "numbers" array is a list of possible dialed numbers (or letters/unicode) that must match exactly. So "numbers":["2005","+12229992005","marvin"] would execute the callflow if any of those are dialed (after normalization).

    2. The "patterns" array is a list of regexes that is used to match the dialed number.

    "numbers" will be tried first followed by "patterns".

    I don't know if the Advanced Callflows app exposes the ability to do patterns so you may have to use the API to do so.

     

    Your pattern should work:

    > re:run(<<"*259194712386">>, <<"^\\*25([0-9]*)$">>, [{capture, all_but_first, binary}]).                                                                                                
    {match,[<<"9194712386">>]}

    Put it in the "patterns" array and it should work fine. If not, please pull logs of the call attempt so we can look at what callflows did.

  4. Are you setting the restriction on a particular device, a user, or an account? You can define "call_restriction" on the entity of choice that maps a number classifier (like tollfree, us-did, etc) and whether to allow/deny calls to those types of numbers.

  5. It seems there is a bash script sitting in front of the actual sup escript that is failing to pass along the command line args properly. I'm looking into it.

    Bypass-able thusly:

    /opt/kazoo/bin/kazoo escript lib/sup-4.2.28/priv/sup.escript -?
    Usage: sup [-?] [-n [<node>]] [-c [<cookie>]] [-t [<timeout>]] [-v]
               [<module>] [<function>] [args ...]
    
      -?, --help     Show the program options
      -n, --node     Node name [default: kazoo_apps]
      -c, --cookie   Erlang cookie [default: change_me]
      -t, --timeout  Command timeout [default: 0]
      -v, --verbose  Be verbose
      <module>       The name of the remote module
      <function>     The name of the remote module's function
    

    But I'm working on a fix for the bash script sitting in front of this invocation

  6. You'll probably want to capture the network traffic to see what PHP is putting on the wire to the server. Or see if the PHP cURL stuff can write verbose logs to a file or something. I copy/pasted your JSON to use for my cURL command locally and it processed fine. Let's see what your script is putting on the wire and maybe it will reveal why the JSON is corrupted when Kazoo receives it.

×
×
  • Create New...