From: Radioactive Frog (pbhatkoti@gmail.com)
Date: Sat Mar 21 2009 - 01:56:03 ART
also you may need to edit
/usr/local/thirdparty/apache-tomcat-5.5.27/webapps/ccmcip/WEB-INF
i haven't tested it but when i have time i will.
On Sat, Mar 21, 2009 at 3:41 PM, Radioactive Frog <pbhatkoti@gmail.com>wrote:
> 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@cucm7cc/usr/local/thirdparty/apache-tomcat-5.5.27/webapps/ccmcip/WEB-INF
>
> mcip]# 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