31.01.2015 Views

HiPath ProCenter Programming Guide - the HiPath Knowledge Base

HiPath ProCenter Programming Guide - the HiPath Knowledge Base

HiPath ProCenter Programming Guide - the HiPath Knowledge Base

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Programming</strong> <strong>Guide</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong><br />

Version 5.1 SMR C<br />

August 2004<br />

A31003-S2251-X100-4-7618


Warning<br />

Hackers who unlawfully gain access to customer telecommunications systems are criminals. Currently, we do<br />

not know of any telecommunications system that is immune to this type of criminal activity. Siemens AG will<br />

not accept liability for any damages, including long distance charges, which result from unauthorized use.<br />

Although Siemens has designed security features into its products, it is your sole responsibility to use <strong>the</strong><br />

security features and to establish security practices within your company, including training, security<br />

awareness, and call auditing.<br />

Siemens sales and service personnel, as well as Siemens business partners, are available to work with you<br />

to help you guard against this unauthorized use of your telecommunications system.<br />

August 2004<br />

Job No. 5235<br />

No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by<br />

any means, mechanical, electronic, photocopying, recording, or o<strong>the</strong>rwise, without prior written permission of<br />

Siemens. The software described in this publication is furnished under a license agreement and may be used<br />

only in accordance with <strong>the</strong> terms of that agreement.<br />

Request Siemens publications from your Siemens representative or <strong>the</strong> Siemens branch serving you.<br />

CallBridge, PhoneMail, RésuméRouting and <strong>ProCenter</strong> are registered trademarks, and Prompt Response is<br />

a trademark of Siemens Information and Communication Networks, Inc.<br />

Hicom and Siemens are registered trademarks, and <strong>HiPath</strong> is a trademark of Siemens AG.<br />

All o<strong>the</strong>r trademarks and company names are <strong>the</strong> property of <strong>the</strong>ir respective owners.<br />

Copyright © Siemens AG 1999–2004. All rights reserved.


Nur für den internen Gebrauch<br />

MPGhist.fm<br />

History of Changes<br />

History of Changes 0<br />

Revision Number Date Summary<br />

A31003-S2251-X100-4-7618 August 2004 Updated for Version 5.1 SMR C.<br />

G281-0802-02 October 2003 Updated for Version 5.1 SMR B.<br />

G281-0802-01 March 2003 Updated for Version 5.1 SMR A.<br />

G281-0802-00<br />

December 2002 Original publication.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 0-1


MPGhist.fm<br />

History of Changes<br />

Nur für den internen Gebrauch<br />

A31003-S2251-X100-4-7618, August 2004<br />

0-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGbookTOC.fm<br />

Contents<br />

Contents 0<br />

1 About This <strong>Guide</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1<br />

1.1 Who Should Use This <strong>Guide</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1<br />

1.2 How to Use This <strong>Guide</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2<br />

1.3 Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2<br />

1.4 Formatting Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5<br />

1.5 Documentation Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5<br />

2 <strong>Programming</strong> for <strong>the</strong> Prompt Response System. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1<br />

2.1 Mapping Transactions to Call Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1<br />

2.2 IVR Hold Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3<br />

2.3 ACD Hold Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4<br />

2.4 FMNQ Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6<br />

2.5 Writing an IVR Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7<br />

2.5.1 Writing Scripts for <strong>the</strong> IVR Hold Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7<br />

2.5.2 Writing Scripts for <strong>the</strong> ACD Hold Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . 2-10<br />

2.5.3 Writing Scripts for <strong>the</strong> FMNQ Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12<br />

3 <strong>Programming</strong> Reference for IVR Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1<br />

3.1 Calling IVR API Functions Using <strong>the</strong> InVision Software . . . . . . . . . . . . . . . . . . . . . . . 3-2<br />

3.2 Passing Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3<br />

3.2.1 Passing Parameters by Value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4<br />

3.2.2 Passing Parameters by Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4<br />

3.3 CreateCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4<br />

3.3.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4<br />

3.3.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4<br />

3.3.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7<br />

3.3.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8<br />

3.4 DeleteCallback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8<br />

3.4.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8<br />

3.4.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9<br />

3.4.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9<br />

3.4.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9<br />

3.5 Dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9<br />

3.5.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10<br />

3.5.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10<br />

3.5.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10<br />

3.5.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11<br />

3.6 Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11<br />

3.6.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11<br />

3.6.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11<br />

3.6.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 0-3


MPGbookTOC.fm<br />

Contents<br />

Nur für den internen Gebrauch<br />

3.6.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12<br />

3.7 Enqueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12<br />

3.7.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13<br />

3.7.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13<br />

3.7.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14<br />

3.7.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15<br />

3.8 EnqueueForAgent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15<br />

3.8.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15<br />

3.8.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16<br />

3.8.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17<br />

3.8.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18<br />

3.9 GetCallData. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18<br />

3.9.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18<br />

3.9.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18<br />

3.9.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19<br />

3.9.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19<br />

3.10 GetCallTransferable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20<br />

3.10.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20<br />

3.10.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20<br />

3.10.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21<br />

3.10.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21<br />

3.11 GetDDE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21<br />

3.11.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21<br />

3.11.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22<br />

3.11.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22<br />

3.11.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22<br />

3.12 Initialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23<br />

3.12.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23<br />

3.12.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23<br />

3.12.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24<br />

3.12.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24<br />

3.13 QueryAgentStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24<br />

3.13.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24<br />

3.13.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25<br />

3.13.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25<br />

3.13.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26<br />

3.14 QueryCallInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26<br />

3.14.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26<br />

3.14.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26<br />

3.14.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-27<br />

3.14.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28<br />

3.15 QueryCallStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28<br />

3.15.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28<br />

3.15.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28<br />

A31003-S2251-X100-4-7618, August 2004<br />

0-4 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGbookTOC.fm<br />

Contents<br />

3.15.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-29<br />

3.15.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30<br />

3.16 QueryCalltypeStatistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30<br />

3.16.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31<br />

3.16.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31<br />

3.16.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33<br />

3.16.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33<br />

3.17 QueryRoutingInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33<br />

3.17.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34<br />

3.17.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34<br />

3.17.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36<br />

3.17.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36<br />

3.18 QuerySystemStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36<br />

3.18.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36<br />

3.18.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-37<br />

3.18.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-38<br />

3.18.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-38<br />

3.19 SetCallData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-39<br />

3.19.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-39<br />

3.19.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-39<br />

3.19.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40<br />

3.19.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40<br />

3.20 SetCallTransferable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40<br />

3.20.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-41<br />

3.20.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-41<br />

3.20.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-41<br />

3.20.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-42<br />

3.21 SetDDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-42<br />

3.21.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-42<br />

3.21.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-42<br />

3.21.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-43<br />

3.21.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-43<br />

3.22 SetDisplay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-43<br />

3.22.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-43<br />

3.22.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-44<br />

3.22.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-44<br />

3.22.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-44<br />

3.23 Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-45<br />

3.23.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-45<br />

3.23.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-45<br />

3.23.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-45<br />

3.23.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-46<br />

3.24 Introduction to IVR APIs for Unmonitored E1 IVR . . . . . . . . . . . . . . . . . . . . . . . . . . 3-46<br />

3.24.1 Example: Unmonitored E1 IVR Application Step Sequence (IVR Hold) . . . . . . 3-48<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 0-5


MPGbookTOC.fm<br />

Contents<br />

Nur für den internen Gebrauch<br />

3.25 SetCallInfo (for unmonitored E1 IVR calls only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-48<br />

3.25.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-49<br />

3.25.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-49<br />

3.25.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-49<br />

3.25.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-49<br />

3.26 GetTransitNumber (for unmonitored E1 IVR calls only) . . . . . . . . . . . . . . . . . . . . . . 3-49<br />

3.26.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-50<br />

3.26.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-50<br />

3.26.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-50<br />

3.26.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-50<br />

3.27 CallerDisconnected (for unmonitored E1 IVR calls only) . . . . . . . . . . . . . . . . . . . . . 3-50<br />

3.27.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-51<br />

3.27.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-51<br />

3.27.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-51<br />

3.27.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-51<br />

3.28 ReleaseTransitNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-51<br />

3.28.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-52<br />

3.28.2 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-52<br />

3.28.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-52<br />

3.28.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-52<br />

4 Writing a Custom Routing Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1<br />

4.1 Ga<strong>the</strong>ring Call Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1<br />

4.2 Process for <strong>the</strong> Customized Routing Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2<br />

4.3 Loading <strong>the</strong> Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3<br />

4.4 Function Input and Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4<br />

4.4.1 Input Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4<br />

4.4.2 Output Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5<br />

4.4.3 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8<br />

4.5 Sample Custom Routing Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8<br />

4.6 Planning Ahead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10<br />

5 Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong> . . . . . . . . . . . . . . . . . . . . . . . . . 5-1<br />

5.1 Source of <strong>the</strong> DDE Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1<br />

5.2 DDE Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2<br />

5.3 Visual Basic Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4<br />

6 Configuring Database Parameters with SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1<br />

A IVR API Function Return Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1<br />

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Z-1<br />

A31003-S2251-X100-4-7618, August 2004<br />

0-6 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgpref.fm<br />

About This <strong>Guide</strong><br />

Who Should Use This <strong>Guide</strong><br />

1 About This <strong>Guide</strong><br />

This guide describes how to customize <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Desktop applications by writing<br />

IVR scripts, custom routing functions, and Dynamic Data Exchange applications.<br />

To create applications that properly integrate with <strong>HiPath</strong> <strong>ProCenter</strong> version 5.1, you must use<br />

<strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> 5.1 software development kit (SDK). If you have created applications with<br />

an earlier version of <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Toolkit, you must convert those integrations to use<br />

<strong>the</strong> new SDK.<br />

><br />

Please see your <strong>HiPath</strong> <strong>ProCenter</strong> Sales Representative for more details on how to<br />

obtain <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> 5.1 SDK.<br />

1.1 Who Should Use This <strong>Guide</strong><br />

This guide is intended for call center administrators and system administrators who work with<br />

<strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Suite. You should use this guide if you plan on writing:<br />

●<br />

●<br />

●<br />

●<br />

An IVR script for a <strong>HiPath</strong> <strong>ProCenter</strong> IVR API configuration<br />

A custom routing function<br />

An application that uses <strong>the</strong> DDE information provided by <strong>HiPath</strong> <strong>ProCenter</strong><br />

Customized reporting templates to collect and display data from <strong>the</strong> Reporting Database<br />

You must be familiar with:<br />

●<br />

●<br />

●<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Suite features<br />

IVR scripting fundamentals<br />

Call center applications<br />

><br />

For more information on IVR scripting fundamentals and call center applications,<br />

see <strong>the</strong> InVision user guide.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 1-1


mpgpref.fm<br />

About This <strong>Guide</strong><br />

How to Use This <strong>Guide</strong><br />

Nur für den internen Gebrauch<br />

1.2 How to Use This <strong>Guide</strong><br />

This guide contains <strong>the</strong> following chapters and appendixes:<br />

Chapter 1, “About This <strong>Guide</strong>”, describes <strong>the</strong> intended audience, formatting conventions, and<br />

provides a brief description of <strong>the</strong> o<strong>the</strong>r guides in <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> documentation set.<br />

Chapter 2, “<strong>Programming</strong> for <strong>the</strong> Prompt Response System”, describes <strong>the</strong> various IVR API<br />

configurations, and how you can write IVR scripts with <strong>the</strong> Routing Server to enhance ga<strong>the</strong>ring<br />

caller requirements.<br />

Chapter 3, “<strong>Programming</strong> Reference for IVR Scripts”, describes <strong>the</strong> IVR API functions<br />

necessary for <strong>the</strong> communication between <strong>the</strong> IVR script, and <strong>the</strong> Routing Server or T-Server.<br />

Chapter 4, “Writing a Custom Routing Function”, provides instructions for designing and writing<br />

a custom routing function.<br />

Chapter 5, “Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong>”, provides an example of using<br />

DDE to communicate with <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Agent and <strong>HiPath</strong> <strong>ProCenter</strong> Supervisor<br />

applications.<br />

Chapter 6, “Configuring Database Parameters with SQL”, explains how to change<br />

preconfigured database parameters using SQL.<br />

Appendix A, “IVR API Function Return Codes”, provides a list of all <strong>the</strong> return codes for <strong>the</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong> IVR API functions.<br />

This guide also includes an index.<br />

1.3 Related Information<br />

The following guides contain more information about <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Suite.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> ACD Administrator User <strong>Guide</strong>, Version 5.1 SMR C, A31003-S2251-<br />

S200-3-7620<br />

This guide describes <strong>the</strong> ACD Administrator application, and provides information on<br />

configuring <strong>HiPath</strong> 4000 switch resources.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Administrator, Entry Suite, Version 5.1 SMR C, A31003-G7351-A400-4-<br />

76A9<br />

This guide describes <strong>the</strong> Administrator application. It provides information on configuring <strong>the</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong> Entry Suite and includes a glossary of <strong>HiPath</strong> <strong>ProCenter</strong> terminology.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Administrator User <strong>Guide</strong>, Standard and Advanced Suites, Version 5.1<br />

SMR C, A31003-S2251-A400-4-76A9<br />

This guide describes <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Administrator application. It provides information on<br />

configuring <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Standard and Advanced Suites and includes a glossary of<br />

<strong>HiPath</strong> <strong>ProCenter</strong> terminology.<br />

A31003-S2251-X100-4-7618, August 2004<br />

1-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgpref.fm<br />

About This <strong>Guide</strong><br />

Related Information<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Browser <strong>Base</strong>d Desktop User <strong>Guide</strong>, Version 5.1 SMR C, A31003-<br />

S2251-A600-4-76A9<br />

This guide describes <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Browser <strong>Base</strong>d Desktop application.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Call Director User <strong>Guide</strong>, Version 5.1 SMR C, A31003-S2251-E400-4-<br />

76A9<br />

This guide describes how to configure and use <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Call Director application.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Desktop User <strong>Guide</strong>, Entry Suite, Version 5.1 SMR C, A31003-G7351-<br />

B871-4-7619<br />

This guide describes <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Supervisor application.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Desktop User <strong>Guide</strong>, Standard and Advanced Suites, Version 5.1<br />

SMR C, A31003-S2251-B871-4-7619<br />

This guide describes <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Desktop applications—<strong>the</strong> Agent, Supervisor, and<br />

Enterprise Manager applications.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Installation <strong>Guide</strong>, Version 5.1 SMR C, A31003-S2251-S100-4-7620<br />

This guide describes <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> installation, including: setting up <strong>the</strong> base hardware<br />

and operating system for servers; installing required software for <strong>the</strong> various servers as well as<br />

for client computers; activating SID-enabled features; and verifying <strong>the</strong> installation.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Operations <strong>Guide</strong>, Version 5.1 SMR C, A31003-S2251-A500-4-76A9<br />

This guide describes how to use <strong>the</strong> IT Monitor application and <strong>the</strong> Watchdog Server, to start<br />

and stop <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> servers, and to back up and restore <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong><br />

databases. A troubleshooting section provides information on resolving problems and<br />

identifying error codes in <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Suite.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Overview <strong>Guide</strong>, Version 5.1 SMR C, A31003-S2251-A100-4-76A9<br />

This guide provides an overview of <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Suite—an integrated set of call center<br />

applications that apply intelligent, skills-based call routing to optimize productivity, increase<br />

customer satisfaction and improve employee morale in your call center.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Reporter User <strong>Guide</strong>, Version 5.1 SMR C, A31003-S2251-A200-4-76A9<br />

This guide describes <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Reporter application. It contains conceptual<br />

information about <strong>the</strong> default report templates, step-by-step procedures for customizing <strong>the</strong><br />

templates, and information on generating, printing, and exporting your reports.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Simulator User <strong>Guide</strong>, Version 5.1 SMR C, A31003-S2251-A300-4-76A9<br />

This guide describes how to use <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Simulator application to prepare and run<br />

simulations, and how to analyze <strong>the</strong> results of your simulations.<br />

CRM Ready Kit for SAP CIC, Version 5.1 SMR C, A31003-S2251-E200-4-76A9<br />

This guide describes how to configure and use <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> SAP CIC CRM Integration<br />

components.<br />

CRM Ready Kit for Siebel 2000, Version 5.1 SMR C, A31003-S2251-E300-4-76A9<br />

This guide describes how to configure and use <strong>the</strong> CRM Ready Kit that integrates <strong>HiPath</strong><br />

<strong>ProCenter</strong> with Siebel 2000.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 1-3


mpgpref.fm<br />

About This <strong>Guide</strong><br />

Related Information<br />

Nur für den internen Gebrauch<br />

CRM Ready Kit for Siebel 7, Version 5.1 SMR C, A31003-S2251-E500-4-76A9<br />

This guide describes how to configure and use <strong>the</strong> CRM Ready Kit that integrates <strong>HiPath</strong><br />

<strong>ProCenter</strong> with Siebel 7.<br />

A31003-S2251-X100-4-7618, August 2004<br />

1-4 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgpref.fm<br />

About This <strong>Guide</strong><br />

Formatting Conventions<br />

1.4 Formatting Conventions<br />

The following formatting conventions are used in this guide:<br />

Bold<br />

This font identifies <strong>HiPath</strong> <strong>ProCenter</strong> components, window and dialog box titles, and item<br />

names.<br />

Italics<br />

This font identifies terms or phrases that are explained in <strong>the</strong> online Help glossary.<br />

Monospace Font<br />

This font distinguishes text that you should type, or that <strong>the</strong> computer displays in a message.<br />

1.5 Documentation Feedback<br />

To report a issue with this document, call your next level of support:<br />

●<br />

Customers should call <strong>the</strong> Siemens Customer Support Center.<br />

● Siemens employees should call <strong>the</strong> Interactive Customer Engagement Team (i-Cet ).<br />

When you call, be sure to include <strong>the</strong> following information. This will help identify which<br />

document you are having issues with.<br />

●<br />

●<br />

Title: <strong>Programming</strong> <strong>Guide</strong><br />

Order Number: A31003-S2251-X100-4-7618<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 1-5


mpgpref.fm<br />

About This <strong>Guide</strong><br />

Documentation Feedback<br />

Nur für den internen Gebrauch<br />

A31003-S2251-X100-4-7618, August 2004<br />

1-6 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Mapping Transactions to Call Types<br />

2 <strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

This chapter describes <strong>the</strong> various IVR API configurations that you can use to enhance <strong>the</strong><br />

ga<strong>the</strong>ring of your customer’s requirements.<br />

The available IVR API configurations are as follows:<br />

●<br />

●<br />

●<br />

IVR Hold<br />

ACD Hold<br />

FMNQ<br />

><br />

You can only use one of <strong>the</strong>se IVR API configurations, and <strong>the</strong>y all require InterSoft<br />

for Windows 2000 or NT.<br />

2.1 Mapping Transactions to Call Types<br />

The Prompt Response system interacts with <strong>the</strong> caller to obtain additional information about<br />

<strong>the</strong>ir requirements. It can also provide information to <strong>the</strong> caller while <strong>the</strong>y are waiting in queue<br />

for <strong>the</strong> appropriate agent to handle <strong>the</strong>ir call.<br />

For example, you can prompt your customers to press one for Service or, press two for Sales.<br />

You can also use calling party and called party numbers to assist your routing decisions.<br />

The IVR script can ga<strong>the</strong>r a customer’s requirements from <strong>the</strong> following sources:<br />

●<br />

Network Information (public switch information)<br />

– Automatic Number Identification (ANI)—information about <strong>the</strong> calling party<br />

– Dialed Number Identification Service (DNIS)—information about <strong>the</strong> called party<br />

●<br />

Call Prompting<br />

– Dual-Tone Multifrequency (DTMF) signaling—push-button responses from <strong>the</strong> caller<br />

(for example, account or personal identification numbers)<br />

– Voice recognition—voice responses from <strong>the</strong> caller for more specific information (for<br />

example, <strong>the</strong> prompt could tell <strong>the</strong> customer to choose ei<strong>the</strong>r Sales or Service)<br />

●<br />

Customer Database Retrieval<br />

– Customer profile (for example, language, skill level, and location)<br />

– Customer history (for example, credit record, past purchases, and open problems)<br />

– Customer preferences (for example, a specific agent)<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 2-1


mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Mapping Transactions to Call Types<br />

Nur für den internen Gebrauch<br />

The purpose of <strong>the</strong> IVR script is to identify a call type that describes <strong>the</strong> changing requirements<br />

of a call as it waits in queue. You can design an IVR script to ga<strong>the</strong>r ANI and DNIS information<br />

from <strong>HiPath</strong> <strong>ProCenter</strong>, prompt <strong>the</strong> caller for specific information, and <strong>the</strong>n use this information<br />

to access data from a host or local database.<br />

For example, you can prompt a caller to enter <strong>the</strong>ir four-digit account number, <strong>the</strong>n use this<br />

number to access database information and identify call types for <strong>the</strong> calls based on <strong>the</strong> DNIS<br />

information or <strong>the</strong> To and From information.<br />

Refer to <strong>the</strong> text following Figure 2-1 for a description of <strong>the</strong> numbered steps.<br />

(1) IVR requests <strong>the</strong> call details<br />

Prompt Response Unit<br />

(2) IVR sends <strong>the</strong> enqueue call request<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Servers<br />

Figure 2-1<br />

Prompt Response and <strong>HiPath</strong> <strong>ProCenter</strong> Interaction<br />

1. When a call arrives at your site, it is answered by <strong>the</strong> Prompt Response system. The IVR<br />

script <strong>the</strong>n ga<strong>the</strong>rs <strong>the</strong> ANI and DNIS or To and From information of <strong>the</strong> transaction,<br />

determines <strong>the</strong> call type, and sends an enqueue call request to <strong>HiPath</strong> <strong>ProCenter</strong>.<br />

><br />

The IVR can also send a <strong>HiPath</strong> <strong>ProCenter</strong> Routing request to <strong>HiPath</strong><br />

<strong>ProCenter</strong>, supplying information collected by <strong>the</strong> IVR. The Routing Server <strong>the</strong>n<br />

assigns a call type and o<strong>the</strong>r routing information based on <strong>the</strong> configured<br />

system routing option, which can be used to send an enqueue call request.<br />

2. The Routing Server <strong>the</strong>n searches for <strong>the</strong> best available agent to handle <strong>the</strong> call.<br />

3. The IVR script can prompt <strong>the</strong> customers with a series of menus to determine <strong>the</strong> specific<br />

requirements of each customer. The more complex your menu system, <strong>the</strong> more detailed<br />

<strong>the</strong> information you can ga<strong>the</strong>r from your customers.<br />

Each unique menu choice should correspond to a unique call type, so that you can use <strong>the</strong> full<br />

power of <strong>HiPath</strong> <strong>ProCenter</strong> skills-based routing capabilities.<br />

><br />

●<br />

For more information on designing Interactive Voice Response (IVR) menu<br />

systems, see <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Administrator <strong>Guide</strong>.<br />

● For more information on <strong>the</strong> available IVR API functions, see Chapter 3,<br />

“<strong>Programming</strong> Reference for IVR Scripts”<br />

A31003-S2251-X100-4-7618, August 2004<br />

2-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

IVR Hold Configuration<br />

2.2 IVR Hold Configuration<br />

You can use <strong>the</strong> IVR Hold configuration with a Prompt Response unit to hold an enqueued call<br />

until it is routed to an agent.<br />

><br />

Since <strong>the</strong> IVR Hold configuration ties up <strong>the</strong> IVR extension and temporarily prevents<br />

<strong>the</strong> IVR from handling incoming calls until <strong>the</strong> enqueued call has been routed to an<br />

agent, you must alter <strong>the</strong> IVR Hold configuration to include more IVR extensions.<br />

The following diagram illustrates <strong>the</strong> call flow for <strong>the</strong> IVR Hold configuration. Refer to <strong>the</strong> text<br />

following <strong>the</strong> call flow diagram for a description of <strong>the</strong> numbered steps.<br />

(1) Receive call<br />

Switch<br />

(2) Route to IVR unit<br />

<strong>HiPath</strong> <strong>ProCenter</strong> Servers<br />

IVR unit<br />

(3) Ga<strong>the</strong>r call<br />

requirements<br />

(4) Enqueue call<br />

(5) Match to agent<br />

or time out<br />

(6) Assign to agent or time out<br />

(7) Transfer to agent<br />

<strong>HiPath</strong> <strong>ProCenter</strong> agent<br />

Figure 2-2<br />

Call flow for <strong>the</strong> IVR Hold configuration<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 2-3


mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

ACD Hold Configuration<br />

Nur für den internen Gebrauch<br />

1. A new call arrives.<br />

2. The call is immediately routed through ACD routing to an IVR unit.<br />

3. The IVR unit ga<strong>the</strong>rs information from <strong>the</strong> caller as to <strong>the</strong> purpose of <strong>the</strong>ir call, and <strong>the</strong>n<br />

uses this information to identify <strong>the</strong> routing parameters for <strong>the</strong> call, including <strong>the</strong> call type.<br />

4. The IVR unit sends an enqueue call request to <strong>HiPath</strong> <strong>ProCenter</strong>. The Routing Server <strong>the</strong>n<br />

searches for <strong>the</strong> best available agent to handle <strong>the</strong> call.<br />

5. <strong>HiPath</strong> <strong>ProCenter</strong> <strong>the</strong>n does one of <strong>the</strong> following:<br />

●<br />

●<br />

Assigns <strong>the</strong> call to <strong>the</strong> best available agent<br />

Reserves <strong>the</strong> call for a specific agent (optional)<br />

If <strong>the</strong> call cannot be assigned to an agent by <strong>the</strong> end of <strong>the</strong> last call step in <strong>the</strong> call type, it<br />

is routed to a time-out extension.<br />

6. <strong>HiPath</strong> <strong>ProCenter</strong> notifies <strong>the</strong> IVR unit of <strong>the</strong> extension of <strong>the</strong> assigned agent or <strong>the</strong> timeout<br />

target. If <strong>the</strong> call times out, <strong>the</strong> IVR does one of <strong>the</strong> following:<br />

●<br />

●<br />

Transfers <strong>the</strong> call to a default number specified by <strong>the</strong> IVR script, or transfers <strong>the</strong> call<br />

to <strong>the</strong> time-out extension provided by <strong>the</strong> Routing Server. The time-out extension can<br />

ei<strong>the</strong>r be a specific number defined by <strong>the</strong> call type of <strong>the</strong> call, or a global default<br />

number used by all call types that do not have a specific number defined.<br />

Prompts <strong>the</strong> customer for additional information, and uses <strong>the</strong> new routing parameters<br />

to enqueue <strong>the</strong> call again. At this time, <strong>the</strong> process of matching <strong>the</strong> call to an agent is<br />

repeated.<br />

7. The call is transferred to <strong>the</strong> assigned agent.<br />

2.3 ACD Hold Configuration<br />

You can use <strong>the</strong> ACD Hold configuration with a Prompt Response unit to transfer calls to a<br />

RésuméRouting ACD Group in <strong>the</strong> switch, where calls wait until eligible agents become<br />

available to handle <strong>the</strong> calls.<br />

When an agent becomes available, <strong>HiPath</strong> <strong>ProCenter</strong> diverts <strong>the</strong> call from <strong>the</strong> RésuméRouting<br />

ACD Group to <strong>the</strong> agent. The ACD Hold configuration frees <strong>the</strong> IVR extensions for incoming<br />

calls by transferring calls to <strong>the</strong> switch while <strong>the</strong> Routing Server searches for available agents.<br />

This configuration reduces IVR extension requirements so that your IVR can handle a greater<br />

number of incoming calls.<br />

A31003-S2251-X100-4-7618, August 2004<br />

2-4 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

ACD Hold Configuration<br />

The following diagram illustrates <strong>the</strong> call flow for <strong>the</strong> ACD Hold configuration. Refer to <strong>the</strong> text<br />

following <strong>the</strong> call flow diagram for a description of <strong>the</strong> numbered steps.<br />

(1) Receive call<br />

Switch<br />

<strong>HiPath</strong> <strong>ProCenter</strong> agent<br />

(8) Transfer to agent<br />

RésuméRouting<br />

ACD Group<br />

(7) Assign to agent or time out<br />

(2) Route to IVR unit (5) Transfer call<br />

(3) Ga<strong>the</strong>r call<br />

requirements<br />

(4) Enqueue call<br />

<strong>HiPath</strong> <strong>ProCenter</strong><br />

Servers<br />

(6) Match to agent<br />

or time out<br />

Figure 2-3<br />

IVR unit<br />

Call Flow of <strong>the</strong> ACD Hold Configuration<br />

1. A new call arrives.<br />

2. The call is immediately routed through ACD routing to an IVR unit.<br />

3. The IVR unit ga<strong>the</strong>rs information from <strong>the</strong> caller as to <strong>the</strong> purpose of <strong>the</strong>ir call, and <strong>the</strong>n<br />

uses this information to identify <strong>the</strong> routing parameters for <strong>the</strong> call, including <strong>the</strong> call type.<br />

4. The IVR unit sends an enqueue call request to <strong>HiPath</strong> <strong>ProCenter</strong>. The Routing Server <strong>the</strong>n<br />

searches for <strong>the</strong> best available agent to handle <strong>the</strong> call.<br />

5. At this time, <strong>the</strong> IVR unit transfers <strong>the</strong> call to a RésuméRouting ACD group.<br />

6. <strong>HiPath</strong> <strong>ProCenter</strong> <strong>the</strong>n does one of <strong>the</strong> following:<br />

●<br />

●<br />

Assigns <strong>the</strong> call to <strong>the</strong> best available agent<br />

Reserves <strong>the</strong> call for a specific agent (optional)<br />

If <strong>the</strong> call cannot be assigned to an agent by <strong>the</strong> end of <strong>the</strong> last call step in <strong>the</strong> call type, it<br />

is routed to a time-out extension.<br />

7. The call is assigned to a specific agent or time-out target.<br />

8. The call is transferred to <strong>the</strong> assigned agent.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 2-5


mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

FMNQ Configuration<br />

Nur für den internen Gebrauch<br />

2.4 FMNQ Configuration<br />

> The unmonitored E1 IVR does not support FMNQ. (3) While waiting for an agent, <strong>the</strong><br />

If you are using a <strong>HiPath</strong> 4000 switch with a Prompt Response unit, you can create FMNQ<br />

ARTs to support forget-me-not queuing. A caller being processed through an FMNQ ART can<br />

interact with <strong>the</strong> IVR while waiting in queue for an agent to become available.<br />

You can set an FMNQ call so that it is ei<strong>the</strong>r "interruptible" or "uninterruptible". If <strong>the</strong> call is set<br />

to "interruptible", <strong>the</strong> caller can be moved from an IVR to <strong>the</strong> best available agent extension,<br />

regardless of whe<strong>the</strong>r <strong>the</strong>y are entering information into <strong>the</strong> IVR. If <strong>the</strong> call is “uninterruptible”,<br />

<strong>the</strong> routing of <strong>the</strong> call is temporarily suspended until <strong>the</strong> caller ei<strong>the</strong>r:<br />

●<br />

●<br />

Enters critical information without <strong>the</strong> risk of that information being lost<br />

Listens to critical information without interruption<br />

FMNQ Call Routed While Connected to IVR<br />

The following diagram illustrates how an FMNQ call is routed after it arrives at an IVR. Refer to<br />

<strong>the</strong> text following <strong>the</strong> diagram for a description of <strong>the</strong> numbered steps:<br />

IVR unit<br />

(1) Ga<strong>the</strong>r call<br />

requirements<br />

(2) The call is transferred<br />

to an FMNQ RCG and<br />

<strong>the</strong>n processed by <strong>the</strong><br />

FMNQ ART<br />

call is diverted to an IVR extension<br />

for fur<strong>the</strong>r processing<br />

(4) IVR script plays and caller<br />

indicates that <strong>the</strong>y want to enter<br />

an "uninterruptible" session<br />

<strong>HiPath</strong> <strong>ProCenter</strong> agent<br />

(5) The caller finishes interacting<br />

with <strong>the</strong> script, and <strong>the</strong> call is set<br />

to transferable and routed to <strong>the</strong><br />

best available agent<br />

Figure 2-4<br />

Call Flow of <strong>the</strong> FNMQ Configuration<br />

1. The IVR unit ga<strong>the</strong>rs caller’s requirements and determines that <strong>the</strong> call is an FMNQ call.<br />

2. The call is processed by <strong>the</strong> FMNQ ART.<br />

A31003-S2251-X100-4-7618, August 2004<br />

2-6 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Writing an IVR Script<br />

3. An IVR extension becomes available and <strong>the</strong> call is diverted to <strong>the</strong> extension from <strong>the</strong><br />

queue.<br />

4. The customized IVR script begins to play and <strong>the</strong> caller indicates that <strong>the</strong>y want to enter<br />

an "uninterruptible" session. The call is set to non-transferable.<br />

5. When <strong>the</strong> caller has finished interacting with <strong>the</strong> script, <strong>the</strong> call is set to transferable and<br />

routed to <strong>the</strong> best available agent.<br />

2.5 Writing an IVR Script<br />

A customized IVR script ga<strong>the</strong>rs information from your customers, provides call management<br />

functions, and calls <strong>the</strong> IVR API functions provided with <strong>HiPath</strong> <strong>ProCenter</strong>.<br />

The IVR API functions are provided in a module file called HPPCIVR.DLL, which you must<br />

include when running <strong>the</strong> IVR script. This module file is located in <strong>the</strong> d:\rrserver directory<br />

on <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Server machine.<br />

><br />

If you are still running IVR scripts created in an earlier version of <strong>HiPath</strong> <strong>ProCenter</strong><br />

(5.01 or earlier), use <strong>the</strong> RRNT32.DLL module file located in <strong>the</strong> same directory, and<br />

<strong>the</strong>n refer to your previous documentation for descriptions of those IVR API<br />

functions.<br />

2.5.1 Writing Scripts for <strong>the</strong> IVR Hold Configuration<br />

The suggested flow for an IVR script for <strong>the</strong> IVR Hold configuration is as follows:<br />

1. Initialize <strong>the</strong> connection between <strong>the</strong> IVR unit and <strong>HiPath</strong> <strong>ProCenter</strong>.<br />

2. Check <strong>the</strong> system status to ensure that <strong>the</strong> Routing Server is available.<br />

3. Ga<strong>the</strong>r <strong>the</strong> ANI and DNIS information for <strong>the</strong> call.<br />

4. Identify <strong>the</strong> call type using <strong>the</strong> IVR script. For example, you could assign a call type to <strong>the</strong><br />

call based on a combination of <strong>the</strong> call’s ANI information, and <strong>the</strong> customer’s selection.<br />

5. Enqueue <strong>the</strong> call using <strong>the</strong> Enqueue function. Ensure that <strong>the</strong> parameters specify that <strong>the</strong><br />

IVR unit will hold <strong>the</strong> call until assigned to an agent, using <strong>the</strong> IVR Hold configuration. This<br />

notifies <strong>the</strong> Routing Server that <strong>the</strong> IVR will transfer <strong>the</strong> call when it is assigned.<br />

6. Check <strong>the</strong> state of <strong>the</strong> enqueued call regularly (for example, after every action or IVR API<br />

function call) and take <strong>the</strong> appropriate action depending on <strong>the</strong> results:<br />

●<br />

●<br />

If <strong>the</strong> call is assigned, transfer <strong>the</strong> call to <strong>the</strong> agent’s extension.<br />

If <strong>the</strong> call has timed out, transfer <strong>the</strong> call to <strong>the</strong> default number defined in <strong>the</strong> IVR script,<br />

or to <strong>the</strong> extension returned by <strong>the</strong> Routing Server.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 2-7


mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Writing an IVR Script<br />

Nur für den internen Gebrauch<br />

●<br />

If <strong>the</strong>re is a Routing Server error, transfer <strong>the</strong> call to <strong>the</strong> default number defined in <strong>the</strong><br />

script.<br />

A31003-S2251-X100-4-7618, August 2004<br />

2-8 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Writing an IVR Script<br />

The following diagram shows a sample IVR script for <strong>the</strong> IVR Hold configuration.<br />

Start<br />

QUERY SYSTEM<br />

STATUS<br />

Routing Server or<br />

T-Server down<br />

Yes<br />

No<br />

IVR GATHERS<br />

caller requirements<br />

REQUEST ENQUEUE<br />

CALL<br />

Enqueue failed<br />

Yes<br />

IVR ACTION (for<br />

example, play a<br />

voice segment)<br />

No<br />

QUERY CALL<br />

STATUS<br />

No<br />

Is it assigned<br />

No<br />

Is it a time out<br />

or error<br />

Yes<br />

Is it a time out<br />

No<br />

IVR TRANSFER<br />

to default target<br />

Yes<br />

IVR TRANSFER<br />

to agent<br />

Yes<br />

IVR TRANSFER to<br />

default target or <strong>HiPath</strong><br />

<strong>ProCenter</strong> time-out<br />

extension<br />

End<br />

Figure 2-5<br />

Sample Flowchart for an IVR script in <strong>the</strong> IVR Hold Configuration<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 2-9


mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Writing an IVR Script<br />

Nur für den internen Gebrauch<br />

><br />

When a call is successfully enqueued, <strong>the</strong> script must regularly check <strong>the</strong> state of<br />

<strong>the</strong> call using <strong>the</strong> QueryCallStatus function, as well as handle conditions, such as<br />

enqueue errors and timed-out calls. In <strong>the</strong>se cases, <strong>the</strong> script should ei<strong>the</strong>r transfer<br />

<strong>the</strong> call to a non-<strong>HiPath</strong> <strong>ProCenter</strong> extension or enqueue <strong>the</strong> call with different<br />

parameters.<br />

2.5.2 Writing Scripts for <strong>the</strong> ACD Hold Configuration<br />

The following is a suggested flow for a customized IVR script for <strong>the</strong> ACD Hold configuration:<br />

1. Initialize <strong>the</strong> connection between <strong>the</strong> IVR and <strong>HiPath</strong> <strong>ProCenter</strong>.<br />

2. Check <strong>the</strong> system status to ensure that <strong>the</strong> Routing Server is available.<br />

3. Ga<strong>the</strong>r <strong>the</strong> ANI and DNIS information for <strong>the</strong> call.<br />

4. Identify <strong>the</strong> call type using <strong>the</strong> IVR script. For example, you could assign a call type to <strong>the</strong><br />

call based on a combination of <strong>the</strong> call’s ANI information, and <strong>the</strong> selections <strong>the</strong> customer<br />

makes.<br />

5. Enqueue <strong>the</strong> call with <strong>the</strong> Enqueue function. Ensure that <strong>the</strong> parameters specify that <strong>the</strong><br />

IVR unit will transfer <strong>the</strong> call to a RésuméRouting ACD Group, using <strong>the</strong> ACD Hold<br />

configuration. This notifies <strong>the</strong> Routing Server that <strong>HiPath</strong> <strong>ProCenter</strong> must transfer <strong>the</strong> call<br />

when it is assigned.<br />

6. Transfer <strong>the</strong> call to a RésuméRouting ACD Group. <strong>HiPath</strong> <strong>ProCenter</strong> automatically holds<br />

<strong>the</strong> call in <strong>the</strong> RésuméRouting ACD Group until <strong>the</strong> call is assigned to an agent.<br />

The following diagram shows a sample IVR script for <strong>the</strong> ACD Hold configuration.<br />

A31003-S2251-X100-4-7618, August 2004<br />

2-10 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Writing an IVR Script<br />

Start<br />

QUERY SYSTEM<br />

STATUS<br />

Routing Server or<br />

T-Server down<br />

Yes<br />

No<br />

IVR GATHERS<br />

caller requirements<br />

REQUEST ENQUEUE<br />

CALL<br />

No<br />

Enqueue failed<br />

Yes<br />

IVR TRANSFER<br />

to <strong>HiPath</strong> <strong>ProCenter</strong><br />

queue<br />

IVR TRANSFER<br />

to default target<br />

End<br />

Figure 2-6<br />

Sample Flowchart of an IVR script for <strong>the</strong> ACD Hold Configuration<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 2-11


mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Writing an IVR Script<br />

Nur für den internen Gebrauch<br />

2.5.3 Writing Scripts for <strong>the</strong> FMNQ Configuration<br />

The following is a suggested flow for a customized IVR script for <strong>the</strong> FMNQ configuration:<br />

1. Initialize <strong>the</strong> connection between <strong>the</strong> IVR and <strong>HiPath</strong> <strong>ProCenter</strong>.<br />

2. Use <strong>the</strong> QueryCallInfo function to ga<strong>the</strong>r <strong>the</strong> ANI and DNIS information for <strong>the</strong> call, and to<br />

obtain <strong>the</strong> value of <strong>the</strong> FMNQ flag.<br />

3. If <strong>the</strong> flag is set to 1, start <strong>the</strong> FMNQ call flow, and determine whe<strong>the</strong>r <strong>the</strong> caller wants to<br />

enter an "interruptible" or "uninterruptible" session.<br />

4. If <strong>the</strong> caller wants to enter an "uninterruptible" session, set <strong>the</strong> call to non-transferable (0).<br />

5. Continue to ga<strong>the</strong>r caller requirements inside <strong>the</strong> "uninterruptible" session.<br />

6. When <strong>the</strong> "uninterruptible" session has ended, set <strong>the</strong> call to transferable (1).<br />

><br />

Before <strong>the</strong> IVR script disconnects or transfers a FMNQ call, you must issue <strong>the</strong><br />

SetCallTransferable (0) and receive a successful return code. If you not receive a<br />

successful return code, this indicates that <strong>the</strong> call is in <strong>the</strong> process of being<br />

transferred and you must wait for <strong>the</strong> process to complete.<br />

A31003-S2251-X100-4-7618, August 2004<br />

2-12 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Writing an IVR Script<br />

The following diagram shows a sample IVR script for <strong>the</strong> FMNQ configuration.<br />

Start<br />

QueryCallInfo<br />

FMNQ flag = 1<br />

No<br />

Regular IVR call flow<br />

Yes<br />

IVR GATHERS<br />

caller requirements<br />

FMNQ Call Flow<br />

Does <strong>the</strong> caller want to<br />

start a critical session<br />

SetCallTransferable (0)<br />

Uninterruptible session<br />

Interruptible session<br />

SetCallTransferable (1)<br />

Transfer to basic ACD<br />

Transfer to Agent<br />

Figure 2-7<br />

Sample Flowchart of an IVR script for <strong>the</strong> FMNQ Configuration<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 2-13


mpgintro.fm<br />

<strong>Programming</strong> for <strong>the</strong> Prompt Response System<br />

Writing an IVR Script<br />

Nur für den internen Gebrauch<br />

A31003-S2251-X100-4-7618, August 2004<br />

2-14 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

3 <strong>Programming</strong> Reference for IVR Scripts<br />

><br />

This chapter describes <strong>the</strong> new <strong>HiPath</strong> <strong>ProCenter</strong> IVR API functions contained<br />

within <strong>the</strong> HPPCIVR.DLL module. It does not describe <strong>the</strong> IVR API functions<br />

contained within <strong>the</strong> RRNT32.DLL module. If you are using <strong>the</strong> older version of <strong>the</strong><br />

API, please refer to your previous documentation.<br />

This chapter describes how to create IVR scripts using <strong>the</strong> InVision software. It also provides<br />

detailed descriptions of <strong>the</strong> following <strong>HiPath</strong> <strong>ProCenter</strong> IVR API functions that can be called<br />

from <strong>the</strong> IVR script:<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

CreateCallback<br />

DeleteCallback<br />

Dequeue<br />

Disconnect<br />

Enqueue<br />

EnqueueForAgent<br />

GetCallData<br />

GetCallTransferable<br />

GetDDE<br />

Initialize<br />

QueryAgentStatus<br />

QueryCallInfo<br />

QueryCallStatus<br />

QueryCalltypeStatistics<br />

QueryRoutingInfo<br />

QuerySystemStatus<br />

SetCallData<br />

SetCallTransferable<br />

SetDDE<br />

SetDisplay<br />

Transfer<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-1


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Calling IVR API Functions Using <strong>the</strong> InVision Software<br />

Nur für den internen Gebrauch<br />

●<br />

●<br />

●<br />

●<br />

SetCallInfo (unmonitored E1 IVR only)<br />

GetTransitNumber (unmonitored E1 IVR only)<br />

CallerDisconnected (unmonitored E1 IVR only)<br />

ReleaseTransitNumber (unmonitored E1 IVR only)<br />

3.1 Calling IVR API Functions Using <strong>the</strong> InVision Software<br />

You can use <strong>the</strong> InVision software to create an application call flow diagram that displays <strong>the</strong><br />

forms and function calls used by <strong>the</strong> application to generate an IVR script.<br />

Figure 3-1 illustrates how a sample call flow diagram would appear in <strong>the</strong> InVision software.<br />

Figure 3-1<br />

Call flow as shown in <strong>the</strong> InVision Window<br />

><br />

Each toolbar button represents an InVision form called by <strong>the</strong> script. Each InVision<br />

form contains <strong>the</strong> parameters called by <strong>the</strong> script.<br />

To call <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> IVR API functions using <strong>the</strong> InVision software:<br />

1. Enter <strong>the</strong> appropriate module and function name into <strong>the</strong> DLL name and Function boxes.<br />

2. Ga<strong>the</strong>r <strong>the</strong> parameter information for <strong>the</strong> function from <strong>the</strong> following sections, and enter <strong>the</strong><br />

parameters in <strong>the</strong> order that <strong>the</strong>y appear in <strong>the</strong> tables.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Passing Parameters<br />

><br />

The server names used as parameters in <strong>the</strong> IVR API functions are <strong>the</strong> names that<br />

are configured in <strong>the</strong> production copy of <strong>the</strong> Administration Database. Ensure that<br />

you use <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Administrator application to obtain <strong>the</strong> correct server<br />

name for <strong>the</strong> corresponding server.<br />

Figure 3-2 illustrates how you would enter <strong>the</strong> parameter information for <strong>the</strong> Enqueue function<br />

into <strong>the</strong> InVision form:<br />

Figure 3-2<br />

Parameters for <strong>the</strong> Enqueue function in an InVision form<br />

><br />

For detailed information on how to use <strong>the</strong> InVision software, refer to <strong>the</strong> InVision<br />

documentation.<br />

3.2 Passing Parameters<br />

When calling <strong>HiPath</strong> <strong>ProCenter</strong> IVR API functions, you can pass information in <strong>the</strong> following<br />

ways:<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-3


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

CreateCallback<br />

Nur für den internen Gebrauch<br />

3.2.1 Passing Parameters by Value<br />

When you pass parameters by value, you are passing information from <strong>the</strong> IVR script to <strong>HiPath</strong><br />

<strong>ProCenter</strong>. Each of <strong>the</strong> IVR API functions require that different information be sent to <strong>HiPath</strong><br />

<strong>ProCenter</strong>, so that <strong>the</strong> application can carry out <strong>the</strong> requested action.<br />

For example, <strong>the</strong> IVR script must pass <strong>the</strong> call type name to <strong>HiPath</strong> <strong>ProCenter</strong> when invoking<br />

<strong>the</strong> Enqueue function, so that <strong>the</strong> application can enqueue <strong>the</strong> call.<br />

3.2.2 Passing Parameters by Reference<br />

When you pass parameters by reference, you are passing information from <strong>HiPath</strong> <strong>ProCenter</strong><br />

to <strong>the</strong> IVR script. When calling an IVR API function, <strong>the</strong> IVR script specifies a variable name for<br />

variables passed by reference. <strong>HiPath</strong> <strong>ProCenter</strong> returns <strong>the</strong> required information in <strong>the</strong><br />

specified variable.<br />

For example, <strong>HiPath</strong> <strong>ProCenter</strong> returns <strong>the</strong> ANI and DNIS information for a call when <strong>the</strong> IVR<br />

script invokes <strong>the</strong> QueryCallInfo function.<br />

><br />

Parameters passed by reference must be preceded by <strong>the</strong> greater-than (>) sign.<br />

3.3 CreateCallback<br />

The CreateCallback function attempts to create a callback in <strong>the</strong> Callback Server. An IVR can<br />

<strong>the</strong>n indicate that a customer should be called back when an agent becomes available.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.3.1 Syntax<br />

CreateCallback (>CallID, CallTypeName, Caption, TimeZoneOffset,<br />

ContactName, CountryCode, Schedule1, Schedule2, Schedule3)<br />

3.3.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-4 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

CreateCallback<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Reference 18 characters The CallID returned from<br />

QueryCallInfo should be<br />

provided as input. If <strong>the</strong><br />

function is successful, <strong>the</strong><br />

CallID contains <strong>the</strong> new<br />

CallID associated with <strong>the</strong><br />

callback.<br />

CallTypeName String Value 16 characters The callback call type to use<br />

for <strong>the</strong> callback.<br />

Caption String Value 100 characters Optional. A string containing<br />

a brief description of <strong>the</strong> call,<br />

which is displayed in <strong>the</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong> Desktop<br />

applications, so that agents<br />

can identify <strong>the</strong> call.<br />

TimeZoneOffset Integer Value The time zone difference, in<br />

minutes, between <strong>the</strong> <strong>HiPath</strong><br />

<strong>ProCenter</strong> system and <strong>the</strong><br />

callback target identified by<br />

PhoneNumber.<br />

ContactName String Value 80 characters The contact name.<br />

CountryCode String Value 5 characters The country code.<br />

Schedule1 String Value A string using <strong>the</strong> following<br />

format (semi-colon<br />

delimited):<br />

PhoneNumber;<br />

mm/dd/yyyy;hh:mm;<br />

mm/dd/yyyy;hh:mm<br />

which indicates a period of<br />

time during which <strong>the</strong><br />

customer wishes to receive<br />

callbacks, and <strong>the</strong> phone<br />

number where <strong>the</strong> customer<br />

can be reached. The first<br />

date/time is <strong>the</strong> start, <strong>the</strong><br />

second is <strong>the</strong> end time.<br />

Schedule2 String Value Optional.<br />

Table 3-1<br />

Parameters for <strong>the</strong> CreateCallback Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-5


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

CreateCallback<br />

Nur für den internen Gebrauch<br />

Parameter Name Data Type Passed By Range Description<br />

Schedule3 String Value Optional.<br />

Table 3-1 Parameters for <strong>the</strong> CreateCallback Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-6 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

CreateCallback<br />

3.3.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-1 The function failed.<br />

-1011 The function submitted an invalid call type name.<br />

-1012 The function submitted an invalid schedule time format.<br />

-1013 The end time submitted for a schedule is earlier than <strong>the</strong> start time for <strong>the</strong> same<br />

schedule.<br />

-1014 The callback is not scheduled to be completed during valid call center business<br />

hours.<br />

-1015 The name of <strong>the</strong> contact person exceeds <strong>the</strong> maximum number of characters.<br />

-1016 The country code of <strong>the</strong> telephone number exceeds <strong>the</strong> maximum number of<br />

characters.<br />

-1017 The function included an excluded number. Excluded numbers cannot be<br />

included in callback requests. For more information on configuring excluded<br />

numbers, see <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Administrator <strong>Guide</strong>.<br />

-1018 The callback caption exceeds <strong>the</strong> maximum number of characters.<br />

-1020 The DDE data exceeds <strong>the</strong> maximum number of characters.<br />

-1029 The callback schedules have expired.<br />

-1030 Two or more schedules have overlapping times.<br />

-1031 A phone number in <strong>the</strong> request is invalid.<br />

-1033 The wrong version of <strong>the</strong> <strong>ProCenter</strong> servers or desktop applications is being<br />

used.<br />

-1034 The request data was corrupted while transferring through <strong>the</strong> network.<br />

-1036 The function submitted an invalid call type name.<br />

-1040 A Callback with this call type and phone number already exists in <strong>the</strong> system.<br />

This error is only returned if <strong>the</strong> Prevent Duplicate Callback Entries check box<br />

has been selected on <strong>the</strong> General tab of <strong>the</strong> Callback Settings dialog box.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-7


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

DeleteCallback<br />

Nur für den internen Gebrauch<br />

3.3.4 Example<br />

The following example asks <strong>HiPath</strong> <strong>ProCenter</strong> to create a callback for <strong>the</strong> current call. The<br />

parameters, which include some descriptions of <strong>the</strong> call that can be seen in <strong>the</strong> <strong>HiPath</strong><br />

<strong>ProCenter</strong> Desktop applications, are:<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Call type name<br />

Offset for time zone<br />

Customer Name<br />

First number of area code<br />

Customer phone number<br />

The function requests that callbacks to <strong>the</strong> customer numbers are scheduled to be made using<br />

"CBCallType" as <strong>the</strong> call type.<br />

CreateCallback(>CBCallID, 'CBCallType', 'Callback from HPPC', 0, 'Mr. Brite<br />

IVR', '1', '9056957900;06/10/2002;11:55;06/11/2002;11:55', '9056957900;06/<br />

11/2002;11:56;06/12/2002;11:56')<br />

The Call ID is returned by <strong>the</strong> function after <strong>the</strong> callback is created.<br />

3.4 DeleteCallback<br />

The DeleteCallback function is used to delete an existing callback that was created using <strong>the</strong><br />

CreateCallback() function. This function takes as its parameter <strong>the</strong> CallID that was returned<br />

from <strong>the</strong> CreateCallback() function.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.4.1 Syntax<br />

DeleteCallback (CallID)<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-8 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Dequeue<br />

3.4.2 Parameters<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID returned from a<br />

successful CreateCallback<br />

request that is to be deleted.<br />

Table 3-2<br />

3.4.3 Return Codes<br />

Parameters for <strong>the</strong> DeleteCallback Function<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-1033 The wrong version of <strong>the</strong> <strong>ProCenter</strong> servers or desktop applications is being<br />

used.<br />

-1034 The request data was corrupted while transferring through <strong>the</strong> network.<br />

-1037 The specified callback cannot be deleted because <strong>the</strong> callback is currently in<br />

progress.<br />

3.4.4 Example<br />

The following example asks for <strong>the</strong> Callback with <strong>the</strong> CallID of CBCallID to be deleted.<br />

DeleteCallback(CBCallID)<br />

3.5 Dequeue<br />

The Dequeue function sends a request to <strong>the</strong> Routing Server to dequeue a specified call. If you<br />

are using <strong>the</strong> IVR Hold configuration, <strong>the</strong>n you can use <strong>the</strong> Dequeue function to dequeue a call,<br />

so that <strong>the</strong> IVR script can transfer <strong>the</strong> call to an extension or perform some o<strong>the</strong>r action with<br />

<strong>the</strong> call.<br />

If <strong>the</strong> IVR script permits <strong>the</strong> caller to continue to input choices after <strong>the</strong> call has been enqueued,<br />

you can use fur<strong>the</strong>r caller input to change <strong>the</strong> routing of <strong>the</strong> call. For example, if callers wait too<br />

long in queue, <strong>the</strong>y might decide to leave a voice message; <strong>the</strong> IVR script can <strong>the</strong>n dequeue<br />

<strong>the</strong> call and transfer it to a PhoneMail extension.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-9


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Dequeue<br />

Nur für den internen Gebrauch<br />

3.5.1 Syntax<br />

Dequeue (CallID, Abandoned)<br />

3.5.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to dequeue.<br />

Abandoned Integer Value 0 or 1 A flag indicating whe<strong>the</strong>r <strong>the</strong><br />

call was abandoned.<br />

0 – Indicates <strong>the</strong> call was not<br />

abandoned.<br />

1 – Indicates <strong>the</strong> call was<br />

abandoned.<br />

Table 3-3<br />

><br />

3.5.3 Return Codes<br />

Parameters for <strong>the</strong> Dequeue Function<br />

The Abandoned parameter only affects statistics displayed on Supervisor desktops.<br />

It does not affect <strong>the</strong> Reporting Database. As a result, any reports that you generate<br />

using <strong>the</strong> Reporter application are unaffected by this parameter.<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-902 The call could not be found since it is not being tracked by <strong>the</strong> Routing Server.<br />

This occurs if you have not yet enqueued <strong>the</strong> call or have previously called<br />

Dequeue.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-10 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Disconnect<br />

O<strong>the</strong>r<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.5.4 Example<br />

The following example sends a request to dequeue a call. The call has not been abandoned<br />

(<strong>the</strong> abandon flag is 0), so <strong>the</strong> IVR script can now route <strong>the</strong> call to a time-out extension.<br />

Dequeue('1341023126268002', 0)<br />

3.6 Disconnect<br />

The Disconnect function disconnects <strong>the</strong> specified call on <strong>the</strong> IVR port.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

This API does not support trunk connected calls. If an incoming call is flagged as a<br />

trunk connected call, <strong>the</strong> API returns an error indicating that it is not available.<br />

3.6.1 Syntax<br />

Disconnect (CallID)<br />

3.6.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to disconnect.<br />

Table 3-4<br />

3.6.3 Return Codes<br />

Parameters for <strong>the</strong> Disconnect Function<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-11


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Enqueue<br />

Nur für den internen Gebrauch<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-311 The API does not support trunk connected calls.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. This will<br />

normally occur only when querying <strong>the</strong> status of a call. It may also be an<br />

indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-903 There was no call associated with <strong>the</strong> specified device. Ensure that all IVR<br />

extensions are represented in <strong>the</strong> production copy of <strong>the</strong> Administration<br />

Database.<br />

-914 The operation you are attempting has failed.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.6.4 Example<br />

Disconnect('1341023126268002')<br />

3.7 Enqueue<br />

The Enqueue function asks <strong>the</strong> Routing Server to enqueue a call, and find <strong>the</strong> best available<br />

agent to handle <strong>the</strong> call. The function passes <strong>the</strong> routing information of a call to <strong>the</strong> Routing<br />

Server, including <strong>the</strong> call type and <strong>the</strong> call’s initial priority. The function also passes information<br />

to <strong>the</strong> Routing Server that appears in <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Desktop applications, such as <strong>the</strong><br />

caption.<br />

><br />

Use this function to enqueue calls in ei<strong>the</strong>r <strong>the</strong> IVR Hold or <strong>the</strong> ACD Hold configuration. Once<br />

a call is enqueued in <strong>the</strong> IVR Hold configuration, <strong>the</strong> script must check when <strong>the</strong> call is<br />

assigned, and transfer <strong>the</strong> call to <strong>the</strong> agent’s extension. Once a call is enqueued in <strong>the</strong> ACD<br />

Hold configuration, <strong>the</strong> call should be immediately transferred to a RésuméRouting ACD Group.<br />

><br />

If you want <strong>the</strong> call data or DDE to be available, you must set <strong>the</strong>se parameters prior<br />

to enqueuing <strong>the</strong> call.<br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-12 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Enqueue<br />

3.7.1 Syntax<br />

Enqueue (CallID, IVRHold, CallTypeName, InitialPriority, Caption,<br />

>EstimatedWait, >CallsinQueue, ANIDNIS)<br />

3.7.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to enqueue.<br />

IVRHold Integer Value 0 or 1 A flag indicating how <strong>the</strong> call<br />

will be handled.<br />

0- Indicates <strong>the</strong> call will be<br />

transferred to an ACD Group<br />

for <strong>the</strong> ACD Hold<br />

configuration.<br />

1- Indicates <strong>the</strong> call will wait<br />

at <strong>the</strong> IVR extension for <strong>the</strong><br />

IVR Hold configuration. Also<br />

checks to see if this call is on<br />

a trunk-connected IVR port.<br />

CallTypeName String Value 16 characters The name of <strong>the</strong> call type for<br />

<strong>the</strong> call. If <strong>the</strong> call type is<br />

configured to generate a<br />

callback on abandon, <strong>the</strong><br />

ANI parameter must be<br />

passed.<br />

InitialPriority Integer Value 1 to 100 Specifies <strong>the</strong> priority to give<br />

to <strong>the</strong> call relative to all <strong>the</strong><br />

o<strong>the</strong>r calls queued in <strong>the</strong><br />

Routing Server, including<br />

calls associated with <strong>the</strong><br />

same call type as <strong>the</strong> current<br />

call. The default is 1.<br />

Table 3-5<br />

Parameters for <strong>the</strong> Enqueue Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-13


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Enqueue<br />

Nur für den internen Gebrauch<br />

Parameter Name Data Type Passed By Range Description<br />

Caption (optional) String Value 100 characters A string containing a brief<br />

description of <strong>the</strong> call, which<br />

is displayed in <strong>the</strong> <strong>HiPath</strong><br />

<strong>ProCenter</strong> Desktop<br />

applications, so that agents<br />

can identify <strong>the</strong> call.<br />

EstimatedWait Integer Reference Greater than or<br />

equal to 0<br />

CallsInQueue Integer Reference Greater than or<br />

equal to 0<br />

3.7.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

The estimated wait time, in<br />

seconds, for this call type.<br />

The number of calls in queue<br />

for <strong>the</strong> specified call type.<br />

ANIDNIS (optional) String Value 161 The ANI and DNIS numbers<br />

of <strong>the</strong> call. The Statistics<br />

Server stores <strong>the</strong>se numbers<br />

in <strong>the</strong> Reporting database. If<br />

<strong>the</strong> call type in <strong>the</strong> function is<br />

configured to generate a<br />

callback on abandon, <strong>the</strong><br />

ANI must be passed.<br />

Table 3-5<br />

Parameters for <strong>the</strong> Enqueue Function<br />

0 The function was successful.<br />

The ANI and DNIS must be<br />

separated by a semi-colon.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-903 There was no call associated with <strong>the</strong> specified device. Ensure that all IVR<br />

extensions are represented in <strong>the</strong> production copy of <strong>the</strong> Administration<br />

Database.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-14 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

EnqueueForAgent<br />

-905 The function passed an invalid call type. The specified call type did not match <strong>the</strong><br />

name of any call type in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-907 The T-Server is not available. This error means <strong>the</strong> Routing Server could not<br />

enqueue <strong>the</strong> call because <strong>the</strong> T-Server was not available.<br />

-908 The T-Server is not available. The Routing Server attempted to contact <strong>the</strong> T-<br />

Server but failed for an unknown reason.<br />

O<strong>the</strong>r<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.7.4 Example<br />

The following example asks to enqueue <strong>the</strong> call with <strong>the</strong> specified Call ID.<br />

Enqueue('1341023126268002', 1, 'IVR1', 12, 'HPPC 5.1 IVR', >EstWaitTime,<br />

>CallInQueue, '9056957900;69030')<br />

3.8 EnqueueForAgent<br />

The EnqueueForAgent function asks <strong>the</strong> Routing Server to enqueue a call for a specified agent<br />

and time.If <strong>the</strong> AgentWaitTime expires, <strong>the</strong> call is no longer reserved for a specified agent, and<br />

is enqueued to <strong>the</strong> call type specified by <strong>the</strong> CallTypeName. This function passes <strong>the</strong> routing<br />

information of a call to <strong>the</strong> Routing Server, including <strong>the</strong> call type and <strong>the</strong> call’s initial priority.<br />

The function also passes to <strong>the</strong> Routing Server information that appears in <strong>the</strong> <strong>HiPath</strong><br />

<strong>ProCenter</strong> Desktop applications, such as <strong>the</strong> caption.<br />

Use this function to enqueue calls in ei<strong>the</strong>r <strong>the</strong> IVR Hold or <strong>the</strong> ACD Hold configuration. Once<br />

a call is enqueued in <strong>the</strong> IVR Hold configuration, <strong>the</strong> script must check when <strong>the</strong> call is<br />

assigned, and transfer <strong>the</strong> call to <strong>the</strong> agent’s extension. Once a call is enqueued in <strong>the</strong> ACD<br />

Hold configuration, <strong>the</strong> call should be immediately transferred to a RésuméRouting ACD Group.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.8.1 Syntax<br />

EnqueueForAgent (CallID, IVRHold, CallTypeName, InitialPriority, Caption,<br />

AgentID, AgentWaitTime, >EstimatedWait, >CallsinQueue, ANIDNIS)<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-15


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

EnqueueForAgent<br />

Nur für den internen Gebrauch<br />

3.8.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to enqueue.<br />

IVRHold Integer Value 0 or 1 A flag indicating how <strong>the</strong> call<br />

will be handled.<br />

0- Indicates <strong>the</strong> call will be<br />

transferred to an ACD Group<br />

for <strong>the</strong> ACD Hold<br />

configuration.<br />

1- Indicates <strong>the</strong> call will wait<br />

at <strong>the</strong> IVR extension for <strong>the</strong><br />

IVR Hold configuration.<br />

CallTypeName String Value 16 characters The name of <strong>the</strong> call type for<br />

<strong>the</strong> call. If <strong>the</strong> call type is<br />

configured to generate a<br />

callback on abandon, <strong>the</strong><br />

ANI parameter must be<br />

passed.<br />

InitialPriority Integer Value 1 to 100 Specifies <strong>the</strong> priority to give<br />

to <strong>the</strong> call relative to all <strong>the</strong><br />

o<strong>the</strong>r calls queued in <strong>the</strong><br />

Routing Server, including<br />

calls associated with <strong>the</strong><br />

same call type as <strong>the</strong> current<br />

call. The default is 1.<br />

Caption (optional) String Value 100 characters A string containing a brief<br />

description of <strong>the</strong> call, which<br />

is displayed in <strong>the</strong> <strong>HiPath</strong><br />

<strong>ProCenter</strong> Desktop<br />

applications, so that agents<br />

can identify <strong>the</strong> call.<br />

AgentID String Value 8 characters The agent for whom you<br />

want to reserve <strong>the</strong> call.<br />

Table 3-6<br />

Parameters for <strong>the</strong> EnqueueForAgent Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-16 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

EnqueueForAgent<br />

Parameter Name Data Type Passed By Range Description<br />

AgentWaitTime Integer Value Greater than 0 The maximum time, in<br />

seconds, <strong>the</strong> call can wait for<br />

a reserved agent. If this time<br />

expires, <strong>the</strong> call is enqueued<br />

to <strong>the</strong> call type specified by<br />

<strong>the</strong> CallTypeName.<br />

EstimatedWait Integer Reference Greater than or<br />

equal to 0<br />

CallsInQueue Integer Reference Greater than or<br />

equal to 0<br />

The estimated wait time, in<br />

seconds, for this call type.<br />

The number of calls in queue<br />

for <strong>the</strong> specified call type.<br />

ANIDNIS (optional) String Value 161 The ANI and DNIS numbers<br />

of <strong>the</strong> call. The Statistics<br />

Server stores <strong>the</strong>se numbers<br />

in <strong>the</strong> Reporting database. If<br />

<strong>the</strong> call type in <strong>the</strong> function is<br />

configured to generate a<br />

callback on abandon, <strong>the</strong><br />

ANI must be passed.<br />

The ANI and DNIS must be<br />

separated by a semi-colon.<br />

Table 3-6<br />

Parameters for <strong>the</strong> EnqueueForAgent Function<br />

3.8.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-305 There was an unknown error. This error code indicates misuse of <strong>the</strong> function,<br />

or that <strong>the</strong> system is unstable.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-17


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

GetCallData<br />

Nur für den internen Gebrauch<br />

-903 There was no call associated with <strong>the</strong> specified device. Ensure that all IVR<br />

extensions are represented in <strong>the</strong> production copy of <strong>the</strong> Administration<br />

Database.<br />

-904 The function passed an invalid agent ID. The specified agent ID did not match<br />

<strong>the</strong> ID of any agent in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-905 The function passed an invalid call type. The specified call type did not match <strong>the</strong><br />

name of any call type in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-907 The T-Server is not available. This error means <strong>the</strong> Routing Server could not<br />

enqueue <strong>the</strong> call because <strong>the</strong> T-Server was not available.<br />

-908 The T-Server is not available. The Routing Server attempted to contact <strong>the</strong> T-<br />

Server but failed for an unknown reason.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.8.4 Example<br />

The following example asks to enqueue <strong>the</strong> call for agent 790006 for 120 seconds, after which<br />

it will be enqueued to "CT_Pilot1".<br />

EnqueueForAgent ('7551024348478002', 0, 'CT_Pilot1', 8, 'HPPC 5.1 IVR API',<br />

'790006', 120, >EstWaitTime, >CallInQueue)<br />

3.9 GetCallData<br />

The GetCallData function retrieves <strong>the</strong> call data for a specified CallID. If you want <strong>the</strong> call data<br />

to be available, you must set <strong>the</strong> call data prior to enqueueing <strong>the</strong> call or creating <strong>the</strong> callback.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.9.1 Syntax<br />

GetCallData (CallID, Key, >Value, >IsBinary)<br />

3.9.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-18 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

GetCallData<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to set <strong>the</strong> call data for.<br />

Key String Value 32 characters The key name for <strong>the</strong> call<br />

data value.<br />

Value String Reference 128 characters The value to be returned for<br />

<strong>the</strong> key.<br />

IsBinary Integer Reference 0 or 1 A flag indicating whe<strong>the</strong>r <strong>the</strong><br />

key-value pair contains<br />

binary data.<br />

1=Yes, 0=No<br />

Table 3-7<br />

Parameters for <strong>the</strong> GetCallData Function<br />

3.9.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-307 The key name for <strong>the</strong> call data value was not set prior to invoking this function.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.9.4 Example<br />

The following example retrieves <strong>the</strong> call data for <strong>the</strong> key "Name", for <strong>the</strong> specified CallID.<br />

GetCallData ('8271023217459002', 'Name', >KeyValue, >isBinary)<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-19


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

GetCallTransferable<br />

Nur für den internen Gebrauch<br />

3.10 GetCallTransferable<br />

The GetCallTransferable function returns whe<strong>the</strong>r <strong>the</strong> call can be transferred by <strong>HiPath</strong><br />

<strong>ProCenter</strong> to an assigned agent.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

This API does not support trunk connected calls. If an incoming call is flagged as a<br />

trunk connected call, <strong>the</strong> API returns an error indicating that it is not available.<br />

3.10.1 Syntax<br />

GetCallTransferable (CallID, >FlagValue)<br />

3.10.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to transfer.<br />

FlagValue Integer Reference 0 or 1 A flag indicating whe<strong>the</strong>r a<br />

call can be transferred by<br />

<strong>HiPath</strong> <strong>ProCenter</strong> to an<br />

assigned agent. If set to false<br />

(0), <strong>HiPath</strong> <strong>ProCenter</strong><br />

suspends matching an agent<br />

to <strong>the</strong> call until <strong>the</strong> flag is set<br />

to true (1). If <strong>the</strong> call is<br />

transferred back to <strong>the</strong><br />

queue by <strong>the</strong> IVR, <strong>the</strong> flag is<br />

automatically reset to true<br />

(1).<br />

Table 3-8<br />

Parameters for <strong>the</strong> GetCallTransferable Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-20 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

GetDDE<br />

3.10.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

O<strong>the</strong>r<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.10.4 Example<br />

The following example returns whe<strong>the</strong>r <strong>the</strong> call can be transferred by <strong>HiPath</strong> <strong>ProCenter</strong> to an<br />

assigned agent.<br />

GetCallTransferable ('0831023896468002', >FlagValue)<br />

3.11 GetDDE<br />

The GetDDE function retrieves <strong>the</strong> DDE value associated with a call. If you want <strong>the</strong> DDE to be<br />

available, you must set <strong>the</strong> DDE prior to enqueueing <strong>the</strong> call or creating <strong>the</strong> callback.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.11.1 Syntax<br />

GetDDE (CallID, >DDEValue)<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-21


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

GetDDE<br />

Nur für den internen Gebrauch<br />

3.11.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call for<br />

which you want to get <strong>the</strong><br />

DDE.<br />

DDEValue String Reference 1000 characters The DDE value associated<br />

with <strong>the</strong> call.<br />

Table 3-9<br />

3.11.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

3.11.4 Example<br />

Parameters for <strong>the</strong> GetDDE Function<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

The following example retrieves <strong>the</strong> DDE value associated with a call.<br />

GetDDE ('2291023900527002', >DDE)<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-22 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Initialize<br />

3.12 Initialize<br />

The Initialize function initializes <strong>the</strong> connection to <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Servers and must be<br />

called before any of <strong>the</strong> o<strong>the</strong>r <strong>HiPath</strong> <strong>ProCenter</strong> IVR API functions are invoked. Therefore,<br />

invoke this function at <strong>the</strong> beginning of your script, and ensure that <strong>HiPath</strong> <strong>ProCenter</strong> is<br />

operational before routing calls.<br />

3.12.1 Syntax<br />

Initialize (LocalPort, AdminServerName, RpcTimeout)<br />

3.12.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

LocalPort String Value 1 - 32767 The TCP/IP port number to<br />

be used by <strong>the</strong> IVR API<br />

functions. This must be a<br />

number that is not already in<br />

use.<br />

AdminServerName String Value 128 characters The network name of <strong>the</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong> Admin<br />

Server at <strong>the</strong> site on which<br />

you are working. For<br />

example, 6000@rrserver.<br />

RpcTimeout Integer Value Greater than 0 The amount of time, in<br />

milliseconds, between when<br />

<strong>the</strong> API makes a call and<br />

returns <strong>the</strong> call. When a user<br />

calls <strong>the</strong> API, <strong>the</strong> system<br />

expects a result within <strong>the</strong><br />

timeout period, or <strong>the</strong> call<br />

fails. Use a value of 10000<br />

milliseconds or greater.<br />

Table 3-10<br />

Parameters for <strong>the</strong> Initialize Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-23


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryAgentStatus<br />

Nur für den internen Gebrauch<br />

3.12.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-910 Your DLL version is not compatible with <strong>the</strong> <strong>ProCenter</strong> Server you are making<br />

<strong>the</strong> request against.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.12.4 Example<br />

The following example initializes a connection between <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Server and <strong>the</strong><br />

Prompt Response unit. The IVR port number is 6060. All <strong>the</strong> parameters are passed by value.<br />

Initialize('6060', '6000@deerhurst', 10000)<br />

3.13 QueryAgentStatus<br />

The QueryAgentStatus function polls for <strong>the</strong> telephony status of an agent associated with a<br />

given device. This function will return <strong>the</strong> status of <strong>the</strong> agent as an integer value depending on<br />

whe<strong>the</strong>r <strong>the</strong> agent is logged on or not. If <strong>the</strong> agent ID is specified and is logged on, <strong>the</strong> device<br />

will be filled in and <strong>the</strong> status returned. If <strong>the</strong> device is specified, and <strong>the</strong>re is an agent logged<br />

on to <strong>the</strong> specified device, <strong>the</strong> agent ID will be filled in and <strong>the</strong> status returned.<br />

><br />

You must call <strong>the</strong> Initialize function prior to invoking this function. See Section 3.12,<br />

“Initialize”, on page 3-23 for detailed information.<br />

3.13.1 Syntax<br />

QueryAgentStatus (>AgentID, >Device, >AgentStatus)<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-24 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryAgentStatus<br />

3.13.2 Parameters<br />

YYou must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

AgentID String Reference 8 characters A string identifying <strong>the</strong> agent,<br />

or empty if <strong>the</strong> Device ID is<br />

provided.<br />

Device String Reference 16 characters Device ID for <strong>the</strong> device you<br />

want to query or empty.<br />

AgentStatus Integer Reference Greater than or<br />

equal to 0<br />

Table 3-11<br />

3.13.3 Return Codes<br />

Parameters for <strong>the</strong> QueryAgentStatus Function<br />

The most common codes returned by this function are as follows:<br />

This value indicates <strong>the</strong><br />

status of an agent. For<br />

example:<br />

1- currently dialing<br />

2 - busy<br />

3 - ringing<br />

4 - connected<br />

5 - queued<br />

6 - on hold<br />

7 - consulting<br />

8 - out of service<br />

9 - available<br />

10 - unavailable<br />

11 - working<br />

12 - logged off<br />

13 - unknown<br />

0 The function was successful.<br />

-904 The function passed an invalid agent ID. The specified agent ID did not match<br />

<strong>the</strong> ID of any agent in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-909 The function passed an invalid device. The specified device did not match any<br />

device in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-25


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryCallInfo<br />

Nur für den internen Gebrauch<br />

3.13.4 Example<br />

The following example polls for <strong>the</strong> telephony status of an agent associated with a given device,<br />

and returns <strong>the</strong> agent status associated with <strong>the</strong> specified device.<br />

QueryAgentStatus('188001', >Device, >AgentStatus)<br />

3.14 QueryCallInfo<br />

The QueryCallInfo function queries <strong>the</strong> T-Server for <strong>the</strong> Call ID, <strong>the</strong> ANI and DNIS numbers<br />

associated with <strong>the</strong> current IVR extension, and <strong>the</strong> call being processed. Both <strong>the</strong> ANI and<br />

DNIS numbers are returned as strings. Invoke this function when a call arrives at an IVR<br />

extension to obtain <strong>the</strong> ANI and DNIS information for <strong>the</strong> call.<br />

><br />

You must call <strong>the</strong> Initialize function prior to invoking this function. See Section 3.12,<br />

“Initialize”, on page 3-23 for detailed information.<br />

7<br />

Any calls abandoned in an unmonitored E1 IVR before this function is called do not<br />

generate any statistics for reporting purposes.<br />

3.14.1 Syntax<br />

QueryCallInfo (Device, >CallID, >originalANI, >originalDNIS, >UUID,<br />

>IVRVisits, >Queued, >InternalANI, >InternalDNIS, >TrunkConnectedIVRPort)<br />

3.14.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

Device String Value 16 characters The device associated with<br />

<strong>the</strong> IVR extension on which<br />

<strong>the</strong> script is running.<br />

CallID String Reference 18 characters The CallID for <strong>the</strong> current<br />

call.<br />

originalANI String Reference 80 characters The ANI number associated<br />

with <strong>the</strong> call when it first<br />

enters <strong>the</strong> system.<br />

Table 3-12<br />

Parameters for <strong>the</strong> QueryCallInfo Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-26 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryCallInfo<br />

Parameter Name Data Type Passed By Range Description<br />

originalDNIS String Reference 80 characters The DNIS number<br />

associated with <strong>the</strong> call when<br />

it first enters <strong>the</strong> system.<br />

UUID (optional) String Reference 32 characters The UUID associated with<br />

<strong>the</strong> current call.<br />

IVRVisits (optional) Integer Reference Greater than or<br />

equal to 0<br />

3.14.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

The number of times that this<br />

call has visited a <strong>HiPath</strong><br />

<strong>ProCenter</strong> monitored IVR.<br />

Queued (optional) Integer Reference 0 or 1 Indicates if this is a FMNQ<br />

scenario. Yes=1, No=0.<br />

InternalANI String Reference 80 characters The number from which <strong>the</strong><br />

call placed to <strong>the</strong> IVR ACD/<br />

UCD group originated.<br />

InternalDNIS String Reference 80 characters The pilot number associated<br />

with <strong>the</strong> IVR ACD/UCD<br />

group.<br />

TrunkConnectedIV<br />

RPort (optional)<br />

Table 3-12<br />

String Value No limit A semi-colon delimited<br />

string, beginning with ‘;1’ or<br />

‘1’, indicates if this is an<br />

unmonitored E1 IVR call<br />

scenario.<br />

Parameters for <strong>the</strong> QueryCallInfo Function<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-27


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryCallStatus<br />

Nur für den internen Gebrauch<br />

3.14.4 Example<br />

The following example queries for <strong>the</strong> CallID, and ANI and DNIS numbers of <strong>the</strong> call currently<br />

connected to <strong>the</strong> IVR extension. The IVR extension number is passed by value. The CallID,<br />

ANI, and DNIS information are passed by reference.<br />

QueryCallInfo('36200', >CallID, >originalANI, >originalDNIS)<br />

3.15 QueryCallStatus<br />

The QueryCallStatus function polls for <strong>the</strong> status of <strong>the</strong> call associated with a given device. This<br />

function returns <strong>the</strong> call status associated with <strong>the</strong> specified device. If <strong>the</strong> call status returned<br />

is ASSIGNED, <strong>the</strong>n <strong>the</strong> Extension parameter returns <strong>the</strong> number to which <strong>the</strong> IVR should<br />

transfer. After a call has been enqueued, regularly invoke <strong>the</strong> QueryCallStatus function to<br />

determine if <strong>the</strong> call has been assigned, so that <strong>the</strong> IVR can transfer <strong>the</strong> call as soon as an<br />

agent is assigned by <strong>the</strong> Routing Server.<br />

><br />

If working with an unmonitored E1 IVR, and <strong>the</strong> QueryCallStatus function returns a<br />

code of 2 (Pending) or 3 (Unanswered or Timed Out), <strong>the</strong> IVR must transfer <strong>the</strong> call<br />

to <strong>HiPath</strong> <strong>ProCenter</strong> as soon as possible, by first requesting a transit number via <strong>the</strong><br />

GetTransitNumber API.<br />

If <strong>the</strong> QueryCallStatus function returns a code of 4 (error), <strong>the</strong> application may<br />

transfer <strong>the</strong> call to a non-<strong>HiPath</strong> <strong>ProCenter</strong> extension. In this case, you should call<br />

<strong>the</strong> CallerDisconnected API before transferring, so that <strong>HiPath</strong> <strong>ProCenter</strong> can<br />

properly terminate <strong>the</strong> tracking of <strong>the</strong> call.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.15.1 Syntax<br />

QueryCallStatus (CallID, Timeout, >Extension, >PositionInQueue)<br />

3.15.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID returned form<br />

QueryCallInfo.<br />

Table 3-13<br />

Parameters for <strong>the</strong> QueryCallStatus Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-28 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryCallStatus<br />

Parameter Name Data Type Passed By Range Description<br />

Timeout Integer Value Greater than or<br />

equal to 0<br />

The amount of time (in<br />

milliseconds) spent waiting<br />

for a change in call status on<br />

<strong>the</strong> given device. Specifying<br />

zero (0) indicates an<br />

immediate poll of <strong>the</strong> current<br />

status.<br />

Extension String Reference 32 characters The agent extension to which<br />

<strong>the</strong> script should transfer <strong>the</strong><br />

call when it is assigned by<br />

<strong>the</strong> Routing Server or times<br />

out.<br />

PositionInQueue Integer Reference Greater than 0 The position of <strong>the</strong> call in <strong>the</strong><br />

queue, as returned by <strong>the</strong><br />

Routing Server.<br />

Table 3-13<br />

><br />

You can receive <strong>the</strong> -701 return code while calling <strong>the</strong> QueryCallStatus function for<br />

<strong>the</strong> following two reasons:<br />

●<br />

Parameters for <strong>the</strong> QueryCallStatus Function<br />

If you specify a non-zero timeout, <strong>the</strong> QueryCallStatus waits for <strong>the</strong> events to<br />

arrive. In this case, <strong>the</strong> -701 return code only indicates that you have waited <strong>the</strong><br />

specified time without anything happening.<br />

●<br />

If you specify a timeout of 0 and <strong>the</strong> call is in an queued state, <strong>the</strong>n <strong>the</strong> position<br />

in queue will be queried from <strong>the</strong> Routing Server. In this case, <strong>the</strong> -701 return<br />

code indicates that <strong>the</strong>re are network problems or a busy server.<br />

3.15.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The call is idle.<br />

1 The call is in Queued state. In this case, continue checking call status.<br />

2 The call is in Pending state. In this case, transfer <strong>the</strong> call to <strong>the</strong> returned<br />

extension.<br />

3 The call is in Unanswered state. In this case, transfer <strong>the</strong> call to <strong>the</strong> returned<br />

extension, or to ano<strong>the</strong>r time-out extension.<br />

4 An error has occurred. In this case, transfer <strong>the</strong> call to a non-<strong>HiPath</strong> <strong>ProCenter</strong><br />

extension.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-29


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryCalltypeStatistics<br />

Nur für den internen Gebrauch<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server. See note below.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-902 The call could not be found since it is not being tracked by <strong>the</strong> Routing Server.<br />

This occurs if you have not yet enqueued <strong>the</strong> call or have previously called<br />

Dequeue.<br />

-903 There was no call associated with <strong>the</strong> specified device. Ensure that all IVR<br />

extensions are represented in <strong>the</strong> production copy of <strong>the</strong> Administration<br />

Database.<br />

-908 The T-Server is not available. The Routing Server attempted to contact <strong>the</strong> T-<br />

Server but failed for an unknown reason.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.15.4 Example<br />

The following example waits for a maximum of 60,000 milliseconds to monitor a change in <strong>the</strong><br />

status. If <strong>the</strong> call changes to <strong>the</strong> assigned state within that time period, <strong>the</strong> function returns <strong>the</strong><br />

agent extension to which <strong>the</strong> IVR should transfer <strong>the</strong> call, using <strong>the</strong> TRANSFER_EXT variable.<br />

The CallID and time-out values are passed by value, and <strong>the</strong> transfer extension is passed by<br />

reference.<br />

QueryCallStatus('1341023126268002', 60000, >TRANSFER_EXT)<br />

3.16 QueryCalltypeStatistics<br />

The QueryCalltypeStatistics function determines <strong>the</strong> estimated wait time for a call, <strong>the</strong> average<br />

wait time for <strong>the</strong> call type, <strong>the</strong> time that <strong>the</strong> oldest call has been in queue, and <strong>the</strong> service level<br />

for <strong>the</strong> specified call type.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-30 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryCalltypeStatistics<br />

7<br />

The QueryCalltypeStatistics function uses an internal parameter to determine <strong>the</strong><br />

period of time over which <strong>the</strong> function calculates <strong>the</strong> estimated wait time. The value<br />

of <strong>the</strong> parameter depends on conditions specific to your call center.<br />

To obtain accurate results from <strong>the</strong> QueryCalltypeStatistics function, call Siemens<br />

personnel to custom-configure this parameter for your call center.<br />

These calculations assume <strong>the</strong> call will be enqueued to <strong>the</strong> Routing Server immediately,<br />

regardless of whe<strong>the</strong>r <strong>the</strong> call has been enqueued. If you use this function, you should invoke<br />

it immediately before invoking <strong>the</strong> RequestEnqueue function to ensure an accurate response<br />

from <strong>the</strong> Routing Server.<br />

><br />

You must call <strong>the</strong> Initialize function prior to invoking this function. See Section 3.12,<br />

“Initialize”, on page 3-23 for detailed information.<br />

3.16.1 Syntax<br />

QueryCalltypeStatistics (CallTypeName, >CallsInQueue, >EstimatedWait,<br />

>AverageWait, >OldestCallinQueue, >ServiceLevel)<br />

3.16.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallTypeName String Value 16 characters The call type for which <strong>the</strong><br />

query is performed.<br />

CallsInQueue Integer Reference Greater than or<br />

equal to 0<br />

EstimatedWait Integer Reference Greater than or<br />

equal to 0<br />

AverageWait Integer Reference Greater than or<br />

equal to 0<br />

OldestCallInQueue Integer Reference Greater than or<br />

equal to 0<br />

Table 3-14<br />

Parameters for <strong>the</strong> QueryCalltypeStatistics Function<br />

The number of calls in queue<br />

for <strong>the</strong> specified call type.<br />

The estimated wait time, in<br />

seconds, for <strong>the</strong> specified<br />

call type.<br />

The average wait time, in<br />

seconds, for <strong>the</strong> specified<br />

call type.<br />

The time, in seconds, that<br />

<strong>the</strong> oldest call has been in<br />

<strong>the</strong> queue.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-31


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryCalltypeStatistics<br />

Nur für den internen Gebrauch<br />

Parameter Name Data Type Passed By Range Description<br />

ServiceLevel Integer Reference 0 - 100 The service level for <strong>the</strong><br />

specified call type.<br />

Table 3-14<br />

The estimated wait time is calculated by dividing <strong>the</strong> number of calls in queue by <strong>the</strong> departure<br />

rate, where:<br />

●<br />

●<br />

Parameters for <strong>the</strong> QueryCalltypeStatistics Function<br />

The departure rate is <strong>the</strong> number of calls dequeued from <strong>the</strong> Routing Server that were<br />

associated with <strong>the</strong> specified call type. The departure rate is recalculated each time a call<br />

is answered, abandoned, or transferred.<br />

The number of calls in queue equals <strong>the</strong> number of calls associated with <strong>the</strong> specified call<br />

type that are currently queued with <strong>the</strong> Routing Server. When a call of <strong>the</strong> same call type<br />

is enqueued to <strong>the</strong> Routing Server (regardless of <strong>the</strong> method used), this number increases<br />

by one.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-32 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryRoutingInfo<br />

3.16.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-905 The function passed an invalid call type. The specified call type did not match <strong>the</strong><br />

name of any call type in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

O<strong>the</strong>r<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.16.4 Example<br />

The following example queries for <strong>the</strong> statistics for <strong>the</strong> call type "Normal".<br />

QueryCalltypeStatistics('Normal', >CallsInQueue, >EstimatedWait,<br />

>AverageWait, >OldestCallinQueue, >ServiceLevel)<br />

3.17 QueryRoutingInfo<br />

The QueryRoutingInfo function sends a request to <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Routing Server to<br />

assign a call type and o<strong>the</strong>r routing information based on <strong>the</strong> configured system routing option.<br />

The query is based on information collected and submitted by <strong>the</strong> IVR API as part of a <strong>HiPath</strong><br />

<strong>ProCenter</strong> Routing request.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

It is recommended that you enqueue <strong>the</strong> call based on <strong>the</strong> call type information returned from<br />

<strong>the</strong> Routing Server.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-33


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryRoutingInfo<br />

Nur für den internen Gebrauch<br />

><br />

If you want <strong>the</strong> call data or DDE values to be considered in <strong>the</strong> routing decision, you<br />

must set <strong>the</strong>se values using <strong>the</strong> SetCallData and SetDDE functions prior to invoking<br />

this function. To retain <strong>the</strong> original call data or DDE values, you must copy and reset<br />

<strong>the</strong> values prior to invoking <strong>the</strong> Enqueue or EnqueueForAgent functions. See<br />

Section 3.19, “SetCallData”, on page 3-39 and Section 3.21, “SetDDE”, on page<br />

3-42 for detailed information.<br />

3.17.1 Syntax<br />

QueryRoutingInfo (CallID, >CallTypeName, >AgentID, >AgentWaitTime,<br />

>Caption, >InitialPriority, >EstimatedWait, >CallsinQueue, ANIDNIS)<br />

3.17.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID of <strong>the</strong> call for<br />

which you want to obtain <strong>the</strong><br />

appropriate call type.<br />

CallTypeName String Reference 16 characters Returns <strong>the</strong> call type that is<br />

best suited for <strong>the</strong> call.<br />

AgentID String Reference 8 characters Returns <strong>the</strong> ID of <strong>the</strong> agent<br />

who should be reserved to<br />

handle <strong>the</strong> call. If no AgentID<br />

is returned, use <strong>the</strong> Enqueue<br />

function, o<strong>the</strong>rwise use <strong>the</strong><br />

EnqueueForAgent function.<br />

AgentWaitTime Integer Reference Greater than 0 Returns <strong>the</strong> maximum time,<br />

in seconds, <strong>the</strong> caller must<br />

wait for a reserved agent<br />

before <strong>the</strong> call is released<br />

and goes to <strong>the</strong> specified call<br />

type. This is only valid if an<br />

AgentID is returned.<br />

Table 3-15<br />

Parameters for <strong>the</strong> QueryRoutingInfo Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-34 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QueryRoutingInfo<br />

Parameter Name Data Type Passed By Range Description<br />

Caption String Reference 100 characters Provides a description of <strong>the</strong><br />

call, which is displayed in <strong>the</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong> Desktop<br />

applications, so that agents<br />

can identify <strong>the</strong> call.<br />

InitialPriority Integer Reference 1 to 100 Returns <strong>the</strong> priority of <strong>the</strong><br />

call relative to all <strong>the</strong> o<strong>the</strong>r<br />

calls queued in <strong>the</strong> Routing<br />

Server, including calls<br />

associated with <strong>the</strong> same<br />

call type as <strong>the</strong> current call.<br />

The default is 1.<br />

EstimatedWait Integer Reference Greater than or<br />

equal to 0<br />

CallsInQueue Integer Reference Greater than or<br />

equal to 0<br />

Returns <strong>the</strong> estimated wait<br />

time, in seconds, for <strong>the</strong><br />

specified call type.<br />

Returns <strong>the</strong> number of calls<br />

in queue for <strong>the</strong> specified call<br />

type.<br />

ANIDNIS (optional) String Value 161 The ANI and DNIS numbers<br />

to be used in <strong>the</strong> routing<br />

decision. The ANI and DNIS<br />

must be separated by a<br />

semi-colon.<br />

If <strong>the</strong> ANI and DNIS are<br />

specified in <strong>the</strong> call data,<br />

<strong>the</strong>y take precedence over<br />

<strong>the</strong> values you specify here.<br />

Table 3-15<br />

Parameters for <strong>the</strong> QueryRoutingInfo Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-35


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QuerySystemStatus<br />

Nur für den internen Gebrauch<br />

3.17.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-400 Low system resources.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-915 The function was unable to retrieve <strong>the</strong> call type and o<strong>the</strong>r routing information<br />

based on <strong>the</strong> configured system routing option.<br />

O<strong>the</strong>r<br />

3.17.4 Example<br />

The following example queries <strong>the</strong> Routing Server for <strong>the</strong> call type and o<strong>the</strong>r routing<br />

information.<br />

QueryRoutingInfo('1341023126268002', >CallTypeName, >AgentID,<br />

>AgentWaitTime, >Caption, >InitialPriority, >EstimatedWait, >CallsInQueue,<br />

'9056957900;69030')<br />

3.18 QuerySystemStatus<br />

The QuerySystemStatus function determines <strong>the</strong> status of <strong>the</strong> system. This function should be<br />

called to verify <strong>the</strong> system status at <strong>the</strong> beginning of <strong>the</strong> IVR script, and before enqueuing a call.<br />

><br />

3.18.1 Syntax<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

You must call <strong>the</strong> Initialize function prior to invoking this function. See Section 3.12,<br />

“Initialize”, on page 3-23 for detailed information.<br />

QuerySystemStatus (>OverallStatus, >IndividualServerStates, >Entries)<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-36 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QuerySystemStatus<br />

3.18.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

OverallStatus Integer Reference 0 or 1 Indicates if <strong>HiPath</strong><br />

<strong>ProCenter</strong> is up and<br />

running and able to route<br />

calls.<br />

0 - Indicates it is not up<br />

and running<br />

1 - Indicates it is up and<br />

running.<br />

IndividualServerStates String Reference 250 characters A string containing each<br />

server name and its state.<br />

For example:<br />

server-name1=1;<br />

server-name2=2<br />

See Information below.<br />

Entries Integer Reference Greater than or<br />

equal to 0<br />

Table 3-16<br />

Parameters for <strong>the</strong> QuerySystemStatus Function<br />

The IVR script should parse <strong>the</strong> status parameter returned by <strong>the</strong> Routing Server, to find <strong>the</strong><br />

status of <strong>the</strong> Routing Server and T-Server. If <strong>the</strong> Routing Server state is not 1, or <strong>the</strong> T-Server<br />

state is not 8, <strong>the</strong>n <strong>the</strong> call should be transferred to an ACD number that routes calls to a backup<br />

ACD group.<br />

The following are <strong>the</strong> codes that can be returned, indicating <strong>the</strong> status of <strong>the</strong> various servers:<br />

0 The server is not operational.<br />

1 The server is operational.<br />

Only <strong>the</strong> T-Server uses <strong>the</strong> following error codes:<br />

The number of servers in<br />

<strong>the</strong> above status string.<br />

2 The server is inactive. This means that <strong>the</strong> Administration Server is operational, but it<br />

has not received an indication of <strong>the</strong> status for <strong>the</strong> specified server.<br />

3 The T-Server is not operational.<br />

4 The T-Server is in <strong>the</strong> process of shutting down.<br />

5 The T-Server is out of service, since it cannot connect to <strong>the</strong> CSTA gateway.<br />

6 The T-Server is in <strong>the</strong> process of starting.<br />

7 The T-Server is in <strong>the</strong> process of initializing.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-37


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

QuerySystemStatus<br />

Nur für den internen Gebrauch<br />

8 The T-Server is operational.<br />

9 The switch is overloaded and is having problems carrying out <strong>the</strong> T-Server’s requests.<br />

10 The T-Server is in <strong>the</strong> process of recovering.<br />

For detailed information on how to resolve issues with <strong>the</strong> T-Server or o<strong>the</strong>r servers, see <strong>the</strong><br />

troubleshooting information in <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Operations <strong>Guide</strong>.<br />

3.18.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-901 There was no status information available. The Administration Server is not<br />

operational but <strong>the</strong> Routing Server is still available. In this case, <strong>the</strong> status of <strong>the</strong><br />

o<strong>the</strong>r servers is unknown. This error is returned only by <strong>the</strong> QuerySystemStatus<br />

function.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.18.4 Example<br />

The following example queries for <strong>the</strong> status of each of <strong>the</strong> servers. The function passes <strong>the</strong><br />

S_OVERALLSTATUS and S_SERVER_STATES by reference to return <strong>the</strong> status of each of <strong>the</strong><br />

servers. Also, I_ENTRIES returns <strong>the</strong> number of servers in <strong>the</strong> S_SERVER_STATES string.<br />

QuerySystemStatus(>S_OVERALLSTATUS, >S_SERVER_STATES, >I_ENTRIES)<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-38 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

SetCallData<br />

3.19 SetCallData<br />

The SetCallData function sets <strong>the</strong> call data for a specified CallID and adds <strong>the</strong> key-value pair if<br />

it does not exist. If you want <strong>the</strong> call data to be available, you must set <strong>the</strong> call data prior to<br />

enqueueing <strong>the</strong> call or creating <strong>the</strong> callback.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.19.1 Syntax<br />

SetCallData (CallID, Key, Value, IsBinary)<br />

3.19.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to set <strong>the</strong> call data for.<br />

Key String Value 32 characters The key name for <strong>the</strong> call<br />

data value.<br />

Value String Value 128 characters The value to be set.<br />

IsBinary Integer Value 0 or 1 A flag indicating whe<strong>the</strong>r <strong>the</strong><br />

value contains binary data.<br />

1=Yes, 0=No<br />

Table 3-17<br />

Parameters for <strong>the</strong> SetCallData Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-39


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

SetCallTransferable<br />

Nur für den internen Gebrauch<br />

3.19.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-308 QueryCallInfo was not called prior to invoking this function. You must call<br />

QueryCallInfo to obtain <strong>the</strong> Call ID.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

O<strong>the</strong>r<br />

3.19.4 Example<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

The following example sets <strong>the</strong> call data for a specified CallID and adds <strong>the</strong> key-value pair if it<br />

does not exist.<br />

SetCallData('8271023217459002', 'Name', 'John Doe', 0)<br />

3.20 SetCallTransferable<br />

><br />

This API does not support trunk connected calls. If an incoming call is flagged as a<br />

trunk connected call, <strong>the</strong> API returns an error indicating that it is not available.<br />

Before <strong>the</strong> IVR script disconnects or transfers a FMNQ call, you must issue <strong>the</strong><br />

SetCallTransferable (0) and receive a successful return code. If you not receive a<br />

successful return code, this indicates that <strong>the</strong> call is in <strong>the</strong> process of being<br />

transferred and you must wait for <strong>the</strong> process to complete.<br />

The SetCallTransferable function specifies whe<strong>the</strong>r <strong>the</strong> call can be transferred by <strong>HiPath</strong><br />

<strong>ProCenter</strong> to an assigned agent.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-40 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

SetCallTransferable<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.20.1 Syntax<br />

SetCallTransferable (CallID, FlagValue)<br />

3.20.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to transfer.<br />

FlagValue Integer Value 0 or 1 A flag indicating whe<strong>the</strong>r a<br />

call can be transferred by<br />

<strong>HiPath</strong> <strong>ProCenter</strong> to an<br />

assigned agent. If set to false<br />

(0), <strong>HiPath</strong> <strong>ProCenter</strong><br />

suspends matching an agent<br />

to <strong>the</strong> call until <strong>the</strong> flag is set<br />

to true (1). If <strong>the</strong> call is<br />

transferred back to <strong>the</strong><br />

queue by <strong>the</strong> IVR, <strong>the</strong> flag is<br />

automatically reset to true<br />

(1).<br />

Table 3-18<br />

3.20.3 Return Codes<br />

Parameters for <strong>the</strong> SetCallTransferable Function<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-41


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

SetDDE<br />

Nur für den internen Gebrauch<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

O<strong>the</strong>r<br />

3.20.4 Example<br />

The following example specifies that <strong>the</strong> call may be transferred by <strong>HiPath</strong> <strong>ProCenter</strong> to an<br />

assigned agent.<br />

SetCallTransferable('0741023896297002', 1)<br />

3.21 SetDDE<br />

The SetDDE function sets <strong>the</strong> DDE value associated with a call. If you want <strong>the</strong> DDE data to<br />

be available, you must set <strong>the</strong> DDE data prior to enqueueing <strong>the</strong> call or creating <strong>the</strong> callback.<br />

><br />

3.21.1 Syntax<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

SetDDE (CallID, DDEValue)<br />

3.21.2 Parameters<br />

YYou must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to set <strong>the</strong> DDE for.<br />

DDEValue String Value 1000 characters The DDE value to associate<br />

with <strong>the</strong> call.<br />

Table 3-19<br />

Parameters for <strong>the</strong> SetDDE Function<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-42 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

SetDisplay<br />

3.21.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

O<strong>the</strong>r<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.21.4 Example<br />

The following example sets <strong>the</strong> DDE value associated with a call.<br />

SetDDE ('2291023900527002', '/DDE/SCREENPOP/PIN/12345/')<br />

3.22 SetDisplay<br />

><br />

This function is only available on <strong>the</strong> <strong>HiPath</strong> 4000 switch.<br />

The SetDisplay function sets <strong>the</strong> telephone display for <strong>the</strong> first answering agent of <strong>the</strong> specified<br />

call.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

3.22.1 Syntax<br />

SetDisplay (CallID, DisplayInfo)<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-43


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

SetDisplay<br />

Nur für den internen Gebrauch<br />

3.22.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID of <strong>the</strong> call for<br />

which you want to set <strong>the</strong><br />

display.<br />

DisplayInfo String Value 240 characters The string that is displayed<br />

on <strong>the</strong> answering agent<br />

device.<br />

Table 3-20<br />

3.22.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

3.22.4 Example<br />

Parameters for <strong>the</strong> SetDisplay Function<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be<br />

an indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

The following example sets <strong>the</strong> telephone display for <strong>the</strong> first answering agent of <strong>the</strong> specified<br />

call to "IVR Call".<br />

SetDisplay('1341023126268002', 'IVR Call')<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-44 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Transfer<br />

3.23 Transfer<br />

The Transfer function performs a transfer and indicates <strong>the</strong> success or failure of <strong>the</strong> transfer.<br />

This API will not wait for <strong>the</strong> target party to answer.<br />

><br />

You must call <strong>the</strong> Initialize and QueryCallInfo functions prior to invoking this function.<br />

See Section 3.12, “Initialize”, on page 3-23 and Section 3.14, “QueryCallInfo”, on<br />

page 3-26 for detailed information.<br />

This API does not support trunk connected calls. If an incoming call is flagged as a<br />

trunk connected call, <strong>the</strong> API returns an error indicating that it is not available.<br />

3.23.1 Syntax<br />

Transfer (CallID, ToDevice)<br />

><br />

As a result of <strong>the</strong> CTI transfer, <strong>the</strong> call will appear from <strong>the</strong> perspective of <strong>the</strong> IVR to<br />

have been disconnected ra<strong>the</strong>r than transferred.<br />

3.23.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> call you<br />

want to transfer.<br />

ToDevice String Value 24 characters A string identifying <strong>the</strong><br />

device to which <strong>the</strong> call is<br />

being transferred.<br />

Table 3-21<br />

3.23.3 Return Codes<br />

Parameters for <strong>the</strong> Transfer Function<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-45


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Introduction to IVR APIs for Unmonitored E1 IVR<br />

Nur für den internen Gebrauch<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. This will<br />

normally occur only when querying <strong>the</strong> status of a call. It may also be an<br />

indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-903 There was no call associated with <strong>the</strong> specified device. Ensure that all IVR<br />

extensions are represented in <strong>the</strong> production copy of <strong>the</strong> Administration<br />

Database.<br />

-909 The function passed an invalid device. The specified device did not match any<br />

device in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-913 The function passed a "To Device" that was not valid.<br />

-914 The operation you are attempting has failed.<br />

O<strong>the</strong>r Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. For more<br />

information about a specific error code, see Appendix A, “IVR API Function<br />

Return Codes”.<br />

3.23.4 Example<br />

The following example transfers <strong>the</strong> call with <strong>the</strong> specified Call ID to extension 5678.<br />

Transfer('1341023126268002','5678');<br />

3.24 Introduction to IVR APIs for Unmonitored E1 IVR<br />

<strong>HiPath</strong> <strong>ProCenter</strong> now provides support for unmonitored E1 IVR applications. <strong>HiPath</strong><br />

<strong>ProCenter</strong> does not monitor E1 IVRs, but uses new and existing <strong>HiPath</strong> <strong>ProCenter</strong> IVR APIs to<br />

facilitate integration with an E1 IVR.<br />

Since this type of IVR is not monitored, <strong>the</strong> following concepts must be taken into account:<br />

●<br />

●<br />

●<br />

●<br />

ANI and DNIS numbers are provided to <strong>HiPath</strong> <strong>ProCenter</strong> by <strong>the</strong> E1 IVR<br />

<strong>HiPath</strong> <strong>ProCenter</strong> is notified when <strong>the</strong> call arrives at <strong>the</strong> E1 IVR<br />

Co-ordination between <strong>HiPath</strong> <strong>ProCenter</strong> and <strong>the</strong> E1 IVR application is necessary, to track<br />

<strong>the</strong> call after leaving <strong>the</strong> IVR, for enqueing by <strong>HiPath</strong> <strong>ProCenter</strong><br />

Calls leaving <strong>the</strong> E1 IVR, that are ei<strong>the</strong>r disconnected or transferred out, use a new API to<br />

notify <strong>HiPath</strong> <strong>ProCenter</strong><br />

A31003-S2251-X100-4-7618, August 2004<br />

3-46 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

Introduction to IVR APIs for Unmonitored E1 IVR<br />

The IVR application must provide <strong>the</strong> ANI and DNIS of <strong>the</strong> call to <strong>HiPath</strong> <strong>ProCenter</strong>. This<br />

information can be obtained by <strong>the</strong> E1 IVR through ISDN (Integrated Services Digital Network).<br />

The new SetCallInfo API sets <strong>the</strong> ANI and DNIS locally, before this information is sent to <strong>HiPath</strong><br />

<strong>ProCenter</strong> using <strong>the</strong> existing QueryCallInfo API.<br />

In addition to <strong>the</strong> new IVR APIs, <strong>the</strong> existing QueryCallInfo API was modified to facilitate<br />

unmonitored E1 IVR applications. This API is used by <strong>the</strong> IVR application to notify <strong>HiPath</strong><br />

<strong>ProCenter</strong> when a call arrives at <strong>the</strong> IVR. This API should be called as soon as possible after<br />

<strong>the</strong> IVR application begins processing <strong>the</strong> arriving call. The QueryCallInfo API has an optional<br />

parameter, TrunkConnectedIVRPort, which must be set to "1;" for E1 IVR applications.<br />

Calls at an E1 IVR that are enqueued to <strong>HiPath</strong> <strong>ProCenter</strong> for IVR or ACD hold must be<br />

transferred to <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> route control group using a transit number. A transit<br />

number is a pilot number to <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> route control group. The transit number is<br />

necessary for tracking <strong>the</strong> E1 IVR call after it is transferred to <strong>HiPath</strong> <strong>ProCenter</strong>.<br />

<strong>HiPath</strong> <strong>ProCenter</strong> maintains a pool of transit numbers, which are only used for transferring E1<br />

IVR calls. The IVR queries <strong>HiPath</strong> <strong>ProCenter</strong> for a unique transit number, using <strong>the</strong> new<br />

GetTransitNumber API. After receiving <strong>the</strong> transit number, <strong>the</strong> IVR application must<br />

immediately transfer <strong>the</strong> call. When <strong>the</strong> call reaches <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> RCG, <strong>HiPath</strong><br />

<strong>ProCenter</strong> indentifies <strong>the</strong> call using <strong>the</strong> transit number, and can <strong>the</strong>n associate <strong>the</strong> call<br />

information received from <strong>the</strong> IVR with <strong>the</strong> incoming call. The transit number <strong>the</strong>n becomes<br />

available for use with ano<strong>the</strong>r E1 IVR call.<br />

><br />

In <strong>the</strong> event of an error or timeout, <strong>the</strong> IVR application may choose to transfer <strong>the</strong><br />

call to a non-<strong>HiPath</strong> <strong>ProCenter</strong> device (such as Phonemail or XPressions), in which<br />

case it is not necessary to call GetTransitNumber.<br />

You can use <strong>the</strong> GetTransitNumber API differently, depending on if your switch uses ACD hold<br />

or IVR hold:<br />

●<br />

●<br />

ACD Hold–GetTransitNumber must be called immediately before <strong>the</strong> call is transferred to<br />

<strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> RCG, which is typically soon after <strong>the</strong> call is enqueued. <strong>HiPath</strong><br />

<strong>ProCenter</strong> will <strong>the</strong>n look for an agent and divert <strong>the</strong> call to <strong>the</strong> assigned agent.<br />

IVR Hold–The call is still transferred to <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> RCG using a transit number.<br />

GetTransitNumber must be called immediately before <strong>the</strong> call is transferred. For IVR Hold<br />

this is typically soon after <strong>the</strong> status of <strong>the</strong> call returned by <strong>the</strong> QueryCallStatus API is<br />

Pending" or "Unanswered". After transferring <strong>the</strong> call to <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> RCG, <strong>HiPath</strong><br />

<strong>ProCenter</strong> immediately diverts <strong>the</strong> call to <strong>the</strong> assigned agent or designated timeout<br />

number.<br />

If a transit number is requested and <strong>the</strong> IVR application cannot transfer <strong>the</strong> call immediately,<br />

<strong>the</strong>n <strong>the</strong> new ReleaseTransitNumber API must be called. This makes <strong>the</strong> transit number<br />

available for ano<strong>the</strong>r call. Before attempting to transfer <strong>the</strong> call to <strong>HiPath</strong> <strong>ProCenter</strong> again, <strong>the</strong><br />

GetTransitNumber API must be called again, to obtain a new transit number.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-47


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

SetCallInfo (for unmonitored E1 IVR calls only)<br />

Nur für den internen Gebrauch<br />

If a call at an E1 IVR is disconnected (by <strong>the</strong> IVR or by caller abandon) or transferred out to any<br />

number which is not a transit number, <strong>the</strong> new CallerDisconnected API is used to notify <strong>HiPath</strong><br />

<strong>ProCenter</strong>.<br />

><br />

You should add <strong>the</strong> CallerDisconnected API to <strong>the</strong> hang-up branch of <strong>the</strong> IVR<br />

application and be integrated into o<strong>the</strong>r error handling procedures as necessary. If<br />

you do not add <strong>the</strong> API to <strong>the</strong> hang-up branch, your statistics will not be accurate,<br />

since <strong>HiPath</strong> <strong>ProCenter</strong> will not know when <strong>the</strong> call ended.<br />

3.24.1 Example: Unmonitored E1 IVR Application Step Sequence (IVR<br />

Hold)<br />

Following is an example of an IVR application step sequence for an unmonitored E1 IVR:<br />

1. Answer incoming IVR call.<br />

2. Call Initialize(), followed by SetCallInfo(), followed by QueryCallInfo().<br />

3. Play welcome message/main menu and process <strong>the</strong> call until it is ready to be enqueued to<br />

<strong>HiPath</strong> <strong>ProCenter</strong>.<br />

4. Call Enqueue().<br />

5. Call QueryCallStatus() until call status is ‘Pending’ or ‘Unanswered’.<br />

6. Call GetTransitNumber().<br />

7. Immediately transfer <strong>the</strong> call using <strong>the</strong> number returned in GetTransitNumber().<br />

8. <strong>HiPath</strong> <strong>ProCenter</strong> will route <strong>the</strong> call to <strong>the</strong> assigned agent or designated timeout extension.<br />

The exact steps for any IVR application may differ from <strong>the</strong> steps above. The important things<br />

to note from <strong>the</strong> above example are:<br />

●<br />

●<br />

●<br />

The order in which Initialize(), SetCallInfo(), and QueryCallInfo() are called.<br />

QueryCallInfo() is called as soon as possible, so that <strong>HiPath</strong> <strong>ProCenter</strong> can start tracking<br />

<strong>the</strong> call from <strong>the</strong> time it arrives at <strong>the</strong> IVR.<br />

GetTransitNumber() is called only when <strong>the</strong> call is about to be transferred out of <strong>the</strong> IVR to<br />

a <strong>HiPath</strong> <strong>ProCenter</strong> resource (such as an agent, RCG, or timeout extension), and <strong>the</strong><br />

transfer must be done immediately after GetTransitNumber() returns with a transit number.<br />

3.25 SetCallInfo (for unmonitored E1 IVR calls only)<br />

The SetCallInfo function stores ANI and DNIS information for unmonitored E1 IVR calls, for<br />

transferring to <strong>HiPath</strong> <strong>ProCenter</strong>. This API can only be called before QueryCallInfo, and after<br />

Initialize. The function is used by scripts within an unmonitored E1 IVR.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-48 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

GetTransitNumber (for unmonitored E1 IVR calls only)<br />

3.25.1 Syntax<br />

SetCallInfo(ANI, DNIS)<br />

3.25.2 Parameters<br />

You must enter <strong>the</strong> parameters in <strong>the</strong> same order as <strong>the</strong>y appear in <strong>the</strong> following table:<br />

Parameter Name Data Type Passed By Range Description<br />

ANI String Value 80 characters The ANI of <strong>the</strong> call.<br />

DNIS String Value 80 characters The DNIS of <strong>the</strong> call.<br />

Table 3-22<br />

3.25.3 Return Codes<br />

Parameters for <strong>the</strong> SetCallInfo Function<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at<br />

<strong>the</strong> start of your script.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed<br />

instead of an integer.<br />

-312 This function was called after successfully calling QueryCallInfo.<br />

3.25.4 Example<br />

SetCallInfo('9055551234','12345')<br />

3.26 GetTransitNumber (for unmonitored E1 IVR calls only)<br />

The GetTransitNumber function queries <strong>HiPath</strong> <strong>ProCenter</strong> for a transit number. The IVR must<br />

transfer <strong>the</strong> call to <strong>the</strong> transit number received in this request. The transit number expires if <strong>the</strong><br />

call is not transferred in 30 seconds. The transit number is <strong>the</strong>n available for use with ano<strong>the</strong>r<br />

call.<br />

><br />

This API is used by IVR scripts for unmonitored E1 IVRs (IVRs not monitored by<br />

<strong>HiPath</strong> <strong>ProCenter</strong>).<br />

For ACD hold, this API is called after calling <strong>the</strong> Enqueue API. For IVR Hold, it is<br />

called after receiving Assigned or Time Out status in <strong>the</strong> QueryCallStatus API.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-49


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

CallerDisconnected (for unmonitored E1 IVR calls only)<br />

Nur für den internen Gebrauch<br />

3.26.1 Syntax<br />

GetTransitNumber(CallId, >TransitNumber)<br />

3.26.2 Parameters<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> current<br />

call.<br />

TransitNumber String Reference 80 characters A basic pilot number that<br />

<strong>the</strong> IVR will use to transfer<br />

<strong>the</strong> call.<br />

Table 3-23<br />

3.26.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

3.26.4 Example<br />

Parameters for <strong>the</strong> GetTransitNumber function<br />

0 The function was successful.<br />

-308 QueryCallInfo was not called prior to invoking this function. You must call<br />

QueryCallInfo to obtain <strong>the</strong> Call ID.<br />

-310 A non-trunk connected call attempted to use this method. This method can only<br />

be used for trunk connected calls.<br />

-902 Call not found in <strong>the</strong> T-Server.<br />

-927 All registered transit numbers are busy.<br />

-929 No transit numbers are configured.<br />

-931 The call has been already transferred to <strong>HiPath</strong><strong>ProCenter</strong>.<br />

GetTransitNumber (‘1341023126268002’, >TransitNumber)<br />

3.27 CallerDisconnected (for unmonitored E1 IVR calls only)<br />

The CallerDisconnected function allows IVR applications to notify <strong>HiPath</strong> <strong>ProCenter</strong> about an<br />

abandoned call. The T-Server <strong>the</strong>n deletes <strong>the</strong> call, and releases <strong>the</strong> transit number (if<br />

applicable) associated with <strong>the</strong> call. The T-Server <strong>the</strong>n sends a notification to o<strong>the</strong>r <strong>HiPath</strong><br />

<strong>ProCenter</strong> components.<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-50 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

ReleaseTransitNumber<br />

><br />

This API is used by IVR scripts for unmonitored E1 IVRs (IVRs not being monitored<br />

by <strong>HiPath</strong> <strong>ProCenter</strong>).<br />

3.27.1 Syntax<br />

CallerDisconnected (CallId)<br />

3.27.2 Parameters<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> current<br />

call.<br />

Table 3-24<br />

3.27.3 Return Codes<br />

Parameters for <strong>the</strong> CallerDisconnected function<br />

The most common codes returned by this function are as follows:<br />

0 The function was successful.<br />

-308 QueryCallInfo was not called prior to invoking this function. You must call<br />

QueryCallInfo to obtain <strong>the</strong> Call ID.<br />

-310 A non-trunk connected call attempted to use this method. This method can only<br />

be used for trunk connected calls.<br />

-902 Call not found in <strong>the</strong> T-Server.<br />

-931 The call has been already transferred to <strong>HiPath</strong><strong>ProCenter</strong>.<br />

3.27.4 Example<br />

CallerDisconnected (‘1341023126268002’)<br />

3.28 ReleaseTransitNumber<br />

The ReleaseTransitNumber function allows IVR applications to request that <strong>HiPath</strong> <strong>ProCenter</strong><br />

release a transit number for use by ano<strong>the</strong>r call. The API must be called before <strong>the</strong> transit<br />

number expires. This way, <strong>the</strong> transit number remains available for <strong>the</strong> next <strong>HiPath</strong> <strong>ProCenter</strong><br />

call.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 3-51


mpgivapi.fm<br />

<strong>Programming</strong> Reference for IVR Scripts<br />

ReleaseTransitNumber<br />

Nur für den internen Gebrauch<br />

The IVR API may use <strong>the</strong> ReleaseTransitNumber API to inform <strong>the</strong> T-Server that <strong>the</strong> transit<br />

number is no longer needed. The IVR application must call <strong>the</strong> GetTransitNumber API again to<br />

request a new transit number before attempting to transfer <strong>the</strong> call to <strong>HiPath</strong> <strong>ProCenter</strong>.<br />

3.28.1 Syntax<br />

ReleaseTransitNumber (CallID)<br />

3.28.2 Parameters<br />

Parameter Name Data Type Passed By Range Description<br />

CallID String Value 18 characters The CallID for <strong>the</strong> current<br />

call.<br />

Table 3-25<br />

3.28.3 Return Codes<br />

The most common codes returned by this function are as follows:<br />

3.28.4 Example<br />

Parameters for <strong>the</strong> ReleaseTransitNumber function<br />

0 The function was successful.<br />

-308 QueryCallInfo was not called prior to invoking this function. You must call<br />

QueryCallInfo to obtain <strong>the</strong> Call ID.<br />

-310 A non-trunk connected call attempted to use this method. This method can only<br />

be used for trunk connected calls.<br />

-902 Call not found in <strong>the</strong> T-Server.<br />

-928 There is no transit number assigned to <strong>the</strong> call.<br />

-931 The call has been already transferred to <strong>HiPath</strong><strong>ProCenter</strong>.<br />

ReleaseTransitNumber (‘1341023126268002’)<br />

A31003-S2251-X100-4-7618, August 2004<br />

3-52 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Ga<strong>the</strong>ring Call Requirements<br />

4 Writing a Custom Routing Function<br />

This chapter provides detailed information on how to write a custom routing function to route<br />

calls. It includes information on how to ga<strong>the</strong>r call requirements with a custom routing function,<br />

how <strong>the</strong> Routing Server loads <strong>the</strong> function and module (DLL file), and <strong>the</strong> input and output<br />

specifications for <strong>the</strong> custom routing function.<br />

4.1 Ga<strong>the</strong>ring Call Requirements<br />

<strong>HiPath</strong> <strong>ProCenter</strong> needs to determine <strong>the</strong> requirements of a call to route that call effectively. A<br />

custom routing function enables you to leverage <strong>the</strong> following information to identify a caller’s<br />

requirements:<br />

●<br />

Network Information<br />

– ANI number (Caller ID)—information about <strong>the</strong> calling party<br />

– DNIS number—information about <strong>the</strong> called party<br />

●<br />

Customer Database Retrieval<br />

– Customer profile (for example, language, skill level, and location)<br />

– Customer history (for example, credit record, past purchases, and open problems)<br />

– Customer preferences (for example, a specific agent)<br />

The network information is passed to <strong>the</strong> custom routing function from <strong>the</strong> Routing Server. The<br />

custom routing function can <strong>the</strong>n use <strong>the</strong> ANI and DNIS information to look up information in a<br />

customer database, as shown in Figure 4-1.<br />

Query customer data based<br />

on ANI or account number<br />

Customer<br />

Database<br />

Switch<br />

<strong>HiPath</strong> <strong>ProCenter</strong><br />

Servers<br />

Reply with <strong>the</strong> selection of call<br />

type based on customer data<br />

Figure 4-1<br />

Using a Custom Routing Function to retrieve Customer Information<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 4-1


MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Process for <strong>the</strong> Customized Routing Function<br />

Nur für den internen Gebrauch<br />

Therefore, a combination of information can be used to determine <strong>the</strong> routing options for a call.<br />

Once <strong>the</strong> database information is retrieved, <strong>the</strong> function must determine:<br />

●<br />

●<br />

●<br />

●<br />

●<br />

The call type of <strong>the</strong> call<br />

Whe<strong>the</strong>r to reserve <strong>the</strong> call for a specific agent, and, if so, how long to wait for <strong>the</strong> agent to<br />

become available<br />

The initial priority of <strong>the</strong> call<br />

A caption and call data for <strong>the</strong> call, both of which are displayed to agents using <strong>the</strong> <strong>HiPath</strong><br />

<strong>ProCenter</strong> Desktop applications<br />

DDE information for <strong>the</strong> call, if you plan to customize an application that displays DDE<br />

information on an agent or supervisor’s workstation<br />

4.2 Process for <strong>the</strong> Customized Routing Function<br />

The following process occurs when a new call arrives in <strong>the</strong> call center, and you have chosen<br />

to use a custom routing function to route calls.<br />

1. The call arrives in a RésuméRouting ACD group (RésuméRouting Queue).<br />

2. The T-Server notifies <strong>the</strong> Routing Server that a call has arrived, and it passes <strong>the</strong> ANI,<br />

DNIS, and ACD group information to <strong>the</strong> Routing Server.<br />

3. The Routing Server passes <strong>the</strong> information to <strong>the</strong> custom routing function.<br />

4. The custom routing function uses <strong>the</strong> information to identify <strong>the</strong> routing options for <strong>the</strong> call<br />

(including <strong>the</strong> call type, whe<strong>the</strong>r to reserve <strong>the</strong> call for an agent, and <strong>the</strong> initial priority).<br />

5. The custom routing function returns <strong>the</strong> routing options to <strong>the</strong> Routing Server.<br />

6. The Routing Server uses this information to match <strong>the</strong> call. The call is assigned to an agent<br />

using <strong>the</strong> normal process of <strong>HiPath</strong> <strong>ProCenter</strong>.<br />

><br />

The custom routing function can also be invoked from an IVR using <strong>the</strong><br />

QueryRoutingInfo function, or from Call Director using <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Routing<br />

option. For detailed information on <strong>the</strong> QueryRoutingInfo function, see Section 3.17<br />

on page 3-33.<br />

A31003-S2251-X100-4-7618, August 2004<br />

4-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Loading <strong>the</strong> Function<br />

4.3 Loading <strong>the</strong> Function<br />

The following information is required for <strong>the</strong> Routing Server to call <strong>the</strong> routing function:<br />

●<br />

●<br />

Module name - The name of <strong>the</strong> dynamic link library (DLL) file where <strong>the</strong> function resides<br />

Function name - The name of <strong>the</strong> function in <strong>the</strong> DLL file<br />

You use <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Administrator application to set <strong>the</strong> module name and <strong>the</strong><br />

function name. The Routing Server loads <strong>the</strong> library at one of <strong>the</strong> following times:<br />

●<br />

●<br />

When <strong>the</strong> Routing Server starts<br />

When <strong>the</strong> user changes <strong>the</strong> setting in <strong>the</strong> production copy of <strong>the</strong> Administration Database,<br />

enabling <strong>the</strong> custom routing function<br />

The Routing Server unloads <strong>the</strong> DLL file only when <strong>the</strong> function is no longer required (for<br />

example, when <strong>the</strong> setting is changed so that <strong>the</strong> Routing table is used instead). You can use<br />

<strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Administrator application to dynamically change whe<strong>the</strong>r to use <strong>the</strong><br />

routing function or Routing table.<br />

If <strong>the</strong> Routing Server encounters any errors in attempting to access <strong>the</strong> function (such as being<br />

unable to load <strong>the</strong> DLL file), <strong>the</strong> Routing Server uses <strong>the</strong> Routing table to identify calls.<br />

Therefore, it is extremely important that your Routing table is as accurate as possible, since it<br />

is <strong>the</strong> first means of backup if <strong>the</strong>re is a problem accessing <strong>the</strong> custom routing function.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 4-3


MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Function Input and Output<br />

Nur für den internen Gebrauch<br />

4.4 Function Input and Output<br />

This section describes <strong>the</strong> input parameters provided to <strong>the</strong> custom routing function, and <strong>the</strong><br />

output parameters that <strong>the</strong> function should return to <strong>the</strong> Routing Server. For <strong>the</strong> Routing Server<br />

to pass <strong>the</strong> parameters to and from <strong>the</strong> function, <strong>the</strong> function must be declared for export.<br />

4.4.1 Input Parameters<br />

You define <strong>the</strong> input parameters in a structure called RoutingTableInput. The following table<br />

provides detailed information about <strong>the</strong> input parameters.<br />

Parameter Data Type Range Description<br />

pszSiteName String 16 characters A string identifying <strong>the</strong> name of <strong>the</strong> site. In <strong>the</strong><br />

Administration Database, <strong>the</strong> site name is<br />

“SITE INFO” by default. If you specified a<br />

different site name in ei<strong>the</strong>r a single site or a<br />

networked call center, <strong>the</strong> site name must<br />

match <strong>the</strong> name of <strong>the</strong> site configured in <strong>the</strong><br />

production copy of <strong>the</strong> Administration<br />

Database.<br />

pszQueue String 80 characters A string that identifies:<br />

●<br />

●<br />

The RésuméRouting ACD group where<br />

<strong>the</strong> call is enqueued in <strong>the</strong> switch.<br />

The message pool where <strong>the</strong> email<br />

message is enqueued.<br />

● This information is unavailable if <strong>the</strong><br />

custom routing function is invoked from<br />

Call Director using <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong><br />

Routing option or from <strong>the</strong> IVR using <strong>the</strong><br />

QueryRoutingInfo function.<br />

pszDestination String 80 characters A string that identifies:<br />

Table 4-1<br />

Input Parameters<br />

●<br />

●<br />

●<br />

The destination of <strong>the</strong> call. The DNIS<br />

number is identical to <strong>the</strong> destination ACD<br />

number that routed <strong>the</strong> call. Only <strong>the</strong> first<br />

32 characters of <strong>the</strong> DNIS are passed.<br />

The To address of <strong>the</strong> email message.<br />

The initial URL of <strong>the</strong> chat session.<br />

A31003-S2251-X100-4-7618, August 2004<br />

4-4 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Function Input and Output<br />

Parameter Data Type Range Description<br />

pszOrigin String 80 characters A string that identifies:<br />

●<br />

●<br />

The ANI number (Caller ID) of <strong>the</strong> call,<br />

obtained by <strong>the</strong> T-Server. Only <strong>the</strong> first 32<br />

characters of <strong>the</strong> ANI are passed.<br />

The From address of <strong>the</strong> email message.<br />

● The customer IP address of <strong>the</strong> chat<br />

session.<br />

MediaType integer 1, 3, or 4 The method of communication between a<br />

customer and a call center. The can include<br />

telephony calls, email messages, and chat<br />

sessions.<br />

1 – Voice<br />

3 – Email<br />

4 – Chat<br />

Table 4-1<br />

Input Parameters<br />

4.4.2 Output Parameters<br />

Define <strong>the</strong> output parameters in a structure called RoutingTableOutput. The following table<br />

provides detailed information about <strong>the</strong> output parameters.<br />

Parameter Data Type Range Description<br />

usReturnCode<br />

Unsigned<br />

Short<br />

Any<br />

A value indicating whe<strong>the</strong>r<br />

<strong>the</strong> function succeeded or<br />

failed.<br />

0 – The function succeeded.<br />

O<strong>the</strong>r – The function failed.<br />

Table 4-2<br />

Output Parameters<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 4-5


MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Function Input and Output<br />

Nur für den internen Gebrauch<br />

Parameter Data Type Range Description<br />

usReserveAgentMaximumTime<br />

usInitialPriority<br />

Unsigned<br />

Short<br />

Unsigned<br />

Short<br />

0 - 28,800 A value indicating <strong>the</strong><br />

maximum number of seconds<br />

that <strong>the</strong> call should be<br />

reserved for <strong>the</strong> specified<br />

agent. If <strong>the</strong> call is not<br />

assigned to <strong>the</strong> agent by <strong>the</strong><br />

end of this time, <strong>the</strong> call is<br />

enqueued with <strong>the</strong> specified<br />

call type.<br />

0 - 100 A value indicating <strong>the</strong> initial<br />

priority of <strong>the</strong> call.<br />

pszCallTypeName String 16 characters A string corresponding to <strong>the</strong><br />

name of a call type defined in<br />

<strong>the</strong> Administration Database.<br />

pszReserveAgentID String 8 characters A value representing <strong>the</strong> ID of<br />

<strong>the</strong> agent for whom to reserve<br />

<strong>the</strong> call. The value must<br />

correspond to an agent listed<br />

in <strong>the</strong> Administration<br />

Database. If you do not want<br />

to reserve <strong>the</strong> call for an<br />

agent, <strong>the</strong> string should be<br />

null.<br />

pszReserveAgentSiteName String 16 characters A string identifying <strong>the</strong> name<br />

of <strong>the</strong> site. In <strong>the</strong><br />

Administration Database, <strong>the</strong><br />

site name is “SITE INFO” by<br />

default. If you specified a<br />

different site name in ei<strong>the</strong>r a<br />

single site or a networked call<br />

center, <strong>the</strong> site name must<br />

match <strong>the</strong> name of <strong>the</strong> site<br />

configured in <strong>the</strong> production<br />

copy of <strong>the</strong> Administration<br />

Database.<br />

Table 4-2<br />

Output Parameters<br />

A31003-S2251-X100-4-7618, August 2004<br />

4-6 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Function Input and Output<br />

Parameter Data Type Range Description<br />

pszCaption String 100 characters A string that appears in <strong>the</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong> Desktop<br />

applications, describing <strong>the</strong><br />

call to agents and<br />

supervisors.<br />

pszCallData String 1000<br />

characters<br />

A string containing a detailed<br />

comment about <strong>the</strong> call that<br />

appears in <strong>the</strong> <strong>HiPath</strong><br />

<strong>ProCenter</strong> Desktop<br />

applications. The string is<br />

formatted into key-value pairs<br />

of call data: 32 characters for<br />

<strong>the</strong> key and 128 characters<br />

for <strong>the</strong> value. The key-value<br />

pairs are delimited by <strong>the</strong><br />

following bytes:<br />

●<br />

●<br />

Use to<br />

separate one key-value<br />

pair from ano<strong>the</strong>r, and at<br />

<strong>the</strong> end of <strong>the</strong> list of keyvalue<br />

pairs.<br />

Use to<br />

separate <strong>the</strong> key from <strong>the</strong><br />

value when a value<br />

contains a string value.<br />

pszDDE String 1000<br />

characters<br />

Table 4-2<br />

Output Parameters<br />

● Use to<br />

separate <strong>the</strong> key from <strong>the</strong><br />

value when a value is<br />

binary.<br />

A string containing<br />

information that can be easily<br />

passed to an external<br />

application on an agent’s<br />

workstation. For more<br />

information, see Chapter 5,<br />

“Using DDE to Communicate<br />

with <strong>HiPath</strong> <strong>ProCenter</strong>”.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 4-7


MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Sample Custom Routing Function<br />

Nur für den internen Gebrauch<br />

4.4.3 Return Codes<br />

The custom routing function should return <strong>the</strong> following values:<br />

0 This value indicates it is successful<br />

Any non-zero value<br />

This value indicates it is not successful. The Routing Server is unable to route <strong>the</strong> call, if <strong>the</strong><br />

function returns an error. The Routing Server sends <strong>the</strong> error data to <strong>the</strong> Reporting Database<br />

and <strong>the</strong> IT Monitor application. You should document <strong>the</strong> error codes returned by <strong>the</strong> custom<br />

routing function so that you can troubleshoot <strong>the</strong> function when errors occur. The error code<br />

returned by <strong>the</strong> function appears in <strong>the</strong> Error report, as a secondary error code. The primary<br />

error code for <strong>the</strong>se errors is 4029.<br />

4.5 Sample Custom Routing Function<br />

The following sample shows how <strong>the</strong> input and output structures are defined, in C or C++, and<br />

how values can be assigned to <strong>the</strong> output parameters and returned to <strong>the</strong> Routing Server.<br />

/* ============================================================== *\<br />

| The following line is required in <strong>the</strong> header file for <strong>the</strong> function.<br />

/* ============================================================== */<br />

#include <br />

/* ============================================================== *\<br />

| The following line is required for <strong>the</strong> structure definitions.<br />

/* ============================================================== */<br />

#pragma pack(4)<br />

/* ============================================================== *\<br />

| Structure definitions<br />

/* ============================================================== */<br />

typedef struct RoutingTableInput<br />

{<br />

char pszSiteName[17];<br />

char pszQueue[33];<br />

char pszDestination[81];<br />

char pszOrigin[81];<br />

A31003-S2251-X100-4-7618, August 2004<br />

4-8 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Sample Custom Routing Function<br />

int iMediaType;<br />

} RoutingTableInput;<br />

typedef struct RoutingTableOutput<br />

{<br />

unsigned short usReturnCode;<br />

unsigned short usReserveAgentMaximumTime;<br />

unsigned short usInitialPriority;<br />

char pszCallTypeName[17];<br />

char pszReserveAgentID[9];<br />

char pszReserveAgentSiteName[17];<br />

char pszCaption[101];<br />

char pszCallData[1001];<br />

char pszDDE[1001];<br />

} RoutingTableOutput;<br />

/* ============================================================== *\<br />

| The following line is required for <strong>the</strong> structure definitions.<br />

/* ============================================================== */<br />

#pragma pack()<br />

/* ============================================================== *\<br />

| Sample Custom Routing Function -- The required data is added to<br />

| <strong>the</strong> output parameters, so that <strong>the</strong> routing information can be<br />

| returned to <strong>the</strong> Routing Server. The function is declared for export,<br />

| so that it can be called from an external application (<strong>the</strong><br />

| Routing Server).<br />

/* ============================================================== */<br />

RoutingTableOutput __declspec(.DLLexport) RoutingFunction(RoutingTableInput<br />

in)<br />

{<br />

RoutingTableOutput out;<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 4-9


MPGcustm.fm<br />

Writing a Custom Routing Function<br />

Planning Ahead<br />

Nur für den internen Gebrauch<br />

out.usReturnCode = 0;<br />

out.usReserveAgentMaximumTime = 60;<br />

out.usInitialPriority = 10;<br />

strcpy(out.pszCallTypeName, "Domestic Stocks");<br />

strcpy(out.pszReserveAgentID, "12345");<br />

strcpy(out.pszReserveAgentSiteName, "SITE INFO");<br />

strcpy(out.pszCaption, "CAPTION");<br />

strcpy(out.pszCallData, "CALL DATA KEYCALL DATA<br />

VALUE");<br />

strcpy(out.pszDDE, "DDE information");<br />

return out;<br />

}<br />

4.6 Planning Ahead<br />

Design your custom routing function with future expansion in mind. Do not hard code <strong>the</strong> data<br />

used by <strong>the</strong> function, since this data may have to be updated on a regular basis.<br />

If you use <strong>the</strong> origin and destination information to determine <strong>the</strong> routing options for a call or<br />

email message, ensure that this information is stored such that it can be easily updated. As you<br />

compile information about your regular callers, your database of origin information grows. You<br />

need to ensure that you can continually add new origin information to your database without<br />

having to take <strong>the</strong> system offline for updates.<br />

As you design <strong>the</strong> custom routing function, you should make a plan for continual upgrades or<br />

updates to both <strong>the</strong> code and to <strong>the</strong> data used by <strong>the</strong> function. Design <strong>the</strong> code to minimize <strong>the</strong><br />

impact of future updates or upgrades.<br />

You must ensure that <strong>the</strong> data in <strong>the</strong> custom routing function matches <strong>the</strong> data in <strong>the</strong><br />

Administration Database. Any call type or agent changes in <strong>the</strong> Administration Database must<br />

also be made in <strong>the</strong> custom routing function. For example:<br />

●<br />

●<br />

If you plan to add call types or agents, add <strong>the</strong> information first to <strong>the</strong> Administration<br />

Database, <strong>the</strong>n to <strong>the</strong> custom routing function<br />

If you plan to delete call types or agents, delete <strong>the</strong> information in <strong>the</strong> custom routing<br />

function before deleting it in <strong>the</strong> Administration Database<br />

This ensures that <strong>the</strong> custom routing function does not send information to <strong>the</strong> Routing Server<br />

that it cannot recognize or understand.<br />

A31003-S2251-X100-4-7618, August 2004<br />

4-10 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgexdde.fm<br />

Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

Source of <strong>the</strong> DDE Information<br />

5 Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

This chapter describes how to use <strong>the</strong> Dynamic Data Exchange (DDE) information provided by<br />

<strong>HiPath</strong> <strong>ProCenter</strong> to ga<strong>the</strong>r data about calls, email messages, and chat requests that have<br />

been assigned to an agent’s workstation.<br />

It describes how DDE information is collected, and explains <strong>the</strong> variables used to exchange <strong>the</strong><br />

information. It also includes sample Visual Basic code that is used to collect DDE information.<br />

The following information can be passed from <strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Desktop applications to a<br />

customized application, when a new contact arrives at an agent’s workstation.<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

The source of <strong>the</strong> contact (ANI number, From Address, IP Address)<br />

The destination of <strong>the</strong> contact (DNIS number, To Address, Initial URL)<br />

The unique ID number associated with <strong>the</strong> contact<br />

The name of <strong>the</strong> call type for <strong>the</strong> contact<br />

The caption describing <strong>the</strong> contact<br />

A detailed comment associated with <strong>the</strong> contact<br />

The unique ID number associated with an agent<br />

The unique extension number associated with an agent<br />

A specific line event value<br />

A specific field for DDE information<br />

5.1 Source of <strong>the</strong> DDE Information<br />

The DDE information is provided on a contact-by-contact basis. <strong>HiPath</strong> <strong>ProCenter</strong> assigns a<br />

unique ID number to a contact when it arrives in <strong>the</strong> call center. <strong>HiPath</strong> <strong>ProCenter</strong> <strong>the</strong>n obtains<br />

<strong>the</strong> contact’s source and destination information, and uses this information to identify routing<br />

options for <strong>the</strong> contact. Then, ei<strong>the</strong>r an IVR script, custom routing function, or <strong>the</strong> Routing table<br />

determines <strong>the</strong> routing options for <strong>the</strong> contact.<br />

The routing options include <strong>the</strong> following, each of which is part of <strong>the</strong> DDE information:<br />

●<br />

●<br />

●<br />

●<br />

The name of <strong>the</strong> call type for <strong>the</strong> contact<br />

The caption describing <strong>the</strong> contact<br />

A detailed comment associated with <strong>the</strong> contact<br />

A specific field for DDE information<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 5-1


mpgexdde.fm<br />

Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

DDE Parameters<br />

Nur für den internen Gebrauch<br />

The Routing Server uses <strong>the</strong> call type to find <strong>the</strong> best available agent to handle <strong>the</strong> contact.<br />

When <strong>the</strong> contact is assigned to an agent, <strong>the</strong> agent’s Desktop application collects <strong>the</strong> current<br />

information associated with <strong>the</strong> contact. The contact information is also packaged into<br />

parameters that can be transferred to an external application through Dynamic Data Exchange.<br />

However, if <strong>the</strong> agent has permission, <strong>the</strong> agent can change <strong>the</strong> call type, caption, or comment<br />

information associated with <strong>the</strong> contact while handling <strong>the</strong> contact. Therefore, <strong>the</strong> values in <strong>the</strong><br />

DDE parameters might change during <strong>the</strong> life of a contact.<br />

5.2 DDE Parameters<br />

There are seven source items available, each of which must be defined in your customized<br />

application. The following table explains <strong>the</strong> contents of each parameter.<br />

Parameter Data Type Range Description<br />

txtCallID String 18 characters The unique call ID associated with <strong>the</strong><br />

contact. When a change on this source item<br />

occurs, a new contact has arrived at <strong>the</strong><br />

agent’s workstation.<br />

txtANI String 32 characters The source of <strong>the</strong> contact.<br />

txtDNIS String 32 characters The destination of <strong>the</strong> contact.<br />

txtCallTypeName String 16 characters The name of <strong>the</strong> call type used to route <strong>the</strong><br />

contact. The call type can be changed by an<br />

agent who has <strong>the</strong> proper permission.<br />

txtCaption String 100 characters A brief description of <strong>the</strong> contact, used to<br />

identify <strong>the</strong> contact for agents using <strong>the</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong> Desktop applications.<br />

The caption can be changed by an agent<br />

who has <strong>the</strong> proper permission.<br />

txtComment String 250 characters A detailed description for <strong>the</strong> contact, used<br />

to store detailed information about <strong>the</strong><br />

contact for agents using <strong>the</strong> <strong>HiPath</strong><br />

<strong>ProCenter</strong> Desktop applications. The<br />

comment can be changed by an agent who<br />

has <strong>the</strong> proper permission.<br />

txtDDE String 1000<br />

characters<br />

Table 5-1<br />

DDE Parameters<br />

A parameter used specifically to relay<br />

information about a contact to an external<br />

application. No component of <strong>HiPath</strong><br />

<strong>ProCenter</strong> uses this information; it is merely<br />

passed to external applications.<br />

A31003-S2251-X100-4-7618, August 2004<br />

5-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgexdde.fm<br />

Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

DDE Parameters<br />

Parameter Data Type Range Description<br />

txtLineEventType String Greater than 0 A value entered for <strong>the</strong> various line event<br />

types. Line event values include:<br />

- “Conferenced”<br />

- “Delivered”<br />

- “Disconnected”<br />

- “Diverted”<br />

- “Established”<br />

- “Failed”<br />

- “Held”<br />

- “Network Reached”<br />

- “Originated”<br />

- “Queued”<br />

- “Retrieved”<br />

- “Service Initiated”<br />

- “Transferred”<br />

- “Unknown”<br />

txtAgentID String 8 characters The unique ID number of a logged on<br />

agent.<br />

txtAgentExtension String 8 characters The extension that <strong>the</strong> agent is connected<br />

to.<br />

Table 5-1<br />

DDE Parameters<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 5-3


mpgexdde.fm<br />

Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

Visual Basic Sample<br />

Nur für den internen Gebrauch<br />

5.3 Visual Basic Sample<br />

The following sample from a Visual Basic application demonstrates how to communicate with<br />

<strong>the</strong> <strong>HiPath</strong> <strong>ProCenter</strong> Desktop applications using DDE. You can use this sample at <strong>the</strong><br />

beginning of your Visual Basic code to define <strong>the</strong> parameters for <strong>the</strong> DDE information. Using<br />

this sample program, you can link to <strong>the</strong> source item txtCallID and create code to detect<br />

changes on <strong>the</strong> source item. When <strong>the</strong> source item changes, it means that a new call has<br />

arrived at <strong>the</strong> agent’s workstation.<br />

Private Sub Form_Load()<br />

Dim strLinkTopic As String<br />

strLinkTopic = "TCGMAIN|frmDDE"<br />

' -----------------------------------------------------------------<br />

' Here we initiate a DDE conversion with <strong>the</strong> Visual Basic source form<br />

' "frmDDE" belonging to <strong>the</strong> application TCGMAIN.<br />

' -----------------------------------------------------------------<br />

' -----------------------------------------------------------------<br />

' Link <strong>the</strong> destination controls to <strong>the</strong> source application.<br />

' -----------------------------------------------------------------<br />

' -----------------------------------------------------------------<br />

' CallTypeName - This field corresponds to <strong>the</strong> name of <strong>the</strong> call type that<br />

' <strong>the</strong> call was enqueued with. If someone uses <strong>the</strong> Administration Explorer<br />

to<br />

' delete <strong>the</strong> call type, <strong>the</strong> field is set to an empty string.<br />

' -----------------------------------------------------------------<br />

With txtCallTypeName<br />

.LinkTopic = strLinkTopic<br />

.LinkItem = "txtCallTypeName"<br />

.LinkMode = vbLinkAutomatic<br />

End With<br />

' -----------------------------------------------------------------<br />

' ANI - <strong>the</strong> device ID of <strong>the</strong> original calling party.<br />

A31003-S2251-X100-4-7618, August 2004<br />

5-4 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgexdde.fm<br />

Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

Visual Basic Sample<br />

' -----------------------------------------------------------------<br />

With txtANI<br />

.LinkTopic = strLinkTopic<br />

.LinkItem = "txtANI"<br />

.LinkMode = vbLinkAutomatic<br />

End With<br />

' -----------------------------------------------------------------<br />

' DNIS - <strong>the</strong> translated internal destination ACD number for <strong>the</strong> call.<br />

' -----------------------------------------------------------------<br />

With txtDNIS<br />

.LinkTopic = strLinkTopic<br />

.LinkItem = "txtDNIS"<br />

.LinkMode = vbLinkAutomatic<br />

End With<br />

' -----------------------------------------------------------------<br />

' DDE - data defined specifically for Dynamic Data Exchange.<br />

' -----------------------------------------------------------------<br />

With txtDDE<br />

.LinkTopic = strLinkTopic<br />

.LinkItem = "txtDDE"<br />

.LinkMode = vbLinkAutomatic<br />

End With<br />

' -----------------------------------------------------------------<br />

' Caption - a brief description about <strong>the</strong> call.<br />

' -----------------------------------------------------------------<br />

With txtCaption<br />

.LinkTopic = strLinkTopic<br />

.LinkItem = "txtCaption"<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 5-5


mpgexdde.fm<br />

Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

Visual Basic Sample<br />

Nur für den internen Gebrauch<br />

.LinkMode = vbLinkAutomatic<br />

End With<br />

' -----------------------------------------------------------------<br />

' Comment - a more detailed description about <strong>the</strong> call.<br />

' -----------------------------------------------------------------<br />

With txtComment<br />

.LinkTopic = strLinkTopic<br />

.LinkItem = "txtComment"<br />

.LinkMode = vbLinkAutomatic<br />

End With<br />

' -----------------------------------------------------------------<br />

' CallID - Each of <strong>the</strong> fields to which you link in <strong>the</strong> source application<br />

' sends you a Notify or Change event only when <strong>the</strong> actual<br />

' data for that field changes. Between calls, <strong>the</strong> data for a<br />

' field may not change. To determine when a call has arrived,<br />

' link to <strong>the</strong> source item, "txtCallID". Whenever a call arrives,<br />

' this field is first made empty and <strong>the</strong>n set to <strong>the</strong> current<br />

' call's unique ID number.<br />

' -----------------------------------------------------------------<br />

With txtCallID<br />

.LinkTopic = strLinkTopic<br />

.LinkItem = "txtCallID"<br />

.LinkMode = vbLinkAutomatic<br />

End With<br />

End Sub<br />

' -----------------------------------------------------------------<br />

' Here we check if a new call has arrived, and display a message<br />

' box when a call does arrive (when txtCallID changes).<br />

A31003-S2251-X100-4-7618, August 2004<br />

5-6 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

mpgexdde.fm<br />

Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

Visual Basic Sample<br />

' -----------------------------------------------------------------<br />

Private Sub txtCallID_Change()<br />

If txtCallID "" Then<br />

MsgBox "A call has arrived. "<br />

End If<br />

End Sub<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 5-7


mpgexdde.fm<br />

Using DDE to Communicate with <strong>HiPath</strong> <strong>ProCenter</strong><br />

Visual Basic Sample<br />

Nur für den internen Gebrauch<br />

A31003-S2251-X100-4-7618, August 2004<br />

5-8 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGrpttb.fm<br />

Configuring Database Parameters with SQL<br />

6 Configuring Database Parameters with SQL<br />

There are certain database parameters that cannot be configured in <strong>the</strong> Administrator<br />

application. These parameters can only be configured using SQL. You can use SQL to<br />

configure <strong>the</strong> following parameters:<br />

●<br />

CallbackMaxScheduleDaysAhead<br />

The CallbackMaxScheduleDaysAhead parameter indicates <strong>the</strong> number of days from <strong>the</strong><br />

current date that a callback is scheduled to be made. The valid range of values is one to<br />

365 days. The default is 180 days.<br />

●<br />

Add MaxBounceNumberTime<br />

The MaxBounceNumberTime parameter indicates <strong>the</strong> maximum number of seconds that<br />

a networked ACD number will be reserved before being released and placed back into <strong>the</strong><br />

available set of networked ACD numbers for network routing calls. The valid range of<br />

values is zero to 3600 seconds. The default is 60 seconds.<br />

●<br />

ReportingTraceRetention<br />

The ReportingTraceRetention parameter indicates <strong>the</strong> number of days that trace<br />

information is stored in <strong>the</strong> Reporting Database. The valid range of values is zero to 30<br />

days. The default is three days.<br />

7<br />

Changing database parameters can seriously impact <strong>the</strong> operation of your servers.<br />

If you wish to modify <strong>the</strong>se parameters, or any o<strong>the</strong>r parameters that can be<br />

configured using SQL, contact your Siemens support personnel. If you are unfamiliar<br />

with <strong>the</strong>se settings, contact your Siemens support personnel.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> 6-1


MPGrpttb.fm<br />

Configuring Database Parameters with SQL<br />

Nur für den internen Gebrauch<br />

A31003-S2251-X100-4-7618, August 2004<br />

6-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGerrap.fm<br />

IVR API Function Return Codes<br />

A<br />

IVR API Function Return Codes<br />

This appendix lists and describes all of <strong>the</strong> codes returned by <strong>the</strong> IVR API functions. For more<br />

information on how <strong>the</strong>se return codes relate to <strong>the</strong> specific function that returned <strong>the</strong> code, see<br />

<strong>the</strong> Chapter 3, “<strong>Programming</strong> Reference for IVR Scripts”.<br />

0 The function was successful. If <strong>the</strong> code is returned by <strong>the</strong> QueryCallStatus function,<br />

it indicates that <strong>the</strong> call is in idle state.<br />

1 The call is in Queued state. This code is returned only by <strong>the</strong> QueryCallStatus<br />

function.<br />

2 The call is in Pending state. This code is returned only by <strong>the</strong> QueryCallStatus<br />

function.<br />

3 The call is in Unanswered state. This code is returned only by <strong>the</strong> QueryCallStatus<br />

function.<br />

4 The call is in error state. This code is returned only by <strong>the</strong> QueryCallStatus function.<br />

-304 Initialize was not called prior to invoking this function. You should call Initialize at <strong>the</strong><br />

start of your script.<br />

-305 There was an unknown error. This error code indicates misuse of <strong>the</strong> function, or that<br />

<strong>the</strong> system is unstable.<br />

-306 The function call included an invalid parameter. One or more of <strong>the</strong> parameters<br />

passed by value were of <strong>the</strong> wrong type. For example, a string was passed instead<br />

of an integer.<br />

-307 The key name for <strong>the</strong> call data value was not set prior to invoking this function.<br />

-308 QueryCallInfo was not called prior to invoking this function. You must call<br />

QueryCallInfo to obtain <strong>the</strong> Call ID.<br />

-310 A non-trunk connected call attempted to use this method. This method can only be<br />

used for trunk connected calls.<br />

-311 The API does not support trunk connected calls.<br />

-400 Low system resources.<br />

-701 The function request timed out before <strong>the</strong> function could be completed. It may be an<br />

indication of network problems or a busy server.<br />

-801 The function was unable to connect to one of <strong>the</strong> <strong>ProCenter</strong> servers. Ei<strong>the</strong>r <strong>the</strong><br />

server name is invalid or <strong>the</strong> server is not operational.<br />

-901 There was no status information available. The Administration Server is not<br />

operational but <strong>the</strong> Routing Server is still available. In this case, <strong>the</strong> status of <strong>the</strong><br />

o<strong>the</strong>r servers is unknown. This error is returned only by <strong>the</strong> QuerySystemStatus<br />

function.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> A-1


MPGerrap.fm<br />

IVR API Function Return Codes<br />

Nur für den internen Gebrauch<br />

-902 The call could not be found since it is not being tracked by <strong>the</strong> Routing Server. This<br />

occurs if you have not yet enqueued <strong>the</strong> call or have previously called Dequeue.<br />

-903 There was no call associated with <strong>the</strong> specified device. Ensure that all IVR<br />

extensions are represented in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-904 The function passed an invalid agent ID. The specified agent ID did not match <strong>the</strong> ID<br />

of any agent in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-905 The function passed an invalid call type. The specified call type did not match <strong>the</strong><br />

name of any call type in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-907 The T-Server is not available. This error means <strong>the</strong> Routing Server could not<br />

enqueue <strong>the</strong> call because <strong>the</strong> T-Server was not available.<br />

-908 The T-Server is not available. The Routing Server attempted to contact <strong>the</strong> T-Server<br />

but failed for an unknown reason.<br />

-909 The function passed an invalid device. The specified device did not match any device<br />

in <strong>the</strong> production copy of <strong>the</strong> Administration Database.<br />

-910 Your DLL version is not compatible with <strong>the</strong> <strong>ProCenter</strong> Server you are making <strong>the</strong><br />

request against.<br />

-911 The function contained data that became corrupted for an unknown reason. The<br />

function was <strong>the</strong>refore unable to connect with <strong>the</strong> Routing Server. The function was<br />

unsuccessful.<br />

-913 The function passed a "To Device" that was not valid.<br />

-914 The operation you are attempting has failed.<br />

-915 The function was unable to retrieve <strong>the</strong> call type and o<strong>the</strong>r routing information based<br />

on <strong>the</strong> configured system routing option.<br />

-927 All registered transit numbers are busy.<br />

-931 This call cannot be monitored, because <strong>the</strong> call could already be transferred to<br />

<strong>HiPath</strong> <strong>ProCenter</strong>.<br />

-931 The call has been already transferred to <strong>HiPath</strong><strong>ProCenter</strong>.<br />

-1010 The function submitted an invalid site name.<br />

-1011 The function submitted an invalid call type name.<br />

-1012 The function submitted an invalid schedule time format.<br />

-1013 The end time submitted for a schedule is earlier than <strong>the</strong> start time for <strong>the</strong> same<br />

schedule.<br />

-1014 The callback is not scheduled to be completed during valid call center business<br />

hours.<br />

-1015 The name of <strong>the</strong> contact person exceeds <strong>the</strong> maximum number of characters.<br />

A31003-S2251-X100-4-7618, August 2004<br />

A-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGerrap.fm<br />

IVR API Function Return Codes<br />

-1016 The country code of <strong>the</strong> telephone number exceeds <strong>the</strong> maximum number of<br />

characters.<br />

-1017 The function included an excluded number. Excluded numbers cannot be included in<br />

callback requests. For more information on configuring excluded numbers, see <strong>the</strong><br />

<strong>HiPath</strong> <strong>ProCenter</strong> Administrator <strong>Guide</strong>.<br />

-1018 The callback caption exceeds <strong>the</strong> maximum number of characters.<br />

-1020 The DDE data exceeds <strong>the</strong> maximum number of characters.<br />

-1029 The callback schedules have expired.<br />

-1030 Two or more schedules have overlapping times.<br />

-1031 A phone number in <strong>the</strong> request is invalid.<br />

-1033 The wrong version of <strong>the</strong> <strong>ProCenter</strong> servers or desktop applications is being used.<br />

-1034 The request data was corrupted while transferring through <strong>the</strong> network.<br />

-1036 The function submitted an invalid call type name.<br />

-1037 The specified callback cannot be deleted because <strong>the</strong> callback is currently in<br />

progress.<br />

-1040 A Callback with this call type and phone number already exists in <strong>the</strong> system. This<br />

error is only returned if <strong>the</strong> Prevent Duplicate Callback Entries check box has been<br />

selected on <strong>the</strong> General tab of <strong>the</strong> Callback Settings dialog box.<br />

O<strong>the</strong>r<br />

Any o<strong>the</strong>r number indicates that <strong>the</strong> function was not successful. If ano<strong>the</strong>r error<br />

code is returned:<br />

1. Ensure that all switch resources are properly entered into <strong>the</strong> production copy of<br />

<strong>the</strong> Administration Database.<br />

2. Ensure that all site, call type, and agent names (or ID numbers) in <strong>the</strong> IVR script<br />

match <strong>the</strong> names (or ID numbers) in <strong>the</strong> production copy of <strong>the</strong> Administration<br />

Database.<br />

3. Contact your next level of support.<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> A-3


MPGerrap.fm<br />

IVR API Function Return Codes<br />

Nur für den internen Gebrauch<br />

A31003-S2251-X100-4-7618, August 2004<br />

A-4 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


Nur für den internen Gebrauch<br />

MPGbookIX.fm<br />

Index<br />

Index<br />

Z<br />

A<br />

ACD Hold<br />

configuration 2-4<br />

writing scripts 2-10<br />

C<br />

CallerDisconnected function 3-50<br />

CreateCallback function 3-4<br />

custom routing function<br />

designing 4-10<br />

function name 4-3<br />

ga<strong>the</strong>ring call requirements 4-1<br />

input and output 4-4<br />

loading 4-3<br />

module name 4-3<br />

process 4-2<br />

return codes 4-8<br />

sample 4-8<br />

writing 4-1<br />

D<br />

database parameters, configuring SQL 6-1<br />

DeleteCallback function 3-8<br />

Dequeue function 3-9<br />

Disconnect function 3-11<br />

documentation<br />

feedback 1-5<br />

formatting conventions 1-5<br />

Dynamic Data Exchange<br />

overview 5-1<br />

sample 5-4<br />

source 5-1<br />

E<br />

E1 IVR introduction 3-46<br />

Enqueue function 3-12<br />

EnqueueForAgent function 3-15<br />

F<br />

FMNQ<br />

configuration 2-6<br />

writing scripts 2-13<br />

G<br />

GetCallData function 3-18<br />

GetCallTransferable function 3-20<br />

GetDDE function 3-21<br />

GetTransitNumber function 3-49<br />

I<br />

Initialize function 3-23<br />

InVision software 3-2<br />

IVR API functions<br />

CallerDisconnected 3-50<br />

CreateCallback 3-4<br />

DeleteCallback 3-8<br />

Dequeue 3-9<br />

Disconnect 3-11<br />

Enqueue 3-12<br />

EnqueueForAgent 3-15<br />

GetCallData 3-18<br />

GetCallTransferable 3-20<br />

GetDDE 3-21<br />

GetTransitNumber 3-49<br />

Initialize 3-23<br />

introduction for unmonitored E1 iVR 3-46<br />

QueryAgentStatus 3-24<br />

QueryCallInfo 3-26<br />

QueryCallStatus 3-28<br />

QueryCalltypeStatistics 3-30<br />

QueryRoutingInfo 3-33<br />

QuerySystemStatus 3-36<br />

ReleaseTransitNumber 3-51<br />

SetCallData 3-39<br />

SetCallInfo 3-48<br />

SetCallTransferable 3-40<br />

SetDDE 3-42<br />

SetDisplay 3-43<br />

Transfer 3-45<br />

IVR API return codes A-1<br />

A31003-S2251-X100-4-7618, August 2004<br />

<strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong> Z-1


MPGbookIX.fm<br />

Index<br />

Nur für den internen Gebrauch<br />

IVR Hold<br />

configuration 2-3<br />

writing scripts 2-10<br />

IVR scripts<br />

overview 2-7, 3-1<br />

passing parameters 3-3<br />

using <strong>the</strong> InVision software 3-2<br />

U<br />

unmonitored E1 IVR introduction 3-46<br />

L<br />

loading a custom routing function 4-3<br />

P<br />

Prompt Response System<br />

<strong>HiPath</strong> <strong>ProCenter</strong> interaction 2-2<br />

mapping transactions 2-1<br />

writing IVR scripts 2-7<br />

Q<br />

QueryAgentStatus function 3-24<br />

QueryCallInfo function 3-26<br />

QueryCallStatus function 3-28<br />

QueryCalltypeStatistics function 3-30<br />

QueryRoutingInfo function 3-33<br />

QuerySystemStatus function 3-36<br />

R<br />

ReleaseTransitNumber function 3-51<br />

return codes<br />

for custom routing function 4-8<br />

for IVR API functions A-1<br />

S<br />

scripts<br />

ACD Hold 2-10<br />

FMNQ 2-13<br />

IVR Hold 2-10<br />

SetCallData function 3-39<br />

SetCallInfo function 3-48<br />

SetCallTransferable function 3-40<br />

SetDDE function 3-42<br />

SetDisplay function 3-43<br />

T<br />

Transfer function 3-45<br />

A31003-S2251-X100-4-7618, August 2004<br />

Z-2 <strong>HiPath</strong> <strong>ProCenter</strong> <strong>Programming</strong> <strong>Guide</strong>


www.hipath.de<br />

© Siemens AG 2004 • Information and Communication<br />

Networks • Hofmannstraße 51 • D-81359 München<br />

Bestell-Nr.: A31003-S2251-X100-4-7618<br />

Gedruckt in der Bundesrepublik Deutschland.<br />

Liefermöglichkeiten und technische Änderungen vorbehalten.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!