<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">That’s a respectable amount of work you’ve put into that!  One of the reasons I’m taking the service mesh route is to maximize reusability of existing code like yours.  I spent years writing Perl scripts for ETL and automation functions. 
 I wouldn’t say that time was “wasted” because it got the job done, but now most of those scripts are useless.  They weren’t written in a way that allowed their functions to be called by other processes.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Last night I spent a few hours trying to find a quick intro on service meshes & API gateways.  Most assumed a bit of development experience; couldn’t find anything that would be useful for most UC folks.  I wouldn’t mind throwing a presentation
 together if someone has a BrightTalk account.  And there’s interest, of course!</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">-Pete</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:ajp26@buffalo.edu">Pawlowski, Adam</a><br>
<b>Sent: </b>Tuesday, June 16, 2020 7:55 PM<br>
<b>To: </b><a href="mailto:avholloway+cisco-voip@gmail.com">Anthony Holloway</a>;
<a href="mailto:jpb@chykn.com">Pete Brown</a><br>
<b>Cc: </b><a href="mailto:cisco-voip@puck.nether.net">cisco-voip@puck.nether.net</a><br>
<b>Subject: </b>RE: [cisco-voip] Consolidating access to Cisco CUCM APIs via Service Mesh</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This is more or less what I had been doing internally at a very primitive level, and its been very valuable but quickly consuming of a ton of time to try and account for the items and interactions between them.  I have to more or less abandon
 Ruby at this point given that gems are not being updated and things are starting to be a problem to maintain for me, oh well.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The Ruby gem I coked up abstracts a user object with details pulled from LDAP, UCM, Unity Connection, and lets me interface with local resources or write simple reports. It is what I used to write a basic CSV Jabber import (stripped way
 down to just basically AXL) tool, though no one took me up on it for import over BAT. I think they’re nuts to use that.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am still unclear on what a service mesh is, but, my overall vision was to have some sort of abstracted layer that monitors some level of object history, but allowed me to tether business rules and systems to actions in the data systems.
 It became pretty quickly obvious a job engine, call brokering and buffering, intermediate database with reconciliation and clean up jobs, etc would be needed on top of trying to define the way the objects actually interact with each other. I don’t have the
 time.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I did not look into AutomationFX, and I’ll earn some ire for this, but, we have used both PhoneView and MigrationFX. PhoneView I have largely gotten past internally with my own tooling but it is great for the rest of the team looking to
 do a quick data dump or get some data for reporting and with it’s built in data cache it’s pretty good. MigrationFX seems to be built on top of AutomatioFX, but, while better than going to each phone and configuring a new one, has had a clunky interface that
 doesn’t appear to be possible to secure when using older phones, at least per my coworkers, and I don’t want to invest my efforts into that.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’d love to see something like this, but I wonder how complicated it would have to be to be ubiquitously useful.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Adam<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> cisco-voip <cisco-voip-bounces@puck.nether.net>
<b>On Behalf Of </b>Anthony Holloway<br>
<b>Sent:</b> Tuesday, June 16, 2020 8:34 PM<br>
<b>To:</b> Pete Brown <jpb@chykn.com><br>
<b>Cc:</b> cisco-voip@puck.nether.net<br>
<b>Subject:</b> Re: [cisco-voip] Consolidating access to Cisco CUCM APIs via Service Mesh<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Yeah....still lost.  Possibly even more than I was before.  I'll just see myself out now.<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Tue, Jun 16, 2020 at 6:44 PM Pete Brown <<a href="mailto:jpb@chykn.com">jpb@chykn.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
Thanks for mentioning AutomationFX.  That’s exactly the sort of API consolidation I was thinking of.  Should’ve guessed the guys at UnifiedFX had already done something along these lines!  I’ll probably still build a CUCM mesh agent just to demo the marrying
 of access to objects & their associated data streams.  But it won’t be near as complete as AutomationFX.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
Wouldn’t say ignorant at all.  Service meshes (Istio, etc) in their current form have only been around a few years.  Even most developers I talk to haven’t really touched them beyond POCs.  Mainly due to the complexity since they all require the use of Kubernetes. 
 The concept has never really been applied to infrastructure sources before, especially in a vendor agnostic way.  In infrastructure we’re dealing with a federation of loosely coupled data sets instead of something that a single architecture group came up with.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
To answer the question of “why” regarding the mesh I’m working on, it’s to eliminate a bunch of the common pitfalls in traditional integrations.  Instead of finding and calling each source directly using different client libraries, the mesh provides a single
 method of executing RPC & pub/sub operations against backend services.  You can even navigate the resources like a directory structure.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
In this mesh, the backend services register themselves and declare their functions, object schemas, etc.  That’s why I say it’s sort of a hybrid between a service mesh and a data mesh; you can call service functions or search on object class attributes regardless
 of source.  Clients who need to access sources make calls to the Brokers.  Very roughly analogous to a “meshified” version of SNMP.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
Here’s a before and after of what an Ansible script might look like calling difference sources.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
<img border="0" width="491" height="550" style="width:5.1145in;height:5.7291in" id="gmail-m_1686441031232064519Picture_x0020_3" src="cid:image001.png@01D6441F.07C40490"><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
Sent from <a href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLinkId%3D550986&data=02%7C01%7C%7Ccf8477c6dfe548caa23608d8125931c9%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637279521585504454&sdata=Am7sFAdyyYyr14LEGY4rO6pOSdvO8ITtxZVKpHFXiwc%3D&reserved=0" target="_blank">
Mail</a> for Windows 10<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
<b>From: </b><a href="mailto:avholloway+cisco-voip@gmail.com" target="_blank">Anthony Holloway</a><br>
<b>Sent: </b>Tuesday, June 16, 2020 3:02 PM<br>
<b>To: </b><a href="mailto:jpb@chykn.com" target="_blank">Pete Brown</a><br>
<b>Cc: </b><a href="mailto:cisco-voip@puck.nether.net" target="_blank">cisco-voip@puck.nether.net</a><br>
<b>Subject: </b>Re: [cisco-voip] Consolidating access to Cisco CUCM APIs via Service Mesh<o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
You lost me there, as I'm too ignorant to understand what an API mesh is, but this sounds very familiar to what UnifiedFX is/was doing with AutomationFX, is it not?  Or am I again showing my ignorance?<o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
On Tue, Jun 16, 2020 at 12:32 PM Pete Brown <<a href="mailto:jpb@chykn.com" target="_blank">jpb@chykn.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
TLDR – Developing a hybrid service/data mesh for interacting with infrastructure services.  Thinking about what a modern, consolidated API might look like for CUCM.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
I was scheduled to give this talk at DevNet Create until everything was shut down…<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
<a href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fadhdtech%2FDRP%2Fblob%2Fmaster%2FDevNet%2520Create%25202020%2520-%2520Making%2520a%2520Mesh%2520of%2520the%2520Infrastructure.pdf&data=02%7C01%7C%7Ccf8477c6dfe548caa23608d8125931c9%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637279521585514438&sdata=uVD%2Bhj0sK84sRMUylF0ZZaDoWvoJZ6D2LX2aaugX2OI%3D&reserved=0" target="_blank">https://github.com/adhdtech/DRP/blob/master/DevNet%20Create%202020%20-%20Making%20a%20Mesh%20of%20the%20Infrastructure.pdf</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
For the demo I had data from a few of the CUCM APIs being piped into a consolidated logical model.  Nothing too complex; just users, devices and associated JTAPI streams.  It got me to thinking, though.  If you could snap your fingers and have a modern, consolidated
 API for interacting with CUCM services, what would it look like?  Not just RPC operations, but pub/sub as well.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
I’m considering creating a mesh service agent for CUCM.  Instead of leveraging the existing APIs, the goal would be to effectively replace them and inject their capabilities into the mesh.  Before I do, I’m trying to figure out what some of the “must have”
 features would be for a POC.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
The project README needs some updating, but it does give a general idea of how everything works.  Recently added a command shell; need to get that documented.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
<a href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fadhdtech%2FDRP&data=02%7C01%7C%7Ccf8477c6dfe548caa23608d8125931c9%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637279521585524418&sdata=zJ%2FwngpwhdzVGE06n0JEpoaoRZRmdWDs%2BRtoxE%2BbKvE%3D&reserved=0" target="_blank">https://github.com/adhdtech/DRP</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
-Pete<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
 <o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
_______________________________________________<br>
cisco-voip mailing list<br>
<a href="mailto:cisco-voip@puck.nether.net" target="_blank">cisco-voip@puck.nether.net</a><br>
<a href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpuck.nether.net%2Fmailman%2Flistinfo%2Fcisco-voip&data=02%7C01%7C%7Ccf8477c6dfe548caa23608d8125931c9%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637279521585534401&sdata=cFH%2BFRTI%2FrgscK7LSqLPmB8nWbBG9yro4s27yiyFb10%3D&reserved=0" target="_blank">https://puck.nether.net/mailman/listinfo/cisco-voip</a><o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt">
 <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>