рд╕рд┐рд╕реНрдХреЛ AXL рдХреЗ рд▓рд┐рдП рд▓рд┐рдкрд┐рдпреЛрдВ рд▓реЗрдЦрди

рдореИрдВ рдЬрд┐рд╕ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рд╕рд┐рд╕реНрдХреЛ рдпреВрдирд┐рдлрд╛рдЗрдб рдХрдореНрдпреБрдирд┐рдХреЗрд╢рдВрд╕ рдореИрдиреЗрдЬрд░ (рд╕реАрдпреВрд╕реАрдПрдо) рд╕рд╣рд┐рдд рдЖрдИрдкреА-рдЯреЗрд▓реАрдлреЛрдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдПрдХ рдмрд┐рдВрджреБ рдкрд░, рдореБрдЭреЗ рдлреЛрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдЕрд░реНрдерд╛рддреН, рдХреНрдпрд╛ рд╡реЗ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ, рдХреНрдпрд╛ рд╡реЗ рд╣рдВрдЯ рдЧреНрд░реБрдк рдореЗрдВ рд╣реИрдВ, рдЖрджрд┐ред рдмрдврд╝реЗ рд╣реБрдП рдЕрдкрд░рд╛рдз рдХреЗ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдЯреБрдХрдбрд╝рд╛ рджреНрд╡рд╛рд░рд╛ рдЦрдВрдбрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛, рдФрд░ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдХрд╛рдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред рдореЗрд░рд╛ CUCM рд╕рдВрд╕реНрдХрд░рдг 7.1.5 рд╣реИ, IP рдкрддрд╛ 10.0.0.10 рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ PHP рдореЗрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ AXL рд╕реЗрд╡рд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
1. рд╕рд┐рд╕реНрдХреЛ рдпреВрдирд┐рдлрд╛рдЗрдб рд╕рд░реНрд╡рд┐рд╕реЗрдмрд┐рд▓рд┐рдЯреА рд╕реЗрдХреНрд╢рди (рдКрдкрд░ рджрд╛рдПрдВ) рдкрд░ рдЬрд╛рдПрдВ, рдлрд┐рд░ рдЯреВрд▓реНрд╕ тЖТ рд╕рд░реНрд╡рд┐рд╕ рдПрдХреНрдЯрд┐рд╡реЗрд╢рди рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕рд┐рд╕реНрдХреЛ AXL рд╡реЗрдм рд╕рд░реНрд╡рд┐рд╕ рдХреЛ рдСрди рдХрд░реЗрдВред
2. рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдорд╛рдирдХ AXL рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХреА рднреВрдорд┐рдХрд╛ рд╣реИред
3. рдЖрдк https ://10.0.0.10:8443/realtimeservice/services/RisPort ? wsdl рдкреЗрдЬ рдЦреЛрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдХ WSDL рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ (рдПрдХреНрд╕рдПрдордПрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ XML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝) рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдФрд░ рдЖрдк рдЖрдЧреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

getFunctions


AXL рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо PHP рднрд╛рд╖рд╛ рдФрд░ рдорд╛рдирдХ SoapClient рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЙрдкрд░реЛрдХреНрдд URL рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдорд╛рдирдХ __getFunctions () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ:
$hostname = '10.0.0.10'; $client = new SoapClient("https://$hostname:8443/realtimeservice/services/RisPort?wsdl", array('trace'=>true, 'exceptions'=>true, 'location'=>"https://$hostname:8443/realtimeservice/services/RisPort", 'login'=>'LOGIN', 'password'=>'PASSWORD', )); $response = $client->__getFunctions(); print_r($response); 

рд╣рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдорд┐рд▓рддреЗ рд╣реИрдВ:
  [0] => list(SelectCmDeviceResult $SelectCmDeviceResult, string $StateInfo) SelectCmDevice(string $StateInfo, CmSelectionCriteria $CmSelectionCriteria) [1] => list(string $StateInfo, SelectCtiItemResult $SelectCtiItemResult) SelectCtiItem(string $StateInfo, CtiSelectionCriteria $CtiSelectionCriteria) [2] => ArrayOfColumnValues ExecuteCCMSQLStatement(string $ExecuteSQLInputData, ArrayOfGetColumns $GetColumns) [3] => ArrayOfServerInfo GetServerInfo(ArrayOfHosts $Hosts) [4] => list(SelectCmDeviceResultSIP $SelectCmDeviceResultSIP, string $StateInfo) SelectCmDeviceSIP(string $StateInfo, CmSelectionCriteriaSIP $CmSelectionCriteriaSIP) 


getServerInfo


рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреБрд░реЛрдз рд╕рд░реНрд╡рд░ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ:
 //     SOAP-   $response = $client->getServerInfo(); print_r($response); 

рдкрд░рд┐рдгрд╛рдо:
  [HostName] => CUCM1 [os-name] => VOS [os-version] => 2.6.9-78.ELsmp [os-arch] => i386 [java-runtime-version] => 1.6.0_24-b07 [java-vm-vendor] => Sun Microsystems Inc. [call-manager-version] => 7.1.5.33900-10 [Active_Versions] => hwdata-0.146.33.EL-11 : ... 


SelectCmDevice


рдЪрд▓рд┐рдП рдЕрдм рдЦреБрдж рдлреЛрди рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, SOAP рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдлреЛрди 501 рдФрд░ 502 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред $ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
 //    SOAP- $items = array(); $items['SelectItem[0]']['Item'] = "501"; $items['SelectItem[1]']['Item'] = "502"; $response = $client->SelectCmDevice("", array( "SelectBy" => "DirNumber", //    "Name",    $items   "SEPaabbccxxyyzz",  .. "Status" => "Any", "SelectItems" => $items )); $devices = $response['SelectCmDeviceResult']->CmNodes[1]->CmDevices; print_r($devices); 

рдкрд░рд┐рдгрд╛рдо
  [0] => stdClass Object ( [Name] => SEPAABBCC112233 [IpAddress] => 10.0.0.101 [DirNumber] => 501-Registered [Class] => Phone [Model] => 564 [Product] => 451 [BoxProduct] => 0 [Httpd] => Yes [RegistrationAttempts] => 0 [IsCtiControllable] => 1 [LoginUserId] => [Status] => Registered [StatusReason] => 0 [PerfMonObject] => 2 [DChannel] => 0 [Description] => 501 (Ivanov) [H323Trunk] => stdClass Object ( [ConfigName] => [TechPrefix] => [Zone] => [RemoteCmServer1] => [RemoteCmServer2] => [RemoteCmServer3] => [AltGkList] => [ActiveGk] => [CallSignalAddr] => [RasAddr] => ) [TimeStamp] => 1403127103 ) [1] => stdClass Object ( [Name] => SEPAABBCC112234 [IpAddress] => 10.0.0.102 [DirNumber] => 502-Registered [Class] => Phone [Model] => 30016 [Product] => 30041 [BoxProduct] => 0 [Httpd] => Yes [RegistrationAttempts] => 1 [IsCtiControllable] => 1 [LoginUserId] => [Status] => Registered [StatusReason] => 0 [PerfMonObject] => 2 [DChannel] => 0 [Description] => 502 (Petrov) [H323Trunk] => stdClass Object ( [ConfigName] => [TechPrefix] => [Zone] => [RemoteCmServer1] => [RemoteCmServer2] => [RemoteCmServer3] => [AltGkList] => [ActiveGk] => [CallSignalAddr] => [RasAddr] => ) [TimeStamp] => 1403531108 ) 


PerfmonCollectCounterData


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдЯреЗрд▓реАрдлреЛрди рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВрдЧреЗ - рдЕрд░реНрдерд╛рддреН, рд▓рд╛рдЗрдиреЗрдВ рдореБрдХреНрдд рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд░реЗрдЦрд╛ рд╡реНрдпрд╕реНрдд рд╣реИ (рдпрд╛рдиреА рдбрд╛рдпрд▓ рдпрд╛ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реИ), рддреЛ рдорд╛рди рд╣реИ 1. рдпрджрд┐ рдпрд╣ рдореБрдлрд╝реНрдд рд╣реИ, рддреЛ 0. рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рджреВрд╕рд░реЗ WSDL рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдУрд░ рд░реБрдЦ рдХрд░рддреЗ рд╣реИрдВ:
 $hostname = "10.0.0.10"; $client = new SoapClient("https://$hostname:8443/perfmonservice/services/PerfmonPort?wsdl", array('trace'=>true, 'exceptions'=>true, 'location'=>"https://$hostname:8443/perfmonservice/services/PerfmonPort", 'login'=>'LOGIN', 'password'=>'PASSWORD', )); $collection = "Cisco Lines"; $response = $client->PerfmonCollectCounterData($hostname, $collection); print_r($response); 

рдкрд░рд┐рдгрд╛рдо
  [0] => stdClass Object ( [Name] => \\10.0.0.10\Cisco Lines(12345678-abcd-dead-beef-0987654321ff:501)\Active [Value] => 0 [CStatus] => 1 ) [1] => stdClass Object ( [Name] => \\10.0.0.10\Cisco Lines(12345678-abcd-dead-beef-0987654321ff:502)\Active [Value] => 1 [CStatus] => 1 ) 

рдпрд╣рд╛рдВ рд╣рдо рд╕рд┐рд╕реНрдХреЛ рд▓рд╛рдЗрдиреНрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдиреНрдп рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
 $response = $client->PerfmonListCounter($hostname); 


ExecuteCCMSQLStatement


рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдЬрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ CUCM рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИред CUCM SSH рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
  рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди: systables рд╕реЗ sql select tabname рдЪрд▓рд╛рдПрдВ 

рдпреВрд░реЛрдк рднрд░ рдореЗрдВ рдПрдХ рд╕рд░рдкрдЯ рдкрд░, рд╣рдо рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдлреЛрди рд╣рдВрдЯ рдЧреНрд░реБрдк рдореЗрдВ рд╣реИрдВред рдлрд┐рд░ рд╕реЗ, $ рдЖрдЗрдЯрдо рд╕рд░рдгреА рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ:
 $hostname = '10.0.0.10'; $client = new SoapClient("https://$hostname:8443/realtimeservice/services/RisPort?wsdl", array('trace'=>true, 'exceptions'=>true, 'location'=>"https://$hostname:8443/realtimeservice/services/RisPort", 'login'=>'LOGIN', 'password'=>'PASSWORD', )); $items = array(); $items[] = array('Name'=>'hlog'); $items[] = array('Name'=>'description'); $response = $client->ExecuteCCMSQLStatement("SELECT h.hlog, d.description FROM device AS d INNER JOIN devicehlogdynamic AS h ON d.pkid = h.fkdevice", $items); print_r($response); 

рдкрд░рд┐рдгрд╛рдо
  [1] => stdClass Object ( [Name] => description [Value] => 501 (Ivanov) ) [2] => stdClass Object ( [Name] => hlog [Value] => t ) [3] => stdClass Object ( [Name] => description [Value] => 502 (Petrov) ) [4] => stdClass Object ( [Name] => hlog [Value] => f ) 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╡рд╛рдиреЛрд╡ рд╣рдВрдЯ рдЧреНрд░реБрдк (рдСрдкрд░реЗрдЯрд░ рдкреВрд▓ рдореЗрдВ) рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреЗрдЯреНрд░реЛрд╡ рдирд╣реАрдВ рд╣реИред

рд╡реЗрдм рдирд┐рдЧрд░рд╛рдиреА рдЖрд╡реЗрджрди


рдЗрди рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░, рдореБрдЭреЗ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдорд┐рд▓рд╛ рдЬреЛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдкреВрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореЗрд░реЗ GitHub рдкрд░ рд╕реНрд░реЛрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

Source: https://habr.com/ru/post/In171219/


All Articles