Incoming call gets dropped after first ring, but only when TAPI initiated outgoing call is open

Jan 27, 2013 at 4:38 PM
Edited Jan 27, 2013 at 4:40 PM

Hello everybody

I use ITAPI for caller identification and to make calls from a computer program.

First, the tapi device is monitored:

this.telephone.Monitor(TAPIMEDIATYPES.AUDIO);

(i've also tried telephone.Open(TAPIMEDIATYPES.AUDIO);, but this doesn't change a thing :()

Then an outgoing call is initiated by ITAPI 3, like so:

TCall currCall = this.telephone.CreateCall(adjustedNumber, LINEADDRESSTYPES.PhoneNumber, TAPIMEDIATYPES.AUDIO);
if (currCall != null)
{
  currCall.Connect(false);
}

And then when someone calls in, the outgoing call is dropped after the first ring.
This is not always, but almost (>90%), the case.

The incoming call is handled like this:

this.tapi.TE_CALLNOTIFICATION += (sender, e) =>
        {
            if (e.Call.Privilege == CALL_PRIVILEGE.CP_OWNER)
            {
                string callingNumber = e.Call.get_CallInfo(CALLINFO_STRING.CIS_CALLERIDNUMBER);
                if (!string.IsNullOrWhiteSpace(callingNumber))
                {
                    Log.Debug(callingNumber);
                    new TaskFactory().StartNew(() => this.OnReceivingCall(callingNumber));
                }
        };

I have also tried using tapi.TE_CALLINFOCHANGE, instead of TE_CALLNOTIFICATION, but strangely enough this only works when i subscribe for TE_CALLNOTIFICATION, too. Else, the TE_CALLINFOCHANGE event is not raised.

Can anybody help me with any pointers? What to try next? Could it be that the incoming-call event is disconnected due to tapi.AutoDestroyCalls being set to true?
How to handle call disposal if AutoDestroyCall is deactivated?

Thanks for your time.