Actually, following my example, they are available as line.display and line.displayAscii. But every time I try to update it through AXL using the same mechanism I use to update other stuff, it simply doesn't seem to do anything at all.
So in other words, I'm not claiming it's impossible to update it that way, but I certainly can't do it. :D -- Hunter Fuller Network Engineer VBH Annex B-5 +1 256 824 5331 Office of Information Technology The University of Alabama in Huntsville Systems and Infrastructure On Tue, Nov 27, 2018 at 10:24 AM Lelio Fulgenzi <le...@uoguelph.ca> wrote: > Are you saying that (ascii) display name and (ascii) alerting name are not > AXL dippable/updateable information? Yikes. > > > > > > --- > > *Lelio Fulgenzi, B.A.* | Senior Analyst > > Computing and Communications Services | University of Guelph > > Room 037 Animal Science & Nutrition Bldg | 50 Stone Rd E | Guelph, ON | > N1G 2W1 > > 519-824-4120 Ext. 56354 | le...@uoguelph.ca > > > > www.uoguelph.ca/ccs | @UofGCCS on Instagram, Twitter and Facebook > > > > [image: University of Guelph Cornerstone with Improve Life tagline] > > > > *From:* Hunter Fuller <hf0...@uah.edu> > *Sent:* Tuesday, November 27, 2018 11:14 AM > *To:* Lelio Fulgenzi <le...@uoguelph.ca> > *Cc:* voyp list, cisco-voip (cisco-voip@puck.nether.net) < > cisco-voip@puck.nether.net> > *Subject:* Re: [cisco-voip] Best Practice or Way to bulk update Caller ID > > > > I am not doing this, but it could be done pretty easily using Python. > > I wrote a little shim library for hitting the AXL API from Python. If we > assume that the caller ID of the line should be pulled from the first > associated end user, we can pull the userid, get the name, and set it to > the line. > > Two gotchas in my example: > 1. I am not doing this, personally, so I don't have the code necessary to > pull the name. But there are lots of Python examples for that. > > 2. I haven't found a way to update the Caller ID aside from running SQL. > Yuck! But we are doing it in production, if that makes you feel better... > > If you want to try it, the library is here: https://github.com/uah/axlrows > You're welcome to email me off-list if you have questions about it. > > > from axlrows import CiscoUCM > ucm = CiscoUCM() > all_lines = ucm.get_lines(routePartitionName='Sys-Ext-PT') > > for line in all_lines: > > userid = line.associatedEndusers[0][0].userId > > > #Now we have the userid, and we can look up the name somehow. > > name = mystery_name_lookup(userid) > > > #Now we can set it back to the caller ID > line_pkid = line._uuid.lower().replace('{', '').replace('}', '') > ucm.execute_sql_update(sql="update devicenumplanmap set display = '" + > name.replace("'", "''") + "' where pkid = '"+ line_pkid + "'") > > > > -- > Hunter Fuller > Network Engineer > VBH Annex B-5 > +1 256 824 5331 > > Office of Information Technology > The University of Alabama in Huntsville > Systems and Infrastructure > > > > > > On Tue, Nov 27, 2018 at 10:00 AM Lelio Fulgenzi <le...@uoguelph.ca> wrote: > > > > I think this is a good spot for 3rd party/partner development. Basically, > hit the CUCM database and download DN information. Hit the authoritative > directory source and download information. Then build an offline database > for comparison. Based on rules and/or manual input, use CUCM api’s to > update out of sync display names. **pow** > > > > Darn I should have listened in my programming courses…. > > > > --- > > *Lelio Fulgenzi, B.A.* | Senior Analyst > > Computing and Communications Services | University of Guelph > > Room 037 Animal Science & Nutrition Bldg | 50 Stone Rd E | Guelph, ON | > N1G 2W1 > > 519-824-4120 Ext. 56354 | le...@uoguelph.ca > > > > www.uoguelph.ca/ccs | @UofGCCS on Instagram, Twitter and Facebook > > > > [image: University of Guelph Cornerstone with Improve Life tagline] > > > > *From:* Anthony Holloway <avholloway+cisco-v...@gmail.com> > *Sent:* Tuesday, November 27, 2018 10:42 AM > *To:* Brian Meade <bmead...@vt.edu> > *Cc:* Lelio Fulgenzi <le...@uoguelph.ca>; Cisco VoIP Group < > cisco-voip@puck.nether.net> > *Subject:* Re: [cisco-voip] Best Practice or Way to bulk update Caller ID > > > > First, the tags are too limiting; I wish there were more, and more > powerful modifiers. > > > > Second, I don't think that works for post device creation, correct? I.e., > CUC User Templates are not retroactive > > > > On Tue, Nov 27, 2018 at 9:09 AM Brian Meade <bmead...@vt.edu> wrote: > > The Line Templates used for Quick User/Phone Add and Self-Provisioning > allow you to use tags in various fields: > > #FirstName# > > #LastName# > > #UserID# > > #Email# > > #Department# > > #Manager# > > #PrimaryExtension# > > #Extension# > > #LineIndex# > > #DeviceName# > > #Product# > > #Protocol# > > > > I've been trying to use this feature more and more lately. I do wish > there was some API calls around this feature though. > > > > On Mon, Nov 26, 2018 at 11:39 PM Lelio Fulgenzi <le...@uoguelph.ca> wrote: > > After all this, it certainly would be nice to be able to do this > automatically. Either tied to or not tied to a userid or telephone number > or directory entry. Or any combination thereof. > > > > Connection does it, even if not completely well (display name doesn’t get > updated upon directory update), why not CallManager? > > > > > > *-sent from mobile device-* > > > > *Lelio Fulgenzi, B.A.* | Senior Analyst > > Computing and Communications Services | University of Guelph > > Room 037 Animal Science & Nutrition Bldg | 50 Stone Rd E | Guelph, ON | > N1G 2W1 > > 519-824-4120 Ext. 56354 <519-824-4120;56354> | le...@uoguelph.ca > > > > www.uoguelph.ca/ccs | @UofGCCS on Instagram, Twitter and Facebook > > > > > On Nov 26, 2018, at 6:50 PM, Anthony Holloway < > avholloway+cisco-v...@gmail.com> wrote: > > Don't forget the Alerting Name field. This is also Caller ID, but like in > reverse. > > > > Never having had to perform this action before, I would be curious as to > how many records are "out of sync". > > > > Try running the following, or a similar SQL query to see who isn't lining > up correctly: > > > > *run sql select \* > > *limit 25 \* > > *u.telephonenumber, u.firstname, u.lastname, dn.dnorpattern, > dn.alertingname, dn.alertingnameascii, la.display, la.displayascii, > la.label \* > > *from devicenumplanmap as la \* > > *left join numplan as dn on la.fknumplan = dn.pkid \* > > *left join enduser as u on right(dn.dnorpattern, 12) = u.telephonenumber \* > > *where \* > > *(u.telephonenumber is not null and u.firstname is not null and u.lastname > is not null) and \* > > *(concat(concat(u.firstname, ' '), lastname) <> dn.alertingname or > concat(concat(u.firstname, ' '), lastname) <> la.display) \* > > *order by u.lastname, u.firstname * > > > > *Legend* > > Limit - Feel free to increase/decrease/remove the limit command > > Offending Records - Feel free to add/remove/modify the offending record > finder. I.e., This filter only matches the AD first + last against > alerting and display, and also it assumes your DNs are > \+1[2-9]XX[2-9]XXXXXX formatted, and your AD telephoneNumbers > are +1[2-9]XX[2-9]XXXXXX formatted, so it removes the \ on the DN for > lining up records with the right function, 12 characters in. > > > > *The funky looking concat commands are because of two reasons: 1) the CLI > parser wont let me use pipes to concat, and 2) the concat function only can > concat two fields at once, so we have to run it twice to insert the space > between names. Else, you might be able to pull the displayname field > instead. In my case this is Lastname, Firstname, so concatenating the > first and last on my own was better. > > > > The output will look something like this: > > > > *telephonenumber firstname lastname** dnorpattern alertingname > alertingnameascii display > displayascii label* > > *=============== ========= ================** ============= > ========================== ========================== > ========================== ========================== > ===========================* > > *+16125551212 Anthony Holloway** \+16125551212 Tony > Holloway Tony Holloway Tony Holloway > Tony Holloway Tony Holloway - 1212* > > > > *Legend* > > AD Fields (Once per account) > > DN Fields (Once per DN) > > Line Appearance Fields (Can exist multiple times for every appearance this > DN exists on) > > > > From there, I would bring the data into MS Excel, filter, sort, fix, etc., > and then I would use the AXL SQL Toolkit to submit each update > individually. Once for the DN and once for the line, per correction. This > will automatically reset phones, just like a BAT operation would. > > > > E.g., > > > > *Update the DN fields* > > *update numplan set alertingname = 'Anthony Holloway', alertingnameascii = > 'Anthony Holloway' where dnorpattern = '\+16125551212'* > > > > *Update the LA fields* > > *update devicenumplanmap set display = 'Anthony Holloway', displayascii = > 'Anthony Holloway' where fknumplan = (select pkid from numplan where > dnorpattern = '\+16125551212')* > > > > With any approach you take, there are going to be one-off cases you'll > likely need to manually handle, and not too mention, your environment may > have sticking points which completely prevent you from being able to use > bulk tools. E.g., Your fields are all jacked up, your DNs don't line up > with your AD telephoneNumbers, etc. > > > > If you think you'll have to perform this activity more than once, then I > would suggest writing a program to perform the sync operation on a > schedule. I think Adam was just talking about doing this exact task, with > Pete's PowerShell thingy. > > > > https://cisco-voip.markmail.org/thread/uajz3af37ptg5cyy > > > > Good luck! > > > > On Mon, Nov 26, 2018 at 4:33 PM Ryan Huff <ryanh...@outlook.com> wrote: > > Hi Sam, > > > > I'm assuming (since you said Caller ID), that you are referring to > "Display (Caller ID)" and the older, "ASCII Display (Caller ID)" fields. > You can bulk update these fields by first, exporting the phones through, > "Bulk Administration > Phones > Export Phones > All Details". After > selecting that menu navigation, you'll have the familiar GUI based query > tool that will allow you to specify search limit and qualifier clauses, for > the number of phones you wish to export. > > > > Once you have the resulting export file downloaded, I would typically use > MS Excel (or some other type of comma deliminated parser) to open the file. > Once opened, find the Display (Caller ID) field and adjust as desired for > each phone. If you wish to concatenate the the FN and LN of the user into > this field, you'll need to use some "script magic" (Python, PHP, Perl, Bash > ... etc) or good old fashioned copy/paste elbow grease to compile this info > from elsewhere in the spreadsheet; assuming such data exists for the line > on another column within the same row; phone description, line description > ... etc. > > > > All this to bring me to a closing thought, which is to verify your > understanding that this would only affect internal (onnet) Caller ID and > not what is presented to a called party over the PSTN. Caller ID (ANI) > presented on the PSTN is the job of a), your carrier to enter the correct > data into the ANI ALI database and B), the called party's carrier to > perform the appropriate CNAM dip into the ANI ALI database and ultimately > present the characters to the called party's device in the appropriate > facility / contact header. > > > > Thanks, > > > > Ryan Huff, CCDP, CCNP > > Cisco Certified Network and Design Professional > > > ------------------------------ > > *From:* cisco-voip <cisco-voip-boun...@puck.nether.net> on behalf of Sam > Jones <jones...@isu.edu> > *Sent:* Monday, November 26, 2018 5:08 PM > *To:* cisco-voip@puck.nether.net > *Subject:* [cisco-voip] Best Practice or Way to bulk update Caller ID > > > > > > I am looking for the fastest way to update the Caller ID across all our > directory numbers with the first and last name of users synchronized from > Active Directory. > > I cannot find a how to do this: > > automagically with a synchronization from Active Directory > > Or > > through Bulk Administration > > > > Any guidance to how I can accomplish this is appreciated. > > > > *Sam Jones* > > _______________________________________________ > cisco-voip mailing list > cisco-voip@puck.nether.net > https://puck.nether.net/mailman/listinfo/cisco-voip > > _______________________________________________ > cisco-voip mailing list > cisco-voip@puck.nether.net > https://puck.nether.net/mailman/listinfo/cisco-voip > > _______________________________________________ > cisco-voip mailing list > cisco-voip@puck.nether.net > https://puck.nether.net/mailman/listinfo/cisco-voip > > _______________________________________________ > cisco-voip mailing list > cisco-voip@puck.nether.net > https://puck.nether.net/mailman/listinfo/cisco-voip > >
_______________________________________________ cisco-voip mailing list cisco-voip@puck.nether.net https://puck.nether.net/mailman/listinfo/cisco-voip