98 #include "dcmtk/config/osconfig.h"
103 #include "dcmtk/dcmnet/dicom.h"
104 #include "dcmtk/dcmnet/lst.h"
105 #include "dcmtk/dcmnet/dul.h"
116 #define ASC_DEFAULTMAXPDU 16384
117 #define ASC_MINIMUMPDUSIZE 4096
118 #define ASC_MAXIMUMPDUSIZE 131072
129 enum T_ASC_NetworkRole
133 NET_ACCEPTORREQUESTOR
138 T_ASC_NetworkRole role;
140 DUL_NETWORKKEY *network;
154 #define DICOM_MAXTRANSFERSYNTAXES 50
157 typedef DUL_PRESENTATIONCONTEXTID T_ASC_PresentationContextID;
159 enum T_ASC_P_ResultReason
161 ASC_P_ACCEPTANCE = 0,
162 ASC_P_USERREJECTION = 1,
164 ASC_P_ABSTRACTSYNTAXNOTSUPPORTED = 3,
165 ASC_P_TRANSFERSYNTAXESNOTSUPPORTED = 4,
166 ASC_P_NOTYETNEGOTIATED = 255
180 T_ASC_PresentationContextID presentationContextID;
181 DIC_UI abstractSyntax;
182 unsigned char transferSyntaxCount;
183 DIC_UI proposedTransferSyntaxes[DICOM_MAXTRANSFERSYNTAXES];
184 DIC_UI acceptedTransferSyntax;
185 T_ASC_P_ResultReason resultReason;
186 T_ASC_SC_ROLE proposedRole;
187 T_ASC_SC_ROLE acceptedRole;
190 enum T_ASC_RejectParametersResult
192 ASC_RESULT_REJECTEDPERMANENT = 1,
193 ASC_RESULT_REJECTEDTRANSIENT = 2
196 enum T_ASC_RejectParametersSource
198 ASC_SOURCE_SERVICEUSER = 1,
199 ASC_SOURCE_SERVICEPROVIDER_ACSE_RELATED = 2,
200 ASC_SOURCE_SERVICEPROVIDER_PRESENTATION_RELATED = 3
203 enum T_ASC_RejectParametersReason
206 ASC_REASON_SU_NOREASON = 0x0101,
207 ASC_REASON_SU_APPCONTEXTNAMENOTSUPPORTED = 0x0102,
208 ASC_REASON_SU_CALLINGAETITLENOTRECOGNIZED = 0x0103,
209 ASC_REASON_SU_CALLEDAETITLENOTRECOGNIZED = 0x0107,
211 ASC_REASON_SP_ACSE_NOREASON = 0x0201,
212 ASC_REASON_SP_ACSE_PROTOCOLVERSIONNOTSUPPORTED = 0x0202,
214 ASC_REASON_SP_PRES_TEMPORARYCONGESTION = 0x0301,
215 ASC_REASON_SP_PRES_LOCALLIMITEXCEEDED = 0x0302
220 T_ASC_RejectParametersResult result;
221 T_ASC_RejectParametersSource source;
222 T_ASC_RejectParametersReason reason;
228 DIC_UI ourImplementationClassUID;
229 DIC_SH ourImplementationVersionName;
230 DIC_UI theirImplementationClassUID;
231 DIC_SH theirImplementationVersionName;
240 long ourMaxPDUReceiveSize;
241 long theirMaxPDUReceiveSize;
251 DUL_ASSOCIATIONKEY *DULassociation;
254 unsigned short nextMsgID;
255 unsigned long sendPDVLength;
256 unsigned char *sendPDVBuffer;
274 T_ASC_NetworkRole role,
278 unsigned long options = 0);
291 ASC_createAssociationParameters(
293 long maxReceivePDUSize);
296 ASC_destroyAssociationParameters(
301 ASC_setTransportLayerType(
303 OFBool useSecureLayer);
308 const char* callingAPTitle,
309 const char* calledAPTitle,
310 const char* respondingAPTitle);
315 char* callingAPTitle,
317 char* respondingAPTitle);
320 ASC_getApplicationContextName(
322 char* applicationContextName);
325 ASC_setPresentationAddresses(
327 const char* callingPresentationAddress,
328 const char* calledPresentationAddress);
331 ASC_getPresentationAddresses(
333 char* callingPresentationAddress,
334 char* calledPresentationAddress);
337 ASC_getRejectParameters(
342 ASC_printRejectParameters(
347 ASC_addPresentationContext(
349 T_ASC_PresentationContextID presentationContextID,
350 const char* abstractSyntax,
351 const char* transferSyntaxList[],
352 int transferSyntaxListCount,
353 T_ASC_SC_ROLE proposedRole = ASC_SC_ROLE_DEFAULT);
356 ASC_countPresentationContexts(
360 ASC_countAcceptedPresentationContexts(
364 ASC_getPresentationContext(
370 ASC_acceptPresentationContext(
372 T_ASC_PresentationContextID presentationContextID,
373 const char* transferSyntax,
374 T_ASC_SC_ROLE acceptedRole = ASC_SC_ROLE_DEFAULT);
377 ASC_acceptContextsWithPreferredTransferSyntaxes(
379 const char* abstractSyntaxes[],
int abstractSyntaxCount,
380 const char* transferSyntaxes[],
int transferSyntaxCount,
381 T_ASC_SC_ROLE acceptedRole = ASC_SC_ROLE_DEFAULT);
384 ASC_acceptContextsWithTransferSyntax(
386 const char* transferSyntax,
int abstractSyntaxCount,
387 const char* abstractSyntaxes[],
388 T_ASC_SC_ROLE acceptedRole = ASC_SC_ROLE_DEFAULT);
391 ASC_refusePresentationContext(
393 T_ASC_PresentationContextID presentationContextID,
394 T_ASC_P_ResultReason resultReason);
397 ASC_findAcceptedPresentationContext(
399 T_ASC_PresentationContextID presentationContextID,
402 T_ASC_PresentationContextID
403 ASC_findAcceptedPresentationContextID(
405 const char* abstractSyntax);
407 T_ASC_PresentationContextID
408 ASC_findAcceptedPresentationContextID(
410 const char* abstractSyntax,
411 const char * transferSyntax);
445 ASC_setIdentRQUserPassword(
449 const OFBool& requestRsp = OFTrue);
458 ASC_setIdentRQUserOnly(
461 const OFBool& requestRsp = OFTrue);
470 ASC_setIdentRQKerberos(
472 const char* kerbTicket,
473 const Uint16& length,
474 const OFBool& requestRsp = OFTrue);
486 const Uint16& length,
487 const OFBool& requestRsp = OFTrue);
498 const char* response,
499 const Uint16& length );
516 unsigned short& bufferLen);
522 unsigned long ASC_getPeerCertificate(
T_ASC_Association *assoc,
void *buf,
unsigned long bufLen);
528 enum ASC_associateType
548 ASC_associationWaiting(
T_ASC_Network * network,
int timeout);
554 ASC_selectReadableAssociation(
556 int assocCount,
int timeout);
563 ASC_requestAssociation(
569 void **associatePDU=NULL,
570 unsigned long *associatePDUlength=NULL);
573 ASC_receiveAssociation(
576 long maxReceivePDUSize,
577 void **associatePDU=NULL,
578 unsigned long *associatePDUlength=NULL,
579 OFBool useSecureLayer=OFFalse,
580 DUL_BLOCKOPTIONS block=DUL_BLOCK,
584 ASC_acknowledgeAssociation(
586 void **associatePDU=NULL,
587 unsigned long *associatePDUlength=NULL);
590 ASC_rejectAssociation(
593 void **associatePDU=NULL,
594 unsigned long *associatePDUlength=NULL);
606 ASC_dropSCPAssociation(
T_ASC_Association * association,
int timeout = DUL_TIMEOUT);
616 ASC_printRejectParameters(
622 ASC_printRejectParameters(
623 STD_NAMESPACE ostream& out,
631 ASC_dumpParameters(
T_ASC_Parameters * params, STD_NAMESPACE ostream& outstream);
642 ASC_dumpConnectionParameters(
T_ASC_Association *association, STD_NAMESPACE ostream& outstream);