KeHo
asked on
Delphi SOAP response always NIL
I am trying to create a communication module to Cisco CCM using the .WSDL for risport.
I have converted the risport .WSDL into a risport.pas without any problems. The request are sent correct (see below) but the response are always NIL. When I see the response from the HTTPRIO component it seems okay.
What have I done wrong, since it do not convert the response correctly?
I have added:
SOAP request
SOAP response
delphi code that send the the SOAP request
risport.pas
SOAP request
SOAP response
DELPHI code
RISPORT.PAS
I have converted the risport .WSDL into a risport.pas without any problems. The request are sent correct (see below) but the response are always NIL. When I see the response from the HTTPRIO component it seems okay.
What have I done wrong, since it do not convert the response correctly?
I have added:
SOAP request
SOAP response
delphi code that send the the SOAP request
risport.pas
SOAP request
<?xml version="1.0" ?>
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 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:Body xmlns:NS1="http://schemas.cisco.com/ast/soap/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
- <NS1:SelectCmDevice>
<StateInfo xsi:type="xsd:string" />
<CmSelectionCriteria href="#1" />
</NS1:SelectCmDevice>
- <NS1:CmSelectionCriteria id="1" xsi:type="NS1:CmSelectionCriteria">
<MaxReturnedDevices xsi:type="xsd:unsignedInt">1000</MaxReturnedDevices>
<Class xsi:type="xsd:string">Phone</Class>
<Model xsi:type="xsd:unsignedInt">255</Model>
<Status xsi:type="xsd:string">Registered</Status>
<NodeName xsi:type="xsd:string">10.1.1.51</NodeName>
<SelectBy xsi:type="xsd:string">Name</SelectBy>
<NS1:SelectItems href="#2" />
</NS1:CmSelectionCriteria>
- <SOAP-ENC:Array id="2" xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="NS1:SelectItem[1]">
<item href="#3" />
</SOAP-ENC:Array>
- <NS1:SelectItem id="3" xsi:type="NS1:SelectItem">
<Item xsi:type="xsd:string">SEP00169D597C50</Item>
</NS1:SelectItem>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP response
<?xml version="1.0" encoding="UTF-8" ?>
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Body>
- <ns1:SelectCmDeviceResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://schemas.cisco.com/ast/soap/">
- <SelectCmDeviceResult xsi:type="ns1:SelectCmDeviceResult">
<TotalDevicesFound xsi:type="xsd:unsignedInt">1</TotalDevicesFound>
- <CmNodes soapenc:arrayType="ns1:CmNode[1]" xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
- <item xsi:type="ns1:CmNode">
<ReturnCode xsi:type="ns1:RisReturnCode">Ok</ReturnCode>
<Name xsi:type="xsd:string">10.1.1.51</Name>
<NoChange xsi:type="xsd:boolean">false</NoChange>
- <CmDevices soapenc:arrayType="ns1:CmDevice[1]" xsi:type="soapenc:Array">
- <item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">SEP00169D597C50</Name>
<IpAddress xsi:type="xsd:string">10.102.1.103</IpAddress>
<DirNumber xsi:type="xsd:string">1290-Registered</DirNumber>
<Class xsi:type="ns1:DeviceClass">Phone</Class>
<Model xsi:type="xsd:unsignedInt">115</Model>
<Product xsi:type="xsd:unsignedInt">115</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">Yes</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">true</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true" />
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">2</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">DK.AAL 1290 Brian Hansen</Description>
- <H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true" />
<TechPrefix xsi:type="xsd:string" xsi:nil="true" />
<Zone xsi:type="xsd:string" xsi:nil="true" />
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true" />
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true" />
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true" />
<AltGkList xsi:type="xsd:string" xsi:nil="true" />
<ActiveGk xsi:type="xsd:string" xsi:nil="true" />
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true" />
<RasAddr xsi:type="xsd:string" xsi:nil="true" />
</H323Trunk>
<TimeStamp xsi:type="xsd:unsignedInt">1300431320</TimeStamp>
</item>
</CmDevices>
</item>
</CmNodes>
</SelectCmDeviceResult>
<StateInfo xsi:type="xsd:string"><StateInfo><Node Name="10.1.1.51" SubsystemStartTime="1296942905" StateId="20572" TotalItemsFound="1" TotalItemsReturned="1"/></StateInfo></StateInfo>
</ns1:SelectCmDeviceResponse>
</soapenv:Body>
</soapenv:Envelope>
DELPHI code
stateinfo := '';
cmselection := cmselectioncriteria.create;
cmselection.MaxReturnedDevices := 1000;
cmselection.NodeName := '10.1.1.51';
cmselection.Model := 255;
cmselection.Class_ := 'Phone';
cmselection.Status := 'Registered'; //00169D597C50
cmselection.SelectBy := 'Name';
setlength(selitems, 1);
selitems[0] := selectitem.create;
selitems[0].item := 'SEP00169D597C50';
cmselection.SelectItems := selitems;
cmdeviceresult := y.SelectCmDevice(StateInfo, CmSelection);
if cmdeviceresult = nil then
RISPORT.PAS
// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL : https://10.1.1.51:8443/realtimeservice/services/RisPort?wsdl
// >Import : https://10.1.1.51:8443/realtimeservice/services/RisPort?wsdl>0
// Encoding : UTF-8
// Version : 1.0
// (01-04-2011 09:43:25 - - $Rev: 34800 $)
// ************************************************************************ //
unit RisPort;
interface
uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
const
IS_OPTN = $0001;
IS_UNBD = $0002;
type
// ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Embarcadero types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:unsignedInt - "http://www.w3.org/2001/XMLSchema"[Gbl]
// !:string - "http://www.w3.org/2001/XMLSchema"[Gbl]
// !:boolean - "http://www.w3.org/2001/XMLSchema"[Gbl]
SelectCmDeviceResultSIP = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
SelectCmDeviceResult = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
SelectCtiItemResult = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
ColumnType = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CtiItem = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CtiLine = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
ServerInformation = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
ColumnValueType = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
SelectAppItem = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
SelectDevName = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
SelectDirNumber = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
AstHeader = class; { "http://schemas.cisco.com/ast/soap/"[Hdr][GblCplx] }
SelectItem = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmSelectionCriteria = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmSelectionCriteriaSIP = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CtiSelectionCriteria = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
H323Trunk = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmDevice = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CtiDevice = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmNode = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CtiNode = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmNodeSIP = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmDeviceSIP = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmDevSingleLineStatus = class; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
{$SCOPEDENUMS ON}
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
CtiSelectAppBy = (AppId, AppIpAddress, UserId);
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
CtiStatus = (Any, Open, Closed, OpenFailed, Unknown);
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
CtiMgrClass = (Provider, Device, Line);
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
ProtocolType = (Any, SCCP, SIP, Unknown);
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
DeviceClass = (Any, Phone, Gateway, H323, Cti, VoiceMail, MediaResources, Unknown, SIP_Trunk);
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
CmDevHttpd = (Yes, No, Unknown);
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
CmDevRegStat = (Any, Registered, UnRegistered, Rejected, PartiallyRegistered, Unknown);
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
RisReturnCode = (Ok, NotFound, InvalidRequest, InternalError, NodeNotResponding, InvalidNodeName);
{ "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
CmSingleLineStatus = (Any, Registered, UnRegistered, Rejected, Unknown);
{$SCOPEDENUMS OFF}
CtiNodes = array of CtiNode; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
SelectDirNumbers = array of SelectDirNumber; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
SelectDevNames = array of SelectDevName; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
SelectAppItems = array of SelectAppItem; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CtiItems = array of CtiItem; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
ArrayOfServerInfo = array of ServerInformation; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
ArrayOfColumnValues = array of ColumnValueType; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
ArrayOfGetColumns = array of ColumnType; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmNodes = array of CmNode; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
CmNodesSIP = array of CmNodeSIP; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
// ************************************************************************ //
// XML : SelectCmDeviceResultSIP, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
SelectCmDeviceResultSIP = class(TRemotable)
private
FTotalDevicesFound: Cardinal;
FCmNodes: CmNodesSIP;
public
destructor Destroy; override;
published
property TotalDevicesFound: Cardinal read FTotalDevicesFound write FTotalDevicesFound;
property CmNodes: CmNodesSIP read FCmNodes write FCmNodes;
end;
// ************************************************************************ //
// XML : SelectCmDeviceResult, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
SelectCmDeviceResult = class(TRemotable)
private
FTotalDevicesFound: Cardinal;
FCmNodes: CmNodes;
public
destructor Destroy; override;
published
property TotalDevicesFound: Cardinal read FTotalDevicesFound write FTotalDevicesFound;
property CmNodes: CmNodes read FCmNodes write FCmNodes;
end;
// ************************************************************************ //
// XML : SelectCtiItemResult, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
SelectCtiItemResult = class(TRemotable)
private
FTotalItemsFound: Cardinal;
FCtiNodes: CtiNodes;
public
destructor Destroy; override;
published
property TotalItemsFound: Cardinal read FTotalItemsFound write FTotalItemsFound;
property CtiNodes: CtiNodes read FCtiNodes write FCtiNodes;
end;
// ************************************************************************ //
// XML : ColumnType, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
ColumnType = class(TRemotable)
private
FName_: string;
published
property Name_: string read FName_ write FName_;
end;
// ************************************************************************ //
// XML : CtiItem, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CtiItem = class(TRemotable)
private
FAppId: string;
FUserId: string;
FAppIpAddr: string;
FAppStatus: CtiStatus;
FAppStatusReason: Cardinal;
FAppTimeStamp: Cardinal;
FCtiDevice: CtiDevice;
FCtiLine: CtiLine;
public
destructor Destroy; override;
published
property AppId: string read FAppId write FAppId;
property UserId: string read FUserId write FUserId;
property AppIpAddr: string read FAppIpAddr write FAppIpAddr;
property AppStatus: CtiStatus read FAppStatus write FAppStatus;
property AppStatusReason: Cardinal read FAppStatusReason write FAppStatusReason;
property AppTimeStamp: Cardinal read FAppTimeStamp write FAppTimeStamp;
property CtiDevice: CtiDevice read FCtiDevice write FCtiDevice;
property CtiLine: CtiLine read FCtiLine write FCtiLine;
end;
// ************************************************************************ //
// XML : CtiLine, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CtiLine = class(TRemotable)
private
FDirNumber: string;
FLineStatus: CtiStatus;
FLineStatusReason: Cardinal;
FLineTimeStamp: Cardinal;
published
property DirNumber: string read FDirNumber write FDirNumber;
property LineStatus: CtiStatus read FLineStatus write FLineStatus;
property LineStatusReason: Cardinal read FLineStatusReason write FLineStatusReason;
property LineTimeStamp: Cardinal read FLineTimeStamp write FLineTimeStamp;
end;
ArrayOfHosts = array of string; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
// ************************************************************************ //
// XML : ServerInformation, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
ServerInformation = class(TRemotable)
private
FHostName: string;
Fos_name: string;
Fos_version: string;
Fos_arch: string;
Fjava_runtime_version: string;
Fjava_vm_vendor: string;
Fcall_manager_version: string;
FActive_Versions: string;
FIn_Active_Versions: string;
published
property HostName: string read FHostName write FHostName;
property os_name: string read Fos_name write Fos_name;
property os_version: string read Fos_version write Fos_version;
property os_arch: string read Fos_arch write Fos_arch;
property java_runtime_version: string read Fjava_runtime_version write Fjava_runtime_version;
property java_vm_vendor: string read Fjava_vm_vendor write Fjava_vm_vendor;
property call_manager_version: string read Fcall_manager_version write Fcall_manager_version;
property Active_Versions: string read FActive_Versions write FActive_Versions;
property In_Active_Versions: string read FIn_Active_Versions write FIn_Active_Versions;
end;
ColumnNType = string; { "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
ColumnVType = string; { "http://schemas.cisco.com/ast/soap/"[GblSmpl] }
// ************************************************************************ //
// XML : ColumnValueType, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
ColumnValueType = class(TRemotable)
private
FName_: ColumnNType;
FValue: ColumnVType;
published
property Name_: ColumnNType read FName_ write FName_;
property Value: ColumnVType read FValue write FValue;
end;
// ************************************************************************ //
// XML : SelectAppItem, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
SelectAppItem = class(TRemotable)
private
FAppItem: string;
published
property AppItem: string read FAppItem write FAppItem;
end;
// ************************************************************************ //
// XML : SelectDevName, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
SelectDevName = class(TRemotable)
private
FDevName: string;
published
property DevName: string read FDevName write FDevName;
end;
// ************************************************************************ //
// XML : SelectDirNumber, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
SelectDirNumber = class(TRemotable)
private
FDirNumber: string;
published
property DirNumber: string read FDirNumber write FDirNumber;
end;
// ************************************************************************ //
// XML : AstHeader, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// Info : Header
// ************************************************************************ //
AstHeader = class(TSOAPHeader)
private
FSessionId: string;
published
property SessionId: string read FSessionId write FSessionId;
end;
// ************************************************************************ //
// XML : SelectItem, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
SelectItem = class(TRemotable)
private
FItem: string;
published
property Item: string read FItem write FItem;
end;
SelectItems = array of SelectItem; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
// ************************************************************************ //
// XML : CmSelectionCriteria, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CmSelectionCriteria = class(TRemotable)
private
FMaxReturnedDevices: Cardinal;
FClass_: string;
FModel: Cardinal;
FStatus: string;
FNodeName: string;
FSelectBy: string;
FSelectItems: SelectItems;
public
destructor Destroy; override;
published
property MaxReturnedDevices: Cardinal read FMaxReturnedDevices write FMaxReturnedDevices;
property Class_: string read FClass_ write FClass_;
property Model: Cardinal read FModel write FModel;
property Status: string read FStatus write FStatus;
property NodeName: string read FNodeName write FNodeName;
property SelectBy: string read FSelectBy write FSelectBy;
property SelectItems: SelectItems read FSelectItems write FSelectItems;
end;
// ************************************************************************ //
// XML : CmSelectionCriteriaSIP, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CmSelectionCriteriaSIP = class(TRemotable)
private
FMaxReturnedDevices: Cardinal;
FClass_: string;
FModel: Cardinal;
FStatus: string;
FNodeName: string;
FSelectBy: string;
FSelectItems: SelectItems;
FProtocol: ProtocolType;
public
destructor Destroy; override;
published
property MaxReturnedDevices: Cardinal read FMaxReturnedDevices write FMaxReturnedDevices;
property Class_: string read FClass_ write FClass_;
property Model: Cardinal read FModel write FModel;
property Status: string read FStatus write FStatus;
property NodeName: string read FNodeName write FNodeName;
property SelectBy: string read FSelectBy write FSelectBy;
property SelectItems: SelectItems read FSelectItems write FSelectItems;
property Protocol: ProtocolType read FProtocol write FProtocol;
end;
// ************************************************************************ //
// XML : CtiSelectionCriteria, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CtiSelectionCriteria = class(TRemotable)
private
FMaxReturnedItems: Cardinal;
FCtiMgrClass: CtiMgrClass;
FStatus: CtiStatus;
FNodeName: string;
FSelectAppBy: CtiSelectAppBy;
FAppItems: SelectAppItems;
FDevNames: SelectDevNames;
FDirNumbers: SelectDirNumbers;
public
destructor Destroy; override;
published
property MaxReturnedItems: Cardinal read FMaxReturnedItems write FMaxReturnedItems;
property CtiMgrClass: CtiMgrClass read FCtiMgrClass write FCtiMgrClass;
property Status: CtiStatus read FStatus write FStatus;
property NodeName: string read FNodeName write FNodeName;
property SelectAppBy: CtiSelectAppBy read FSelectAppBy write FSelectAppBy;
property AppItems: SelectAppItems read FAppItems write FAppItems;
property DevNames: SelectDevNames read FDevNames write FDevNames;
property DirNumbers: SelectDirNumbers read FDirNumbers write FDirNumbers;
end;
// ************************************************************************ //
// XML : H323Trunk, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
H323Trunk = class(TRemotable)
private
FConfigName: string;
FTechPrefix: string;
FZone: string;
FRemoteCmServer1: string;
FRemoteCmServer2: string;
FRemoteCmServer3: string;
FAltGkList: string;
FActiveGk: string;
FCallSignalAddr: string;
FRasAddr: string;
published
property ConfigName: string read FConfigName write FConfigName;
property TechPrefix: string read FTechPrefix write FTechPrefix;
property Zone: string read FZone write FZone;
property RemoteCmServer1: string read FRemoteCmServer1 write FRemoteCmServer1;
property RemoteCmServer2: string read FRemoteCmServer2 write FRemoteCmServer2;
property RemoteCmServer3: string read FRemoteCmServer3 write FRemoteCmServer3;
property AltGkList: string read FAltGkList write FAltGkList;
property ActiveGk: string read FActiveGk write FActiveGk;
property CallSignalAddr: string read FCallSignalAddr write FCallSignalAddr;
property RasAddr: string read FRasAddr write FRasAddr;
end;
CmDevices = array of CmDevice; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
// ************************************************************************ //
// XML : CmDevice, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CmDevice = class(TRemotable)
private
FName_: string;
FIpAddress: string;
FDirNumber: string;
FClass_: DeviceClass;
FModel: Cardinal;
FProduct: Cardinal;
FBoxProduct: Cardinal;
FHttpd: CmDevHttpd;
FRegistrationAttempts: Cardinal;
FIsCtiControllable: Boolean;
FLoginUserId: string;
FStatus: CmDevRegStat;
FStatusReason: Cardinal;
FPerfMonObject: Cardinal;
FDChannel: Cardinal;
FDescription: string;
FH323Trunk: H323Trunk;
FTimeStamp: Cardinal;
public
destructor Destroy; override;
published
property Name_: string read FName_ write FName_;
property IpAddress: string read FIpAddress write FIpAddress;
property DirNumber: string read FDirNumber write FDirNumber;
property Class_: DeviceClass read FClass_ write FClass_;
property Model: Cardinal read FModel write FModel;
property Product: Cardinal read FProduct write FProduct;
property BoxProduct: Cardinal read FBoxProduct write FBoxProduct;
property Httpd: CmDevHttpd read FHttpd write FHttpd;
property RegistrationAttempts: Cardinal read FRegistrationAttempts write FRegistrationAttempts;
property IsCtiControllable: Boolean read FIsCtiControllable write FIsCtiControllable;
property LoginUserId: string read FLoginUserId write FLoginUserId;
property Status: CmDevRegStat read FStatus write FStatus;
property StatusReason: Cardinal read FStatusReason write FStatusReason;
property PerfMonObject: Cardinal read FPerfMonObject write FPerfMonObject;
property DChannel: Cardinal read FDChannel write FDChannel;
property Description: string read FDescription write FDescription;
property H323Trunk: H323Trunk read FH323Trunk write FH323Trunk;
property TimeStamp: Cardinal read FTimeStamp write FTimeStamp;
end;
// ************************************************************************ //
// XML : CtiDevice, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CtiDevice = class(TRemotable)
private
FAppControlsMedia: Boolean;
FDeviceName: string;
FDeviceStatus: CtiStatus;
FDeviceStatusReason: Cardinal;
FDeviceTimeStamp: Cardinal;
published
property AppControlsMedia: Boolean read FAppControlsMedia write FAppControlsMedia;
property DeviceName: string read FDeviceName write FDeviceName;
property DeviceStatus: CtiStatus read FDeviceStatus write FDeviceStatus;
property DeviceStatusReason: Cardinal read FDeviceStatusReason write FDeviceStatusReason;
property DeviceTimeStamp: Cardinal read FDeviceTimeStamp write FDeviceTimeStamp;
end;
// ************************************************************************ //
// XML : CmNode, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CmNode = class(TRemotable)
private
FReturnCode: RisReturnCode;
FName_: string;
FNoChange: Boolean;
FCmDevices: CmDevices;
public
destructor Destroy; override;
published
property ReturnCode: RisReturnCode read FReturnCode write FReturnCode;
property Name_: string read FName_ write FName_;
property NoChange: Boolean read FNoChange write FNoChange;
property CmDevices: CmDevices read FCmDevices write FCmDevices;
end;
// ************************************************************************ //
// XML : CtiNode, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CtiNode = class(TRemotable)
private
FReturnCode: RisReturnCode;
FName_: string;
FNoChange: Boolean;
FCtiItems: CtiItems;
public
destructor Destroy; override;
published
property ReturnCode: RisReturnCode read FReturnCode write FReturnCode;
property Name_: string read FName_ write FName_;
property NoChange: Boolean read FNoChange write FNoChange;
property CtiItems: CtiItems read FCtiItems write FCtiItems;
end;
CmDevicesSIP = array of CmDeviceSIP; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
// ************************************************************************ //
// XML : CmNodeSIP, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CmNodeSIP = class(TRemotable)
private
FReturnCode: RisReturnCode;
FName_: string;
FNoChange: Boolean;
FCmDevices: CmDevicesSIP;
public
destructor Destroy; override;
published
property ReturnCode: RisReturnCode read FReturnCode write FReturnCode;
property Name_: string read FName_ write FName_;
property NoChange: Boolean read FNoChange write FNoChange;
property CmDevices: CmDevicesSIP read FCmDevices write FCmDevices;
end;
CmDevLinesStatus = array of CmDevSingleLineStatus; { "http://schemas.cisco.com/ast/soap/"[GblCplx] }
// ************************************************************************ //
// XML : CmDeviceSIP, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CmDeviceSIP = class(TRemotable)
private
FName_: string;
FIpAddress: string;
FDirNumber: string;
FClass_: DeviceClass;
FModel: Cardinal;
FProduct: Cardinal;
FBoxProduct: Cardinal;
FHttpd: CmDevHttpd;
FRegistrationAttempts: Cardinal;
FIsCtiControllable: Boolean;
FLoginUserId: string;
FStatus: CmDevRegStat;
FStatusReason: Cardinal;
FPerfMonObject: Cardinal;
FDChannel: Cardinal;
FDescription: string;
FH323Trunk: H323Trunk;
FTimeStamp: Cardinal;
FProtocol: ProtocolType;
FNumOfLines: Cardinal;
FLinesStatus: CmDevLinesStatus;
public
destructor Destroy; override;
published
property Name_: string read FName_ write FName_;
property IpAddress: string read FIpAddress write FIpAddress;
property DirNumber: string read FDirNumber write FDirNumber;
property Class_: DeviceClass read FClass_ write FClass_;
property Model: Cardinal read FModel write FModel;
property Product: Cardinal read FProduct write FProduct;
property BoxProduct: Cardinal read FBoxProduct write FBoxProduct;
property Httpd: CmDevHttpd read FHttpd write FHttpd;
property RegistrationAttempts: Cardinal read FRegistrationAttempts write FRegistrationAttempts;
property IsCtiControllable: Boolean read FIsCtiControllable write FIsCtiControllable;
property LoginUserId: string read FLoginUserId write FLoginUserId;
property Status: CmDevRegStat read FStatus write FStatus;
property StatusReason: Cardinal read FStatusReason write FStatusReason;
property PerfMonObject: Cardinal read FPerfMonObject write FPerfMonObject;
property DChannel: Cardinal read FDChannel write FDChannel;
property Description: string read FDescription write FDescription;
property H323Trunk: H323Trunk read FH323Trunk write FH323Trunk;
property TimeStamp: Cardinal read FTimeStamp write FTimeStamp;
property Protocol: ProtocolType read FProtocol write FProtocol;
property NumOfLines: Cardinal read FNumOfLines write FNumOfLines;
property LinesStatus: CmDevLinesStatus read FLinesStatus write FLinesStatus;
end;
// ************************************************************************ //
// XML : CmDevSingleLineStatus, global, <complexType>
// Namespace : http://schemas.cisco.com/ast/soap/
// ************************************************************************ //
CmDevSingleLineStatus = class(TRemotable)
private
FDirectoryNumber: string;
FStatus: CmSingleLineStatus;
published
property DirectoryNumber: string read FDirectoryNumber write FDirectoryNumber;
property Status: CmSingleLineStatus read FStatus write FStatus;
end;
// ************************************************************************ //
// Namespace : http://schemas.cisco.com/ast/soap/
// soapAction: |http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCmDevice|http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCtiItem|http://schemas.cisco.com/ast/soap/action/#PerfmonPort#ExecuteCCMSQLStatement|http://schemas.cisco.com/ast/soap/action/#PerfmonPort#GetServerInfo|http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCmDeviceSIP
// transport : http://schemas.xmlsoap.org/soap/http
// style : rpc
// use : encoded
// binding : RisBinding
// service : RISService
// port : RisPort
// URL : https://10.1.1.51:8443/realtimeservice/services/RisPort
// ************************************************************************ //
RisPortType = interface(IInvokable)
['{31527E2B-2118-2941-3E45-F01514CA5BF4}']
// Headers: AstHeader:pInOut
function SelectCmDevice(var StateInfo: string; const CmSelectionCriteria: CmSelectionCriteria): SelectCmDeviceResult; stdcall;
// Headers: AstHeader:pInOut
function SelectCtiItem(var StateInfo: string; const CtiSelectionCriteria: CtiSelectionCriteria): SelectCtiItemResult; stdcall;
// Headers: AstHeader:pInOut
function ExecuteCCMSQLStatement(const ExecuteSQLInputData: string; const GetColumns: ArrayOfGetColumns): ArrayOfColumnValues; stdcall;
// Headers: AstHeader:pInOut
function GetServerInfo(const Hosts: ArrayOfHosts): ArrayOfServerInfo; stdcall;
// Headers: AstHeader:pInOut
function SelectCmDeviceSIP(var StateInfo: string; const CmSelectionCriteriaSIP: CmSelectionCriteriaSIP): SelectCmDeviceResultSIP; stdcall;
end;
function GetRisPortType(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): RisPortType;
implementation
uses SysUtils;
function GetRisPortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): RisPortType;
const
defWSDL = 'https://10.1.1.51:8443/realtimeservice/services/RisPort?wsdl';
defURL = 'https://10.1.1.51:8443/realtimeservice/services/RisPort';
defSvc = 'RISService';
defPrt = 'RisPort';
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = '') then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try
Result := (RIO as RisPortType);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;
destructor SelectCmDeviceResultSIP.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FCmNodes)-1 do
SysUtils.FreeAndNil(FCmNodes[I]);
System.SetLength(FCmNodes, 0);
inherited Destroy;
end;
destructor SelectCmDeviceResult.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FCmNodes)-1 do
SysUtils.FreeAndNil(FCmNodes[I]);
System.SetLength(FCmNodes, 0);
inherited Destroy;
end;
destructor SelectCtiItemResult.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FCtiNodes)-1 do
SysUtils.FreeAndNil(FCtiNodes[I]);
System.SetLength(FCtiNodes, 0);
inherited Destroy;
end;
destructor CtiItem.Destroy;
begin
SysUtils.FreeAndNil(FCtiDevice);
SysUtils.FreeAndNil(FCtiLine);
inherited Destroy;
end;
destructor CmSelectionCriteria.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FSelectItems)-1 do
SysUtils.FreeAndNil(FSelectItems[I]);
System.SetLength(FSelectItems, 0);
inherited Destroy;
end;
destructor CmSelectionCriteriaSIP.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FSelectItems)-1 do
SysUtils.FreeAndNil(FSelectItems[I]);
System.SetLength(FSelectItems, 0);
inherited Destroy;
end;
destructor CtiSelectionCriteria.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FAppItems)-1 do
SysUtils.FreeAndNil(FAppItems[I]);
System.SetLength(FAppItems, 0);
for I := 0 to System.Length(FDevNames)-1 do
SysUtils.FreeAndNil(FDevNames[I]);
System.SetLength(FDevNames, 0);
for I := 0 to System.Length(FDirNumbers)-1 do
SysUtils.FreeAndNil(FDirNumbers[I]);
System.SetLength(FDirNumbers, 0);
inherited Destroy;
end;
destructor CmDevice.Destroy;
begin
SysUtils.FreeAndNil(FH323Trunk);
inherited Destroy;
end;
destructor CmNode.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FCmDevices)-1 do
SysUtils.FreeAndNil(FCmDevices[I]);
System.SetLength(FCmDevices, 0);
inherited Destroy;
end;
destructor CtiNode.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FCtiItems)-1 do
SysUtils.FreeAndNil(FCtiItems[I]);
System.SetLength(FCtiItems, 0);
inherited Destroy;
end;
destructor CmNodeSIP.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FCmDevices)-1 do
SysUtils.FreeAndNil(FCmDevices[I]);
System.SetLength(FCmDevices, 0);
inherited Destroy;
end;
destructor CmDeviceSIP.Destroy;
var
I: Integer;
begin
for I := 0 to System.Length(FLinesStatus)-1 do
SysUtils.FreeAndNil(FLinesStatus[I]);
System.SetLength(FLinesStatus, 0);
SysUtils.FreeAndNil(FH323Trunk);
inherited Destroy;
end;
initialization
{ RisPortType }
InvRegistry.RegisterInterface(TypeInfo(RisPortType), 'http://schemas.cisco.com/ast/soap/', 'UTF-8');
InvRegistry.RegisterAllSOAPActions(TypeInfo(RisPortType), '|http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCmDevice'
+'|http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCtiItem'
+'|http://schemas.cisco.com/ast/soap/action/#PerfmonPort#ExecuteCCMSQLStatement'
+'|http://schemas.cisco.com/ast/soap/action/#PerfmonPort#GetServerInfo'
+'|http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCmDeviceSIP'
);
InvRegistry.RegisterHeaderClass(TypeInfo(RisPortType), AstHeader, 'AstHeader', 'http://schemas.cisco.com/ast/soap/');
{ RisPortType.GetServerInfo }
InvRegistry.RegisterParamInfo(TypeInfo(RisPortType), 'GetServerInfo', 'Hosts', '',
'[ArrayItemName="item"]');
RemClassRegistry.RegisterXSInfo(TypeInfo(CtiNodes), 'http://schemas.cisco.com/ast/soap/', 'CtiNodes');
RemClassRegistry.RegisterXSInfo(TypeInfo(CtiSelectAppBy), 'http://schemas.cisco.com/ast/soap/', 'CtiSelectAppBy');
RemClassRegistry.RegisterXSInfo(TypeInfo(CtiStatus), 'http://schemas.cisco.com/ast/soap/', 'CtiStatus');
RemClassRegistry.RegisterXSInfo(TypeInfo(CtiMgrClass), 'http://schemas.cisco.com/ast/soap/', 'CtiMgrClass');
RemClassRegistry.RegisterXSInfo(TypeInfo(SelectDirNumbers), 'http://schemas.cisco.com/ast/soap/', 'SelectDirNumbers');
RemClassRegistry.RegisterXSInfo(TypeInfo(SelectDevNames), 'http://schemas.cisco.com/ast/soap/', 'SelectDevNames');
RemClassRegistry.RegisterXSInfo(TypeInfo(SelectAppItems), 'http://schemas.cisco.com/ast/soap/', 'SelectAppItems');
RemClassRegistry.RegisterXSInfo(TypeInfo(CtiItems), 'http://schemas.cisco.com/ast/soap/', 'CtiItems');
RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfServerInfo), 'http://schemas.cisco.com/ast/soap/', 'ArrayOfServerInfo');
RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfColumnValues), 'http://schemas.cisco.com/ast/soap/', 'ArrayOfColumnValues');
RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfGetColumns), 'http://schemas.cisco.com/ast/soap/', 'ArrayOfGetColumns');
RemClassRegistry.RegisterXSInfo(TypeInfo(CmNodes), 'http://schemas.cisco.com/ast/soap/', 'CmNodes');
RemClassRegistry.RegisterXSInfo(TypeInfo(ProtocolType), 'http://schemas.cisco.com/ast/soap/', 'ProtocolType');
RemClassRegistry.RegisterXSInfo(TypeInfo(CmNodesSIP), 'http://schemas.cisco.com/ast/soap/', 'CmNodesSIP');
RemClassRegistry.RegisterXSClass(SelectCmDeviceResultSIP, 'http://schemas.cisco.com/ast/soap/', 'SelectCmDeviceResultSIP');
RemClassRegistry.RegisterXSClass(SelectCmDeviceResult, 'http://schemas.cisco.com/ast/soap/', 'SelectCmDeviceResult');
RemClassRegistry.RegisterXSClass(SelectCtiItemResult, 'http://schemas.cisco.com/ast/soap/', 'SelectCtiItemResult');
RemClassRegistry.RegisterXSClass(ColumnType, 'http://schemas.cisco.com/ast/soap/', 'ColumnType');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ColumnType), 'Name_', '[ExtName="Name"]');
RemClassRegistry.RegisterXSClass(CtiItem, 'http://schemas.cisco.com/ast/soap/', 'CtiItem');
RemClassRegistry.RegisterXSClass(CtiLine, 'http://schemas.cisco.com/ast/soap/', 'CtiLine');
RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfHosts), 'http://schemas.cisco.com/ast/soap/', 'ArrayOfHosts');
RemClassRegistry.RegisterXSClass(ServerInformation, 'http://schemas.cisco.com/ast/soap/', 'ServerInformation');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ServerInformation), 'os_name', '[ExtName="os-name"]');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ServerInformation), 'os_version', '[ExtName="os-version"]');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ServerInformation), 'os_arch', '[ExtName="os-arch"]');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ServerInformation), 'java_runtime_version', '[ExtName="java-runtime-version"]');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ServerInformation), 'java_vm_vendor', '[ExtName="java-vm-vendor"]');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ServerInformation), 'call_manager_version', '[ExtName="call-manager-version"]');
RemClassRegistry.RegisterXSInfo(TypeInfo(ColumnNType), 'http://schemas.cisco.com/ast/soap/', 'ColumnNType');
RemClassRegistry.RegisterXSInfo(TypeInfo(ColumnVType), 'http://schemas.cisco.com/ast/soap/', 'ColumnVType');
RemClassRegistry.RegisterXSClass(ColumnValueType, 'http://schemas.cisco.com/ast/soap/', 'ColumnValueType');
RemClassRegistry.RegisterExternalPropName(TypeInfo(ColumnValueType), 'Name_', '[ExtName="Name"]');
RemClassRegistry.RegisterXSClass(SelectAppItem, 'http://schemas.cisco.com/ast/soap/', 'SelectAppItem');
RemClassRegistry.RegisterXSClass(SelectDevName, 'http://schemas.cisco.com/ast/soap/', 'SelectDevName');
RemClassRegistry.RegisterXSClass(SelectDirNumber, 'http://schemas.cisco.com/ast/soap/', 'SelectDirNumber');
RemClassRegistry.RegisterXSClass(AstHeader, 'http://schemas.cisco.com/ast/soap/', 'AstHeader');
RemClassRegistry.RegisterXSClass(SelectItem, 'http://schemas.cisco.com/ast/soap/', 'SelectItem');
RemClassRegistry.RegisterXSInfo(TypeInfo(SelectItems), 'http://schemas.cisco.com/ast/soap/', 'SelectItems');
RemClassRegistry.RegisterXSClass(CmSelectionCriteria, 'http://schemas.cisco.com/ast/soap/', 'CmSelectionCriteria');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CmSelectionCriteria), 'Class_', '[ExtName="Class"]');
RemClassRegistry.RegisterXSClass(CmSelectionCriteriaSIP, 'http://schemas.cisco.com/ast/soap/', 'CmSelectionCriteriaSIP');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CmSelectionCriteriaSIP), 'Class_', '[ExtName="Class"]');
RemClassRegistry.RegisterXSInfo(TypeInfo(DeviceClass), 'http://schemas.cisco.com/ast/soap/', 'DeviceClass');
RemClassRegistry.RegisterExternalPropName(TypeInfo(DeviceClass), 'SIP_Trunk', 'SIP Trunk');
RemClassRegistry.RegisterXSInfo(TypeInfo(CmDevHttpd), 'http://schemas.cisco.com/ast/soap/', 'CmDevHttpd');
RemClassRegistry.RegisterXSClass(CtiSelectionCriteria, 'http://schemas.cisco.com/ast/soap/', 'CtiSelectionCriteria');
RemClassRegistry.RegisterXSClass(H323Trunk, 'http://schemas.cisco.com/ast/soap/', 'H323Trunk');
RemClassRegistry.RegisterXSInfo(TypeInfo(CmDevRegStat), 'http://schemas.cisco.com/ast/soap/', 'CmDevRegStat');
RemClassRegistry.RegisterXSInfo(TypeInfo(CmDevices), 'http://schemas.cisco.com/ast/soap/', 'CmDevices');
RemClassRegistry.RegisterXSClass(CmDevice, 'http://schemas.cisco.com/ast/soap/', 'CmDevice');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CmDevice), 'Name_', '[ExtName="Name"]');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CmDevice), 'Class_', '[ExtName="Class"]');
RemClassRegistry.RegisterXSClass(CtiDevice, 'http://schemas.cisco.com/ast/soap/', 'CtiDevice');
RemClassRegistry.RegisterXSInfo(TypeInfo(RisReturnCode), 'http://schemas.cisco.com/ast/soap/', 'RisReturnCode');
RemClassRegistry.RegisterXSClass(CmNode, 'http://schemas.cisco.com/ast/soap/', 'CmNode');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CmNode), 'Name_', '[ExtName="Name"]');
RemClassRegistry.RegisterXSClass(CtiNode, 'http://schemas.cisco.com/ast/soap/', 'CtiNode');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CtiNode), 'Name_', '[ExtName="Name"]');
RemClassRegistry.RegisterXSInfo(TypeInfo(CmDevicesSIP), 'http://schemas.cisco.com/ast/soap/', 'CmDevicesSIP');
RemClassRegistry.RegisterXSClass(CmNodeSIP, 'http://schemas.cisco.com/ast/soap/', 'CmNodeSIP');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CmNodeSIP), 'Name_', '[ExtName="Name"]');
RemClassRegistry.RegisterXSInfo(TypeInfo(CmDevLinesStatus), 'http://schemas.cisco.com/ast/soap/', 'CmDevLinesStatus');
RemClassRegistry.RegisterXSClass(CmDeviceSIP, 'http://schemas.cisco.com/ast/soap/', 'CmDeviceSIP');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CmDeviceSIP), 'Name_', '[ExtName="Name"]');
RemClassRegistry.RegisterExternalPropName(TypeInfo(CmDeviceSIP), 'Class_', '[ExtName="Class"]');
RemClassRegistry.RegisterXSInfo(TypeInfo(CmSingleLineStatus), 'http://schemas.cisco.com/ast/soap/', 'CmSingleLineStatus');
RemClassRegistry.RegisterXSClass(CmDevSingleLineStatus, 'http://schemas.cisco.com/ast/soap/', 'CmDevSingleLineStatus');
end.
ASKER
Running Delphi XE. Have not tried a .Net client (have not yet tried .net).
BR. Brian
BR. Brian
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
listening..
I've requested that this question be deleted for the following reason:
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
If nobody minds, I'd like the points, but I'm not bothered either way.
Have you tried consuming the same service from a .Net client? You may have to end up writing a .Net intermediary service to supply BasicHttpBinding endpoints to your Delphi clients.