Jump to content

Eduardo Almeida

Members
  • Posts

    5
  • Joined

  • Last visited

Posts posted by Eduardo Almeida

  1. 5 hours ago, brian said:

    You really need to get yourself off 3.x ASAP. 

    Unfortunately, at this moment, this is not an option.

    Looking at the code, I've found a privacy module in the Kazoo I am working on. The default settings on it use the mode I am interested in (Privacy-Mode: full), so it seems like it is only a matter of somehow including the module in the callflow.

    I have to associate this module to every outbound call for specific users in our system and I am trying to learn how to do that. Can anyone provide any direction? Examples I can have a look or something like that.

  2. Hello all.

    How can I achieve the same result in Kazoo 3.18? Looking at the code is seems that there is no option "caller_id_options": { "outbound_privacy": "full" } available in the user configuration.
    In my specific case I want every call from a given user to have the aforementioned format:

    Quote
    From: "Anonymous" <sip:anonymous@anonymous.invalid>
    P-Asserted-Identity: "447700900123" <sip:447700900123@realm> 
    Privacy: id

    But I have no idea how to get that. Can I create a metaflow for the specific user adding the privacy module for every callflow?

    Can anyone direct me for a resource/documentation that could enlighten me?

  3. Thank you for the comment @mc_,


    Unfortunately, it is unfeasible to raise the log level for the entire Kazoo. When the problem happens - at busy hours - there are just to many calls going through. So I went further with the idea of tracing individual modules.

    Kazoo Update

    We will update our Kazoo version in the near future, but we first need to solve these pressing issues so we won't lose clients. Once we stabilize our environment we are going to prepare a migration plan.

    Tracing individual modules

    Fortunately, I was able to enable tracing for specific modules. I know that the Kazoo version we use is old, and newer ones probably don't even use the same log library (Lager), but I will explain here how I did it for future reference.

    I created a Erlang module to run as a service. This server awaits for messages containing the module names, and upon receiving them, start traces for them. Follows the simplified version:

    run(State)->
      receive
        {status} ->
          io:fwrite("Lager status: ~p~n", [lager:status()]),
          run(State);
    
        {start_trace, File, Module} ->
          {ok, Trace} = lager:trace_file(File, [{module, M}], debug),
          run([{module, Module, trace, Trace} | State]);
    
        {stop_all_traces} ->
          lager:clear_all_traces(),
          run([]);
      end.
    
    start() ->
      register(tracemodulectl, spawn(?MODULE, run, [[]])).

    After loading this module in the Erlang VM I can use the 'erl_call' to start and stop traces:

    #!/bin/bash
    
    echo 'tracemodulectl:start().' | ./erl_call -e -c <cookie> -n <node_name> -h command_node
    
    echo 'tracemodulectl ! {start_trace, "/var/log/conference.log", conference}.' | ./erl_call -e -c <cookie> -n <node_name> -h command_node
    echo 'tracemodulectl ! {status}.' | ./erl_call -e -c <cookie> -n <node_name> -h command_node
    
    sleep 60
    
    echo 'tracemodulectl ! {stop_all_traces}.' | ./erl_call -e -c <cookie> -n <node_name> -h command_node
    echo 'tracemodulectl ! {status}.' | ./erl_call -e -c <cookie> -n <node_name> -h command_node

    And this how I did it.
     

    P.s.: Is there a way to close this topic?

    Best regards,
    Eduardo Almeida.

  4. Hello all,

     

    Introduction

    First, I just started working with the Kazoo/Kamailio/FreeSWITCH stack and recently started learning some Erlang for the greater good; please be patient.
     

    The company I work at uses an old version of Kazoo (3.18), and they have created a few custom modules (e.g., conference) in the past that are working to this day. Unfortunately, all developers with experience with this stack - and programmed these modules - are no longer around. Due to the growth the company has experienced, the number of clients rose considerably, and now our system is having troubles during peak hours (i.e., conferencing, among other things, does not work).

     

    Question

    I saw that the log library used by Kazoo in this version is lager; since in production the default log level is ERROR, I would like to raise the log level to DEBUG for the specific modules used in conferences. The default log backend used in our application is the console.
     

    What was tried

    Lager provides a way to trace a specific module with the desired log level, but every time I try it, everything else seems to stop. This is how I tried:

     

    echo '{ok, Trace} = lager:trace_file("log/conference.log", [{module, conference}], debug), Trace.' | ./erl_call -e -c XXX -n whistle_apps -h command_node

     

    I followed the documentation of erl_call of the exact version present in the system. Once I run this, all the apps stop responding, and the only way to get things working again is to restart the whole process. Using lager:clear_all_traces and lager:stop_trace do not help.
     

    Finally

    I just started, so I am full of questions. Am I going in the wrong direction? Can I do what I am trying to do? Does Kazoo provide another way of doing this? If anyone can offer a little help, it would be fantastic.

     

    Best regards,

    Eduardo Almeida.

  5. Hello all,
    I am a developer that has just joined a team that uses the Kazoo/Kamailio/Freeswitch/RabbitMQ stack to handle telephony. Unfortunately, the devs that started the project are no longer around, and we are trying to understand what was done and how.

    The main reason why I entered this community is twofold:

    1) The version of Kazoo we are using is 3.18, and I haven't found a direct link to this documentation online; where can I find it?
    2) Hopefully, once we get up to speed on how things work in our system, we might want to update Kazoo to a newer version. Are there testimonies of people/teams that did that so we can learn from their experiences and understand the challenges in this endeavor?

    Thank you all for your patience; I look forward to learning from you.

    Best regards,
    Eduardo.

×
×
  • Create New...