Discussion:
Add party using Call Handle generated by TSP
(too old to reply)
Pandurang Chauhan
2014-03-06 14:12:16 UTC
Permalink
Hi All,

I am developing my own TSP. It has one problem with Conference feature. Steps are shown below:

1. Make one 3 Party from 3 physical Phones.
2. In this case, TSP generates call handle for Conference originator phone with On Hold Pending Conference state and then connected state with CONFERENCE as call origin.
3. Now, from TAPI application of this physical phone, access any feature like 'AddToConference' or 'PrepareAddToConference'.
4. It gives ERROR "(0x80000020)Conference not valid".

Here, the call handle for Conference originator phone with CONFERENCE as call origin has been generated by TSP and sent to TAPI application as a New Call Request.

Can anyone tell me when this error can occur ?
What are the reasons behind this?
What is the solution?

Thanks in Advance.

Regards,
Pandurang & Krutik.
Ravi Kansangara
2014-03-15 06:32:14 UTC
Permalink
Post by Pandurang Chauhan
Hi All,
1. Make one 3 Party from 3 physical Phones.
2. In this case, TSP generates call handle for Conference originator phone with On Hold Pending Conference state and then connected state with CONFERENCE as call origin.
3. Now, from TAPI application of this physical phone, access any feature like 'AddToConference' or 'PrepareAddToConference'.
4. It gives ERROR "(0x80000020)Conference not valid".
Here, the call handle for Conference originator phone with CONFERENCE as call origin has been generated by TSP and sent to TAPI application as a New Call Request.
Can anyone tell me when this error can occur ?
What are the reasons behind this?
What is the solution?
Thanks in Advance.
Regards,
Pandurang & Krutik.
Hi All,
1. Make one 3 Party from 3 physical Phones.
2. In this case, TSP generates call handle for Conference originator phone with On Hold Pending Conference state and then connected state with CONFERENCE as call origin.
3. Now, from TAPI application of this physical phone, access any feature like 'AddToConference' or 'PrepareAddToConference'.
4. It gives ERROR "(0x80000020)Conference not valid".
Here, the call handle for Conference originator phone with CONFERENCE as call origin has been generated by TSP and sent to TAPI application as a New Call Request.
Can anyone tell me when this error can occur ?
What are the reasons behind this?
What is the solution?
Thanks in Advance.
Regards,
Pandurang & Krutik.
Dear Pandurang & Krutik,
Post by Pandurang Chauhan
Hi All,
1. Make one 3 Party from 3 physical Phones.
2. In this case, TSP generates call handle for Conference originator phone with On Hold Pending Conference state and then connected state with CONFERENCE as call origin.
3. Now, from TAPI application of this physical phone, access any feature like 'AddToConference' or 'PrepareAddToConference'.
4. It gives ERROR "(0x80000020)Conference not valid".
Here, the call handle for Conference originator phone with CONFERENCE as call origin has been generated by TSP and sent to TAPI application as a New Call Request.
Can anyone tell me when this error can occur ?
What are the reasons behind this?
What is the solution?
Thanks in Advance.
Regards,
Pandurang & Krutik.
Dear Pandurang & Krutik,

Whenever you send LINECALLSTATE Message to TAPI with Call State LINECALLSTATE_CONFERENCED, Check dwParam2 in LINEEVENT Callback.

This parameter must be Conference Call Handle to inform TAPI about Parent Call Handle of Conference.

Without this Call Handle TAPI Application may not able to Add/Remove Party from Conference.

TAPI MSDN Help for LINECALLSTATE Message.

======================================================================
LINE_CALLSTATE
htLine = (HTAPILINE) hLineDevice;
htCall = (HTAPICALL) hCallDevice;
dwMsg = (DWORD) LINE_CALLSTATE;
dwParam1 = (DWORD) LineCallState;
dwParam2 = (DWORD) StateData;
dwParam3 = (DWORD) MediaMode;


dwParam2
Specifies call-state-dependent information.

If dwParam1 is LINECALLSTATE_CONFERENCED, dwParam2 contains the htCall of the parent call of the conference of which the subject htCall is a member. If the call specified in dwParam2 was not previously considered by TAPI to be a parent conference call, this message causes it to be so treated. The call specified in dwParam2 must already exist; it was most likely previously created by a LINE_NEWCALL message and set to LINECALLSTATE_ONHOLDPENDCONF.

======================================================================

This Means,

When you Initiate 3 Party Conference (TSPI_lineSetupConference), you may have Three Call Handles with following Call States.

Call - 1. LINECALLSTATE_CONNECTED
Call - 2. LINECALLSTATE_ONHOLDPENDCONFERENCE
Call - 3. LINECALLSTATE_DIALTONE or LINECALLSTATE_DIALING or
LINECALLSTATE_RINGBACK etc.

Now when you add 3rd party to Conference (TSPI_lineAddToConference), you should send following Call States to TAPI with LINEEVENT.


Call - 1:
htLine = (HTAPILINE) hLineDevice;
htCall = (HTAPICALL) hCallDevice;
dwMsg = (DWORD) LINE_CALLSTATE;
dwParam1 = (DWORD) LINECALLSTATE_CONFERENCED;
dwParam2 = (DWORD) htCall Handle of Call -2;
dwParam3 = (DWORD) MediaMode;

Call - 3:
htLine = (HTAPILINE) hLineDevice;
htCall = (HTAPICALL) hCallDevice;
dwMsg = (DWORD) LINE_CALLSTATE;
dwParam1 = (DWORD) LINECALLSTATE_CONFERENCED;
dwParam2 = (DWORD) htCall Handle of Call -2;
dwParam3 = (DWORD) MediaMode;

Call - 2:
htLine = (HTAPILINE) hLineDevice;
htCall = (HTAPICALL) hCallDevice;
dwMsg = (DWORD) LINE_CALLSTATE;
dwParam1 = (DWORD) LINECALLSTATE_CONNECTED;
dwParam2 = (DWORD) StateData;
dwParam3 = (DWORD) MediaMode;


Check the dwParam2 for LINEEVENT of Call - 1 & Call - 3.

Confirm whether you have provided above information correctly when you are sending LINECALLSTATE to LINECALLSTATE_CONFERENCED?

Regards,
Ravi Kansangara
Ravi Kansangara
2014-03-15 06:33:58 UTC
Permalink
Post by Pandurang Chauhan
Hi All,
1. Make one 3 Party from 3 physical Phones.
2. In this case, TSP generates call handle for Conference originator phone with On Hold Pending Conference state and then connected state with CONFERENCE as call origin.
3. Now, from TAPI application of this physical phone, access any feature like 'AddToConference' or 'PrepareAddToConference'.
4. It gives ERROR "(0x80000020)Conference not valid".
Here, the call handle for Conference originator phone with CONFERENCE as call origin has been generated by TSP and sent to TAPI application as a New Call Request.
Can anyone tell me when this error can occur ?
What are the reasons behind this?
What is the solution?
Thanks in Advance.
Regards,
Pandurang & Krutik.
Dear Pandurang & Krutik,

Whenever you send LINECALLSTATE Message to TAPI with Call State LINECALLSTATE_CONFERENCED, Check dwParam2 in LINEEVENT Callback.

This parameter must be Conference Call Handle to inform TAPI about Parent Call Handle of Conference.

Without this Call Handle TAPI Application may not able to Add/Remove Party from Conference.

TAPI MSDN Help for LINECALLSTATE Message.

======================================================================
LINE_CALLSTATE
htLine = (HTAPILINE) hLineDevice;
htCall = (HTAPICALL) hCallDevice;
dwMsg = (DWORD) LINE_CALLSTATE;
dwParam1 = (DWORD) LineCallState;
dwParam2 = (DWORD) StateData;
dwParam3 = (DWORD) MediaMode;


dwParam2
Specifies call-state-dependent information.

If dwParam1 is LINECALLSTATE_CONFERENCED, dwParam2 contains the htCall of the parent call of the conference of which the subject htCall is a member. If the call specified in dwParam2 was not previously considered by TAPI to be a parent conference call, this message causes it to be so treated. The call specified in dwParam2 must already exist; it was most likely previously created by a LINE_NEWCALL message and set to LINECALLSTATE_ONHOLDPENDCONF.

======================================================================

This Means,

When you Initiate 3 Party Conference (TSPI_lineSetupConference), you may have Three Call Handles with following Call States.

Call - 1. LINECALLSTATE_CONNECTED
Call - 2. LINECALLSTATE_ONHOLDPENDCONFERENCE
Call - 3. LINECALLSTATE_DIALTONE or LINECALLSTATE_DIALING or
LINECALLSTATE_RINGBACK etc.

Now when you add 3rd party to Conference (TSPI_lineAddToConference), you should send following Call States to TAPI with LINEEVENT.


Call - 1:
htLine = (HTAPILINE) hLineDevice;
htCall = (HTAPICALL) hCallDevice;
dwMsg = (DWORD) LINE_CALLSTATE;
dwParam1 = (DWORD) LINECALLSTATE_CONFERENCED;
dwParam2 = (DWORD) htCall Handle of Call -2;
dwParam3 = (DWORD) MediaMode;

Call - 3:
htLine = (HTAPILINE) hLineDevice;
htCall = (HTAPICALL) hCallDevice;
dwMsg = (DWORD) LINE_CALLSTATE;
dwParam1 = (DWORD) LINECALLSTATE_CONFERENCED;
dwParam2 = (DWORD) htCall Handle of Call -2;
dwParam3 = (DWORD) MediaMode;

Call - 2:
htLine = (HTAPILINE) hLineDevice;
htCall = (HTAPICALL) hCallDevice;
dwMsg = (DWORD) LINE_CALLSTATE;
dwParam1 = (DWORD) LINECALLSTATE_CONNECTED;
dwParam2 = (DWORD) StateData;
dwParam3 = (DWORD) MediaMode;


Check the dwParam2 for LINEEVENT of Call - 1 & Call - 3.

Confirm whether you have provided above information correctly when you are sending LINECALLSTATE to LINECALLSTATE_CONFERENCED?

Regards,
Ravi Kansangara

Loading...