<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Cisco Voice Guru</title><link>http://ciscovoiceguru.com</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CiscoVoiceGuru" /><description>Cisco UC resources for the masses...</description><language>en-US</language><lastBuildDate>Wed, 10 Apr 2013 14:51:48 PDT</lastBuildDate><generator>http://wordpress.org/?v=3.5.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CiscoVoiceGuru" /><feedburner:info uri="ciscovoiceguru" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>44.877164</geo:lat><geo:long>-93.281248</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>CiscoVoiceGuru</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Network Upgrades</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/DaGX7a-2CzU/</link><category>Blog</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Sat, 02 Mar 2013 19:36:47 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6543</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://dilbert.com/strips/comic/2013-03-02/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+DilbertDailyStrip+%28Dilbert+Daily+Strip%29"><img class="alignnone size-full wp-image-6544" alt="179110.strip.print" src="http://ciscovoiceguru.com/wp-content/uploads/2013/03/179110.strip_.print_.gif" width="560" height="174" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=DaGX7a-2CzU:IEvzgq64J5s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=DaGX7a-2CzU:IEvzgq64J5s:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=DaGX7a-2CzU:IEvzgq64J5s:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=DaGX7a-2CzU:IEvzgq64J5s:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=DaGX7a-2CzU:IEvzgq64J5s:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=DaGX7a-2CzU:IEvzgq64J5s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=DaGX7a-2CzU:IEvzgq64J5s:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/DaGX7a-2CzU" height="1" width="1"/>]]></content:encoded><description></description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6543/network-upgrades/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6543/network-upgrades/</feedburner:origLink></item><item><title>Configuring UCCX Position in Queue</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/KBAVm0-8kN8/</link><category>Blog</category><category>scripting</category><category>UCCX</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Mon, 25 Feb 2013 12:16:57 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6535</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Today, I&#8217;m going to share with you an easy way to spice up your call center scripting in UCCX by configuring a position in queue announcement. While many companies are content to use the basic queue loop, having the ability to announce a caller&#8217;s place in queue will win you the favor and admiration of the most difficult customers.</p>
<p>Setting this up is very simple and can be done in as little as five call steps.</p>
<div id="attachment_6536" class="wp-caption alignnone" style="width: 510px"><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/01-2013-02-25_13-07-42.png"><img class=" wp-image-6536" alt="01-2013-02-25_13-07-42" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/01-2013-02-25_13-07-42.png" width="500" height="calc" /></a><p class="wp-caption-text">Screenshot of position in queue module</p></div>
<p><span id="more-6535"></span></p>
<h2>1. Gather the Statistic from UCCX</h2>
<p>The first step is to gather the position in queue integer from UCCX. This is accomplished using the <strong>Get Reporting Statistic</strong> step. For <em>Row Identifier</em>, reference the string variable that holds your CSQ. Since the output of this step is a number, assign the <em>Result Statistic</em> to an integer variable.</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/02-2013-02-25_13-07-56.png"><img class="alignnone size-full wp-image-6537" alt="02-2013-02-25_13-07-56" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/02-2013-02-25_13-07-56.png" width="420" height="326" /></a></p>
<h2>2. Normalize the Data</h2>
<p>The integer returned from the <strong>Get Reporting Statistic</strong> step is referred to as &#8220;Position in Queue.&#8221; If you wanted to announce the place in queue, no normalization needs to be done to the data. However, if you want to tell callers how many people are AHEAD of him/her, make sure to subtract 1.</p>
<p><code>set intPlaceInQueue = intPlaceInQueue - 1</code></p>
<p><em>For example, if you are the only caller in queue, UCCX will report that you are in position 1. Position 1, however, effectively means that there are 0 callers ahead of you. Therefore, we subtract 1 from 1 and get 0.</em></p>
<h2>3. Create a Generated Prompt</h2>
<p>Now that you have normalized your integer variable to reflect the correct position,  use the <strong>Create Generated Prompt</strong> step to create a media file from the variable. In the example below, I am taking the output and saving it to a prompt variable.</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/04-2013-02-25_13-09-11.png"><img class="alignnone  wp-image-6539" alt="04-2013-02-25_13-09-11" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/04-2013-02-25_13-09-11.png" width="500" height="calc" /></a></p>
<h2>4. Record the Pre- and Post- Prompts</h2>
<p>If the caller is to hear, &#8220;There are X callers ahead of you,&#8221; you&#8217;ll need to create two prompt variables and record them as such:</p>
<ul>
<li>1000.wav = &#8220;You are&#8221;</li>
<li>1001.wav = &#8220;callers ahead of you&#8221;</li>
</ul>
<p>In the next step, we&#8217;ll sandwich the prompt variables together into a single prompt.</p>
<h2>5. Concatenate them Prompts</h2>
<p>Use the <strong>Create Container Prompt</strong> to take your three prompts (i.e. the pre-, the post- and the position in queue) and merge them together. The output should be saved to a prompt variable.</p>
<p>Following the concatenation, use the <strong>Play Prompt</strong> step to play this sandwiched prompt for your called: &#8220;There are zero callers ahead of you.&#8221;</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/05-2013-02-25_13-09-28.png"><img class="alignnone  wp-image-6540" alt="05-2013-02-25_13-09-28" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/05-2013-02-25_13-09-28.png" width="500" height="calc" /></a></p>
<h2> Word to the Grammatically Wise</h2>
<p>In order to ensure proper grammar, I suggest adding an <strong>If</strong> statement to this module that adjusts the pre-prompt (i.e. promptPlaceInQueue1) to be <em>singular </em>or <em>plural. </em>It could be as easy as:</p>
<p><code>If intPlaceInQueue = 1 THEN (promptPlaceInQueue1 = P[1000sing.wav]</code><br />
<code>Else promptPlaceInQueue1 = P[1000pl.wav]</code></p>
<p>If you don&#8217;t do this for a more intellectually-minded organization, plan on making a U-turn and going back to the customer in order to correct this easy-to-overlook mistake!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=KBAVm0-8kN8:B9QFzdqCSGE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=KBAVm0-8kN8:B9QFzdqCSGE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=KBAVm0-8kN8:B9QFzdqCSGE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=KBAVm0-8kN8:B9QFzdqCSGE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=KBAVm0-8kN8:B9QFzdqCSGE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=KBAVm0-8kN8:B9QFzdqCSGE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=KBAVm0-8kN8:B9QFzdqCSGE:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/KBAVm0-8kN8" height="1" width="1"/>]]></content:encoded><description>Today, I&amp;#8217;m going to share with you an easy way to spice up your call center scripting in UCCX by configuring a position in queue announcement. While many companies are content to use the basic queue loop, having the ability to announce a caller&amp;#8217;s place in queue will win you the favor and admiration of [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6535/position-in-queue/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6535/position-in-queue/</feedburner:origLink></item><item><title>ANI-Based Call Blocking in CUCM</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/cNyWz8pi8vs/</link><category>Blog</category><category>Featured</category><category>Blacklist</category><category>Call Blocking</category><category>CUCM</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Fri, 22 Feb 2013 12:12:39 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6516</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Earlier this week, one of my customers asked for a way to blacklist numbers in CUCM. In CUCM 7.x and earlier releases this wasn&#8217;t possible. The best option an engineer could offer was to push the blacklisting to the PSTN. Even then, the gateway had to use SIP/H.323 (no MGCP) and the scalability was an issue (limit 15 rules).</p>
<p>In CUCM 8.x, Cisco released an option in translation patterns called &#8220;Route Next Hop by Calling Party Number.&#8221; Leveraging this capability, translation patterns can be transformed into blacklist entries.</p>
<p>While the procedure below closely follows a whitepaper posted in the Cisco Support Community, I have modified the process to route these blacklisted calls to a Unity Connection call handler. The benefit of this design is that the blacklisted callers, naughty as they may be, are informed of their &#8220;fall from grace&#8221; before being disconnected. Without this announcement, the blocked caller might assume that there is a telco problem and try again later.</p>
<h2>Call Flow Diagram</h2>
<p>This diagram illustrates the call flow through CUCM and UCXN.</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/01-2013-02-22_12-44-38.png"><img class="alignnone size-full wp-image-6517" alt="01-2013-02-22_12-44-38" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/01-2013-02-22_12-44-38.png" width="552" height="631" /></a></p>
<p><span id="more-6516"></span></p>
<h2>Configuration in CUCM</h2>
<p>The following outlines the items that must be configured in CUCM.</p>
<h3>CUCM Partitions</h3>
<p>1. US-MSP Blacklist PreProcess (US-MSP inbound partition prior to blacklist</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/02-2013-02-21_20-34-29.png"><img class="alignnone  wp-image-6518" alt="02-2013-02-21_20-34-29" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/02-2013-02-21_20-34-29-1024x361.png" width="500" height="calc" /></a></p>
<p>2. US-MSP Blacklist Filter (US-MSP inbound blacklist partition)</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/03-2013-02-21_20-34-47.png"><img class="alignnone  wp-image-6519" alt="03-2013-02-21_20-34-47" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/03-2013-02-21_20-34-47-1024x363.png" width="500" height="calc" /></a></p>
<h3>CUCM Calling Search Spaces (CSS)</h3>
<p>1. US-MSP Blacklist PreProcess (Partition 1: US-MSP Blacklist PreProcess)</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/04-2013-02-21_20-35-02.png"><img class="alignnone  wp-image-6520" alt="04-2013-02-21_20-35-02" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/04-2013-02-21_20-35-02.png" width="500" height="calc" /></a></p>
<p>2. US-MSP Blacklist Filter (Partition 1: US-MSP Blacklist Filter)</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/05-2013-02-21_20-35-10.png"><img class="alignnone  wp-image-6521" alt="05-2013-02-21_20-35-10" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/05-2013-02-21_20-35-10.png" width="500" height="calc" /></a></p>
<h3>CUCM Translation Patterns</h3>
<p>1. Translation Pattern: !</p>
<ul>
<li>Partition: US-MSP Blacklist PreProcess</li>
<li>Description: Receive inbound calls, route through ANI filter</li>
<li>Calling Search Space: US-MSP Blacklist Filter</li>
<li>Route Option: Route this pattern</li>
<li>Route Next Hop By Calling Number: Checked</li>
</ul>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/05-2013-02-21_21-01-38.png"><img class="alignnone  wp-image-6522" alt="05-2013-02-21_21-01-38" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/05-2013-02-21_21-01-38-1024x746.png" width="500" height="calc" /></a></p>
<p>2. Translation Pattern: [null]</p>
<ul>
<li>Partition: US-MSP Blacklist Filter</li>
<li>Description: Route non-blocked calls to US-MSP Gateway CSS</li>
<li>Calling Search Space: US-MSP Gateway</li>
<li>Route Option: Route this pattern</li>
<li>Route Next Hop By Calling Number: Unchecked</li>
</ul>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/06-2013-02-21_21-01-49.png"><img class="alignnone  wp-image-6523" alt="06-2013-02-21_21-01-49" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/06-2013-02-21_21-01-49-1024x760.png" width="500" height="calc" /></a></p>
<p>3. Translation Pattern: !</p>
<ul>
<li>Partition: US-MSP Blacklist Filter</li>
<li>Description: Route non-blocked calls to US-MSP Gateway CSS</li>
<li>Calling Search Space: US-MSP Gateway</li>
<li>Route Option: Route this pattern</li>
<li>Route Next Hop By Calling Number: Unchecked</li>
</ul>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/07-2013-02-21_21-01-56.png"><img class="alignnone  wp-image-6524" alt="07-2013-02-21_21-01-56" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/07-2013-02-21_21-01-56-1024x757.png" width="500" height="calc" /></a></p>
<p>4. Translation Pattern: [Number to Block]</p>
<ul>
<li>Partition: US-MSP Blacklist Filter</li>
<li>Description: Number blacklisted on 02/22/13</li>
<li>Calling Search Space: System CUC</li>
<li>Route Option: Route this pattern</li>
<li>Route Next Hop By Calling Number: Unchecked</li>
<li>Called Party Transform Mask: 81303</li>
</ul>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/08-2013-02-21_21-02-04.png"><img class="alignnone  wp-image-6525" alt="08-2013-02-21_21-02-04" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/08-2013-02-21_21-02-04-1024x759.png" width="500" height="calc" /></a></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/09-2013-02-21_21-02-09.png"><img class="alignnone  wp-image-6526" alt="09-2013-02-21_21-02-09" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/09-2013-02-21_21-02-09.png" width="400" height="calc" /></a></p>
<h3>CUCM Directory Number</h3>
<p>Directory Number: 81303</p>
<ul>
<li>Description: CUC Blacklist Call Handler</li>
<li>Voice Mail Profile: Default</li>
<li>Forward All: Voicemail</li>
</ul>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/10-2013-02-21_20-56-03.png"><img class="alignnone  wp-image-6527" alt="10-2013-02-21_20-56-03" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/10-2013-02-21_20-56-03-1024x952.png" width="500" height="calc" /></a></p>
<h2>Configuration in UCXN</h2>
<p>The following outlines the items that must be configured in UCXN.</p>
<h3>UCXN Connection Call Handler</h3>
<p>Display Name: Blacklist Greeting</p>
<ul>
<li>Extension: 81303</li>
<li>Callers Hear: My Personal Greeting (Edit &gt; Greeting &gt; Standard)</li>
<li>During Greeting: Ignore Caller Input (Edit &gt; Greeting &gt; Standard)</li>
<li>After Greeting: Call Action = Hang Up (Edit &gt; Greeting &gt; Standard)</li>
</ul>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/11-2013-02-22_11-14-44.png"><img class="alignnone size-full wp-image-6528" alt="11-2013-02-22_11-14-44" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/11-2013-02-22_11-14-44.png" width="349" height="451" /></a></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/12-2013-02-22_11-15-05.png"><img class="alignnone size-full wp-image-6529" alt="12-2013-02-22_11-15-05" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/12-2013-02-22_11-15-05.png" width="349" height="601" /></a></p>
<h3>UCXN Connection Forwarded Routing Rules</h3>
<p>Display Name: System Blacklist</p>
<ul>
<li>Send Call to: Call Hander &gt; Blacklist Greeting</li>
<li>Routing Rule 1: Where forwarding stations equals 81303</li>
</ul>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/13-2013-02-22_11-15-42.png"><img class="alignnone size-full wp-image-6530" alt="13-2013-02-22_11-15-42" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/13-2013-02-22_11-15-42.png" width="348" height="567" /></a></p>
<h3>UCXN Connection Redirect Parameter</h3>
<p>The following parameter may not be required in every scenario. The customer I was working with had PRI-based voice gateways that were integrated to CUCM using H.323 or SIP. For the H.323 gateways, the blacklist redirect to voice mail worked flawlessly. However, the SIP gateways had intermittent issues passing the correct redirecting number to Unity Connection.</p>
<p>From Unity Connection Administration, select Advanced, and Conversations. Locate the parameter “Use Last (Rather than First) Redirecting Number for Routing Incoming Calls” and turn on. Click save.</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/14-2013-02-22_11-14-25.png"><img class="alignnone  wp-image-6531" alt="14-2013-02-22_11-14-25" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/14-2013-02-22_11-14-25.png" width="500" height="calc" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=cNyWz8pi8vs:kQFGyFM_Faw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=cNyWz8pi8vs:kQFGyFM_Faw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=cNyWz8pi8vs:kQFGyFM_Faw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=cNyWz8pi8vs:kQFGyFM_Faw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=cNyWz8pi8vs:kQFGyFM_Faw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=cNyWz8pi8vs:kQFGyFM_Faw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=cNyWz8pi8vs:kQFGyFM_Faw:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/cNyWz8pi8vs" height="1" width="1"/>]]></content:encoded><description>Earlier this week, one of my customers asked for a way to blacklist numbers in CUCM. In CUCM 7.x and earlier releases this wasn&amp;#8217;t possible. The best option an engineer could offer was to push the blacklisting to the PSTN. Even then, the gateway had to use SIP/H.323 (no MGCP) and the scalability was an [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6516/ani-based-call-blocking/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6516/ani-based-call-blocking/</feedburner:origLink></item><item><title>VMware VCP-510 Study Notes – Part 2</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/FT6qo7jBLNs/</link><category>Blog</category><category>VMware</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Mon, 18 Feb 2013 12:55:02 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6503</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3>vStorage APIs for Array Integration (VAAI)</h3>
<p>vStorage API for Array Integration (VAAI) is an application program interface (API) framework from VMware that <strong>enables certain storage tasks, such as thin provisioning, to be offloaded from the VMware server virtualization hardware to the storage array</strong>.</p>
<p>Offloading these tasks <strong>lessens the processing workload on the virtual server hardware</strong>. For a storage administrator to make use of VAAI, the manufacturer of his storage system must have built support for VAAI into the storage system.</p>
<p>Deploying VAAI will provide a performance benefit for the following conditions:</p>
<ul>
<li>When a virtual disk has VMDK files stored on an NFS store.</li>
<li>When a virtual disk is deleted.</li>
</ul>
<p><span id="more-6503"></span></p>
<h3>Disk Multipathing Policies</h3>
<p>There are four multipathing policies that can be used with VMware ESXi 5.x and ESXi/ESX 4.x. These are referred to as Path Selection Plug-ins (PSP), and are also called Path Selection Policies.</p>
<ul>
<li><strong>Most Recently Used (MRU)</strong>: Selects the first working path, discovered at system boot time. If this path becomes unavailable, the ESXi/ESX host switches to an alternative path and continues to use the new path while it is available. This is the default policy for Logical Unit Numbers (LUNs) presented from an Active/Passive array. ESXi/ESX does not return to the previous path if, or when, it returns; it remains on the working path until it, for any reason, fails.</li>
<li><strong>Fixed (Fixed)</strong>: Uses the designated preferred path flag, if it has been configured. Otherwise, it uses the first working path discovered at system boot time. If the ESXi/ESX host cannot use the preferred path or it becomes unavailable, the ESXi/ESX host selects an alternative available path. The host automatically returns to the previously-defined preferred path as soon as it becomes available again. This is the default policy for LUNs presented from an Active/Active storage array.</li>
<li><strong>Round Robin (RR)</strong>: Uses an automatic path selection rotating through all available paths, enabling the distribution of load across the configured paths.
<ul>
<li>For Active/Passive storage arrays, only the paths to the active controller will be used in the Round Robin policy.</li>
<li>For Active/Active storage arrays, all paths will be used in the Round Robin policy.</li>
</ul>
</li>
<li><strong>Fixed path with Array Preference</strong>: The VMW_PSP_FIXED_AP policy was introduced in ESXi/ESX 4.1. It works for both Active/Active and Active/Passive storage arrays that support Asymmetric Logical Unit Access (ALUA). This policy queries the storage array for the preferred path based on the array&#8217;s preference. If no preferred path is specified by the user, the storage array selects the preferred path based on specific criteria.</li>
</ul>
<h3> Consolidating Virtual Machine Files</h3>
<p>There is an easy way to view if a virtual machine needs to have its system files consolidated.  From vSphere:</p>
<ol>
<li>Click on the host</li>
<li>Click on the <strong>Virtual Machines</strong> tab</li>
<li>Right-click on the column headers and select the <strong>Needs Consolidation</strong> field</li>
</ol>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/913figa.jpg"><img class="alignnone  wp-image-6505" alt="Needs Consolidation" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/913figa.jpg" width="550" height="calc" /></a></p>
<p><em>Note: Most of this content is taken from VMware&#8217;s vSphere Documentation Center, located here: <a href="http://pubs.vmware.com/vsphere-50/index.jsp">http://pubs.vmware.com/vsphere-50/index.jsp</a>.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=FT6qo7jBLNs:8VBtqm3VMLw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=FT6qo7jBLNs:8VBtqm3VMLw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=FT6qo7jBLNs:8VBtqm3VMLw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=FT6qo7jBLNs:8VBtqm3VMLw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=FT6qo7jBLNs:8VBtqm3VMLw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=FT6qo7jBLNs:8VBtqm3VMLw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=FT6qo7jBLNs:8VBtqm3VMLw:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/FT6qo7jBLNs" height="1" width="1"/>]]></content:encoded><description>vStorage APIs for Array Integration (VAAI) vStorage API for Array Integration (VAAI) is an application program interface (API) framework from VMware that enables certain storage tasks, such as thin provisioning, to be offloaded from the VMware server virtualization hardware to the storage array. Offloading these tasks lessens the processing workload on the virtual server hardware. [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6503/vmware-vcp-510-pt2/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6503/vmware-vcp-510-pt2/</feedburner:origLink></item><item><title>VMware VCP-510 Study Notes – Part 1</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/QZcjOc5REAo/</link><category>Blog</category><category>VMware</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Mon, 18 Feb 2013 11:31:01 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6500</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3><strong>What is are storage capabilities?</strong></h3>
<p>A storage capability <strong>outlines the quality of service that a storage system can deliver</strong>. It is a guarantee that the storage system can provide a specific set of characteristics for capacity, performance, availability, redundancy, and so on.</p>
<p>If a storage system uses Storage APIs &#8211; Storage Awareness (VASA), it informs vCenter Server that it can <strong>guarantee a specific set of storage features by presenting them as a storage capability</strong>. vCenter Server recognizes the capability and adds it to the list of storage capabilities in the Manage Storage Capabilities dialog box. Such storage capabilities are system-defined. vCenter Server assigns the system-defined storage capability to each datastore that you create from that storage system.</p>
<p>Storage capabilities can be generated (a) manually by an administrator or (b) retrieved through the VMware APIs for Storage Awareness (VASA).</p>
<p><span id="more-6500"></span></p>
<h3>Storage VMmotion Requirements and Limitations</h3>
<p>Storage vMotion is subject to the following requirements and limitations:</p>
<ul>
<li> Virtual machine <strong>disks must be in persistent mode or be raw device mappings (RDMs)</strong>. For virtual compatibility mode RDMs, you can migrate the mapping file or convert to thick-provisioned or thin-provisioned disks during migration as long as the destination is not an NFS datastore. If you convert the mapping file, a new virtual disk is created and the contents of the mapped LUN are copied to this disk. For physical compatibility mode RDMs, you can migrate the mapping file only.</li>
<li>Migration of virtual machines during <strong>VMware Tools installation</strong> is not supported. (Duh&#8230;)</li>
<li>The host on which the virtual machine is running <strong>must have a license</strong> that includes Storage vMotion. (Duh&#8230;)</li>
<li>ESX/ESXi 3.5 hosts must be licensed and configured for vMotion.</li>
<li>ESX/ESXi 4.0 and later hosts do not require vMotion configuration in order to perform migration with Storage vMotion.</li>
<li>The host on which the virtual machine is running must have access to both the source and target datastores.</li>
</ul>
<p>vSphere Features Not Supported with Fault Tolerance:</p>
<ul>
<li><strong>Snapshots</strong>. In addition, it is not possible to take snapshots of virtual machines on which Fault Tolerance is enabled.</li>
<li><strong>Storage vMotion</strong>. You cannot invoke Storage vMotion for virtual machines with Fault Tolerance turned on. To migrate the storage, you should temporarily turn off Fault Tolerance, and perform the storage vMotion action. When this is complete, you can turn Fault Tolerance back on.</li>
<li><strong>Linked clones</strong>. You cannot enable Fault Tolerance on a virtual machine that is a linked clone, nor can you create a linked clone from an FT-enabled virtual machine.</li>
<li><strong>VMware Consolidated Backup (VCB)</strong>. You cannot back up an FT-enabled virtual machine using VCB, vStorage API for Data Protection.</li>
</ul>
<h3>Non-VI workload detected on the datastore</h3>
<p>This informational event <strong>alerts the user of a potential misconfiguration or I/O performance issue caused by a non-ESX workload</strong>. It is triggered when Storage I/O Control (SIOC) detects that a workload that is not managed by SIOC is contributing to I/O congestion on a datastore that is managed by SIOC. (Congestion is defined as a datastore&#8217;s response time being above the SIOC threshold.)</p>
<p>Specific situations that can trigger this event include:</p>
<ul>
<li>The storage array is <strong>performing a system operation</strong> such as replication or RAID reconstruction.</li>
<li>The host is running in an <strong>unsupported configuration</strong>.</li>
<li>The storage media (spindles, SSD) on which this datastore is located is <strong>shared with volumes used by non-vSphere workloads</strong>.</li>
<li>The datastore is connected to an ESX/ESXi 4.0 host that is <strong>not managed by vCenter</strong>.</li>
</ul>
<p><em>Note: Most of this content is taken from VMware&#8217;s vSphere Documentation Center, located here: <a href="http://pubs.vmware.com/vsphere-50/index.jsp">http://pubs.vmware.com/vsphere-50/index.jsp</a>.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=QZcjOc5REAo:tpZdMQigbto:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=QZcjOc5REAo:tpZdMQigbto:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=QZcjOc5REAo:tpZdMQigbto:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=QZcjOc5REAo:tpZdMQigbto:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=QZcjOc5REAo:tpZdMQigbto:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=QZcjOc5REAo:tpZdMQigbto:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=QZcjOc5REAo:tpZdMQigbto:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/QZcjOc5REAo" height="1" width="1"/>]]></content:encoded><description>What is are storage capabilities? A storage capability outlines the quality of service that a storage system can deliver. It is a guarantee that the storage system can provide a specific set of characteristics for capacity, performance, availability, redundancy, and so on. If a storage system uses Storage APIs &amp;#8211; Storage Awareness (VASA), it informs [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6500/vmware-vcp-510-pt1/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6500/vmware-vcp-510-pt1/</feedburner:origLink></item><item><title>So I’m Learning Perl</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/NCikBlN91_c/</link><category>Blog</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Mon, 18 Feb 2013 08:28:13 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6495</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I finally broken down and began learning a programming language. While I realize this will only catapult me into further &#8220;nerddom,&#8221; I believe this is a good move for me technically.</p>
<p>Friday, I logged into <a href="http://techbus.safaribooksonline.com">Safari Books Online</a> and downloaded the following books:</p>
<ul>
<li><a href="http://techbus.safaribooksonline.com/book/programming/perl/9781449311063">Learning Perl &#8211; Sixth Edition</a></li>
<li><a href="http://techbus.safaribooksonline.com/book/programming/perl/9781449328047">Learning Perl Student Workbook, Second Edition</a></li>
<li><a href="http://techbus.safaribooksonline.com/book/programming/perl/9781449311186">Perl Pocket Reference, Fifth Edition</a></li>
</ul>
<p>As I was clearing out my <a href="http://getpocket.com/">Pocket</a> inbox, I came across this <a href="http://xkcd.com">xkcd.com</a> comic which seemed appropriate:</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/UTF-8Image.png"><img class="alignnone size-full wp-image-6496" alt="UTF-8Image" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/UTF-8Image.png" width="548" height="205" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=NCikBlN91_c:t64vRtJ9Lsc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=NCikBlN91_c:t64vRtJ9Lsc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=NCikBlN91_c:t64vRtJ9Lsc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=NCikBlN91_c:t64vRtJ9Lsc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=NCikBlN91_c:t64vRtJ9Lsc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=NCikBlN91_c:t64vRtJ9Lsc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=NCikBlN91_c:t64vRtJ9Lsc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/NCikBlN91_c" height="1" width="1"/>]]></content:encoded><description>I finally broken down and began learning a programming language. While I realize this will only catapult me into further &amp;#8220;nerddom,&amp;#8221; I believe this is a good move for me technically. Friday, I logged into Safari Books Online and downloaded the following books: Learning Perl &amp;#8211; Sixth Edition Learning Perl Student Workbook, Second Edition Perl [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6495/so-im-learning-perl/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6495/so-im-learning-perl/</feedburner:origLink></item><item><title>Updating Jabber Contact Lists in Bulk</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/ch34VI4U6M4/</link><category>Blog</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Fri, 15 Feb 2013 12:22:34 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6484</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Last week during a Jabber training session, one of the administrators asked me if it was possible to bulk import a user&#8217;s &#8220;buddy list&#8221; into the IM &amp; Presence (formerly CUP) server. Ironically, I had never before received this reasonable request. Not knowing if it was possible or not, I went to the lab and did some poking around.</p>
<p>It turns out that it is, indeed, possible to import contacts into Jabber. However, the method is not very scalable for large deployments (as you will see).</p>
<h3>Highlights:</h3>
<ul>
<li>The import takes place on the IM &amp; Presence server using BAT (Bulk Administration Tool).</li>
<li>The input file is a CSV that can be created in a text editor, Excel, or Perl.</li>
<li>Contacts are added on a per-user basis; they cannot be added globally without additional rows in the CSV file.<span id="more-6484"></span></li>
</ul>
<h3>The Input File</h3>
<p>The input file is stored as a CSV with the following schema:</p>
<p><code>User ID,User Domain,Contact ID,Contact Domain,Nickname,Group Name</code></p>
<p>The format is self-explanatory except for one note of caution. The first two fields relate to the user whose buddy list you are building. In this case, my test account of &#8220;ciscotest&#8221; is being used. The fields that follow correspond to the contact being added to the list.</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-01.png"><img class="alignnone  wp-image-6485" alt="Jabber-01" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-01.png" width="590" height="calc" /></a></p>
<p>Due to this format, scalability is a major concern. If I wanted to add &#8220;Lori Bekkum&#8221; to 200 user&#8217;s buddy lists, I&#8217;d need to have 200 rows in the CSV file.  It is for this reason that I would only recommend using this bulk import method in two scenarios:</p>
<ol>
<li><strong>When the import is done for a small subset of users</strong> who can&#8217;t be bothered to add contacts to their own buddy lists. These users are typically C-level executives who will not attend training and want the system to be customized to their needs right out the gate.</li>
<li><strong>When all users will begin with the same set of contacts in their buddy list</strong>. It would be relatively easy to add 5-10 contacts in everyone&#8217;s list (e.g. key IT personnel, front desk reception, security, etc.). Anything beyond this is possible, yes, but would require some Perl skills to reduce the amount of effort involved in building the CSV.<strong></strong></li>
</ol>
<h3>The Process</h3>
<p>Once the CSV file is created, perform the following steps:</p>
<p><strong>1. Notice how dull and lifeless the client&#8217;s buddy list appears. *Frown*</strong></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-02.png"><img class="alignnone  wp-image-6486" alt="Jabber-02" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-02.png" width="211" height="364" /></a></p>
<p><strong>2. Upload the CSV file to the IM &amp; Presence Server</strong></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-03.png"><img class="alignnone size-full wp-image-6487" alt="Jabber-03" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-03.png" width="556" height="256" /></a></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-04.png"><img class="alignnone  wp-image-6488" alt="Jabber-04" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-04.png" width="590" height="calc" /></a></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-05.png"><img class="alignnone  wp-image-6489" alt="Jabber-05" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-05.png" width="590" height="calc" /></a></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-06.png"><img class="alignnone  wp-image-6490" alt="Jabber-06" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-06.png" width="590" height="calc" /></a></p>
<p><strong>3. Navigate to Bulk Administration &gt; Contact List &gt; Update to schedule/run the batch job.</strong></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-07.png"><img class="alignnone size-full wp-image-6491" alt="Jabber-07" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-07.png" width="566" height="224" /></a></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-08.png"><img class="alignnone  wp-image-6492" alt="Jabber-08" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-08.png" width="590" height="calc" /></a></p>
<p><strong>4. The job can be run during production hours. The change is instantaneous. The users will notice the new contacts added to their buddy lists. *Smile*</strong></p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-09.png"><img class="alignnone size-full wp-image-6493" alt="Jabber-09" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/Jabber-09.png" width="300" height="524" /></a></p>
<h3>Perl Experts?</h3>
<p>Are there any Perl experts out there who would want to work with me on a script to simplify the CSV creation process?</p>
<p>I&#8217;m envisioning a Perl script that would take a CSV input file like this:</p>
<p><code>username, domain, full name and group label</code></p>
<p>&#8230;and compile a CSV file for IM &amp; Presence that would insert every user into all buddy lists.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=ch34VI4U6M4:rCV9PeDCZEM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=ch34VI4U6M4:rCV9PeDCZEM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=ch34VI4U6M4:rCV9PeDCZEM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=ch34VI4U6M4:rCV9PeDCZEM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=ch34VI4U6M4:rCV9PeDCZEM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=ch34VI4U6M4:rCV9PeDCZEM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=ch34VI4U6M4:rCV9PeDCZEM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/ch34VI4U6M4" height="1" width="1"/>]]></content:encoded><description>Last week during a Jabber training session, one of the administrators asked me if it was possible to bulk import a user&amp;#8217;s &amp;#8220;buddy list&amp;#8221; into the IM &amp;#38; Presence (formerly CUP) server. Ironically, I had never before received this reasonable request. Not knowing if it was possible or not, I went to the lab and [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6484/updating-jabber-contacts/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6484/updating-jabber-contacts/</feedburner:origLink></item><item><title>Call Flow from Hell</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/s63ETgEkt4M/</link><category>Featured</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Tue, 12 Feb 2013 14:46:45 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6475</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I just heard about <a href="http://thedoghousediaries.com/">Dog House Diaries</a> today from my friend <a href="http://amyengineer.com/">@AmyEngineer</a>. Their take on the history of faxing (<a href="http://ciscovoiceguru.com/6470/history-of-the-fax-machine/">link</a>) won my attention and led me to the comic below.</p>
<p>Having designed call centers for eight years, this <strong>really</strong> hit home.</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/2010-07-30-c3c4ab4.png"><img class="alignnone  wp-image-6476" alt="Call Flow from Hell" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/2010-07-30-c3c4ab4.png" width="560" height="571" /></a><span id="more-6475"></span></p>
<h3>Programming a Backdoor</h3>
<p>Every so often, Mr. Customer asks me to develop a backdoor to the call center. It usually goes something like this:</p>
<blockquote><p>Matthew -</p>
<p>I hope you can help me with this!</p>
<p>Yesterday, I was in a meeting with the Vice President of Marketing and, whew, was she upset! While vacationing in the Swiss Alps, she had an issue with her iPhone. When she called into the IT Hotline, she was on hold for over 10 minutes. This was not acceptable to her. She asked me if I could ensure that all calls from her cell phone would get priority over all other calls. Can you show me how to do that?</p></blockquote>
<p>Adding a backdoor to a call center script in UCCX is very simple. In the case of Mrs. VP, we need to do two things: (1) reroute calls based on calling number or &#8220;ANI&#8221; and (2) increase the priority of the call once it hits the queue.</p>
<h3>Rerouting Calls Based on Calling Number</h3>
<p>First off, we capture the Calling Number and assign it to the variable<strong> sCallingNumber </strong>using the <strong>Get Call Contact I</strong><strong>nfo </strong>step.</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/2013-02-12_16-22-20.png"><img class="alignnone  wp-image-6480" alt="2013-02-12_16-22-20" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/2013-02-12_16-22-20.png" width="568" height="220" /></a></p>
<p>Once the information has been captured, we compare the <strong>sCallingNumber</strong> variable to Mrs. VP&#8217;s cell phone (stored in the image above as <strong>calling_Number_Tester</strong> using an <strong>If</strong> step.</p>
<p>If <strong>sCallingNumber == calling_Number_Tester</strong> is true, we send the call to the queue using the <strong>Goto</strong> step.<strong> </strong></p>
<p>At this point, the call has bypassed all menu prompts and gone straight to the queue. Of course, you&#8217;ll need to make sure the call is classified correctly (for reporting) and that the correct CSQ (i.e. skill group) is assigned. Those items are not covered in this post.</p>
<h3>Increasing the Priority of a Call in Queue</h3>
<p>If the call arrives in the queue, we need to increase the priority of Mrs. VP so she can &#8220;cut in line.&#8221; We do that using the <strong>Set Priority</strong> step, nestled inside an <strong>If</strong> statement like we did earlier. If a match is made, increase the priority of this call by 5 (or 10, the number is arbitrary)</p>
<p><a href="http://ciscovoiceguru.com/wp-content/uploads/2013/02/2013-02-12_16-38-53.png"><img class="alignnone  wp-image-6481" alt="2013-02-12_16-38-53" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/2013-02-12_16-38-53.png" width="558" height="145" /></a></p>
<p>You will likely need to do some tweaking for your particular scenario, but this gives you the major nuts and bolts. With a little UCCX scripting know-how, you can save another poor soul from the <strong>Call Flow from Hell!</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=s63ETgEkt4M:4C1PSVDCAgA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=s63ETgEkt4M:4C1PSVDCAgA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=s63ETgEkt4M:4C1PSVDCAgA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=s63ETgEkt4M:4C1PSVDCAgA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=s63ETgEkt4M:4C1PSVDCAgA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=s63ETgEkt4M:4C1PSVDCAgA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=s63ETgEkt4M:4C1PSVDCAgA:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/s63ETgEkt4M" height="1" width="1"/>]]></content:encoded><description>I just heard about Dog House Diaries today from my friend @AmyEngineer. Their take on the history of faxing (link) won my attention and led me to the comic below. Having designed call centers for eight years, this really hit home. Programming a Backdoor Every so often, Mr. Customer asks me to develop a backdoor [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6475/call-flow-from-hell/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6475/call-flow-from-hell/</feedburner:origLink></item><item><title>History of the Fax Machine</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/szld1y_iOWY/</link><category>Blog</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Tue, 12 Feb 2013 13:31:29 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6470</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I came across this little &#8220;beauty&#8221; of a comic on Maarten Verkoren&#8217;s <a href="http://verkoren.wordpress.com">blog</a>. Created by the guys over at <a href="http://thedoghousediaries.com/about-us">The Doghouse Diaries</a>, it perfectly captures my opinion of faxing.</p>
<p>B-E-A-utiful!</p>
<p><img class="alignnone  wp-image-6471" alt="Fax History" src="http://ciscovoiceguru.com/wp-content/uploads/2013/02/ianidag.jpeg" width="512" height="245" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=szld1y_iOWY:vwh-ngmGBgY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=szld1y_iOWY:vwh-ngmGBgY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=szld1y_iOWY:vwh-ngmGBgY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=szld1y_iOWY:vwh-ngmGBgY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=szld1y_iOWY:vwh-ngmGBgY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=szld1y_iOWY:vwh-ngmGBgY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=szld1y_iOWY:vwh-ngmGBgY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/szld1y_iOWY" height="1" width="1"/>]]></content:encoded><description>I came across this little &amp;#8220;beauty&amp;#8221; of a comic on Maarten Verkoren&amp;#8217;s blog. Created by the guys over at The Doghouse Diaries, it perfectly captures my opinion of faxing. B-E-A-utiful!</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6470/history-of-the-fax-machine/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6470/history-of-the-fax-machine/</feedburner:origLink></item><item><title>Enable Calendar Presence</title><link>http://feedproxy.google.com/~r/CiscoVoiceGuru/~3/3_G3dKQJL38/</link><category>Blog</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matthew Berry</dc:creator><pubDate>Fri, 08 Feb 2013 14:08:31 PST</pubDate><guid isPermaLink="false">http://ciscovoiceguru.com/?p=6465</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Here&#8217;s a quick post for my friends in the field.</p>
<p>When Cisco originally released the Cisco Unified Presence Communicator (CUPC) client several years ago, they provided end-users with the ability to share their calendar presence.</p>
<p>Jabber for Windows, which replaced CUPC, does not provide the same simple way for the end-user to share his/her calendar presence status (e.g. “In a Meeting” or “Available”).</p>
<p>In order for the end-user to “opt-in” to this feature, he/she must login to the Cisco Unified Presence User Options web page (https://[imp server]/cupuser).  Obviously, this is not the most ideal situation.</p>
<p>In order to enable this feature for the end-user, perform the following steps:</p>
<ol>
<li>SSH into the Cisco Unified Presence Server</li>
<li>Login with the OS administrator ID and the defined password.</li>
<li>From the command prompt enter the following command, substituting “username” for the end-user account being modified:</li>
</ol>
<p style="padding-left: 30px;"><strong> run sql execute procedure spSetUserCalendaring((select pkid from enduser where userid like ‘username&#8217;),&#8217;t',&#8217;t') </strong></p>
<p>To adjust this setting for multiple users, I leveraged Excel and the concatenate formula as follows:</p>
<ul>
<li>Column A: <em>This column should contain the usernames</em></li>
<li>Column B: =CONCATENATE(&#8220;     run sql execute procedure spSetUserCalendaring((select pkid from enduser where userid like ‘&#8221;,A2,&#8221;&#8216;),&#8217;t',&#8217;t') &#8220;</li>
</ul>
<p>Take the results from Column B, copy the values and paste into TextWrangler (Mac) or Notepad++ (Windows).  From here, you can copy/paste the commands into the SSH terminal.</p>
<p>If you notice, I added 5 spaces in front of the SQL command. During my testing, I found that some of the initial characters can be cut off when pasting multiple lines into the CLI.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=3_G3dKQJL38:lnbHsBmhKpM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=3_G3dKQJL38:lnbHsBmhKpM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=3_G3dKQJL38:lnbHsBmhKpM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=3_G3dKQJL38:lnbHsBmhKpM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=3_G3dKQJL38:lnbHsBmhKpM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?a=3_G3dKQJL38:lnbHsBmhKpM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CiscoVoiceGuru?i=3_G3dKQJL38:lnbHsBmhKpM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CiscoVoiceGuru/~4/3_G3dKQJL38" height="1" width="1"/>]]></content:encoded><description>Here&amp;#8217;s a quick post for my friends in the field. When Cisco originally released the Cisco Unified Presence Communicator (CUPC) client several years ago, they provided end-users with the ability to share their calendar presence. Jabber for Windows, which replaced CUPC, does not provide the same simple way for the end-user to share his/her calendar [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ciscovoiceguru.com/6465/enable-calendar-presence/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://ciscovoiceguru.com/6465/enable-calendar-presence/</feedburner:origLink></item></channel></rss>
