Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Набрать номер по модему. Голосовой звонок. Использование TAPI

Delphi , Интернет и Сети , Dial-up

Набрать номер по модему. Голосовой звонок. Использование TAPI

Инетчик звонит по телефону.
- Позовите пожалуйста Лену к телефону.
- Такой здесь нет. "User unknown" , - подумал И-нетчик.

До слова implementation напишите такой код:


{tapi Errors}
const TAPIERR_CONNECTED = 0;
const TAPIERR_DROPPED = -1;
const TAPIERR_NOREQUESTRECIPIENT = -2;
const TAPIERR_REQUESTQUEUEFULL = -3;
const TAPIERR_INVALDESTADDRESS = -4;
const TAPIERR_INVALWINDOWHANDLE = -5;
const TAPIERR_INVALDEVICECLASS = -6;
const TAPIERR_INVALDEVICEID = -7;
const TAPIERR_DEVICECLASSUNAVAIL = -8;
const TAPIERR_DEVICEIDUNAVAIL = -9;
const TAPIERR_DEVICEINUSE = -10;
const TAPIERR_DESTBUSY = -11;
const TAPIERR_DESTNOANSWER = -12;
const TAPIERR_DESTUNAVAIL = -13;
const TAPIERR_UNKNOWNWINHANDLE = -14;
const TAPIERR_UNKNOWNREQUESTID = -15;
const TAPIERR_REQUESTFAILED = -16;
const TAPIERR_REQUESTCANCELLED = -17;
const TAPIERR_INVALPOINTER = -18;

{tapi size constants}
const TAPIMAXDESTADDRESSSIZE = 80;
const TAPIMAXAPPNAMESIZE = 40;
const TAPIMAXCALLEDPARTYSIZE = 40;
const TAPIMAXCOMMENTSIZE = 80;
const TAPIMAXDEVICECLASSSIZE = 40;
const TAPIMAXDEVICEIDSIZE = 40;

function tapiRequestMakeCallA(DestAddress : PAnsiChar;
AppName : PAnsiChar;
CalledParty : PAnsiChar;
Comment : PAnsiChar) : LongInt;
stdcall; external 'TAPI32.DLL';

function tapiRequestMakeCallW(DestAddress : PWideChar;
AppName : PWideChar;
CalledParty : PWideChar;
Comment : PWideChar) : LongInt;
stdcall; external 'TAPI32.DLL';

function tapiRequestMakeCall(DestAddress : PChar;
AppName : PChar;
CalledParty : PChar;
Comment : PChar) : LongInt;
stdcall; external 'TAPI32.DLL';

Нажатие кнопки обработайте следующим образом:


procedure TForm1.Button1Click(Sender: TObject);
var
  DestAddress : string;
  CalledParty : string;
  Comment : string;
begin
  DestAddress := '000-00-00'; {phone number}
  CalledParty := '___Nikolay';
  Comment := 'Calling to ___Nikolay';
  tapiRequestMakeCall(pChar(DestAddress),
  PChar(Application.Title),
  pChar(CalledParty),
  PChar(Comment));
end;

Код, который вы предоставили, - это реализация интерфейса программирования приложений для телефонии (TAPI) в Delphi, позволяющая сделать звонок с помощью модема.

Первая часть кода определяет константы для различных кодов ошибок TAPI и ограничений размера.

Вторая часть кода определяет три функции: tapiRequestMakeCallA, tapiRequestMakeCallW и tapiRequestMakeCall. Эти функции используются для сделки звонка, и они принимают четыре параметра:

  • DestAddress: номер телефона назначения
  • AppName: имя приложения, которое делает звонок
  • CalledParty: имя человека, который вызывается
  • Comment: комментарий или описание звонка

Функции объявлены как внешние для библиотеки TAPI32.DLL, которая является реализацией интерфейса программирования приложений для телефонии.

Наконец, есть процедура Button1Click, которая вызывается при клике кнопки на форме. Эта процедура принимает четыре переменные:

  • DestAddress: номер телефона назначения
  • CalledParty: имя человека, который вызывается
  • Comment: комментарий или описание звонка

Она устанавливает эти переменные в некоторые стандартные значения и затем вызывает функцию tapiRequestMakeCall с этими параметрами.

Вот улучшенная версия кода:

procedure TForm1.Button1Click(Sender: TObject);
var
  DestAddress: string;
  CalledParty: string;
  Comment: string;
begin
  DestAddress := '000-00-00'; // номер телефона
  CalledParty := '___Николай';
  Comment := 'Звонок в ___Николая';

  try
    tapiRequestMakeCall(PChar(DestAddress), PChar(Application.Title), PChar(CalledParty), PChar(Comment));
  except
    ShowMessage('Ошибка при сделке звонка: ' + LastException.Message);
  end;
end;

В этой улучшенной версии я добавил блок try-except, чтобы поймать любые исключения, которые могут возникнуть при сделке звонка. Если исключение возникает, оно отображает сообщение с ошибкой.

Я также удалил редандантные объявления функций для tapiRequestMakeCallA и tapiRequestMakeCallW, потому что они не используются в этом коде. Функция tapiRequestMakeCall может использоваться с AnsiChar или WideChar строками, в зависимости от кодировки вашего приложения.

Обратите внимание, что вам нужно иметь библиотеку TAPI32.DLL установленной на вашем компьютере для того, чтобы этот код работал.

Набрать номер по модему, осуществить голосовой звонок с использованием TAPI-интерфейса.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Dial-up ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:36:40/0.0057001113891602/1