Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Телефония, Написать подобие телефона 
:(
    Опции темы
alf138
Дата 1.4.2010, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Здравствуйте, первичной задачей было написать тел. Справочник, она выполненна тепереь нужно написать телефон для нее, перерыл интернет и книжки который есть, не чего не нашол не подскажите, как можно реализовать, и где можно почитать про это ? Огромное спасибо.
PM MAIL   Вверх
Akella
Дата 3.4.2010, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Читай про работу с Dial-UP модемом, с COM портами, а также про AT команды модемов.

Добавлено через 40 секунд
например такое или похожее
PM MAIL   Вверх
alf138
Дата 3.4.2010, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



на это я нашол TAPI вот что получилось, но получилось криво и он не хочет набирать весь номер наберает только первую цифру из номера 
Код

unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm6 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form6: TForm6;

{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';

implementation

{$R *.dfm}

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


Это сообщение отредактировал(а) alf138 - 3.4.2010, 22:16
PM MAIL   Вверх
kami
Дата 3.4.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(alf138 @  3.4.2010,  22:15 Найти цитируемый пост)
наберает только первую цифру из номера 

Код ошибки, который возвращает tapiRequestMakeCall ?
PM MAIL WWW   Вверх
alf138
Дата 4.4.2010, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Собирается без проблем не каких ошибок не выдает но при нажатие на кнопку пишет 
Код

Module Unload: GrooveShellExtensions.DLL. Process Project1.exe (2436)
Thread Exit: Thread ID: 4000. Process Project1.exe (2436)
Module Unload: mzvkbd3.dll. Process Project1.exe (2436)
Thread Exit: Thread ID: 1888. Process Project1.exe (2436)
Module Unload: kloehk.dll. Process Project1.exe (2436)
Thread Exit: Thread ID: 3480. Process Project1.exe (2436)

Вот нашол пример на 
http://www.sql.ru/forum/actualthread.aspx?tid=731589
http://www.programmersforum.ru/showthread.php?t=82145
если задать так 
Код

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

все работает набирает, но если я меняю строчку на
Код

DestAddress := PAnsiChar(edit1.text); 

или
Код

DestAddress := edit1.text;

то он набирает только первую цифру.

Это сообщение отредактировал(а) alf138 - 4.4.2010, 16:09
PM MAIL   Вверх
skyboy
Дата 6.4.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



а че дальше делать? как передавать звук, работать с микрофоном? "само" оно только номер наберет.
я предлагаю использовать uri-схему callto и поставить обязательным условием для совершения звонка наличие skype, который и будет обрабатывать переход по ссылкам "callto:+1234567890"
или любую другую программу, которая, к примеру, обрабатывает обращение по tel: схеме

Добавлено через 6 минут и 20 секунд
даже если найдешь программу, принимающую в качестве параметров запуска номер телефона, можно будет шустренько указать её обработчиком протокола(того же "tel:") и не надо будет самому писать программу-звонилку/говорилку.
PM MAIL   Вверх
alf138
Дата 7.4.2010, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Наберается номер стандартными способами через телефон стандартный windows, перечитал кучу инфы, нужно помаятся с определение переменной  
Код

DestAddress := PAnsiChar(edit1.text);
 вот как это придумать ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1210 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.