Integrando Skype em aplicações Delphi<br />Andreano Lanusse<br />Technical Lead Evangelist, Developer Relations<br />
O que é Skype?<br />P2P Internet Telephone – VOIP<br />Computador para Computador<br />Computador para Telefone (SkypeOut)...
O que é Skype?<br />Mais de 500 milhões de downloads<br />Mais de 130 milhões de usuários ativos<br />4 a 8 milhões de usu...
O quão amigável é o Skype<br />Delphi amigável<br />Windows Client escrito em Delphi<br />Usa Indy para as comunicações qu...
Desenvolvendo para Skype<br />Skype API<br />Método original de integração<br />Usa Windows Message<br />Muito flexível<br...
O que você precisa para usar Skype API<br />Instalação<br />Skype: http://www.skype.com<br />Nenhum outro arquivo necessár...
Usando Skype API<br />Conectando ao Skype<br />Registrar ‘SkypeControlAPIDiscover’ windows message<br />Registrar ‘SkypeCo...
Definindo Protocolo - Skype API<br />Define qual protocolo usar<br />Override WndProc<br />procedure TSkypeAPI.WndProc(var...
Send Command - Skype API<br />Definir parâmetros através da estrutura CopyDataStruct<br />procedure TSkypeAPI.SendCommand(...
Receive Command - Skype API<br />Espere pelo WM_COPYDATA message<br />lpData recebe o comando como PAnsiChar<br />procedur...
Skype API Wrapper<br />Jason Southwell e Dr. Bob criaram o componente TSkypeAPI<br />Skype API wrapper<br />Código disponí...
Comandos - Skype API<br />Phone Control<br />AUDIO IN | OUT, HOOK ON | OFF, MUTE ON | OFF, BTN_PRESSED, BTN_RELEASED<br />...
Comandos - Skype API<br />Sending and managing SMS messages<br />CREATE SMS | SET SMS BODY | ALTER SMS SEND | SET SMS SEEN...
Comandos - Skype API<br />Managing contacts and groups<br />GET GROUP USERS | GET GROUP VISIBLE | GET GROUP EXPANDED | GET...
Demo Skype API<br />
O que você precisa para usar Skype4COM<br />Instalação<br />Skype: http://www.skype.com<br />Skype4COM.dll<br />http://dev...
Objetos principais - Skype4COM<br />Skype (ISkype)<br />Core integration object<br />Fornece acesso a maioria dos objetos<...
Demo Skype4COM<br />Usando VCL<br />Usando TMS Smooth Controls <br />
Exemplos<br />Código fonte disponível para download<br />http://cc.embarcadero.com/Item/27742<br />
Perguntas<br />EDN – Embarcadero Developer Network<br />http://edn.embarcadero.com/br   (Artigos e Vídeos)<br />Trial Down...
Dados para Contato<br />Email:Andreano.Lanusse@embarcadero.com<br />Blog:http://www.andreanolanusse.com<br />Twitter:http:...
Upcoming SlideShare
Loading in …5
×

Integrando Skype em aplicações Delphi

11,216 views

Published on

Skype é um dos meios mais utilizados no mundo para conectar pessoas, milhões de usuários utilizam esta ferramenta diariamente, assim sendo porque não integrar nossas aplicações ao Skype? Através do Skype API podemos efetuar chamadas, receber, encaminhar, criar vídeo conferência e muito mais, praticamente tudo está disponível através desta API. Nesta apresentação vamos aprender na prática como integrar nossas aplicações Delphi ao Skype e utilizar os componentes TMS Smooth Controls para criar interfaces ricas.

Published in: Technology
3 Comments
6 Likes
Statistics
Notes
No Downloads
Views
Total views
11,216
On SlideShare
0
From Embeds
0
Number of Embeds
839
Actions
Shares
0
Downloads
214
Comments
3
Likes
6
Embeds 0
No embeds

No notes for slide

Integrando Skype em aplicações Delphi

  1. 1. Integrando Skype em aplicações Delphi<br />Andreano Lanusse<br />Technical Lead Evangelist, Developer Relations<br />
  2. 2. O que é Skype?<br />P2P Internet Telephone – VOIP<br />Computador para Computador<br />Computador para Telefone (SkypeOut)<br />Telefone para Computador (Skypein)<br />P2P Instant Messenger<br />Tópics<br />Históricos<br />P2P Application Framework<br />
  3. 3. O que é Skype?<br />Mais de 500 milhões de downloads<br />Mais de 130 milhões de usuários ativos<br />4 a 8 milhões de usuários simultâneos<br />250000 novos usuários por dia<br />
  4. 4. O quão amigável é o Skype<br />Delphi amigável<br />Windows Client escrito em Delphi<br />Usa Indy para as comunicações que não são P2P<br />SDK Tools escrito em Delphi<br />Algumas documentação e interfaces escritas em pascal<br />Exemplos<br />Delphi<br />C++<br />C#<br />VB<br />Phyton<br />
  5. 5. Desenvolvendo para Skype<br />Skype API<br />Método original de integração<br />Usa Windows Message<br />Muito flexível<br />Skype4COM / Skype4Java<br />EasyObjectWrappers<br />Menos flexível<br />Skype Extras<br />Plug-in Framework<br />
  6. 6. O que você precisa para usar Skype API<br />Instalação<br />Skype: http://www.skype.com<br />Nenhum outro arquivo necessário<br />Documentação<br />API – https://developer.skype.com/Docs/ApiDoc<br />Dev Notes - https://developer.skype.com/Docs/DevNotes<br />Este apresentação<br />Vamos focar no Skype API e Skype4COM<br />
  7. 7. Usando Skype API<br />Conectando ao Skype<br />Registrar ‘SkypeControlAPIDiscover’ windows message<br />Registrar ‘SkypeControlAPIAttach’ windows message<br />Broadcast ‘SkypeControlAPIDiscover’ windows message<br />Skype responde com um ‘SkypeControlAPIAttach’ message<br />Identificao o Protocolo de referência<br />procedure TSkypeAPI.Connect;<br />begin<br />if IsSkypeInstalled then<br />begin<br /> FSkypeAPIDiscover := RegisterWindowMessage('SkypeControlAPIDiscover');<br /> FSkypeAPIAttach := RegisterWindowMessage('SkypeControlAPIAttach');<br /> SendMessage(HWND_BROADCAST, FSkypeAPIDiscover, Handle, 0)<br />end;<br />end;<br />
  8. 8. Definindo Protocolo - Skype API<br />Define qual protocolo usar<br />Override WndProc<br />procedure TSkypeAPI.WndProc(var Message: TMessage);<br />begin<br />if Message.Msg = FSkypeAPIAttach then<br />begin<br />if Message.LParam = 0 then<br />begin<br /> FSkypeAPIWindow := Message.WParam;<br /> SendCommand('PROTOCOL '+IntTostr(FProtocol));<br />end<br />else<br />if Assigned(FOnConnectStatus) then<br />caseMessage.LParam of<br /> 1: FOnConnectStatus(Self,csWaitingForConfirmation);<br /> 2: FOnConnectStatus(Self,csDenied);<br /> 3: FOnConnectStatus(Self,csNotAvailable);<br />else<br /> FOnConnectStatus(Self,csNotAttached);<br />end;<br />Message.Result := 1<br />end else<br />inherited;<br />end;<br />
  9. 9. Send Command - Skype API<br />Definir parâmetros através da estrutura CopyDataStruct<br />procedure TSkypeAPI.SendCommand(Str: String);<br />var<br /> CopyData: CopyDataStruct;<br />begin<br />if Str <> '' then<br />begin<br /> CopyData.dwData := 0;<br /> CopyData.lpData := PChar(Str);<br /> CopyData.cbData := Length(Str)+1;<br /> SendMessage(FSkypeAPIWindow, WM_COPYDATA, Self.Handle,LPARAM(@CopyData));<br />end;<br />end;<br />
  10. 10. Receive Command - Skype API<br />Espere pelo WM_COPYDATA message<br />lpData recebe o comando como PAnsiChar<br />procedure TSkypeAPI.WMCopyData(var Message: TWMCopyData);<br />var<br /> msg : String;<br />begin<br />if (Message.From = FSkypeAPIWindow) and<br /> (FSkypeAPIWindow > 0) then<br />begin<br /> msg := PAnsiChar(Message.CopyDataStruct.lpData)<br /> Message.Result := 1<br />end;<br />end;<br />
  11. 11. Skype API Wrapper<br />Jason Southwell e Dr. Bob criaram o componente TSkypeAPI<br />Skype API wrapper<br />Código disponível no CodeCentral, facilita o uso do Skype API<br />
  12. 12. Comandos - Skype API<br />Phone Control<br />AUDIO IN | OUT, HOOK ON | OFF, MUTE ON | OFF, BTN_PRESSED, BTN_RELEASED<br />Voice Calls<br />CALL | GET CALL | SET CALL INPROGRESS | SET CALL FINISHED | SET CALL ONHOLD | SET CALL JOIN CONFERENCE | SET CALL DTMF | SET CALL SEEN | ALTER CALL | GET CALL CAN TRANSFER | ALTER CALL TRANSFER<br />Managing call forwarding<br />GET PROFILE CALL APPLY CF | SET PROFILE CALL APPLY CF | GET PROFILE CALL FORWARD RULES | SET PROFILE CALL FORWARD RULES | GET PROFILE CALL NOANSWER TIMEOUT | SET PROFILE CALL NOANSWER TIMEOUT | GET PROFILE CALL SEND TO VM | SET PROFILE CALL SEND TO VM | <br />
  13. 13. Comandos - Skype API<br />Sending and managing SMS messages<br />CREATE SMS | SET SMS BODY | ALTER SMS SEND | SET SMS SEEN | SET SMS REPLY TO NUMBER | SET SMS TARGET NUMBERS<br />Custom Application Communication<br />AP2AP CREATE | AP2AP CONNECT | AP2AP WRITE | AP2AP DATAGRAM | AP2AP READ | AP2AP DISCONNECT | AP2AP DELETE <br />Making and managing video calls<br />GET VIDEO IN | SET VIDEO IN | GET CALL VIDEO STATUS | ALTER CALL VIDEO SEND | ALTER CALL VIDEO RECEIVE | GET CALL VIDEO SEND STATUS | GET CALL VIDEO RECEIVE STATUS | IS VIDEO CAPABLE | OPEN VIDEOTEST | OPEN OPTIONS VIDEO <br />
  14. 14. Comandos - Skype API<br />Managing contacts and groups<br />GET GROUP USERS | GET GROUP VISIBLE | GET GROUP EXPANDED | GET GROUP DISPLAYNAME | SET GROUP DISPLAYNAME | GET GROUP TYPE | CREATE GROUP | DELETE GROUP | ALTER GROUP ADDUSER | ALTER GROUP REMOVEUSER | SET USER DISPLAYNAME<br />Lista completa de comandos<br />https://developer.skype.com/Docs/ApiDoc/Commands<br />
  15. 15. Demo Skype API<br />
  16. 16. O que você precisa para usar Skype4COM<br />Instalação<br />Skype: http://www.skype.com<br />Skype4COM.dll<br />http://developer.skype.com/accessories<br />Precisa registrar a DLL<br />ObjectWrapper para API<br />Ajuda a entender os comandos da API<br />
  17. 17. Objetos principais - Skype4COM<br />Skype (ISkype)<br />Core integration object<br />Fornece acesso a maioria dos objetos<br />Componente “Visual” quando importado<br />Drop no form o crie em runtime<br />Application (IApplication)<br />Crie aplicações p2p usando o Skype framework<br />IApplication tem conflito com VCL TApplication, referencie Forms.Application para evitar este problema<br />
  18. 18. Demo Skype4COM<br />Usando VCL<br />Usando TMS Smooth Controls <br />
  19. 19. Exemplos<br />Código fonte disponível para download<br />http://cc.embarcadero.com/Item/27742<br />
  20. 20. Perguntas<br />EDN – Embarcadero Developer Network<br />http://edn.embarcadero.com/br (Artigos e Vídeos)<br />Trial Download<br />http://www.embarcadero.com/downloads<br />Código fonte disponível para download<br />http://cc.embarcadero.com/Item/27742<br />
  21. 21. Dados para Contato<br />Email:Andreano.Lanusse@embarcadero.com<br />Blog:http://www.andreanolanusse.com<br />Twitter:http://twitter.com/andreanolanusse<br />

×