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}&f=${first3}&n=${tel
Num}&start=${endRow + 1}</URL>
<Position>4</Position>
</SoftKeyItem>
</c:if>
<SoftKeyItem>
<Name>${dictionary['lblSearch']}</Name>
<URL>${referer}/xmldirectoryinput.jsp?l=${last3}&f=${first3}&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