plug into messaging l.
Skip this Video
Loading SlideShow in 5 Seconds..
Plug Into Messaging PowerPoint Presentation
Download Presentation
Plug Into Messaging

Loading in 2 Seconds...

play fullscreen
1 / 24

Plug Into Messaging - PowerPoint PPT Presentation

  • Uploaded on

Plug Into Messaging Extend the Messaging Experience Gregory Cypes, Principal Software Engineer AIM What is the AIM Developer Program? An engineering-driven effort at AOL to position AIM as a premier “Web 2.0” platform

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Plug Into Messaging' - Leo

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
plug into messaging

Plug Into Messaging

Extend the Messaging Experience

Gregory Cypes, Principal Software Engineer


what is the aim developer program
What is the AIM Developer Program?
  • An engineering-driven effort at AOL to position AIM as a premier “Web 2.0” platform
  • A comprehensive set of APIs, each targeted at different types of applications
  • A business model where AOL can freely support innovation, while retaining the ability to maintain network integrity
what are the goals of open aim
What are the goals of Open AIM?
  • Help 3rd party developers to derive revenue from successful innovations on the AIM platform
  • Make it known that AOL is interested in openness and building platforms
  • Enhance the value of the AIM network by allowing developers to innovate on our platform
components of open aim
Components of Open AIM
  • Web AIM APIs (sometimes referred to as WIM)
    • Whimsicals
      • Javascript embed-able objects (buddy list, presence, IM)
    • Wimzi
      • Javascript or Flash embed-able object for anonymous IM
    • Direct Server APIs
  • SDK APIs
    • Custom Clients
    • Plugins
    • Bots
aim sdk info
  • Core AIM technology library, supports all AIM functionality
  • High Level COM API
  • Platform supports for…
    • Windows
    • Mac OS X
    • Linux
  • Windows Mobile
  • Uses proven third-party technology
    • NSS (Mozilla) for security
    • sipXtapi (Pingtel) or RTC (Microsoft) for audio/video
  • Used internally at AOL for AIM 6.x and others
  • Usable by Java via Java wrapper
more sdk info
More SDK Info
  • Custom Clients
    • Build your own AIM experience into an application
    • Build it on a device
  • Plugins
    • Full access to the API to build and extend features of AIM
  • Bots
    • Full API…bots can do file transfer, a/v etc.
what can it do for you
What can it do for you?

PC-PSTN audio calls

Preference Management

PC-PC video calls

Presence lookup from email

Military-grade encryption of all communications

Email and toaster alerts

Custom presence info

AIM location services

ICQ/federated interop

AIM directory info

Location Services

Report spam/Notify

Custom p2p sessions for data streaming

  • Presence/Buddy List
  • File Transfer
  • IM Sessions/Chat rooms
  • Image Transfer
  • SMS/IM Forwarding
  • Buddy List Transfer
  • Expressions and emoticons
  • File Sharing
  • Away messages and profiles
  • PC-PC audio calls and conferences
  • Expressions and emoticons
  • File Sharing
  • Privacy Management
aim custom clients
AIM Custom Clients
  • Standalone AIM applications built on top of Open AIM
  • Allows for creation of specialized clients
  • Automatic support for AIM plugins
  • Can be deployed as a server
  • Custom Clients deployed in the field today
    • SuperComputer International’s Playlinc client (gamer’s client)
    • Web Ex’s AIM Pro client (Enterprise client)
    • Doppleganger’s PCD Lounge (music lovers experience)
    • AIM Lite (simple client experience)
    • AIM Express (Web based client)
    • And more to come…
open aim plugins
Open AIM Plugins
  • Code that is loaded inside the AIM application when it signs onto the AIM service
  • In-proc COM objects, can be written using standard tools in any language that supports COM
  • Full support for Visual 2005 and WPF/XAML
  • Full Open AIM API exposed to plugins; in general, anything AIM can do, a plugin can do
  • AIMCC responsible for loading plugins, so plugins can function in any AIMCC-based application
  • Can interact with the host application UI; e.g. adding commands to AIM 6.x’s “Actions” menu, Buddy List right-click menu and IM Window.
plugin api
Plugin API
  • Plugins primarily interact with 4 main interfaces:
    • IAccPlugin – implemented by plugin to allow for initialization and shutdown
    • IAccSession – called by plugin to perform AIM operations (e.g. create A/V conversation)
    • DAccEvents – desired event handlers implemented by plugins (e.g. when an A/V session is initiated.)
    • IAccCommandTarget – optional; implemented by plugin to receive commands from AIM UI
open aim widgets
Open AIM Widgets
  • Available for AIM Lite (; and for AIM 6.x
  • Uses JavaScript and Boxely UI technology for rapid development and deployment of plugins
  • Widgets have full access to the Open AIM API
  • Widgets are zip files that contain:
    • JavaScript
    • Manifest file containing Open AIM key and plugin information
    • Optional Boxely file, if your plugin contains UI
aim location services
AIM Location Services
  • Currently a plugin for AIM 6.x and Open AIM clients
  • Opt-In plugin shares location info with users on your buddy list
  • Integrated with Mapquest’s API to plot buddies on the map
  • First plugin that uses the Boxely engine to render UI
  • Available via the web APIs – Can be used by cell phones
  • Set your location outside your client via an AIM Location Web page
open aim bots
Open AIM Bots
  • Bots are automated AIM clients
  • Typically, writing a bot involves writing a lot of basic stuff for login, authentication, etc, and only basic text functionality supported
  • With AIMCC, all bot infrastructure is provided; developers can simply focus on their business logic
  • AccBot shell application loads bot “plugins” that perform the bot functionality
  • Bots can fully access enhanced IM functionality, including file transfer, audio/video, images
  • Some ideas:
    • Easy upload of images and podcasts to AOL Journals
    • Send an IM with a location, get back a map
    • Dial-A-Song
keys and fingerprints
Keys and Fingerprints
  • All AIM Developer APIs require keys
  • Keying allows us to identify who is using our network, and to restrict/deny access if abuse occurs
  • A key is a unique text string; common practice for Web APIs (Google Search, Google Maps)
  • Keys for plugins and clients require fingerprints
  • Fingerprinting prevents unauthorized use of a key
  • A fingerprint is a SHA-256 hash of a DLL or EXE
  • AIMCC automatically sends keys and fingerprints to the AIM servers during login
  • Web service requests include key in the URL
  • Separate keys for Web Services, Plugins, and Custom Clients
  • Plugin and client keys have different “levels”
    • Development key – no fingerprint required, but usage limited to ~200 logins/day
    • Deployment key – fingerprint required, usage limited to ~200K logins/day or 2M logins/month
    • Unlimited key – fingerprint required, no usage limits
  • Web services keys also have usage limits
  • Unlimited keys require a relationship with AOL
aim urls
AIM: Urls
  • aim: scheme URLs can allow web pages to pass commands to AIM clients
  • Complements AIM web services
  • Some examples:
    • aim:addBuddy?screenname=<sn> (adds buddy to buddylist)
    • aim:goIM?screenname=<sn> (brings up IM window)
    • aim:goTalk?screenname=<sn> (brings up Talk window)
    • aim:buddyIcon?src=<url> (sets buddy icon)
  • Low-tech but simple way to integrate
open aim examples deployed today
Open AIM Examples Deployed Today
  • Custom Clients
    • Doppelganger’s PCD Lounge
    • Playlinc
    • AIM Pro
  • Plugins
    • Obopay
    • AIM Tunes
    • QQ Games
  • Bots
    • Prof. Gilzot
    • Spleak
  • And More to Come…
still not convinced
Still not convinced?
  • 3 Steps to integrate Web IM
  • AIM Widgets
    • Visual Studio not required
  • Turn key solution
  • AIM Gallery
    • Easy to upload finished work
    • Comments and feedback built into the site
getting started
Getting Started
  • Official site - to get keys and download the SDK
  • Read the Quickstart guide
  • Look at the plugin tutorials
  • Look at the sample code
  • Look at the interface docs available online
    • Searchable via Your Favorite Search Engine
  • Let us know what obstacles you ran into
contact info
Contact Info
  • AIM Developer main page
  • Get Plugins, Bots, Clients and other goodies
  • My Info