HiPath ProCenter Programming Guide - the HiPath Knowledge Base
HiPath ProCenter Programming Guide - the HiPath Knowledge Base
HiPath ProCenter Programming Guide - the HiPath Knowledge Base
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.