<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Luke,</p>
    <p><br>
    </p>
    On 2022/12/23 18:48, Luke Escudé wrote:<br>
    <blockquote type="cite"
cite="mid:SA0PR18MB3647196CDD4D606787A28ADEBEE99@SA0PR18MB3647.namprd18.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        So, it's possible to achieve multi-tenancy in Asterisk with
        well-designed dial plan. By multi-tenancy, in terms of Asterisk,
        I mean each "customer" has their own separate dial plan, and
        each customer cannot "see" another.</div>
    </blockquote>
    <p>As long as each "customer" has their own "endpoint" details (for
      whatever protocol they use to connect), yes, this is technically
      possible.  There are other risks associated, eg, if you give them
      access to AMI or even to the CLI ... how do you control data
      visibility?  This just gets very, very risky.<br>
    </p>
    <p><br>
    </p>
    <p>Given that a well tuned asterisk instance can use sub 100MB of
      RAM ... I don't see the problem with running an asterisk instance
      per tenant.  Eliminates most of the above concerns, and if you do
      it right, pretty much all of the issues just goes away.  The one
      serious downside is that you need to bind each one to a different
      IP ... which is also not a major problem, one idea around this is
      to use a SIP proxy to dispatch to the correct "private" IP based
      on the registered to realm.<br>
    </p>
    <blockquote type="cite"
cite="mid:SA0PR18MB3647196CDD4D606787A28ADEBEE99@SA0PR18MB3647.namprd18.prod.outlook.com">
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        However, when it comes to looking at the asterisk CLI/console,
        you see all the calls flowing across all dial plans, which can
        be a lot to look at.</div>
    </blockquote>
    Correct.<br>
    <blockquote type="cite"
cite="mid:SA0PR18MB3647196CDD4D606787A28ADEBEE99@SA0PR18MB3647.namprd18.prod.outlook.com">
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        What is the possibility of adding some kind of "tenancy
        filtering" to CLI logging?</div>
    </blockquote>
    Extremely unlikely.<br>
    <blockquote type="cite"
cite="mid:SA0PR18MB3647196CDD4D606787A28ADEBEE99@SA0PR18MB3647.namprd18.prod.outlook.com">
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        <br>
        Example: At the beginning of a dial plan call, let's say exten
        => s, we set LoggingTenancy(customer_id), then all of the
        subsequent log messages are visible in the CLI only if you run
        the "logging view tenant (x)" or something like this.</div>
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        That would make it easier to diagnose call issues on high-volume
        systems.</div>
    </blockquote>
    <p>Agreed.  We generally use the full log.  So in logger.conf:</p>
    <p><br>
    </p>
    <p>full => notice,warning,error,debug,verbose(4),dtmf,fax</p>
    <p><br>
    </p>
    <p>Now each call will have a C-?????? tag associated with it.  So
      after the call has completed, find the C-????? tag (You can for
      example use your LoggingTenancy idea here, but something like
      Verbose(TENTANT=?????, CLI=${CALLERID(full}, DST=${EXTEN}) - this
      will give you something to grep for in the full log to find
      C-??????, then grep C-?????? full.<br>
    </p>
    <blockquote type="cite"
cite="mid:SA0PR18MB3647196CDD4D606787A28ADEBEE99@SA0PR18MB3647.namprd18.prod.outlook.com">
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Calibri, Arial,
        Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);
        background-color: rgb(255, 255, 255);">
        I, personally, do not have the ability to implement this, but I
        wanted to put it out there.</div>
    </blockquote>
    <br>
    <blockquote type="cite"
cite="mid:SA0PR18MB3647196CDD4D606787A28ADEBEE99@SA0PR18MB3647.namprd18.prod.outlook.com">
      <div class="elementToProof">
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);">
          <br>
        </div>
        <div id="Signature">
          <div>
            <div style="font-family: Calibri, Arial, Helvetica,
              sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
              <br>
            </div>
            <div style="">
              <p style="color:rgb(0,0,0);
                font-family:Calibri,sans-serif; font-size:12pt;
                margin:0in 0in 0.0001pt">
                <br>
              </p>
              <div dir="ltr" style="color:rgb(0,0,0);
                font-family:Calibri,Helvetica,sans-serif;
                font-size:12pt; margin:0px;
                background-color:rgb(255,255,255)">
              </div>
              <p style="color:rgb(0,0,0);
                font-family:Calibri,sans-serif; font-size:12pt;
                text-align:start; background-color:rgb(255,255,255);
                margin:0px">
                <br>
              </p>
              <p style="text-align:start;
                background-color:rgb(255,255,255); margin:0px"><span
                  style="margin:0px"><b style="color:rgb(0,0,0);
                    font-family:Calibri,sans-serif; font-size:16px"><span
                      style="margin:0px; font-family:Arial,sans-serif;
                      color:black">Luke </span></b><span style=""><font
                      face="Arial, sans-serif" color="#000000"><b>Escudé</b></font></span><br>
                </span></p>
              <p style="color:rgb(0,0,0);
                font-family:Calibri,sans-serif; font-size:12pt;
                text-align:start; background-color:rgb(255,255,255);
                margin:0px">
                <br>
              </p>
              <p style="color:rgb(0,0,0);
                font-family:Calibri,sans-serif; font-size:12pt;
                text-align:start; background-color:rgb(255,255,255);
                margin:0px">
                <span style="margin:0px; font-size:11pt;
                  font-family:Arial,sans-serif"><span style="margin:0px;
                    font-size:13.3333px">972.600.1150</span><b
                    style="font-family:Calibri,sans-serif;
                    font-size:16px"><span style="margin:0px;
                      font-family:Arial,sans-serif; color:black"><br>
                    </span></b></span></p>
              <p style="color:rgb(0,0,0);
                font-family:Calibri,sans-serif; font-size:12pt;
                text-align:start; background-color:rgb(255,255,255);
                margin:0px">
                <span style="margin:0px; font-size:11pt;
                  font-family:Arial,sans-serif"><span style="margin:0px;
                    font-size:13.3333px"><a class="moz-txt-link-abbreviated" href="mailto:support@primevox.net">support@primevox.net</a></span><b
                    style="font-family:Calibri,sans-serif;
                    font-size:16px"><span style="margin:0px;
                      font-family:Arial,sans-serif; color:black"><br>
                    </span></b></span></p>
              <p style="color:rgb(0,0,0);
                font-family:Calibri,sans-serif; font-size:12pt;
                text-align:start; background-color:rgb(255,255,255);
                margin:0px">
                <span style="margin:0px; font-size:11pt;
                  font-family:Arial,sans-serif"><span style="margin:0px;
                    font-size:13.3333px"><a
href="https://outlook.office365.com/owa/calendar/PrimeVOXCommunications@primevox.net/bookings/"
title="https://outlook.office365.com/owa/calendar/PrimeVOXCommunications@primevox.net/bookings/"
                      style="margin:0px" moz-do-not-send="true">Schedule
                      a meeting!</a></span></span></p>
              <span style="color:rgb(32,31,30);
                font-family:Calibri,Arial,Helvetica,sans-serif;
                font-size:12pt; margin:0px; text-align:start;
                background-color:rgb(255,255,255);
                display:inline!important">
                <div dir="ltr" style="margin:0px; font-size:12pt;
                  font-family:Calibri,Helvetica,sans-serif;
                  color:rgb(0,0,0)">
                  <br>
                </div>
              </span>
              <div dir="ltr" style="color:rgb(0,0,0);
                font-family:Calibri,Helvetica,sans-serif;
                font-size:12pt; margin:0px; text-align:start;
                background-color:rgb(255,255,255)">
                <br>
              </div>
              <div dir="ltr" style="color:rgb(0,0,0);
                font-family:Calibri,Helvetica,sans-serif;
                font-size:12pt; margin:0px; text-align:start;
                background-color:rgb(255,255,255)">
                <span style="font-size: 12pt;">View the PrimeVOX R&D
                  Roadmap </span><a
                  href="https://trello.com/b/pzpoyn8m/primevox-engineering"
title="https://trello.com/b/pzpoyn8m/primevox-engineering"
                  moz-do-not-send="true"><span style="font-size: 12pt;">here</span></a></div>
              <span style="font-family: Calibri, Helvetica, sans-serif;
                text-align: start; background-color: rgb(255, 255, 255);
                display: inline !important; font-size: 12pt;">View the
                PrimeVOX Status Page
              </span><span style="font-family:Calibri, Helvetica,
                sans-serif;text-align:start;background-color:rgb(255,
                255, 255);display:inline !important"><a
                  href="https://status.primevox.net/"
                  title="https://status.primevox.net/"
                  moz-do-not-send="true"><span style="font-size: 12pt;">here</span></a></span><br>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
    </blockquote>
  </body>
</html>