2.2.4.1.7.9 GetUIDllName

The GetUIDllName packet, along with the TUISPIDLLCallback packet and the FreeDialogInstance packet, is used to install, configure, or remove a TSP on the server. The GetUIDllName packet begins the installation or removal process of the TSP; the TUISPIDLLCallback packet obtains any data required for display by the TSP user interface during installation, configuration, or removal of the TSP; and the FreeDialogInstance packet informs the server about the completion of the installation, configuration, or removal process of the TSP.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Req_Func

Reserved1

dwObjectID

dwObjectType

dwUIDllNameOffset

dwUIDllNameSize

dwProviderFilenameOffset

bRemoveProvider

htDlgInst

Reserved2

Reserved3

Reserved4

Reserved5

Reserved6

Reserved7

VarData (variable)

...

Req_Func (4 bytes): The identifier of the function that is invoked on the remote server. This value MUST be set to 1.

On completion of the ClientRequest method, this field MUST contain the result of the encapsulated telephony request. A value of 0 indicates success, and a LINEERR_Constants value indicates failure. The remote server MUST complete this call synchronously.

Reserved1 (4 bytes): An unsigned 32-bit integer. This MUST be 0x00000000 and ignored on receipt.

dwObjectID (4 bytes): The dwObjectType field in this packet determines the interpretation of this field as follows:

  • TUISPIDLL_OBJECT_LINEID: dwObjectID is a line device identifier.

  • TUISPIDLL_OBJECT_PHONEID: dwObjectID is a phone device identifier.

  • TUISPIDLL_OBJECT_PROVIDERID: dwObjectID is a permanent provider identifier. The client MUST provide a valid permanent provider identifier corresponding to the TSP being configured or removed. If this operation is an installation of the TSP, as indicated by the dwProviderFilenameOffset field of this packet being a valid Unicode string (not 0xffffffff), then upon successful completion of this request, the server MUST provide the permanent provider identifier that will be used for the TSP being installed.

  • TUISPIDLL_OBJECT_DIALOGINSTANCE: dwObjectID is an opaque handle that was provided as part of the LINE_CREATEDIALOGINSTANCE packet.

dwObjectType (4 bytes): One of the TUISPIDLL_OBJECT_Constants.

dwUIDllNameOffset (4 bytes): On successful completion of this client request, the server MUST provide in this field the offset of a Unicode string in the VARDATA field of the packet. This Unicode string is the path to a DLL on the client. It is the responsibility of the client to call one or more functions exported by this DLL corresponding to the operation desired by the client. The function or functions to be called for the operation to be performed is part of the API contract between the TSP and the server or client. Typically, the functions called will display some user interface on the client so that the user can control the operation being performed. Note that the name or path of the user interface DLL is from the client perspective. Ensuring the presence the DLL at the given path or in that name so the client can use the DLL is the responsibility of the client.

dwUIDllNameSize (4 bytes): Gives the size of the Unicode string specified by the UIDllName field.

dwProviderFilenameOffset (4 bytes): This field is used only if the dwObjectType is TUISPIDLL_OBJECT_PROVIDERID; otherwise, it is ignored. This field MUST be the offset of a Unicode string in the VARDATA field of this packet if the client wants to install the TSP; otherwise, this field MUST be set to 0xffffffff. The Unicode string corresponds to the DLL file name of the TSP that MUST be installed, configured, or uninstalled. Note that the name or path of the user interface DLL is from the server perspective. Ensuring the presence of that DLL at that path or in that name so that the server can use that DLL is the responsibility of the server.

bRemoveProvider (4 bytes): This field MUST be set to 1 if the client wants to remove (uninstall) the TSP; otherwise, this field MUST be set to 0.

htDlgInst (4 bytes): On successful completion of the request, the server MUST provide in this field an opaque handle that the client MUST provide to the server when calling the FreeDialogInstance packet after the client completes an operation (for example, the client completes calling the corresponding function in the user interface DLL for installing, removing, or configuring the TSP). This opaque handle value cannot be used after it is used in a FreeDialogInstance packet.

Reserved2 (4 bytes): An unsigned 32-bit integer. This MUST be 0x00000000 and ignored on receipt.

Reserved3 (4 bytes): An unsigned 32-bit integer. This MUST be 0x00000000 and ignored on receipt.

Reserved4 (4 bytes): An unsigned 32-bit integer. This MUST be 0x00000000 and ignored on receipt.

Reserved5 (4 bytes): An unsigned 32-bit integer. This MUST be 0x00000000 and ignored on receipt.

Reserved6 (4 bytes): An unsigned 32-bit integer. This MUST be 0x00000000 and ignored on receipt.

Reserved7 (4 bytes): An unsigned 32-bit integer. This MUST be 0x00000000 and ignored on receipt.

VarData (variable): A Unicode string that corresponds to the DLL file name of the TSP that

MUST be installed, configured, or uninstalled.