Den CUCM 6 mit AXL anzapfen

...

Verbindung zur Datenbank geht nur per AXL, also z.B: PHP/SOAP.
Aber wie schon gesagt, es gibt keine DB Tabelle in der die IPs der Phones stehen. -> Realtime API.

...
 
die verbindung zum CCM über php/soap klappt ( wie die bsp. oben)...das auslesen der DB beziehungsweise verändern einzelner felder..findet das über xml statt oder ganz normal wie man das mit php und SQL-DB-Befehlen so macht?
 
...

Bei PHP 5.x mit nativ SOAP reichen die normalen SOAP Requests

Also so in etwa:

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

Das Ergebnis sollte dann in ret stehen.
...
 
Zuletzt bearbeitet:
Wenn der Thread mal wieder aktiv ist, stell ich gleich auch mal wieder ne aktuelle, sehr kleine Frage...

Ich brauche die MAC-Adressen (Device-Names) von allen aktuell angemeldeten Phones - geht das über AXL? Falls ja, gibts da einen Befehl? Oder muss das dann über ne SQL-Abfrage laufen?


Die PHP-Geschichte habe ich damals leider dann aufgegeben, da ich hier nicht weitergekommen bin und da zuviel Zeit geopfert habe. Meine Skripte haben immer nur den hier geposteten Fehler gebracht und nie zum Erfolg geführt. Mit Java ist es zwar aufwendiger, aber es tut.
 
...

Was willst du denn nutzen um die MAC Addy zu finden?
Ein Liste mit allen MACs und...

MAC bei gegebener Nummer? -> Könnte aber bei shared line zu mehreren Treffern führen

...
 
Tja, das weiß ich leider nicht!

Ich brauch einfach ne Liste von allen angemeldeten Phones!
Ne Liste mit den "SEP..." Namen reicht vollkommen aus.
 
...

Wenn ich das richtig verstehe, möchtest du eine Liste

SEP..... aller am UCM registrierten Phones?
oder aller Phones auch die die nicht registriert sind?
nur "Phones" oder auch ATAs usw?

...
 
Nur Phones, also

die SEPs..... aller am UCM registrierten Phones!
 
...

der ATA z.b. ist aber auch ein SEP....

...
 
Ja ok, wäre erstmal egal, da es keine ATAs gibt.
 
Bekomme den Fehler

Fatal error: Call to undefined method nusoap_client::__soapCall() in ...

zurück.

Muss ich noch eine spezielle Klasse einbinden?
 
...

Wie bereits erwähnt:
Meine Beispielzeile != nusoap
--> PHP 5.x mit "native" SOAP


---
 
ahso...okay...hast du schon mal mit nusoap das ganze probiert? oder nimmst nur das andere?
 
nungut...aber irgenwie klemmt es grad...habe mir den thread so nochmal angesehen..und bissel probiert..aber bekommt das auslesen immer noch net hin... wie sieht die authentifizierung bei native aus?

oben steht zwar mal als nusoap_client und mal als soapclient..aber klappt bei mir irgendwie nur mit nusoap_client..

aber das auslesen der DB will noch net :( hat schon jemand das mit nusoap hinbekommen?
 
Zuletzt bearbeitet:
Hab das ganze nun noch mal mit $client = new SoapClient('http:..... probiert..erhalte nun aber folgende fehlermeldung:

Warning: SoapClient::SoapClient(http://ccmip/axl/) [soapclient.soapclient]: failed to open stream: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? in C:\xampp\htdocs\test1\soap1.php on line 40

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

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


der code dazu:

Code:
<?


$credentials = "admin:passwd"; 

//Request 
       
         
          $xml_data = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" "; 
        $xml_data .= "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"> "; 
         
        $xml_data .= "<SOAP-ENV:Body> <axl:getPhone xmlns:axl=\"http://www.cisco.com/AXL/1.0\" "; 
        $xml_data .= " xsi:schemaLocation=\"http://www.cisco.com/AXL/1.0 http://ccmip/schema/axlsoap.xsd\">"; 
        $xml_data .= "<phoneName>SEP001B54523F81</phoneName>"; 
        $xml_data .= "</axl:getPhone> </SOAP-ENV:Body> </SOAP-ENV:Envelope>"; 
         
$soap_out = ""; 


$soap_out .= "POST /axl/ HTTP/1.0\r\n"; 
$soap_out .=  "Host:ccmip:8443\r\n"; 
$soap_out .=  "Authorization: Basic " + authorization + "\r\n"; 
$soap_out .=  "Accept: text/*\r\n"; 
$soap_out .=  "Content-type: text/xml\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\r\n"; 
$soap_out .= $xml_data . "\n"; 

$options = array( 
    'uri' => 'http://www.cisco.com/AXL/1.0', 
    'location' => 'http://ccmip/axl/', 
    'xml_encoding' => 'UTF-8'); 
     
$client = new SoapClient('http://ccmip/axl/', $options); 
$client->setCredentials('admin','passwd','basic'); 
$client->send($soap_out,'CUCM:DB ver=6.1',30,30,''); 
$err = $client->getError(); 



if ($err) { 
    echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; 
} 

//echo $client->response; 
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; 
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; 
//echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>'; 


echo '<br><br>-------<br>'; 
echo '<pre>' . htmlspecialchars($soap_out, ENT_QUOTES) . '</pre>'; 
?>

habe schon einiges probiert und drüber gesucht...aber so wirklich....

die letzte meldung...das er da was nicht laden kann..nur warum.......und wie löst man es...
 
Zuletzt bearbeitet:
Hallo Ihr,

ich bins nochmal.
Ich habe inzwischen per AXL alle in der "Cisco Unified Communications Manager Developers Guide for Release 6.0(1).pdf" aufgeführten Tabellen komplett abgerufen (war sehr zeitaufwendig auch wenn es sich bei dem System nur um ein Testsystem mit 2 Telefonen handelt) und in den Ergebnissen nach der IP eines der Telefone gesucht. => Fehlanzeige => Stom2006 hat recht... das geht mit AXL nicht. :( (es sei denn es gibt noch Tabellen, die in der Cisco Doku nicht aufgeführt sind, aber um diese abrufen zu können müsste ich deren Namen erst mal herausfinden)

Deshalb meine Frage:

Wie kann ich zu einer Telefonnummer die aktuelle IP des dazugehörigen Telefons herausfinden?

Stom2006 hat etwas von einer Realtime API erwähnt.
Wo kann ich diese bekommen?
Wo finde ich Informationen zur Benutzung dieser?

Wenn es noch andere Wege gibt, an die IP heran zu kommen, wäre ich auch an diesen sehr interessiert.

Gruß Franz
 
...

@ToGo84
Beim Callmanager > 4.x läuft AXL über SSL
Nun "beschwert" sich dein PHP Setup das es kein SSL machen kann.

...

@Tester1111

Da bin ich gerade dran. Ich brauche die IPs nämlich aus.

Gruß,
Marcus
 
danke

hab jetze mal die zeile

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

geändert..da verschwindet fehler nr. 1...der rest bleibt leider...

aber das mit dem ssl hatte man doch über curl eingestellt..oder?
 
Hallo Leute,
sorry das ich länger nicht geantwortet habe.

Erstmal habe ich nun mal meinen ganzen Entwicklungsordner soweit wie ich war zusammengepackt. Ich habe an dem Punkt gehangen, wo man die Daten aus dem XML wieder in ein lesbares HTML bzw. Textformat umwandeln kann.

Ich wäre mal für eine eigene Entwicklerrubrik für die AXL Schnittstelle hier im Forum, wo man dann mal fertig kleine Schnipsel posten kann mit den ganzen Befehlen usw.

Gruss
Cath
 

Anhänge

  • PHP to CUCM over AXL.zip
    887.6 KB · Aufrufe: 52
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.