Hi there,
currently I am fighting my way through call transfers.
My problem is one the "B-side". I am receiving a GCEV_REQ_XFER event, accept the transfer and on GCEV_ACCEPT_XFER make the call to the rerouting number.
This all works fine and the call gets transferred and I can play a wave file to it. I receive the GCEV_XFER_CMPLT event on the primary line device upon which I try to drop the call on the primary line as required according to the documentation:
void OnXferComplete(CHMPLineDev *pLine, METAEVENT &rEvent)
{
LogDebug(_T("Line %d, Xfer to \"%s\" complete"), pLine->nId, pLine->sRoutingNum);
if(gc_DropCall(pLine->nCallRef, GC_NORMAL_CLEARING, EV_ASYNC) != GC_SUCCESS)
LogGCError(pBase, _T("Drop on Xfer complete"));
}
gc_DropCall return GC_SUCCESS, but I don't receive the GCEV_DROPCALL event and therefor cannot release the call. Instead after about 30 seconds I receive a GCEV_XFER_FAIL event on the primary line device with this reason:
"Event caused by time-out" (1282) Lib GC_H3R_LIB: IPEC_SUBS_REASON_TRANSC_TIME_OUT (158)
After another 32 seconds I finally get the GCEV_DROPCALL event for the primary line and can relaese it.
What am I doing wrong here?
As always looking forward to your suggestions
Floh