Re: How to change to First name first in Corporate Directory in

From: Radioactive Frog (pbhatkoti@gmail.com)
Date: Sat Mar 21 2009 - 01:41:09 ART


Hehe,
there is a bit complex process to change this behavior.

you need to access CCM root shell which cisco doens't allow.

Somehow if you managed that access, just update the
xmldirectorylist.other.jsp file

[root@cucm7 ccmcip]# pwd
/usr/local/thirdparty/apache-tomcat-5.5.27/webapps/ccmcip
[root@cucm7 ccmcip]#
[root@cucm7 ccmcip]#

[root@cucm7 ccmcip]# more xmldirectorylist.other.jsp
<%-----------------------------------------------------------------------------
 Copyright (c) 2005 Cisco Systems, Inc. All rights reserved.
 File: xmldirectorylist.other.jsp, created 20050322
 Author: Jerry Miernik
 Purpose: Searches the corporate directory by last and first name and by
          telephone number.
          20050825 ilike changed to LIKE: ilike is not supported by
Informix,
          also it seems simpler thus safer to not change the user-entered
          search pattern especially in languages such as Chinese, Japanese,
...
-----------------------------------------------------------------------------%>
<%@ page errorPage="ExceptionError.jsp?script=xmldirectorylist.other.jsp"%>
<%@ page buffer="32kb"%>
<%@ page session="true" autoFlush="false"%>
<%@ page contentType="text/xml"%>

<%@ taglib prefix="c" uri="coreTags"%>
<%@ taglib prefix="fn" uri="functionTags"%>
<%@ taglib prefix="log" uri="logTags"%>

<jsp:useBean id="sqlb" class="com.cisco.ccmcip.SqlBean" scope="request"/>
<jsp:useBean id="flb" class="com.cisco.ccmcip.FlBean" scope="request"/>
<c:set var="myName" value="xmldirectorylist.other.jsp"/>

<log:info category="com.cisco.ccmcip" message="${myName} begins
remote=${pageCon
text.request.remoteAddr} queryString=${pageContext.request.queryString} from
pas
t query rowCount=${sessionScope['rowCount']} session.id=${
pageContext.session.id
}"/>

<jsp:setProperty name="flb" property="f"
  value="${pageContext.request.queryString}"/>
<jsp:setProperty name="flb" property="l"
  value="${pageContext.request.queryString}"/>
<c:set var="first"><jsp:getProperty name="flb" property="f"/></c:set>
<c:set var="last"> <jsp:getProperty name="flb" property="l"/></c:set>

<c:set var="telNum" value=""/>
<c:if test="${not empty param.n}">
 <c:set var="telNum" value="${param.n}"/>
</c:if>
<c:set var="start" value="1"/>
<c:if test="${not empty param.start}">
 <c:set var="start" value="${param.start}"/>
</c:if>
<log:info category="com.cisco.ccmcip" message="${myName} first=${first}
last=${l
ast} telNum=${telNum} start=${start}"/>

<%--The tilted apostrophe may not be issued by a low- or middle-end device,
    but we keep this code the same as for a high-end device. Does not
harm.--%>
<c:set var="lastMod" value="${fn:replace(last,tiltedApo,twoApo)}"/>
<c:set var="firstMod" value="${fn:replace(first,tiltedApo,twoApo)}"/>

<c:if test="${start == 1}"> <%-- get total records for phone to display --%>
 <jsp:setProperty name="sqlb" property="rs"
  value="select count(*) AS count from enduser where
  ((my_lower(lastname) LIKE my_lower('${last}%')) or
   (my_lower(lastname) LIKE my_lower('${lastMod}%')))
  and
  ((my_lower(firstname) LIKE my_lower('${first}%')) or
   (my_lower(firstname) LIKE my_lower('${firstMod}%')))
  and (telephonenumber LIKE '${telNum}%') and tkuserprofile = 1"/>
 <c:set var="rows"><jsp:getProperty name="sqlb" property="next"/></c:set>
 <c:set var="rowCount" scope="session"><jsp:getProperty name="sqlb"
property="ro
wCount"/></c:set>
 <log:info category="com.cisco.ccmcip" message="${myName} query
rowCount=${sessi
onScope['rowCount']}, remote=${pageContext.request.remoteAddr}"/>
</c:if>

<c:choose>
 <c:when test="${0 < sessionScope['rowCount']}"> <%-- there are records --%>

  <c:choose>
   <c:when test="${sessionScope['rowCount'] <= start + numRowsAfterFirst}">
    <c:set var="endRow" value="${sessionScope['rowCount']}"/>
    <c:set var="numRows" value="${rowCount - start + 1}"/>
    <c:set var="showNext" value="false"/>
   </c:when>
   <c:otherwise>
    <c:set var="endRow" value="${start + numRowsAfterFirst}"/>
    <c:set var="numRows" value="${numRowsAfterFirst + 1}"/>
    <c:set var="showNext" value="true"/>
   </c:otherwise>
  </c:choose>

  <jsp:setProperty name="sqlb" property="rs"
   value="select skip ${start-1} first ${numRowsAfterFirst + 1}
   firstname, lastname, telephonenumber from enduser where
   ((my_lower(lastname) LIKE my_lower('${last}%')) or
    (my_lower(lastname) LIKE my_lower('${lastMod}%')))
   and
   ((my_lower(firstname) LIKE my_lower('${first}%')) or
    (my_lower(firstname) LIKE my_lower('${firstMod}%')))
   and (telephonenumber LIKE '${telNum}%') and tkuserprofile = 1
   order by my_lower(lastname), my_lower(firstname), telephonenumber asc"/>
  <%--prepare the return parameters--%>
  <c:set var="last1" value="${fn:replace(last,replaceamp,findamp)}"/>
  <c:set var="last2" value="${fn:replace(last1,replacegt,findgt)}"/>
  <c:set var="last3" value="${fn:replace(last2,replacelt,findlt)}"/>
  <c:set var="first1" value="${fn:replace(first,replaceamp,findamp)}"/>
  <c:set var="first2" value="${fn:replace(first1,replacegt,findgt)}"/>
  <c:set var="first3" value="${fn:replace(first2,replacelt,findlt)}"/>
  <%
   if (out != null && out.getBufferSize() != 0)
     out.clearBuffer();
  %>
  <?xml version="1.0"?>
  <CiscoIPPhoneDirectory>
   <c:forEach begin="1" end="${numRows}">
    <c:set var="isRow"><jsp:getProperty name="sqlb"
property="next"/></c:set>
    <c:set var="lastname">
     <jsp:getProperty name="sqlb" property="lastname"/>
    </c:set>
    <c:set var="firstname">
     <jsp:getProperty name="sqlb" property="firstname"/>
    </c:set>
    <c:set var="telephonenumber">
     <jsp:getProperty name="sqlb" property="telephonenumber"/>
    </c:set>

    <c:if test="${32 < fn:length(telephonenumber)}">
     <log:info category="com.cisco.ccmcip" message="${myName} from
${telephonenu
mber} cutting off the rightmost ${fn:substring(telephonenumber,32,-1)}"/>
     <c:set var="telephonenumber"
      value="${fn:substring(telephonenumber,0,32)}"/>
    </c:if>
    <c:set var="telephonenumber"
     value="${fn:replace(telephonenumber,replaceamp,findamp)}"/>
    <c:set var="telephonenumber"
     value="${fn:replace(telephonenumber,replacegt,findgt)}"/>
    <c:set var="telephonenumber"
     value="${fn:replace(telephonenumber,replacelt,findlt)}"/>

    <c:set var="lastn" value="${lastname}"/>
    <c:if test="${fn:contains(lastname,'...')}">
     <c:set var="lastn" value="${fn:substringBefore(lastname,'...')}"/>
    </c:if>
    <c:set var="firstn" value="${firstname}"/>
    <c:if test="${fn:contains(firstname,'...')}">
     <c:set var="firstn" value="${fn:substringBefore(firstname,'...')}"/>
    </c:if>

    <c:set var="lastfirst" value="${lastn}, ${firstn}"/>
    <c:if test="${32 < fn:length(lastfirst)}">
     <log:info category="com.cisco.ccmcip" message="${myName} from
${lastfirst}
cutting off the rightmost ${fn:substring(lastfirst,32,-1)}"/>
     <c:set var="lastfirst" value="${fn:substring(lastfirst,0,32)}"/>
    </c:if>

    <%--20051230: the 7912 and 7960 phones today do not accept escaping the
        apostrophe and quote--%>
    <c:set var="lastfirst"
     value="${fn:replace(lastfirst,replaceamp,findamp)}"/>
    <c:set var="lastfirst"
value="${fn:replace(lastfirst,replacegt,findgt)}"/>
    <c:set var="lastfirst"
value="${fn:replace(lastfirst,replacelt,findlt)}"/>

    <DirectoryEntry>
     <Name>${lastfirst}</Name>
     <Telephone>${telephonenumber}</Telephone>
    </DirectoryEntry>
   </c:forEach>
   <c:set var="tmpStr" value="${dictionary['msgRecords']}"/>
   <c:set var="tmpStr" value="${fn:replace(tmpStr,'%S1',start)}"/>
   <c:set var="tmpStr" value="${fn:replace(tmpStr,'%S2',endRow)}"/>
   <c:set var="tmpStr"
value="${fn:replace(tmpStr,'%S3',sessionScope['rowCount']
)}"/>
   <Prompt>${tmpStr}</Prompt>
   <SoftKeyItem>
    <Name>${dictionary['lblDial']}</Name>
    <URL>SoftKey:Dial</URL>
    <Position>1</Position>
   </SoftKeyItem>
   <SoftKeyItem>
    <Name>${dictionary['lblEditDial']}</Name>
    <URL>SoftKey:EditDial</URL>
    <Position>2</Position>
   </SoftKeyItem>
   <SoftKeyItem>
    <Name>${dictionary['lblExit']}</Name>
    <URL>SoftKey:Exit</URL>
    <Position>3</Position>
   </SoftKeyItem>
   <c:if test="${showNext == true}">
    <SoftKeyItem>
     <Name>${dictionary['lblNext']}</Name>

<URL>${referer}/xmldirectorylist.jsp?l=${last3}&amp;f=${first3}&amp;n=${tel
Num}&amp;start=${endRow + 1}</URL>
     <Position>4</Position>
    </SoftKeyItem>
   </c:if>
   <SoftKeyItem>
    <Name>${dictionary['lblSearch']}</Name>

<URL>${referer}/xmldirectoryinput.jsp?l=${last3}&amp;f=${first3}&amp;n=${tel
Num}</URL>
    <Position>5</Position>
   </SoftKeyItem>
  </CiscoIPPhoneDirectory>
  <% out.flush(); %>
 </c:when>

 <c:otherwise>
  <%
   if (out != null && out.getBufferSize() != 0)
     out.clearBuffer();
  %>
  <?xml version="1.0"?>
  <CiscoIPPhoneDirectory>
   <Prompt>${dictionary['msgNoRecords']}</Prompt>
  </CiscoIPPhoneDirectory>
  <% out.flush(); %>
 </c:otherwise>
</c:choose>
[root@cucm7 ccmcip]#
[root@cucm7 ccmcip]#

On Fri, Mar 20, 2009 at 3:53 AM, nhatphuc <nhatphuc@gmail.com> wrote:

> Hi Group,
>
> In CUCM7, when I use the corporate directory to search for user, it display
> Last name, First name. How can I change it to First name, Last name?
>
> Thanks
>
> Phuc
>
>
> Blogs and organic groups at http://www.ccie.net
>
> _______________________________________________________________________
> Subscription information may be found at:
> http://www.groupstudy.com/list/CCIELab.html

Blogs and organic groups at http://www.ccie.net



This archive was generated by hypermail 2.1.4 : Mon Apr 06 2009 - 06:44:06 ART