Hi Paul.
May I please ask you more help with IVR-Handoff? As I understand, you knows well cvp_bootstarp.tcl and bootstrap_ivrhandoff.tcl applications. I'm from Slovakia, and try to implement this IVR-Handoff trick (described in BRKCCT-2030 from Cisco Live London) in production. We have CVP 9.0, UCCE 9.0, 2911 VGW (IOS 15.2.2). That's why I need to know how to modify SIP-Header.
So I configured two ICM scripts - one main for agent selection and the other one is for checking the transfer and IVR-Handoff (it is a simpliest script that plays just a wav-file, agent transfers calls to that script, after it plays greeting we expect return back to the same agent). So the customer calls to FXO port of VGW, then call must go to CVP/ICM and to agent. During a conversation the agent transfers call to another ICM script, after finishing this script the call must return back to the same agent.
To do this, I applied cvp_bootstrap.tcl at the incoming pots dial-peer, bootstrap_ivrhandoff.tcl was applied the incoming voip dial-peer which is selected for vxml-browser start (which is selected, when the label and the corellation ID is received from ICM). We see that cvp_bootstrap modifies the first SIP INVITE and adds a SIP-Header like this:
IVR-Handoff: 487958002
I successfully send it to ICM, and modify it (thanks to you), So during transfer call my GW receives SIP INVITE with such header :
IVR-Handoff: 487958002;invoke=true
But the caller is not switched to the second IVR script as expected. Agent press transfer, dials a number for the second ICM script (it is CTI Route point). We see second call leg, the customer is put on hold. But then our agent is put on hold as well and that's all. So caller is on hold, and agent is on hold too.

In the debug voice applicaton all I see that bootstrap_ivrhandoff is contacted. It tries to make a shunt call:
May 28 17:44:54.183: //626//TCL :/tcl_PutsObjCmd: CVP_IVRHANDOFF_BSTRP, IVR handoff mode, making shunt call to ingress gateway callback DNIS 487754354
then it says like that:
May 28 17:44:54.187: //-1//AFW_:/AFW_Leg_NewSetupRequest: SetupRequest Failed
May 28 17:44:54.187: //-1//AFW_:/AFW_Instance_DecrRefCount: Object: 0x3071A574, Type: Leg, RefCount: 0
May 28 17:44:54.187: //-1/23A4E78882C3/AFW_:LG-1:/AFW_M_Leg_Free:
May 28 17:44:54.187: //-1/23A4E78882C3/AFW_:LG-1:/AFW_M_Leg_Free: LEG[-1 ][LEG_INIT(0)][Cause(0)]
May 28 17:44:54.187: //-1/23A4E78882C3/AFW_:LG-1:/decrementDialPeerCallStats: Decrementing call-stat to [-17], dial-peer [1]
May 28 17:44:54.187: //626//Dest:/DestSetup:
May 28 17:44:54.187: Failed to setup call
May 28 17:44:54.187: //626//Dest:/DestValidatePreemptRequired:
May 28 17:44:54.187: //626//Dest:/DestPeerPreemptRequired:
May 28 17:44:54.187: //626//Dest:/DestPeerPreemptRequired: Checking peer [1] preemptSupport[0]
May 28 17:44:54.187: //626//Dest:/DestSetup: Destination setup failed rc(-14)
May 28 17:44:54.187: //626//Dest:/DestSetFailureCause: Change failure cause from 0 to 44
May 28 17:44:54.187: //626//Dest:/DestGetLpcorCorCause:
May 28 17:44:54.187: //626//Dest:/DestDialPeerRotary: isLpcorBlock=0 lastFailureCause=44
May 28 17:44:54.187: //626//Dest:/DestSetupInitiate: Dial peer rotary failed
May 28 17:44:54.187: //626//Dest:/DestSetupInitiate:
May 28 17:44:54.187: : before setting failure to featvsa
May 28 17:44:54.187: //626//Dest:/DestSetupInitiate:
May 28 17:44:54.187: : after setting failure to featvsa
May 28 17:44:54.187: //626//Dest:/DestResetCallInfo:
May 28 17:44:54.187: //626//Dest:/DestComplete: peer #:1 IW State IW_STATE_INIT, OB State OB_STATE_INIT
May 28 17:44:54.187: //-1//Dest:/DestStatusFromDiscCause: mapped "no requested circuit (44)"(44) to DEST_NO_RESOURCE(3)
And the caller is not switched to second script.
What may cause such behavior? Do we need to modify smth on tcl application, or can we use them as they are for this feature? Do we need any specific configurations on CVP, ICM. VGW for IVR-handoff? Are there any tricks in scripting (except SIP-header change)?
Any of your help will be much appreciated.
Thank you so much in advance.