CME CallManager Express using External Directory

Answered Question
Sep 7th, 2007
User Badges:

Does anyone happen to have a sample on setting up an external directory with CME - CallManager Express using xml and asp...cgi...etc that can query a xml, test file or database?


I created an XML file named services.xml that I put on a web server and pointed the services URL to.


In the services URL I have a couple items one of which is the directory. Under the directry url then points to another xml file that is named directory.xml That seems to work in the sense of now if I go to services then Directory, it will return all the entries in the xml file. But what I am trying to do is set it up so I can input the first three characters of the name and have it pull that name out of an xml or text file.



Here is what I have so far....


Services Url

url services http://192.168.61.121/services.xml


##################################


Services.xml

<?xml version="1.0"?>


<!-- File Name: services.xml -->



<CiscoIPPhoneMenu>

<Title>SERVICES</Title>

<Prompt>SELECT AN OPTION</Prompt>

<MenuItem>

<Name>DIRECTORY</Name>

<URL>http://192.168.61.121/directorylookup.xml</URL>

</MenuItem>

<MenuItem>

<Name>CUSTOMERS</Name>

<URL>http://192.168.61.121/directory.xml</URL>

</MenuItem>

<MenuItem>

<Name>Berbee</Name>

<URL>http://phone-xml.berbee.com/menu.xml</URL>

</MenuItem>

<MenuItem>

<Name>SHOW ITEM</Name>

<URL>http://192.168.0.71/lj.xml</URL>

</MenuItem>

</CiscoIPPhoneMenu>


##################################


directorylookup.xml


<?xml version="1.0"?>


<!-- File Name: directorylookup.xml -->


<CiscoIPPhoneInput>

<Title>Customer Lookup</Title>

<Prompt>Enter first letters of name</Prompt>

<URL>http://192.168.61.121/directory.xml</URL>

<InputItem>

<DisplayName>Name</DisplayName>

<QueryStringParam>DATAFLD</QueryStringParam>

<InputFlags>A</InputFlags>

<DefaultValue />

</InputItem>

</CiscoIPPhoneInput>


##################################



<?xml version="1.0"?>


<!-- File Name: Directory.xml -->


<CiscoIPPhoneDirectory>

<Title>CVE Directory</Title>

<Prompt></Prompt>

<DirectoryEntry>

<Name>Craig</Name>

<Telephone>3611</Telephone>

</DirectoryEntry>

</CiscoIPPhoneDirectory>



####################################

Correct Answer by julian.anstey about 9 years 8 months ago

I have an Excel file wwwroot\excel\directory.xls which looks like this:


Name Number

Smith 0123456

Jones 0246810

etc.


I have a range defined as follows:


=Dalen1!$A$1:$B$213


(There are 212 entries in my directory).


The other files are stored in wwwroot.

My menu is as follows:



Menu

Select option

Directory

http://123.45.67.89/excel.xml




excel.xml is defined as follows:



Directory

Input start of name

http://123.45.67.89/excel.asp


Search for

param1


A





excel.asp is defined as follows:


<%

Response.ContentType = "text/xml"


' Get parameter

param1 = Request.QueryString("param1")

' Set up the connection

Set oConn = Server.CreateObject("ADODB.connection")

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=c:\Inetpub\wwwroot\Excel\Directory.xls;" & _

"Extended Properties=""Excel 8.0;HDR=Yes"""


' Run the SQL Query

Set RS=Server.CreateObject("ADODB.recordset")

selstr = "SELECT * FROM my_range WHERE Name LIKE '" & param1 & "%' ORDER BY Name"

RS.open selstr, oConn


' Get record count

iCount = 0

do until RS.EOF

iCount = iCount + 1

RS.movenext

Loop

If iCount > 0 Then

RS.movefirst

End If


' Create XML Directory

Response.Write ( "")

Response.Write ( "Directory")

If iCount = 1 Then

Response.Write ( "1 entry found")

Else

Response.Write ( "" & iCount & " entries found")

End If


'note maximum 32 entries in CiscoIPPhoneDirectory object

iLoop = 0

do until RS.EOF or iLoop = 32

iLoop = iLoop + 1

Response.Write ( "")

Response.Write ( "" & RS("Name") & "" & RS("Number") & "" )

Response.Write ( "" )

RS.movenext

Loop


Response.Write ( "")


' Close the recordset/connection

RS.Close

Set RS = Nothing

oConn.Close

Set oConn = Nothing

%>


  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (1 ratings)
Loading.
Correct Answer
julian.anstey Mon, 09/10/2007 - 07:08
User Badges:

I have an Excel file wwwroot\excel\directory.xls which looks like this:


Name Number

Smith 0123456

Jones 0246810

etc.


I have a range defined as follows:


=Dalen1!$A$1:$B$213


(There are 212 entries in my directory).


The other files are stored in wwwroot.

My menu is as follows:



Menu

Select option

Directory

http://123.45.67.89/excel.xml




excel.xml is defined as follows:



Directory

Input start of name

http://123.45.67.89/excel.asp


Search for

param1


A





excel.asp is defined as follows:


<%

Response.ContentType = "text/xml"


' Get parameter

param1 = Request.QueryString("param1")

' Set up the connection

Set oConn = Server.CreateObject("ADODB.connection")

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=c:\Inetpub\wwwroot\Excel\Directory.xls;" & _

"Extended Properties=""Excel 8.0;HDR=Yes"""


' Run the SQL Query

Set RS=Server.CreateObject("ADODB.recordset")

selstr = "SELECT * FROM my_range WHERE Name LIKE '" & param1 & "%' ORDER BY Name"

RS.open selstr, oConn


' Get record count

iCount = 0

do until RS.EOF

iCount = iCount + 1

RS.movenext

Loop

If iCount > 0 Then

RS.movefirst

End If


' Create XML Directory

Response.Write ( "")

Response.Write ( "Directory")

If iCount = 1 Then

Response.Write ( "1 entry found")

Else

Response.Write ( "" & iCount & " entries found")

End If


'note maximum 32 entries in CiscoIPPhoneDirectory object

iLoop = 0

do until RS.EOF or iLoop = 32

iLoop = iLoop + 1

Response.Write ( "")

Response.Write ( "" & RS("Name") & "" & RS("Number") & "" )

Response.Write ( "" )

RS.movenext

Loop


Response.Write ( "")


' Close the recordset/connection

RS.Close

Set RS = Nothing

oConn.Close

Set oConn = Nothing

%>


craiglcve Mon, 09/10/2007 - 18:44
User Badges:

AWESOME.... Thanks, I will give that a shot.

Thanks again.

filiberto.aguirre Sun, 08/08/2010 - 08:45
User Badges:

Hi julian



I'm trying your solution but I noticed that if I set the new url services or url directories I lost the default url services ( url services http:///voiceview/common/login.do ) or  local directory.


I would like to preserve voiceview and local directory, and have the additional external directory


In you solution should I set  url services or  url directories?,  is is possible to preserve the default options?


regards

Actions

This Discussion