Fring interop had to violate Skype’s license. Here’s why.

I’ll try to wrap up a few of our season’s stories as we end Summer 2010, at least here in the Northern Hemisphere. First up, Fring.

Fring home page: Skype BANNED!

This July Skype talked with Fring and Fring turned off customer access to its Skype network gateway

Skype told Fring that Fring was in breach of Skype’s contracts: the Public API ToS and the general Skype EULA. Look to Section 3 of the API Terms of Use (below the fold). A basic reading shows Skype was right: You can’t build what Fring built without breaking Skype’s rules.

For example, Fring uses a "Mobile Thin Client – Fat Server" design that keeps mobile clients small, flexible, and fast. The mobile software provides one user experience while the server logs into your accounts on multiple voice and IM networks. Skype’s ToS forbids a service like Fring holding your Skype login data on the server. This is a valid security concern. Other companies use the OAuth and OAuth 2 protocols to solve this problem. This lets tens of thousands of companies connect users to Google, facebook, Yahoo!, Microsoft, twitter, and others. Not Skype. So Fring is stuck between the "password anti-pattern" of storing a user’s Skype login credentials on their server and forcing a mobile Skype user to login repeatedly (annoyingly) every time they lose a Wi-Fi or wireless connection. Fring dropped Skype.

Fring dropped Skype despite investing precious manpower, cash, brand, and technology integrating their mobile service with Skype. Fring had committed themselves to helping Skype users access Skype even when Skype wouldn’t. When Skype wouldn’t offer their own thin client to US Android customers, Fring did. When Skype didn’t offer free Skype-to-Skype voice calls over wireless 3G, Fring did. When Skype didn’t offer mobile video calling on any platform except for the Nokia tablets, Fring did.

Fring bet on Skype’s stated commitment to a third-party developer ecosystem, attracted by the value of the Skype network.

Fring bet wrong.

On technical grounds, Skype wasn’t ready for a third-party to host such a massive gateway. The concentration of Skype clients coming out of one server farm threatened to overload a neighborhood of Skype’s P2P network cloud.

On security grounds, Skype wasn’t prepared to offer waive the password issue. Although Skype couldn’t/wouldn’t offer a technical alternative, Skype wasn’t prepared to trust the Fring company with Skype customer logins.

On brand integrity terms, Skype hated that Fring’s audio quality wasn’t up to their own very high PC-to-PC standards. Skype worried Fring’s video quality wasn’t comparable to Skype’s PC-to-PC video quality. That, frankly, is balderdash: Skype accepts lower quality audio for its own Skype mobile thin clients used in the Verizon Wireless and Three partnerships.

Skype had a pretty strong contractual argument, which I’ll step through below. They threatened Fring with overwhelming force ("Skype will rigorously protect our brand and reputation, and those developers that do not comply with our terms will be subject to legal enforcement") if Fring didn’t completely change its technology architecture, reallocate engineering resources, and its consumer value propositions. Fring managers told me Skype’s lawyer’s intensity rose until Fring didn’t think there was any way to negotiate. So Fring turned off their Skype gateway and removed the Skype feature from their web and mobile clients.

Here’s why this was good for Skype.

  • Fring proves a Skype gateway is a money-making proposition.
  • Skype showed it is big enough to push around even mid-sized partners.

Here’s why this was horrible for Skype.

Skype demonstrated inflexible and indelicate treatment of third-party developers. Again. Skype’s heavy hand made it look like a bully. The timing is horrible as Skype prepares to widen its SkypeKit developer program and to pave the way for Skype’s 2011 cloud communication developer program. Skype builds a counter case just when Skype should be earning developer trust and love.

This must be chilling for all the companies that operate Skype gateways. Nimbuzz and Voxeo come to mind.

Fring is not an easy partner. This small Israeli startup leads with passion, aggressively seeks opportunities, takes debates to the press, and has an operations tempo out of sync with large MBA-driven companies like Skype. Fring started this relationship without Skype’s blessing, in the spirit of the now defunct Skype Developer Program. Fring went beyond the simple architecture of Skype’s early days, enshrined in Skype’s ToS. Fring may even have had difficulty preserving Skype’s wideband audio quality.

Yet Skype could have found a better way to bring Fring into the Skype family. A memorandum of understand. A bridge ToS to last until Skype could offer Fring the SkypeKit  SDK for Fring’s gateway or Skype’s own hosted gateway. A SILK license and access to in-house codec transcoding experts. Skype could have walked an encouraging path without the bitter aftertaste of intimidation and the harsh public reminder that soft skills matter.

Happy fring face

Here’s my detailed, blunt and plain-English translation of the Skype Public API Terms of Use and how it applied to the Fring 2010 case… [I am not a lawyer.]


API Terms of Use

IMPORTANT — PLEASE READ CAREFULLY:

These Skype API Terms of Use ( "API Terms") set out the terms and conditions of use of the Skype API. If You want to use the Skype API for any purpose (including without limitation, in connection with an application or software program or for the purpose of interfacing with hardware), You must first register with Skype by completing and providing accurate contact information on the Skype Partner enquiry form available at the Skype Website (the "Registration"). By submitting Your Registration to Skype and / or using Skype API, You explicitly agree to be bound by these API Terms and any revised or renewed versions thereof, as will be published on the Skype Website or as may be otherwise notified to You by Skype. Skype reserves the right, at its sole discretion, to refuse or reject Your Registration.

In addition to the capitalised terms defined elsewhere in these API Terms, all other capitalised definitions used herein shall have the meaning given to them in the Skype End User Licence Agreement ("EULA") as published on the Skype Website at www.skype.com/intl/en/legal/eula/.

The software comes with these terms. Live with it.

You and Skype agree as follows:

1.2 This licence does not grant to You any right to any version enhancement, update, or guarantee the continuous availability of the Skype API or the Skype Software. Skype may revise, modify or cease to provide, require you to immediately cease using the Skype API, the Skype Software or its functionality or any part thereof, which may result in loss of compatibility, denial of access to the functionality of the Skype Software or the Skype network, system, Skype Website, servers, tools, information and databases, commercial activities related thereto, from time to time without notice.

You’re on your own if we break things.

3. Your right to use the Skype API under paragraph 1 above is subject further to Your compliance with the following:

3.1 Your Software Application or Hardware Device (as applicable) shall in no way and to no extent whether directly or indirectly adversely affect, impede or otherwise hinder or disrupt the functionality or performance of Skype Software or products or services provided by Skype, including without limitation, that it:

This is the performance part.

(i) does not adversely impact the call quality of using Skype Software;

This is a real issue with Fring. Fring wasn’t using Skype’s SILK audio codec in their mobile client or in their media transcoding system. There was no way for them to offer Skype’s wideband audio quality.

(ii) does not adversely impact the stability of Skype;

This refers to the Skype client in particular and the Skype network in general. This wasn’t an issue since Fring had built all sorts of code to keep Skype clients running vigorously in their server farm.

(iii) does not adversely impact the behaviour of other applications using the Skype API;

Again, not a problem. Since Skype was in a server farm, no other applications but Fring’s were talking to any of the Skype clients. 

(iv) does not attempt to install spyware or malware on the client computer;

Not a problem since Fring had complete control of the client computers.

(v) does not attempt to redistribute information about the use of Skype Software or Skype services without express permission of the user;

Fring’s privacy policies cover this, assuring users their activity is kept private except as required by law.

(vi) correctly identifies itself to Skype when requesting authorisation;

Refers to the way Fring’s server app talks to a Skype client in the server farm. Not a problem.

(vii) does not attempt to send messages or place calls to or communicate with other users of Skype Software unless specifically directed to do so by the user; and

Not a problem.

(viii) does not attempt to modify the Skype Software User Interface in any way.

Not a problem since users never saw the Skype user interface. 

3.2 Without the prior written consent of Skype, You will not remove or hide (save as permitted in API command "set silent_mode on"), modify, take over or otherwise alter the User Interface. At all times, You will comply with the requirements and specifications relating to application design and use and presentation as stated in Paragraph 4 below.

Whoops.

This is exactly what Fring did. It offered an alternative user interface so you never saw the Skype client.

Skype might have waived this since they’ll be removing this clause for the SkypeKit API.

Skype chose not to.

3.3 Save as expressly approved in writing by Skype, You will not distribute the Software Application or Hardware Device (as applicable) online through website(s) that in Skype’s opinion is/are in any way similar to, or infringe the intellectual property rights of the Skype Website or use Skype’s trademarks or words describing Skype’s products or services as the registered URL for website(s).

Means: Don’t make believe you are Skype.

Fring went to great lengths to comply. They never used the Skype logo. They created a little "SKP" badge as a stand-in logo.

3.4 You will at all times maintain the value and reputation of the Skype Software, Skype API and Skype brand or name, to the best of Your abilities.

This was in Fring’s interest.

3.5 You will not use the Skype API in any Software Application or Hardware Device (as applicable) that in Skype’s opinion is actually or potentially fraudulent or inappropriate or contrary to the EULA or any other Additional Terms.

"In Skype’s opinion…" is the point. Skype can shut you down if they think you’re even "potentially" going to breach the EULA.

3.6 You will not collect any user’s personal information or data in a misleading, illegal, unauthorised or unfair way. Without limiting the generality of the foregoing, You will never collect, store or record Skype password used by the users to log-in to his or her Skype account ( "Skype Password"). If users need a separate password to use Your Software Application or Hardware Device (as applicable), You will either (i) automatically generate a unique password and securely communicate it to the user or (ii) not permit users to use a password that is the same as the user’s Skype Password. You agree that the services and products provided through Your Software Application or Hardware Device shall be provided by You in compliance with all applicable laws and regulations (including without limitation those relating to the protection of privacy and the processing of personal data or traffic data).

A few parts to this:

"You will never collect, store or record Skype password used by the users to log-in to his or her Skype account ( "Skype Password").  This goes straight to the Password Antipattern issue.

"If users need a separate password to use Your Software Application or Hardware Device (as applicable), You will either (i) automatically generate a unique password and securely communicate it to the user or (ii) not permit users to use a password that is the same as the user’s Skype Password." This is problematic. Most people use the same login on multiple systems. Should Fring compel users to alter their other logins?

3.7 You will not use the Skype API to create a Software Application or Hardware Device that sends unsolicited communications (whether commercial or otherwise) to any third party.

No spam? Not a problem.

3.8 You agree that You are solely responsible for (and that Skype has no responsibility to You or to any third party for) any services and/or products You provide through Your Software Application or Hardware Device.

Fring was cool with indemnifying Skype for Fring’s products.

Cool right up to the point that Skype threatened to shut them down.

When you offer an API, is there a promise to keep the service available?

4. You hereby specifically acknowledge that Your rights to use the Skype API are strictly subject to Your full compliance with these API Terms, including the following instructions related to promotion, marketing and design of Your Software Application or Hardware Device (as applicable), and any breach of any provision of these API Terms or any applicable Additional Terms shall give rise to automatic right of termination by Skype.

Skype controls how you use Skype’s trademarks and symbolmarks. 

4.1 In respect of the Software Application Purpose only, You may only use the following references to Skype, Skype API and Skype Software in connection with Your Software Application:

  • "works with Skype Software" or "works with Skype"
  • "uses Skype Software" or "uses Skype"
  • "for Skype Software" or "for Skype"

Be clear that your product is not from Skype in your packaging, signage and tag lines.

4.2 You acknowledge that the Software Application or Hardware Device (as applicable) must prominently display the following statement in the help text or about text, in the Acknowledgements in the documentation associated with Your Software Application or Hardware Device (as applicable) and the packaging and other promotional material:
"This product uses the Skype API but is not endorsed, certified or otherwise approved in any way by Skype"
The foregoing will not apply provided the Software Application or Hardware Device (as applicable) has been certified according to Skype’s Certification Program https://developer.skype.com/Certification.

And here’s fine print stick wherever you stick fine print.

4.3 The Software Application or Hardware Device (as applicable) may only use icons from Skype’s archive of application icons in reference to Skype.

Only use our approved art inside your software or on your gadget. 

5. Nothing in these API Terms will give You any right to use the Skype Promotional Materials, including without limitation the Skype trademarks and logos, or make references to Skype or Skype’s products or services other than those explicitly stated in paragraph 4 above. Unauthorised references or use of Skype Promotional Materials shall be considered as material breach of these API Terms and shall result in immediate termination thereof, as well as any other applicable Additional Terms You may have entered into with Skype. Such termination shall be without limitation to Skype’s right to claim damages, seek for injunctive or other equitable relief and obtain other remedies from You.

While you can use our logos, icons and other art to promote your software, stick to that use.

6. At all times, You must constantly monitor the Skype Website to ensure You are aware of any changes in the API Terms, the EULA or any other applicable Additional Terms. In the event You cannot agree on any changes in any applicable legal document, You will immediately cease any and all use of the Skype API and, where applicable, any and all use of the Skype Software.

Monitor this document. If you won’t bind yourself to our product, sod off and stop using Skype’s APIs.

7. You represent and warrant that You are authorised to agree to and meet with the terms and conditions of the API Terms

If you’re using Skype, you’re authorized by your organization to bind the organization.

8. You acknowledge and agree that Your use of the Skype API will be at Your own risk and account. You agree, on demand, to indemnify, defend and hold Skype, its Affiliates and staff harmless from and against any and all liability and costs, including reasonable attorneys’ fees incurred by such person, in connection with or arising out of (a) Your use of the Skype API or (b) any breach or violation of the terms and conditions of these API Terms and any other applicable Additional Terms and (c) the provision by You of any Software Application or Hardware Device You develop using the Skype API.

If you mess with us, you’ll pay us for our enforcement costs.

9. Skype reserves the right to modify these API Terms at any time, on a general or individual basis, by publishing the revised API Terms on the Skype Website or by otherwise notifying You of the revised API Terms. Any eventual modification of the API Terms that establishes Skype’s right to charge royalties is subject to a three (3) months’ prior notice thereof. Your continued use of the Skype API shall constitute Your acceptance to be bound by the terms and conditions of the revised API Terms.

If Skype decides to charge for using the API, Skype will give three months’ notice.

10. In the event that You wish to use the Skype API in a manner other than as expressly set out in these API Terms such use is expressly prohibited unless and until Skype enters into a specific licence with You.

Don’t start using Skype before you cut a deal for a separate license.

12.2 You may terminate these API Terms with immediate effect at any time. Without limiting other remedies, Skype may limit, suspend or terminate these API Terms (the EULA and any other Additional Terms) and Your use of the Skype API at any time if we think that You are in breach of these API Terms or if we think that You have acted in a way which shows that you do not intend to comply with these API Terms. In addition, Skype may terminate these API Terms with immediate effect at any time, for any reason, including but not limited to, if You engage in any action that in Skype’s opinion devalues Skype’s brand or reputation or the Skype Software or Skype API.

If you don’t like it, leave.

If we feel like it, we will kick you off or throw lawyers at you.

12.3 Upon termination of these API Terms by You or by Skype for any reason: (a) all licenses and rights to use the Skype API shall immediately terminate and (b) You will immediately cease any and all use of the Skype API.

Done is done. 

© Skype – Last revised: September 2008

See also:

Call me at +1-510-343-5664, Skype me, follow @SkypeJournal and @evanwolf. Visit our Skype Journal private technologist roundtable, one of the longest running public Skype chats. 

Post Revisions:

7 years and 2 days since Skype Journal launched as a stand-alone blog.

Topics