![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Tapi -> lineanswer [D7, WinXP]
kolj © (2008-04-02 18:15:00)Возникла следующая проблема : Когда приходит входной звонок немогу поднять трубку, хотя ф-я lineanswer возвращает положытельное значение. В чем может быть причина ???
Пробовал так
1)
procedure lineCallBack (hDevice,dwMsg,dwCallbackInstance,dwParam1,dwParam2,dwParam3:dword);stdcall;
var err:longint;
begin
if dwmsg = LINE_APPNEWCALL then begin
form1.ListBox1.Items.Add('RING');
err:=lineSetCallPrivilege(dwparam2,LINECALLPRIVILEGE_OWNER );
form1.listbox1.items.add('lineSetCallPrivilege= '+inttostr(err));
err:=lineanswer(dwparam2,nil,0);
form1.listbox1.items.add('lineanswer= '+inttostr(err));
end;
2)
procedure lineCallBack (hDevice,dwMsg,dwCallbackInstance,dwParam1,dwParam2,dwParam3:dword);stdcall;
var err:longint;
hc:hcall;
if dwmsg = LINECALLSTATE_OFFERING then begin
form1.ListBox1.Items.Add('RING1');
hc:=hcall(hdevice);
err:=lineSetCallPrivilege(hc,LINECALLPRIVILEGE_OWNER );
form1.listbox1.items.add('lineSetCallPrivilege= '+inttostr(err));
err:=lineanswer(hc,P,SIZEOF(P));
form1.listbox1.items.add('lineanswer= '+inttostr(err));
В обоих случаях ф-и lineSetCallPrivilege и lineanswer возвращают код успешного завершения (соответственно 0 и >0)
ф-я lineopen выглядит так и результатом ее выполнения есть 0.
err1:=lineopen(lineapp,dwTapiDeviceID,@f_hline,dwAPIVersion,0,0,LINECALLPRIVILEG E_MONITOR + LINECALLPRIVILEGE_OWNER , LINEMEDIAMODE_INTERACTIVEVOICE, nil);
kolj (2008-04-02 20:05:00) [1]В первом случае lineanswer возвращает LINEERR_INVALCALLSTATE(The call state is invalid.)