<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Administration XML Questions</title>
  <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_category?p_l_id=&amp;mbCategoryId=1052601" />
  <subtitle>Administration XML Questions</subtitle>
  <id>http://developer.cisco.com/c/message_boards/find_category?p_l_id=&amp;mbCategoryId=1052601</id>
  <updated>2013-06-19T01:40:37Z</updated>
  <dc:date>2013-06-19T01:40:37Z</dc:date>
  <entry>
    <title>RE: Perl AXL and SOAP::Lite updating issues</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317387" />
    <author>
      <name>Martin Sloan</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317387</id>
    <updated>2013-06-18T20:49:42Z</updated>
    <published>2013-06-18T20:49:42Z</published>
    <summary type="html">Jim,

You're most welcome.  Glad it's working!

Marty</summary>
    <dc:creator>Martin Sloan</dc:creator>
    <dc:date>2013-06-18T20:49:42Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317359" />
    <author>
      <name>darrell breyer</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317359</id>
    <updated>2013-06-18T20:47:57Z</updated>
    <published>2013-06-18T20:47:57Z</published>
    <summary type="html">So [url=http://developer.cisco.com/web/axl-developer/forums/-/message_boards/view_message/16314179]http://[/url]ipaddy[font=arial, helvetica, sans-serif]:8080[/font][color=#333333][font=arial, helvetica, sans-serif][font=Arial, verdana, sans-serif]/emservice/EMServiceServlet  ??  [/font][/font][/color]</summary>
    <dc:creator>darrell breyer</dc:creator>
    <dc:date>2013-06-18T20:47:57Z</dc:date>
  </entry>
  <entry>
    <title>RE: Perl AXL and SOAP::Lite updating issues</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317250" />
    <author>
      <name>Jim Richardson</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317250</id>
    <updated>2013-06-18T20:38:23Z</updated>
    <published>2013-06-18T20:37:56Z</published>
    <summary type="html">[quote=Martin Sloan]Hi Jim,

Check the updatePhoneReq element in your schema  version to make sure, because in the latest version those fields are not available in the call.  I guess the system is just ignoring them which is why you're not getting an error.  You might have to follow up with an updateLineReq.

Marty[/quote]
Marty,

While the axlapi for 7.1 says it should work, it does not. I added two updateLine statements and all is working well. Below is the final code. Thanks for you help!

[code]#!/usr/bin/perl
use warnings;
use strict;
use SOAP::Lite;
use Data::Dumper;


my $cucmip = "xxx.xxx.xxx.xxx";
my $axl_port = "8443";
my $user = "xxx";
my $password = "xxx";
my $axltoolkit = "AXLAPI.wsdl";
BEGIN {
  sub SOAP::Transport::HTTP::Client::get_basic_credentials {
    return ($user =&gt; $password)
  };
}
my $ver = "7.1";
my $cm = new SOAP::Lite
    -&gt; encodingStyle('')
    -&gt; on_action(sub { return "CUCM:DB ver=$ver" })
    -&gt; proxy("https://$cucmip:$axl_port/axl/")
    -&gt; uri("http://www.cisco.com/AXL/API/$ver");


#axl request
my $res = $cm-&gt;updatePhone(SOAP::Data-&gt;name('name' =&gt; "SEPACA016FCA626",
    SOAP::Data-&gt;name('description' =&gt; "AXL Test Phone 14" ),
    SOAP::Data-&gt;name('ownerUserId' =&gt; "jrichard" ),
    SOAP::Data-&gt;name('lines' =&gt; \SOAP::Data-&gt;value(
      # UPDATE FIRST LINE
      SOAP::Data-&gt;name( 'line' =&gt; \SOAP::Data-&gt;value(
        SOAP::Data-&gt;name( 'dirn' =&gt; \SOAP::Data-&gt;value(
          SOAP::Data-&gt;name('pattern' =&gt; "8893" ),
          SOAP::Data-&gt;name('usage' =&gt; "Device" ),
          SOAP::Data-&gt;name('routePartitionName' =&gt; "Corporate_Campus_Line1" ),
          SOAP::Data-&gt;name('label' =&gt; "Label 14" ),
          SOAP::Data-&gt;name('display' =&gt; "Display 14" ),
          SOAP::Data-&gt;name('asciiLabel' =&gt; "Ascii Label 14" ),
          SOAP::Data-&gt;name('displayASCII' =&gt; "Ansii Display 14" )
        )), # dirn 8893 Corporate_Campus_Line1
      ))-&gt;attr({'index' =&gt; '1'} ), # line 1
      # UPDATE SECOND LINE
      SOAP::Data-&gt;name( 'line' =&gt; \SOAP::Data-&gt;value(
        SOAP::Data-&gt;name( 'dirn' =&gt; \SOAP::Data-&gt;value(
          SOAP::Data-&gt;name('pattern' =&gt; "8893" ),
          SOAP::Data-&gt;name('usage' =&gt; "Device" ),
          SOAP::Data-&gt;name('routePartitionName' =&gt; "Corporate_Campus_Line2" ),
          SOAP::Data-&gt;name('label' =&gt; "Label 15" ),
          SOAP::Data-&gt;name('display' =&gt; "Display 15" ),
          SOAP::Data-&gt;name('asciiLabel' =&gt; "Ascii Label 15" ),
          SOAP::Data-&gt;name('displayASCII' =&gt; "Ansii Display 15" )
        )), # dirn 8893 Corporate_Campus_Line2    
    ))-&gt;attr({'index' =&gt; '2'} ), # line 2
  )) # lines
)); # updatePhone


unless ($res-&gt;fault) {
    print Dumper($res-&gt;paramsall());  
} else {
  print join ', ',
  "FAULTCODE: " . $res-&gt;faultcode,
  "FAULTSTRING: " . $res-&gt;faultstring;
}


my $res1 = $cm-&gt;updateLine(SOAP::Data-&gt;name('pattern' =&gt; "8893" ),
                           SOAP::Data-&gt;name('routePartitionName' =&gt; "Corporate_Campus_Line1" ),
          SOAP::Data-&gt;name('description' =&gt; "Description 14" ), 
          SOAP::Data-&gt;name('alertingName' =&gt; "Alerting 14" ), 
          SOAP::Data-&gt;name('asciiAlertingName' =&gt; "Acsii Alerting 14" )
); #updateLine 1
unless ($res1-&gt;fault) {
    print Dumper($res1-&gt;paramsall());  
} else {
  print join ', ',
  "FAULTCODE: " . $res1-&gt;faultcode,
  "FAULTSTRING: " . $res1-&gt;faultstring;
}


$res1 = $cm-&gt;updateLine(SOAP::Data-&gt;name('pattern' =&gt; "8893" ),
                           SOAP::Data-&gt;name('routePartitionName' =&gt; "Corporate_Campus_Line2" ),
          SOAP::Data-&gt;name('description' =&gt; "Description 15" ), 
          SOAP::Data-&gt;name('alertingName' =&gt; "Alerting 15" ), 
          SOAP::Data-&gt;name('asciiAlertingName' =&gt; "Acsii Alerting 15" ) 
          
); #updateLine 2
unless ($res1-&gt;fault) {
    print Dumper($res1-&gt;paramsall());  
} else {
  print join ', ',
  "FAULTCODE: " . $res1-&gt;faultcode,
  "FAULTSTRING: " . $res1-&gt;faultstring;
}[/code]</summary>
    <dc:creator>Jim Richardson</dc:creator>
    <dc:date>2013-06-18T20:37:56Z</dc:date>
  </entry>
  <entry>
    <title>Re: New Message from David Staudt in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317226" />
    <author>
      <name>Sascha Monteiro</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317226</id>
    <updated>2013-06-18T20:37:19Z</updated>
    <published>2013-06-18T20:37:19Z</published>
    <summary type="html">according the uc9 xml developers guide, http to port 8080 is still
supported,
which I still do. SO it does not require https, though it is probably the
recommended way</summary>
    <dc:creator>Sascha Monteiro</dc:creator>
    <dc:date>2013-06-18T20:37:19Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16319076" />
    <author>
      <name>David Staudt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16319076</id>
    <updated>2013-06-18T20:32:03Z</updated>
    <published>2013-06-18T20:32:03Z</published>
    <summary type="html">The E/M API requires HTTPS/SSL connection, so I would not expect a regular HTTP request to work.  From native code e.g. C#, you will either need to install the UCM's certificate on your server (manual process,) or cause your client-side code to ignore unknown certificates.  I believe the 'Could not establish trust relationship' error means that the client code could not verify the API services's cert (which is a self-signed.)</summary>
    <dc:creator>David Staudt</dc:creator>
    <dc:date>2013-06-18T20:32:03Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317127" />
    <author>
      <name>darrell breyer</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16317127</id>
    <updated>2013-06-18T20:26:36Z</updated>
    <published>2013-06-18T20:26:36Z</published>
    <summary type="html">I changed the url to the one you specify and now I get

ex = {"The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."}</summary>
    <dc:creator>darrell breyer</dc:creator>
    <dc:date>2013-06-18T20:26:36Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16316770" />
    <author>
      <name>darrell breyer</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16316770</id>
    <updated>2013-06-18T20:02:17Z</updated>
    <published>2013-06-18T20:02:17Z</published>
    <summary type="html">Making some progress but getting login unsuccessful error.  Here is what I am passing in and i know my creds are right...

Im confused with the url I should be using?  You mentioned [url=http:]https://[/url]10.0.245.10:8443[color=#333333][font=Arial, verdana, sans-serif]/emservice/EMServiceServlet but that doesn't work on our server.  I get responses back from  [/font][/color]http://10.0.245.10:8080/emapp/EMAppServlet but when i post the xml I get login unsuccessful...I pasted the whole error after the script....


-----------------------------
// Create a request using a URL that can receive a post.         
WebRequest request = WebRequest.Create("http://10.0.245.10:8080/emapp/EMAppServlet");    
    
// Set the Method property of the request to POST.        
request.Method = "POST";     

  // Create POST data and convert it to a byte array.      
  string postData = "&lt;?xml?&gt;xml=&lt;query&gt;&lt;appInfo&gt;&lt;appID&gt;user&lt;/appID&gt;&lt;appCertificate&gt;pass&lt;/appCertificate&gt;&lt;/appInfo&gt;&lt;userDevicesQuery&gt;&lt;userID&gt;breyerd&lt;/userID&gt;&lt;/userDevicesQuery&gt;&lt;/query&gt;";        

byte[] byteArray = Encoding.UTF8.GetBytes(postData);        

// Set the ContentType property of the WebRequest.        
request.ContentType = "application/x-www-form-urlencoded";        

// Set the ContentLength property of the WebRequest.       
 request.ContentLength = byteArray.Length;        

// Get the request stream.        
Stream dataStream = request.GetRequestStream();        

// Write the data to the request stream.        
dataStream.Write(byteArray, 0, byteArray.Length);        

// Close the Stream object.        
dataStream.Close();        

// Get the response.        
WebResponse response = request.GetResponse();        

// Display the status.        
Console.WriteLine(((HttpWebResponse)response).StatusDescription);        

// Get the stream containing content returned by the server.        
dataStream = response.GetResponseStream();        

// Open the stream using a StreamReader for easy access.        
StreamReader reader = new StreamReader(dataStream);        

// Read the content.        
string responseFromServer = reader.ReadToEnd();  
      
// Display the content.        
Console.WriteLine(responseFromServer);        
// Clean up the streams.        
reader.Close();        
dataStream.Close();        
response.Close();

----------------------------

error

  &lt;?xml version="1.0" encoding="utf-8" ?&gt; - &lt;CiscoIPPhoneText&gt;  &lt;Title&gt;Login response&lt;/Title&gt;   &lt;Text&gt;Login Unsuccessful&lt;/Text&gt;   &lt;Prompt&gt;Login is unavailable (207)&lt;/Prompt&gt; - &lt;SoftKeyItem&gt;  &lt;Name&gt;Exit&lt;/Name&gt;   &lt;URL&gt;SoftKey:Exit&lt;/URL&gt;   &lt;Position&gt;1&lt;/Position&gt;   &lt;/SoftKeyItem&gt;  &lt;/CiscoIPPhoneText&gt;


-----------------

Thanks in advance

Darrell</summary>
    <dc:creator>darrell breyer</dc:creator>
    <dc:date>2013-06-18T20:02:17Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16318349" />
    <author>
      <name>David Staudt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16318349</id>
    <updated>2013-06-18T20:01:35Z</updated>
    <published>2013-06-18T20:01:35Z</published>
    <summary type="html">A 500 message similar to:
[code]java.lang.NullPointerException
	java.lang.String.&lt;init&gt;(String.java:147)
	com.cisco.emservice.EMServiceServlet.processRequest(EMServiceServlet.java:204)
	com.cisco.emservice.EMServiceServlet.doPost(EMServiceServlet.java:451)
	com.cisco.emservice.EMServiceServlet.doGet(EMServiceServlet.java:385)[/code]is expected if you just do a GET to the URL from a browser.  If the E/M service is not activated, the API will return a 404</summary>
    <dc:creator>David Staudt</dc:creator>
    <dc:date>2013-06-18T20:01:35Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16312974" />
    <author>
      <name>darrell breyer</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16312974</id>
    <updated>2013-06-18T18:16:23Z</updated>
    <published>2013-06-18T18:16:23Z</published>
    <summary type="html">Thanks for your quick response David.

I'm assuming our service account's access will suffice.  When I paste the emservice/emserviceservlet into a browwser with our ip info i get an error 500.  This is a service that must be turned on I'm assuming.  </summary>
    <dc:creator>darrell breyer</dc:creator>
    <dc:date>2013-06-18T18:16:23Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16314179" />
    <author>
      <name>David Staudt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16314179</id>
    <updated>2013-06-18T18:00:25Z</updated>
    <published>2013-06-18T18:00:20Z</published>
    <summary type="html">The E/M API is not a full SOAP implementation, just a simple HTTP POST of a small piece of XML.  E.g. to query to see which devices a user is logged into, POST the following XML to https://&lt;server&gt;:8443/emservice/EMServiceServlet:[code]
&lt;query&gt;
&lt;appInfo&gt;
&lt;appID&gt;appid&lt;/appID&gt;
&lt;appCertificate&gt;apppasswd&lt;/appCertificate&gt;
&lt;/appInfo&gt;
&lt;userDevicesQuery&gt;
&lt;userID&gt;john&lt;/userID&gt;
&lt;/userDevicesQuery&gt;
&lt;/query[/code]Where 'appid' is a UCM application user with E/M proxy rights permission.
The data which keeps track of E/M logins is kept in the 'extensionmobilitydynamic' table, which you can query via a custom SQL statement and AXL's executeSqlQuery request; however this will mean understanding the fields in the table and how to construct the query.  It's important to note also that direct SQL access is supported, but that the DB schema does not maintain any backward compatibility and tables/fields can change with any UCM release.  Using the E/M API ensures that at minimum the usual UCM API backward compatibility policies apply (i.e. 2 major versions.)</summary>
    <dc:creator>David Staudt</dc:creator>
    <dc:date>2013-06-18T18:00:20Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16311898" />
    <author>
      <name>darrell breyer</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16311898</id>
    <updated>2013-06-18T17:19:13Z</updated>
    <published>2013-06-18T17:19:13Z</published>
    <summary type="html">You are right, in dev we have limited users set up.  I can get someone who is logged in and it should return back associateddevices.

Assuming thats it, how do I then find out the devices the user is logged into.  i read through the docs for Extension Mobility and there are no clear soap examples.  I'm much more comfortable with AXL is it possible to figure out if a user is logged in via AXL?  I just want to return all devices the user is logged into..

Any suggestions are greatly appreciated. If I have to go the EM route are there clear examples I can follow?

Thanks so much!

Darrell</summary>
    <dc:creator>darrell breyer</dc:creator>
    <dc:date>2013-06-18T17:19:13Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16309397" />
    <author>
      <name>David Staudt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16309397</id>
    <updated>2013-06-18T17:00:41Z</updated>
    <published>2013-06-18T17:00:41Z</published>
    <summary type="html">That looks like the right response, but the &lt;associatedDevices&gt; element is not present - my guess would be because the user is not associated with any devices..?
http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/admin/7_1_2/ccmcfg/b08user.html#wp1020108
I also note that the AXL schema version returned is 6.1 - check the AXL guide for details on specifying the correct schema version to use for your UCM (if it's not 6.1.)</summary>
    <dc:creator>David Staudt</dc:creator>
    <dc:date>2013-06-18T17:00:41Z</dc:date>
  </entry>
  <entry>
    <title>RE: Device info for a particular user</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16310939" />
    <author>
      <name>darrell breyer</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16310939</id>
    <updated>2013-06-18T16:32:58Z</updated>
    <published>2013-06-18T16:32:58Z</published>
    <summary type="html">[quote=David Staudt]This information is available, via various web services on UCM.  I would suggest the following sequence:
 
- Via Administrative AXL, use the &lt;getUser&gt; request, which will return a list of device names associated with the user in getUserResponse/return/user/associatedDevices.
- Via the Extension Mobility web service, use &lt;userDevicesQuery&gt; to list all the device names into which the user is logged in
- Via Admin AXL, perform a &lt;getPhone&gt; on each device name,
obtaining the list of lines on the device, from which you can extract
the DNs: getPhoneResponse/return/device/lines/line/dirn/pattern 
- Via the Serviceability Risport service, user &lt;SelectCmDevice&gt; query to obtain the IP address of all the device names gathered above
 
All these web services are covered in the XML Developers Guide available here: http://developer.cisco.com/web/axl/docs[/quote]
Hi David,

I am using AXL to getUser.  I get a successful response but I do not see a list of device names associated with the user (me in the case for testing).  Here is the XML in the response.  My goal is to find out each device the user is logged into  using their userid.

- &lt;SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"&gt;  &lt;SOAP-ENV:Header /&gt; - &lt;SOAP-ENV:Body&gt;- &lt;axl:getUserResponse sequence="?" xmlns:axl="http://www.cisco.com/AXL/API/6.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;- &lt;return&gt;- &lt;user&gt;  &lt;firstname&gt;Darrell&lt;/firstname&gt;   &lt;lastname&gt;Breyer&lt;/lastname&gt;   &lt;userid&gt;breyerd&lt;/userid&gt;   &lt;password /&gt;   &lt;pin /&gt;   &lt;telephoneNumber&gt;2224806&lt;/telephoneNumber&gt;   &lt;department&gt;IS Application Development&lt;/department&gt;   &lt;manager&gt;kannern&lt;/manager&gt;   &lt;primaryExtension /&gt;   &lt;associatedPC /&gt;   &lt;associatedGroups /&gt;   &lt;enableCTI&gt;true&lt;/enableCTI&gt;   &lt;digestCredentials /&gt; - &lt;phoneProfiles&gt;  &lt;profileName&gt;breyerd&lt;/profileName&gt;   &lt;/phoneProfiles&gt;  &lt;enableMobility&gt;false&lt;/enableMobility&gt;   &lt;enableMobileVoiceAccess&gt;false&lt;/enableMobileVoiceAccess&gt;   &lt;maxDeskPickupWaitTime&gt;10000&lt;/maxDeskPickupWaitTime&gt;   &lt;remoteDestinationLimit&gt;4&lt;/remoteDestinationLimit&gt; - &lt;passwordCredentials&gt;  &lt;pwdCredPolicyName&gt;Default Credential Policy&lt;/pwdCredPolicyName&gt;   &lt;pwdCredUserCantChange&gt;false&lt;/pwdCredUserCantChange&gt;   &lt;pwdCredUserMustChange&gt;true&lt;/pwdCredUserMustChange&gt;   &lt;pwdCredDoesNotExpire&gt;false&lt;/pwdCredDoesNotExpire&gt;   &lt;pwdCredTimeChanged&gt;November 21, 2012 13:51:45 EST&lt;/pwdCredTimeChanged&gt;   &lt;pwdCredTimeAdminLockout /&gt;   &lt;pwdCredLockedByAdministrator&gt;false&lt;/pwdCredLockedByAdministrator&gt;   &lt;/passwordCredentials&gt;- &lt;pinCredentials&gt;  &lt;pinCredPolicyName&gt;Default Credential Policy&lt;/pinCredPolicyName&gt;   &lt;pinCredUserCantChange&gt;false&lt;/pinCredUserCantChange&gt;   &lt;pinCredUserMustChange&gt;false&lt;/pinCredUserMustChange&gt;   &lt;pinCredDoesNotExpire&gt;true&lt;/pinCredDoesNotExpire&gt;   &lt;pinCredTimeChanged&gt;March 13, 2013 10:04:58 EDT&lt;/pinCredTimeChanged&gt;   &lt;pinCredTimeAdminLockout /&gt;   &lt;pinCredLockedByAdministrator&gt;false&lt;/pinCredLockedByAdministrator&gt;   &lt;/pinCredentials&gt;  &lt;/user&gt;  &lt;/return&gt;  &lt;/axl:getUserResponse&gt;  &lt;/SOAP-ENV:Body&gt;  &lt;/SOAP-ENV:Envelope&gt;</summary>
    <dc:creator>darrell breyer</dc:creator>
    <dc:date>2013-06-18T16:32:58Z</dc:date>
  </entry>
  <entry>
    <title>RE: AXL/EMAPI Memory Leak?</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16267686" />
    <author>
      <name>David Staudt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16267686</id>
    <updated>2013-06-17T16:11:13Z</updated>
    <published>2013-06-17T16:11:13Z</published>
    <summary type="html">All (most?) of the UCM web services APIs run through the on-board Tomcat session manager, so believe E/M would benefit as well.</summary>
    <dc:creator>David Staudt</dc:creator>
    <dc:date>2013-06-17T16:11:13Z</dc:date>
  </entry>
  <entry>
    <title>RE: HTTP-Link via Perl?</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16259760" />
    <author>
      <name>Martin Sloan</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16259760</id>
    <updated>2013-06-17T13:42:27Z</updated>
    <published>2013-06-17T13:42:27Z</published>
    <summary type="html">Excellent!</summary>
    <dc:creator>Martin Sloan</dc:creator>
    <dc:date>2013-06-17T13:42:27Z</dc:date>
  </entry>
  <entry>
    <title>RE: HTTP-Link via Perl?</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16260008" />
    <author>
      <name>Michael Schmidt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16260008</id>
    <updated>2013-06-17T13:35:17Z</updated>
    <published>2013-06-17T13:35:17Z</published>
    <summary type="html">Hi Marty,

great this is working.

Many thanks.

BR
Michael</summary>
    <dc:creator>Michael Schmidt</dc:creator>
    <dc:date>2013-06-17T13:35:17Z</dc:date>
  </entry>
  <entry>
    <title>RE: HTTP-Link via Perl?</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16258609" />
    <author>
      <name>Martin Sloan</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16258609</id>
    <updated>2013-06-17T12:51:52Z</updated>
    <published>2013-06-17T12:51:52Z</published>
    <summary type="html">Hi Michael,

Check out the LWP Perl mod.  Here's some structure for code I would use while doing POST/GET.  This might get the job done for EM, but I've never tried it specifically.  You'll have to install the LWP module and dependencies if you haven't already.

    my $url="https://AddressOfTheService";
    my $ua = LWP::UserAgent-&gt;new;
    my $header = HTTP::Headers-&gt;new;
    $header-&gt;header("Content-Type","application/xml");
    my $req = HTTP::Request-&gt;new(POST =&gt; $url, $header);
    $req-&gt;authorization_basic("Username","Password");
    my $response = $ua-&gt;request($req);

Also, there's a forum for the EMAPI where you might find more help:

http://developer.cisco.com/web/emapi/community/-/message_boards/category/1062473

Marty</summary>
    <dc:creator>Martin Sloan</dc:creator>
    <dc:date>2013-06-17T12:51:52Z</dc:date>
  </entry>
  <entry>
    <title>HTTP-Link via Perl?</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16240720" />
    <author>
      <name>Michael Schmidt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16240720</id>
    <updated>2013-06-17T05:21:53Z</updated>
    <published>2013-06-17T05:21:53Z</published>
    <summary type="html">Hi,

is it possible to "open" such HTTP-Link via Perl Script?

[url=http://%3cem-server-ip%3e/emapp/EMAppServlet?device=SEP%3cmac%3e&amp;&amp;userid=%3cuserid%3e&amp;seq=%3cuser-pin]http://&lt;em-server-ip&gt;/emapp/EMAppServlet?device=SEP&lt;mac&gt;&amp;&amp;userid=&lt;userid&gt;&amp;seq=&lt;user-pin[/url]&gt;

I don`t want really to open a web browser with this link but I want to make the EM profile login via the perl script and this HTTP-Link.

BR
Michael</summary>
    <dc:creator>Michael Schmidt</dc:creator>
    <dc:date>2013-06-17T05:21:53Z</dc:date>
  </entry>
  <entry>
    <title>RE: AXL/EMAPI Memory Leak?</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16234705" />
    <author>
      <name>JAMES DEPHILLIP II</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16234705</id>
    <updated>2013-06-16T14:53:51Z</updated>
    <published>2013-06-16T14:53:51Z</published>
    <summary type="html">Thanks David does this apply to EMAPI as well? We noticed more issues with EMAPI than AXL...</summary>
    <dc:creator>JAMES DEPHILLIP II</dc:creator>
    <dc:date>2013-06-16T14:53:51Z</dc:date>
  </entry>
  <entry>
    <title>RE: Perl AXL and SOAP::Lite updating issues</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16228274" />
    <author>
      <name>Martin Sloan</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16228274</id>
    <updated>2013-06-15T13:41:25Z</updated>
    <published>2013-06-15T13:40:36Z</published>
    <summary type="html">Hi Jim,

Check the updatePhoneReq element in your schema  version to make sure, because in the latest version those fields are not available in the call.  I guess the system is just ignoring them which is why you're not getting an error.  You might have to follow up with an updateLineReq.

Marty</summary>
    <dc:creator>Martin Sloan</dc:creator>
    <dc:date>2013-06-15T13:40:36Z</dc:date>
  </entry>
</feed>

