I know that this is 2 years old, but I am putting it here if anyone needs it :)
I was doing the exact same thing and found your post very interesting. I did exactly that, but I added one step:
It was bugging me that the ne call was a second interaction instead of a child interaction and I figured out how to fix it.
On the Callback interaction, I am setting the attribute "Eic_CallbackAssociatedCallId" to the new CallId. This automatically makes it so that the call becomes a child of the callback and grey's out the "Make Call" button in the callback window. (Just like it would do if the agent had clicked it)
Hope this helps!
------------------------------
Frederic Langlois
Quovim C3 (9264-2354 Quebec Inc.)
------------------------------
Original Message:
Sent: 03-16-2018 16:13
From: Frank Tobar
Subject: Using Auto Dialer to complete queue callback function
Thank you Andrew.
Originally posted by AWooster;36886
Auto Dial Handler:
In CustomACDPostAlertInteraction we do a "Query Media Type" to check to see if the interaction is a Callback, if it is we run the custom handler. Custom handler converts Callback Interaction Id to string using the "Convert Call Id to String". We get the agent's user id with an assignment statement "StrRight(p_sAgentQueueId, StrLen(p_sAgentQueueId) - 11)" (got help from another developer with this). Get the station the user is logged into with a "User Login List" toolstep. Get the customer phone number from the attribute "Eic_CallbackPhone". Run the subroutine "DialPlanEx" for the customer phone number. Get the workgroup from the attribute "Eic_WorkgroupName". Get the custom attribute "Outbound ANI" from the workgroup using a Lookup toolstep with "Key Type" of "Workgroup", "Search Attribute Type" of Queue Identifier", "Value to use in search" of "Workgoup Queue: (workgroup we found earlier)" and "Attribute Type" of "CUSTOM::Outbound ANI" (this is set in IA for each workgroup so they have unique outbound ANIs). Then an "Extended Place Call" to place the call for the agent. If the call connects to a live person we set the Interaction Id of the Callback as a custom attribute on the new call. If it fails we disconnect the CBR but you could do anything you want here.
Auto Disconnect Callback:
In CustomCallDisconnect we check to see if the custom attribute we set in the previous handler has a value, if it does we run the other custom handler. Use the "Get Attribute" to get the Interaction Id of the Callback. Convert the string Interaction Id into a true Interaction ID using the "Convert String to Call Id" and then disconnect the newly created Interaction Id.
Let me know if you need anything else.
Thanks,
Andrew