Den CUCM 6 mit AXL anzapfen

der fehler will einfach nicht weg....wie bekomm ich diesen fehler weg?


Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O warning : failed to load external entity "https://ccmip/axl/" in C:\xampp\htdocs\test1\test.php on line 36

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://ccmip/axl/' in C:\xampp\htdocs\test1\test.php:36 Stack trace: #0 C:\xampp\htdocs\test1\http_post.php(36): SoapClient->SoapClient('https://ccmip....', Array) #1 {main} thrown in C:\xampp\htdocs\test1\http_post.php on line 36
 
...


Was schreibt der UC denn in sein AXL Log?

...
 
wo finde ich das AXL logging?
 
...

Der Zugriff erfolgt "remote" über das RealTimeMonitor-Tool.

...

Gruß,
Marcus
 
als notice taucht dieses auf:

: servmgr : TTY=console ; PWD=/ ; USER=ccmservice ; COMMAND=/usr/local/cm/bin/soapservicecontrol.sh perfmonservice PerfmonPort status 8443


als info

: Authentication Success: administrator

mehr taucht in dem syslog nicht auf.



und im Gerneric Log Viewer für den AXL Web Service .. bleibt leer.

so wirklich viel taucht da nicht auf..wo man sagen könnte...das ist ein fehler....wobei so wirklich was zu der anfrage da net erscheint..als ob er da gar net hinkommt...
 
Zuletzt bearbeitet:
so wirklich...kann ja net so schwer sein...aber es will einfach net klappen....könnte ich irgendwo was vergessen haben? nen falscher pfad...nee dürfte ja auch net....oder ist beim 6.1 irgendwas anderes?

hat schon mal wer mit nusoap den sql-connect hinbekommen?
 
Habe noch einmal in der php.ini "rumgestellt" .. nun sind die Fehlermeldungen in Bunt ;)

aber funktionieren tut es trotzdem nicht...

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

Folgende Meldungen erscheinen:

Warning: SoapClient::SoapClient(https://ccmip/AXL/) [soapclient.soapclient]: failed to open stream: HTTP request failed! HTTP/1.1 404 /AXL/ in C:\xampp\htdocs\test1\http_post.php on line 39

Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O warning : failed to load external entity "https://ccmip/AXL/" in C:\xampp\htdocs\test1\http_post.php on line 39

Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://ccmip/AXL/' in C:\xampp\htdocs\test1\http_post.php on line 39

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

Dabei scheint er sich ja auf folgende Zeile zubeziehen:


$options = array(
'location' => 'http://ccmip/axl/',
'uri' => 'http://www.cisco.com/AXL/1.0',
'xml_encoding' => 'UTF-8'
);

$client = new SOAPClient("https://ccmip/AXL/",$options);


Ansich dürfte ja alles schon richtig sein...aber es will nicht..

Müssen sepzielle Einstellungen noch am WebServer vorgenommen werden? Das er da was nicht richtig überträgt/ übertragen kann?
Liegt es am CUCM..die Pfadangaben:..das da ne Pfadangabe nicht stimmt?


Da er ja unter Fehler Nr. 3 sagst..das er es nicht laden kann vom CUCM
 
...

Gib mir mal das komplette Script. Welchen UCM hast du genau?
Ob ich es am WE schaffe weiß ich allerdings nicht.

...
 
Anbei das Script. Es handelt sich um den CUCM 6.1

Code:
<?php
 
$xml_data = '
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Body>
        <axl:getPhone xmlns:axl="http://www.cisco.com/AXL/1.0" xsi:schemaLocation="http://www.cisco.com/AXL/1.0 http://ccmip/schema/axlsoap.xsd"  sequence="1234">
            <phoneName>SEP001B54523F81</phoneName>
        </axl:getPhone>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
';
 
$credentials = "ccmadmin:ccmpw";
 
$soap_out .= "Host: https://ccmip:8443/AXL/ HTTP/1.1\r\n"; 
$soap_out .= "Accept: text/*\r\n";
$soap_out .= "Authorization: Basic ".base64_encode($credentials)."\r\n";
$soap_out .= "Content-Type: text/xml;charset=utf-8\r\n"; 
$soap_out .= "SOAPAction: CUCM:DB ver=6.1"."\r\n";
$soap_out .= "Content-length: ".strlen($xml_data)."\r\n";
 
$soap_out .= "Connection: Keep-Alive\r\n";
 
//Request
 
$soap_out .= $xml_data . "\n";
 
$options = array(
  'location' => 'http://ccmip/AXL/', 
  'uri'     => 'http://www.cisco.com/AXL/1.0',
  'xml_encoding' => 'UTF-8'                               
  );
 
$client = new SOAPClient('https://ccmip/AXL/',$options); 
 
$client->setCredentials('ccmadmin','ccmpw','basic');
$client->send($soap_out,'CUCM:DB ver=6.1',30,30,'');
 
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; 
 
print "<hr>";
echo $client->response; 
print "<hr>";
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; 
print "<hr>";
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; 
print "<hr>";
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>'; 
 
?>
 
Habe an 2 Stellen noch was geändert:

Code:
$options = array(
		'location' => 'http://ccmip/axl/', 
		'uri' 	   => 'http://www.cisco.com/axl/1.0',
		'xml_encoding' => 'UTF-8',
                'login' => 'admin',
                'password' => 'passwd',
		);

$client = new SOAPClient('https://ccmip/axl/',$options);

und zwar habe ich in die optionen das login und passwort zusätzlich eingefügt...

sowie bei beiden ccmip/axl/ -> das axl klein geschrieben..hatte es bisher gross geschrieben.

Mit dieser Änderung sind die Fehler auf das letzte gesunken..die ersten 2 sind weg...ist nur noch der folgende da:


Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't find in 'https://ccmip/axl/' in C:\xampp\htdocs\test1\http_post.php on line 36
 
Danke,hat die Einstellung bei dir funktioniert? Nach Änderung der 2 Zeilen kommt nun bei mir das folgende:

Code:
Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client] No Handler found for setCredentials in C:\xampp\htdocs\test1\http_post.php:48 Stack trace: #0 [internal function]: SoapClient->__call('setCredentials', Array) #1 C:\xampp\htdocs\test1\http_post.php(48): SoapClient->setCredentials('admin', 'pw', 'basic') #2 {main} thrown in C:\xampp\htdocs\test1\http_post.php on line 48

wobei er sich ja dann...scheinbar auf folgende Zeile bezieht

$client->setCredentials('admin','pw','basic');

Diesmal kommt aber was in den AXl_Logs:

Code:
2008-08-21 09:50:36,348 DEBUG [http-8443-Processor23] axl.AXLRouter - addToCache("admin")
2008-08-21 09:50:36,349 INFO  [http-8443-Processor23] axl.AXLRouter - Received request 1216730009756 from admin at IP x.x.x.x
2008-08-21 09:50:36,349 INFO  [http-8443-Processor23] axl.AXLRouter - <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.cisco.com/AXL/API/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:setCredentials><param0 xsi:type="xsd:string">admin</param0><param1 xsi:type="xsd:string">adminpw</param1><param2 xsi:type="xsd:string">basic</param2></ns1:setCredentials></SOAP-ENV:Body></SOAP-ENV:Envelope>
2008-08-21 09:50:36,350 DEBUG [http-8443-Processor23] axl.AXLRouter - Getting service parameters...
2008-08-21 09:50:36,357 DEBUG [http-8443-Processor23] axl.AXLRouter - AXL_ENABLE_ENCODINGINFO: F; AXL_NAMESPACE: T
2008-08-21 09:50:36,360 DEBUG [http-8443-Processor23] axl.AXLRouter - Request is not a write request
2008-08-21 09:50:36,361 ERROR [http-8443-Processor23] axl6_0.AxlListener - com.cisco.ccm.axl.axl6_0.AxlListener@19dbc3b
com.cisco.ccm.axl.axl6_0.DataValidationException: No Handler found for setCredentials
	at com.cisco.ccm.axl.axl6_0.HandlerFactory.getHandler(HandlerFactory.java:132)
	at com.cisco.ccm.axl.axl6_0.AxlListener.onMessage(AxlListener.java:101)
	at com.cisco.ccm.axl.AXLRouter.doPost(AXLRouter.java:189)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50)
	at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:156)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:152)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
	at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:392)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
2008-08-21 09:50:36,366 INFO  [http-8443-Processor23] axl.AXLRouter - <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header/><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring>No Handler found for setCredentials</faultstring><detail><axl:Error xmlns:axl="http://www.cisco.com/AXL/API/1.0"><axl:code>5003</axl:code><axl:message>No Handler found for setCredentials</axl:message><request>setCredentials</request></axl:Error></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
2008-08-21 09:50:36,367 INFO  [http-8443-Processor23] axl.AXLRouter - Request 1216730009756 was process in 57ms


Aber schon mal gutes Stück weiter :) Solangsam wird es *freu*
 
...

Ja bei mir läuft es.

:)

$client->setCredentials('admin','pw','basic');

Weg lassen ? :)

Was hast du denn eigentlich vor?

...

Gruß,
Marcus
 
wenn ich die weglasse..meckert er diese an

$client->send($soap_out,'CUCM:DB ver=6.0',30,30,'');

Code:
 Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client] No Handler found for send in C:\xampp\htdocs\test1\http_post.php:46 Stack trace: #0 [internal function]: SoapClient->__call('send', Array) #1 C:\xampp\htdocs\test1\http_post.php(46): SoapClient->send('Host: https://1...', 'CUCM:DB ver=6.0', 30, 30, '') #2 {main} thrown in C:\xampp\htdocs\test1\http_post.php on line 46

Hab dann mal deine Zugriff auf die SQL

Code:
$param = array( new SoapParam ("SELECT * FROM linegroup","sql"));
try {
$ret = $client->__soapCall("executeSQLQuery", $param);
} catch (SoapFault $exception) {
echo $exception;
}

Und laut Log..macht er dann auch was in die $ret datei...muss ja dann quasi nur noch verarbeitet und ausgegeben werden?

Genau will ich damit erreichen, bestimmte Daten auszulesen...zuverarbeiten..und wieder zuschreiben...

Um die Administration zuerleichtern..nen SQL Update..dürfte ja auch damit gehen oder?
 
...

Wie zuvor:
$client->send($soap_out,'CUCMB ver=6.0',30,30,'');
weg lassen und du wirst sehen es funktioniert.

Ich weiß auch das der kommend UCM die Angabe der Version zwingend erfordert und sonst das AXL nicht ausführt. Da arbeite ich gerade noch an einer Lösung.

Der 6.x geht noch ohne
...

Gruß,
Marcus
 
Ja, danke..habe es weggelassen..und fehler nun alle weg. Einen Update baue ich Ähnlich auf? den param-array mit dem update-befehl und bei soapcall dann ein sqlupdate?

arbeitest du schon an nr. 7?
 
so...das auslesen und reinschreiben funktioniert nun so, wie es soll..jedenfals der test lief super :)

nochmal Danke :)

eine Frage ist allerdings noch..die Variable $ret .. wie ist da der beste/einfachste/schnellste weg...zur Verarbeitung? Wie hast du das gemacht?
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.