AT&T 2011 Developer Support:

goatishspyMobile - Wireless

Dec 10, 2013 (3 years and 6 months ago)

67 views



© 2007 AT&T Knowledge Ventures

AT&T
2011 Developer Support:

U
-
verse
Enabled

Developer
Guidelines


Document Number


Revision

0.
7

Revision Date

0
8
/
22
/11








Re
vision History

© 2007 AT&T Knowledge Ventures

This document and the information contained herein (collectively, the "
Information
") is provided to you (both the individual r
eceiving
this document and any legal entity on behalf of which such individual is acting) ("
You
" and "
Your
") by AT&T, on behalf of itself and
its affiliates ("
AT&T
") for informational purposes only. AT&T is providing the Information to You because AT&T bel
ieves the
Information may be useful to You. The Information is provided to You solely on the basis that You will be responsible for mak
ing
Your own assessments of the Information and are advised to verify all representations, statements and information bef
ore using or
relying upon any of the Information. Although AT&T has exercised reasonable care in providing the Information to You, AT&T do
es
not warrant the accuracy of the Information and is not responsible for any damages arising from Your use of or reli
ance upon the
Information. You further understand and agree that AT&T in no way represents, and You in no way rely on a belief, that AT&T i
s
providing the Information in accordance with any standard or service (routine, customary or otherwise) related to t
he consulting,
services, hardware or software industries.


AT&T DOES NOT WARRANT THAT THE INFORMATION IS ERROR
-
FREE. AT&T IS PROVIDING THE INFORMATION TO YOU
"AS IS" AND "WITH ALL FAULTS." AT&T DOES NOT WARRANT, BY VIRTUE OF THIS DOCUMENT, OR BY ANY COU
RSE OF
PERFORMANCE, COURSE OF DEALING, USAGE OF TRADE OR ANY COLLATERAL DOCUMENT HEREUNDER OR
OTHERWISE, AND HEREBY EXPRESSLY DISCLAIMS, ANY REPRESENTATION OR WARRANTY OF ANY KIND WITH
RESPECT TO THE INFORMATION, INCLUDING, WITHOUT LIMITATION, ANY REPRESEN
TATION OR WARRANTY OF
DESIGN, PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON
-
INFRINGEMENT, OR
ANY REPRESENTATION OR WARRANTY THAT THE INFORMATION IS APPLICABLE TO OR INTEROPERABLE WITH ANY
SYSTEM, DATA, HARDWARE OR SOFTWARE OF ANY KI
ND. AT&T DISCLAIMS AND IN NO EVENT SHALL BE LIABLE FOR
ANY LOSSES OR DAMAGES OF ANY KIND, WHETHER DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE,
SPECIAL OR EXEMPLARY, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
INT
ERRUPTION, LOSS OF BUSINESS INFORMATION, LOSS OF GOODWILL, COVER, TORTIOUS CONDUCT OR OTHER
PECUNIARY LOSS, ARISING OUT OF OR IN ANY WAY RELATED TO THE PROVISION, NON
-
PROVISION, USE OR NON
-
USE
OF THE INFORMATION, EVEN IF AT&T HAS BEEN ADVISED OF THE POSSIB
ILITY OF SUCH LOSSES OR DAMAGES.


© 2009 AT&T Intellectual Property. All rights reserved.


All marks, trademarks, and product names used in this document are the property of their respective owners.



Date

Revis
ion

Description

07/27
/11

.1

Initial draft. Author
Karim Varela.

08/09
/11

.2

Included TOC from Caroline.

08/10/11

.3

Included contact information by suggestion of James O’Neal.

〸⼱㘯SN



䥮f敧ra瑥t Am䤠f敳cri灴p潮s⁩湴漠o潣.

cille搠d渠
Publishing Apps
to Stores
.

08/17/11

.5

Included required information from Customer Care.

0
8/19/11

.6

Updated defined terms.

08/22/11

.7

Included FAQs and getting started steps from getting started doc.





Re
vision History

© 2007 AT&T Knowledge Ventures


Authors


Name

Role

Karim Varela

Lead author

Carl Bedingfiel
d

API Overview author

James O’Neal

䍯湴ri扵t潲

䍡C潬i湥⁓i湣l慩r

䍯湴ri扵t潲

Bria渠ni湮ick

䍯湴ri扵t潲


Table of Contents

© 2007 AT&T Knowledge Ventures

1.

Introduction & Approach

................................
................................
................................
.........................

1

1.1

Defined Terms

................................
................................
................................
..............................

1

1.2

Developer Guidelines Terms and Conditions

................................
................................
...............

1

2.

API Overview

................................
................................
................................
................................
..........

2

2.1

Introduction

................................
................................
................................
................................
...

2

2.1

iOS API

................................
................................
................................
................................
.........

2

2.3

Android API

................................
................................
................................
................................
...

3

2.4

STB Disc
overy States

................................
................................
................................
...................

4

2.5

Remote Control Keys

................................
................................
................................
....................

4

2.6

Error Responses

................................
................................
................................
...........................

5

3.

Getting

Started
................................
................................
................................
................................
........

7

3.1

Set up the
resource

file in the iOS application bundle.

................................
................................
.

7

3.2

Set the DCS URL in your code.

................................
................................
................................
....

7

3.3

Register for relevant notifications

................................
................................
................................
.

7

3.3.1

UverseConnectedManager Notifications

................................
................................
.........

7

3.3.2 SetTo
pBox Notifications

................................
................................
................................
......

7

3.4

Discovery

................................
................................
................................
................................
......

8

3.5

Pairing (aka Association)

................................
................................
................................
..............

8

4.

A
pplication Acceptance Policy

................................
................................
................................
................

9

4.1

Application FAQs

................................
................................
................................
..........................

9

4.2

Branding Requirements

................................
................................
................................
..............

10

4.3

User
-
Interface Requirements

................................
................................
................................
.....

10

4.4

Scraping and Aggregation

................................
................................
................................
..........

10

4.5

Goodwill (Community Guidelines)

................................
................................
..............................

10

4.6

Objectionable Content

................................
................................
................................
................

10

5.

Publishing Apps to Stores

................................
................................
................................
....................

12

5.1

Apple App Store

................................
................................
................................
..........................

12

5.2

Google Market

................................
................................
................................
............................

12

5.3

Windows Marketplace

................................
................................
................................
.................

12

6.

Advertising and Marketing

................................
................................
................................
....................

13

7.

Purchasing

................................
................................
................................
................................
............

14

8.

Common Tasks (Sample Code)

................................
................................
................................
...........

15


Table of Contents

© 2007 AT&T Knowledge Ventures

8.1

Pairing Guide

................................
................................
................................
..............................

15

8.2

Hello World

................................
................................
................................
................................
.

15

8.3

Streaming Audio

................................
................................
................................
.........................

15

8.4

Streaming Video

................................
................................
................................
.........................

15

8.5

Remote Control Commands

................................
................................
................................
.......

15

8.6

Media Room Platform (MPF) UI Elements

................................
................................
.................

15

8.7

Com
plementary Data

................................
................................
................................
..................

15

8.8

Detecting Events

................................
................................
................................
.........................

15

9.

Best Practices

................................
................................
................................
................................
.......

16

10.

Other

Useful Information

................................
................................
................................
......................

17

10.1

Contact AT&T Developer Support

................................
................................
..............................

17

10.2

Developer Guidelines Update Process

................................
................................
.......................

17

10.3

Developer Dashboard

................................
................................
................................
.................

17

10.4

App Submission

................................
................................
................................
..........................

17

10.5

Privacy and Legal Requirements

................................
................................
................................

17

11.

FAQs

................................
................................
................................
................................
.....................

18

11.1

Why can’t I connect my device to my receiver?

................................
................................
.........

18

11.2

How do I add

a receiver to my device?

................................
................................
......................

18

11.3

How do I remove a device?

................................
................................
................................
........

18

11.4

How do I change my connection settings?

................................
................................
.................

18

11.5

How do I rename my receiver?

................................
................................
................................
...

19

11.6

What should I do if the UverseConnectedManager initialization fails?

................................
......

19

11.7

How do I know if my connection to the SetTopBox is broken?

................................
..................

19

11.8

Do I need to do anything when my WiFi state changes?

................................
...........................

19

11.9

When should I use getLastEnabledSetTopBox()?

................................
................................
.....

19

11.10

Can I issue SetTopBox commands during the discovery process?

................................
...........

20

11.11

What is the minimum “return from standby” time?

................................
................................
.....

20

11.12

When I get a uvcSetTopBoxCommandDidFail notification, how do I know which command
failed?

................................
................................
................................
................................
.........

20

11.13

When is the UverseConnectedManagerDidFailToObtainLatestEnabledSetTopBox notification
fired?

................................
................................
................................
................................
...........

20

11.15

When should an application use the
UverseConnectedManagerDidobtai
nLastEnabledSetTopBox notification?

...............................

20


© 2007 AT&T Knowledge Ventures

1.

Introduction & Approach

This document has been
authored by the
developer ecosystem

CTO / product realization team. Its main
purpose is to detail AT&T’s

developer guidelines
f
or
the
U
-
verse

Enabled
platform and associated SDK.

For the developer, the purpose of this document is to inform you of what is possible with the U
-
verse
Enabled platform and the types of criteria against which AT&T will perform acceptance testing on your
applicati
on.


1.1

Defined Terms



AT&T U
-
verse Enabled Developer Ecosystem



the overall process for a developer to work
with AT&T to develop
U
-
verse Enabled

applications.



Companion or Companion Device



Mobile devices serve applications that interact with the TV,
they a
re considered “companions” to the TV’s set top box.




DCS


Device Context Server. Provides verification of app key and cert.



Paired



In order to run a
U
-
verse Enabled

application, each mobile device must first be “paired”
to the
AT&T U
-
verse Receiver (set

top box)
.



Receiver



the customer facing name for set to box that enables the user to watch and record
AT&T U
-
verse programming (may or may not be DVR enabled).


1.2

Developer Guidelines Terms and Conditions





© 2007 AT&T Knowledge Ventures

2.

API Overview

2.1

Introduction

This
section

lists the information and functions available to U
-
verse Connected application developers on
the iOS and Android device platforms.

2.1

iOS

API

The following Classes are available to the application over the iOS API:

Class

Definition

Description

SetTopBox

This class represents a physical
SetTopBox

This class stores STB properties, including
details about the STB (power status,”awake”
status, association status, IP address, device ID,
friendly name) and its activities (current
program, whether recording is
in progress)

This class also provides a method by which the
application can associate (the author prefers
“engage”
1
) with a specific STB., and a method by
which commands are sent to the STB

uvcBaseCommand

Base class for all Command
objects, should not be
instantiated
directly

This class contains common functions inherited
(used) by each of the following commands.

uvcInfoCommand

Command object for obtaining
information regarding the
program currently playing on the
SetTopBox

This command refreshes the prog
ram
information displayed in the STB class (see
uverseProgram, below)

This command is executed automatically
anytime the program information changes, so
the application typically does not have to use
this command.

uvcOpenAppCommand

Command object for inst
ructing
the SetTopBox to open an MPF
application URL

This command is used to open an MPF
application URL. Since MPF applications are not
usually created externally this command will not
typically be used. An example to the contrary
might be ES3 or Yahoo, w
ho
do

develop U
-
verse
MPF applications.

uvcRemoteButtonCommand

Command object for sending a
remote control command to the
SetTopBox

Used to send either a Remote Key command
(from a list of commands supported by the
Companion interface


see list below) or

an
alphanumeric character.

uvcTuneToCallLettersCommand

Command object for tuning the
SetTopBox to a channel using call
letters

Exactly what it says.

uvcTuneToChannelNumberCommand

Command object for tuning a
SetTopBox to a particular channel
using the ch
annel number

Exactly what it says.




1

Mnemonic: “Devices associate, applications engage.”


© 2007 AT&T Knowledge Ventures

uvcTuneToURLCommand

Command object for tuning the
SetTopBox to a URL

Exactly what it says.

U
-
verseConnectedManager

Centralized point of control for the
U
-
verse Connected ADK

This command allows the application to manage

the Set Top Box relationship. Functions include
starting and stopping the STB discovery process,
determining the last
-
enabled STB, and uploading
a log file for internal review (not normally used
by the application)

U
-
verseProgram

This is a simple data cl
ass
representing a program

Program data includes channel number, start
time, program title, description, episode title,
duration, type (live TV or DVR), and the
information required to tune to the program if
recorded.

2.3

Android

API

The following Classes

are available to the application over the Android API (at present they are the same
as the iOS Classes, except for the Class name):

Class

Definition

Description

UveSetTopBox

This class represents a physical
SetTopBox

Properties include details about the
STB (power
status,”awake” status, association status, IP
address, device ID, friendly name) and its
activities (current program, whether recording is
in progress)

This class also provides a method by which the
application can associate with a specific STB.
,
and a method by which commands are sent to
the STB

UveBaseCommand

Base class for all Command
objects, should not be
instantiated directly

This contains common functions inherited (used)
by each of the following commands.

UveInfoCommand

Command object f
or obtaining
information regarding the
program currently playing on the
SetTopBox

This command refreshes the program
information displayed in the STB class (see
uverseProgram, below)

This command is executed automatically
anytime the program information ch
anges, so
the application typically does not have to use
this command.

UveOpenAppCommand

Command object for instructing
the SetTopBox to open an MPF
application URL

Since MPF applications are not usually created
externally this command will not typically
be
used. An example to the contrary might be ES3
or Yahoo, who
do

develop U
-
verse MPF
applications.

UveRemoteButtonCommand

Command object for sending a
remote control command to the
SetTopBox

Used to send either a Remote Key command
(from a list of comman
ds supported by the
Companion interface


see list below) or an
alphanumeric character.

UveTuneToCallLettersCommand

Command object for tuning the
SetTopBox to a channel using call
Exactly what it says.


© 2007 AT&T Knowledge Ventures

letters

UveTuneToChannelNumberCommand

Command object

for tuning a
SetTopBox to a particular channel
using the channel number

Exactly what it says.

UveTuneToURLCommand

Command object for tuning the
SetTopBox to a URL

Exactly what it says.

UveManager

Centralized point of control for
the U
-
verse Connected AD
K

This command allows the application to manage
the Set Top Box relationship. Functions include
starting and stopping the STB discovery process,
determining the last
-
enabled STB, and uploading
a log file for internal review (not normally used
by the applic
ation)

See the current list of Discovery states below.

UveProgram

This is a simple data class
representing a program

Program data includes channel number, start
time, program title, description, episode title,
duration, type (live TV or DVR), and the
info
rmation required to tune to the program if
recorded.

2.4

STB Discovery States

State`

Meaning

NotInitialized

The Library is not initialized.

DiscoveryStarted

The Discovery process has started.

DiscoveringNetwork

The Library is discovering the network.


DiscoveryComplete

Discovery/Initialization has completed.

ForcedShutdown

The library has been forced to shut down by the network.

WaitingForWiFiConnection

The Library is waiting for a Wi
-
Fi connection.

DiscoveryFailed

The Discovery has failed.


2.5

Remote Control Keys

RK_asterisk


The * button

RK_pound


The # button

RK_zero


The 0 button

RK_one


The 1 button

RK_two


The 2 button

RK_three


The 3 button

RK_four


The 4 button

RK_five


The 5 button

RK_six


The 6 button

RK_seven


The

7 button

RK_eight


The 8 button

RK_nine


The 9 button

RK_app1


The App 1 button


© 2007 AT&T Knowledge Ventures

RK_app2


The App 2 button

RK_app3


The App 3 button

RK_app4


The App 4 button

RK_app5


The App 5 button

RK_app6


The App 6 button

RK_blue


The blue button

RK_green


The green button

RK_red


The red button

RK_yellow


The yellow button

RK_channelup


The Channel Down button

RK_channeldown


The Channel Up button

RK_up


The Up Navigation button

RK_down


The Down Navigation button

RK_left


The Left N
avigation button

RK_right


The Right Navigation button

RK_select


The Select button

RK_volumedown


The Volume Down button

RK_volumeup


The Volume Up button

RK_back


The Back button

RK_enter


The Enter button

RK_clear


The Clear button

RK_ex
it


The Exit button

RK_favorites


The Favorites button

RK_info


The Info button

RK_menu


The Menu button

RK_mute


The Mute button

RK_options


The Options button

RK_recordedtv


The Recorded TV button

RK_guide


The Guide button

RK_help


The H
elp button

RK_recent


The Recent button

RK_search


The Search button

RK_teletext


The Teletext button

RK_vod


The Video on Demand button

RK_ffwd


The Fast Forward button

RK_rwd


The Rewind button

RK_pause


The Pause button

RK_play


The Play

button

RK_playpause


The Play/Pause button

RK_power


The Power On/Power Off button

RK_poweron


The Power On button

RK_stop


The Stop button

RK_record


The Record button

RK_skipback


The Skip Back button

RK_skipfwd


The Skip Forward button

RK_poweroff


The Power Off button

2.6

Error Responses

The following error codes are presented to the application over the API:


© 2007 AT&T Knowledge Ventures

Error code

Error name

Error meaning

3000

uvcInternalError

An Internal Error

3001

uvcNetworkError

A Network Error.

3002

u
vcApplicationBlocked

This application has been blocked by AT&T.

3003

uvcDeviceRegistrationError

Failed to register this device with the server.

3004

uvcAuthTokenRequired


An Authentication Token must be supplied

3005

uvcAuthTokenInvalid

The supp
lied Authentication Token was invalid

3006

uvcNotOnSubscriberNetwork

This application will only work on your home Uverse network,
you are not currently on that network

4000

uvcAllSetTopBoxInUse

All SetTopBoxes are currently in use

4001

uvcSetTopBoxN
otRegistered

An unknown SetTopBox is on your network

4002

uvcSetTopBoxNotAllowed

A blocked SetTopBox is on your network

4003

uvcNonceRequired

A Nonce is required to associate to this SetTopBox

4004

uvcNonceExpired

The supplied Nonce has expired

4005

uvcNonceInvalid

The supplied Nonce is invalid

4006

uvcNotOnAUverseNetwork

The device is not currently connected to a Uverse Wi
-
Fi network

4007

uvcURLNotAllowed

The requested URL is blocked for this application

4008

uvcOperationNotAllowed

T
he requested command is blocked for this application

4009

uvcLibraryNotInitialized

The Library is not initialized



© 2007 AT&T Knowledge Ventures

3.

Getting Started

3.1

Set up the
resource

file in the iOS application bundle.

This
resource
file should contain your app certificate.


3
.2

Set
the DCS URL in your code.

UverseConnectedManager *mgr = [UverseConnectedManager sharedManager];

mgr.overrideURL = @"https://dcsfedev1.iptv.cistest.att.net/dais/";

Note: this URL is dependent on which DCS you are connecting to.


3
.3

Register for relevant no
tifications

3
.3.1

UverseConnectedManager Notifications


Notification

Description

UverseConnectedManagerDidChangeState

A notification that the UverseConnectedManager
discovery state has changed

UverseConnectedManagerInitializationError

A notification that

the UverseConnectedManager
initialization has failed

UverseConnectedManagerForcedShutdown

A notification that the UverseConnectedManager has
been forced to shutdown

UverseConnectedManagerDidObtainLastEnabledSetTop
Box

A notification that the attempt to r
etrieve the last
enabled SetTopBox was successful. This is one possible
result of calling getLastEnabledSetTopBox() on the
UverseConnectedManager.

UverseConnectedManagerDidFailToObtainLastEnabledS
etTopBox

A notification that the attempt to retrieve the la
st
enabled SetTopBox has failed. This is one possible
result of calling getLastEnabledSetTopBox() on the
UverseConnectedManager.


3
.3.2 SetTopBox Notifications


Notification

Description

uvcSetTopBoxCommandDidSucceed

A notification that a SetTopBox comman
d was
successful

uvcSetTopBoxCommandDidFail

A notification that a SetTopBox command failed. In
order to determine which command failed, use
uvcSetTopBoxCommandKey to lookup the associated
command.


© 2007 AT&T Knowledge Ventures

uvcSetTopBoxAssociationDidSucceed

A notification that the

SetTopBox association was
successful

uvcSetTopBoxAssociationDidFail

A notification that the SetTopBox association attempt
failed

uvcSetTopBoxChannelOrProgramChanged

A notification that the channel or program has changed
on the SetTopBox



3
.4

Discovery

1.

Using the shared instance of UverseConnectedManager, call the startDiscovery() method on application
load to initiate the discovery process.


Note: The discovery process is automatically initiated when the app enters the foreground. To manually
initiate
the discovery process, call startDiscovery(). It is safe to call startDiscovery() multiple times.

2.

Observe the UverseConnectedManagerDidChangeState notification and wait for the discovery complete
state.

During the discovery process, even if there is an exi
sting, valid SetTopBox, no SetTopBox commands may be
issued. The minimum “return from standby” time is determined by the time it takes to complete discovery
because discovery is initiated upon entering the foreground (approximately 4s). In other words, ev
en though
the application may be able to start up faster, it is currently limited by discovery.



3
.5

Pairing (aka Association)

After discovery is complete, the application should pair with a SetTopBox in order to send remote commands,
query the SetTopBox,

or receive SetTopBox notifications.


Using the shared instance of UverseConnectedManager, call the lastUsedSetTopBox() method to see if the
discovery process has found the last used SetTopBox, so that the application can automatically initiate pairing.


I
f there is no last used SetTopBox, use the SetTopBoxes property on the UverseConnectedManager to get a list of
all discovered SetTopBoxes.




© 2007 AT&T Knowledge Ventures

4.

Application Acceptance Policy

4.1

Application

FAQs


In order to ensure a seamless experience for our consumers, we
sugg
est

that each application include a
set of FAQs on U
-
verse pairing

and other

important, and possibly confusing,

topics
. These FAQs should
include at least the following:



Q: Why can’t I connect my device to my receiver?

A:
Your device must be connected to y
our U
-
verse wireless home network to communicate with your
receiver. Check the settings of your device to ensure it’s connected to your U
-
verse wireless home network.




Q: How do I add a receiver to my device?

A:

To add a device, you must have the AT&T U
-
v
erse Enabled Application installed on your device.
Launch the application on your device and navigate to the U
-
verse Receivers screen.


If the receiver name appears on the list, just select it to connect your device to that receiver and start
using the ap
plication. No additional action is needed.


If the receiver name displays a lock pictured next to it, you will need to enter a code on your device to
connect.

1.

Select the receiver name.

2.

Tune to channel 9301 on the TV to which you want to connect.

3.

Launch
the application and navigate to Add a Device.

4.

Enter the code on the TV into the device and select Done.

5.

You will see the receiver is now unlocked.

If you don’t see the receiver name on your device, tune to channel 9301 on that TV receiver, select
add a re
ceiver and follow the instructions to run the Set
-
up Wizard.




Q: How do I remove a device?

A:

To remove a device from the receiver in the open connection mode, you must change the
connection mode to custom. Changing the connection mode will remove all devi
ce connections from
the receiver. Any device that was previously connected will be required to reconnect. If the mode is
changed to disabled, no devices will be able to connect.


To remove a device from the receiver in the managed connection mode, navigat
e to Connected
Devices and locate the device from the list, and select remove.




Q: Where can I download AT&T U
-
verse Enabled Applications?

A: To download AT&T U
-
verse Enabled Applications, just go to your device’s app store or
marketplace, search for AT&T
U
-
verse Enabled and download the applications you want.




Q: How do I change my connection settings?

A: To change connection settings, navigate to Connection Mode. Select the new connection mode.
Changing the connection mode will wipe out any existing de
vice connections and devices will be
required to re
-
connect.


Connection Modes:

o

Default:

Any device connected to your home wireless network can use an AT&T U
-
verse
Enabled Application to communicate with this receiver.

o

Custom:

A code from this TV applica
tion will be required before a device can communicate
with this receiver. Once the code is successfully entered, the device will be able to use any

© 2007 AT&T Knowledge Ventures

AT&T U
-
verse Enabled Application with this receiver as long as the device is connected to
your home wireless

network.

o

Disabled:

No device can establish a connection with this receiver. You can change this
setting later by selecting a different connection mode from this TV application.




Q: How do I rename my receiver?

A:

To rename your receiver, navigate to Rece
iver Name. The current name of the receiver will be
displayed. Click Change to select from a list of names, or use the keypad to create a custom name for
your receiver.



Q: Where will my U
-
verse Enabled app work?

A:

For the U
-
verse Enabled features in your
app to work, you must be connected over Wifi to a U
-
verse set top box in a locale that supports U
-
verse.



Q:

How do I turn on Wifi on my mobile device?

A:

Please refer to your user manual for your mobile device. Each device is different.


4.2

Branding Requireme
nts


4
.3

User
-
Interface Requirements

These are guidelines meant to ensure that our customers are seeing the same language consistently.
Developers will have near complete control when it comes to your user
-
interface, but AT&T must impose
certain content re
quirements:



The set top box must always be referred to as an
AT&T U
-
verse Receiver
.



The connection from the mobile device to the receiver must always be referred to as
pairing
.


4
.4

Scraping and Aggregation

These are guidelines aimed at protecting AT&T aga
inst apps that are mainly purposed to collect usage
data in aggregate or other inconspicuous practices that are meant to gain knowledge about the U
-
verse
business.


4
.5

Goodwill

(Community Guidelines)

These are general guidelines about how to behave toward

other developers, content providers, and U
-
verse customers.


4
.6

Objectionable Content

The following types of content has been deemed objectionable:


© 2007 AT&T Knowledge Ventures



Pornography



Violence



Defamatory content regarding religion, culture, and/or ethnicity


© 2007 AT&T Knowledge Ventures

5.

Publishing Apps to S
tores

Developers will be expected to submit their application to the appropriate OS vendor’s store depending
for which OS they have developer their app.

5.1

Apple App Store

Applications written on the iOS should be submitted to the Apple App Store.

(
http://developer.apple.com/appstore/guidelines.html
)

5.2

Google Market

Applications written on the Android OS should be submitted to the Android Market.

(
https://market.android.com/publish/Home
)

5.3

Windows Marketplace

Applications written on the Windows Phone 7 OS should be submitted to the Windows
Marketplace.

(
http://msdn.micr
osoft.com/en
-
us/library/ff941089(v=vs.92).aspx)



© 2007 AT&T Knowledge Ventures

6.

Advertising and Marketing


© 2007 AT&T Knowledge Ventures

7.

Purchasing


© 2007 AT&T Knowledge Ventures

8.

Common Tasks

(Sample Code)

8
.1

Pairing Guide

8.
2

Hello World

8
.3

Streaming Audio

8
.4

Streaming Video

8
.5

Remote Control Commands

8
.6

Media Room Platform (MPF) UI Element
s

8
.7

Complementary Data

8
.8

Detecting Events



© 2007 AT&T Knowledge Ventures

9.

Best Practices



© 2007 AT&T Knowledge Ventures

10.

Other
Useful Information


10
.1

Contact AT&T Developer Support

If you are experiencing problems in the development or management of your U
-
verse Enabled
application, we recommend you first head

to our developer forums at:

http://developerboards.att.lithium.com/t5/U
-
verse
-
Enabled/bd
-
p/UVerseEnabled

Search for your issue there and post to get help from the c
ommunity. These forums are also monitored by
AT&T Developer Support personnel.

If you need further assistance,
and you have access to our help ticket system, please log a ticket at:

http://hts.devcentraltools.com/Views/developers/developer.view


Otherwise,
feel

free to reach out to

us directly at

developer.support@att.com
.


10
.2

Developer Guidelines Update Process

Updates to this docu
ment will be communicated via email blast to registered developers on
http://developer.att.com
.


10
.3

Developer Dashboard

You can check on the status of your submitted U
-
verse Enabled app in your developer dashboard.

Just
go to:

https://developer.att.com/developer/dashboardHome.jsp?passedItemId=7600026


Note: You must be signed in to developer.att.com in order to use the Developer

Dashboard.


10
.4

App Submission

When you are ready to submit your app to AT&T for acceptance testing, use the following link to enter our
application management system:

???


10
.5

Privacy and Legal Requirements

You must comply with the following policies:

???



© 2007 AT&T Knowledge Ventures

11.

FAQs

11.1

Why can’t I connect my device to my receiver?

Your device must be connected to your U
-
verse wireless home network to communicate with your receiver. Check
the settings of your device to ensure it’s connected to your U
-
verse wireless hom
e network.


11.2

How do I add a receiver to my device?

To add a device, you must have the AT&T U
-
verse Enabled Application installed on your device. Launch the
application on your device and navigate to the U
-
verse Receivers screen.


If the receiver name
appears on the list, just select it to connect your device to that receiver and start using the
application. No additional action is needed.


If the receiver name displays a lock pictured next to it, you will need to enter a code on your device to connect.


6.

Select the receiver name.

7.

Tune to channel 9301 on the TV to which you want to connect.

8.

Launch the application and navigate to Add a Device.

9.

Enter the code on the TV into the device and select Done.

10.

You will see the receiver is now unlocked.

If you don
’t see the receiver name on your device, tune to channel 9301 on that TV receiver, select add a receiver
and follow the instructions to run the Set
-
up Wizard.


11.3

How do I remove a device?

To remove a device from the receiver in the open connection mode,

you must change the connection mode to
custom. Changing the connection mode will remove all device connections from the receiver. Any device that was
previously connected will be required to reconnect. If the mode is changed to disabled, no devices will b
e able to
connect.



To remove a device from the receiver in the managed connection mode, navigate to Connected Devices and locate
the device from the list, and select remove.



11
.4

How do I change my connection settings?

To change connection settings, na
vigate to Connection Mode. Select the new connection mode. Changing the
connection mode will wipe out any existing device connections and devices will be required to re
-
connect.


Connection Modes:



Default
: Any device connected to your home wireless netw
ork can use an AT&T U
-
verse Enabled Application
to communicate with this receiver.



Custom:

A code from this TV application will be required before a device can communicate with this receiver.
Once the code is successfully entered, the device will be able
to use any AT&T U
-
verse Enabled Application
with this receiver as long as the device is connected to your home wireless network.



Disabled:

No device can establish a connection with this receiver. You can change this setting later by
selecting a different
connection mode from this TV application.



© 2007 AT&T Knowledge Ventures

11
.5

How do I rename my receiver?

To rename your receiver, navigate to Receiver Name. The current name of the receiver will be displayed. Click
Change to select from a list of names, or use the keypad to create a
custom name for your receiver.



11.6

What should I do if the UverseConnectedManager initialization
fails?


If it fails because the user is not on a U
-
verse network, advise them that they must be. If it fails because they are
not on WiFi advise them they m
ust be. If it fails for other reasons, you may use the upload log function, or ask the
user if they want to try again (then call startDiscovery()) again. Ideally, if they are on the WiFi of a U
-
verse
household, discovery should not fail.

The uvcError in t
he failure notification should indicate a somewhat more detailed reason for the failure.


11.7

How do I know if my connection to the SetTopBox is broken?

i.e.,
the application will no longer receive uvcSetTopBoxChannelOrProgramChanged notifications.

There

isn’t really a persistent socket or any such connection with the SetTopBox. A broken SetTopBox connection
would indicate the device cannot connect to the SetTopBox over the Wifi connection any longer when sending
commands, or that the keys used for the pa
iring have changed and are no longer valid. Since there is not a
persistent connection there is no proactive notification that the connection has broken. Instead, subsequent set
top box commands will start failing with a network error if they cannot connec
t to the set top box any longer, or an
internal error if something happened to the keys (should not happen.). Whenever the channel/program have
changed the library will send a few commands to update the current program information in the library.


11.8

Do
I need to do anything when my WiFi state changes?

No, but the U
-
verse Enabled library will automatically initiate the set top box discovery process. When the WiFi
goes away the library will switch to a WaitingForWiFi state and you will receive a state chan
ge notification. Set Top
Box commands should not work at this point as you will be unable to reach the STB. When WiFi is restored,
discovery will re
-
occur to make sure you are on the same network and refresh your keys with the set top box.


11.9

When shoul
d I use getLastEnabledSetTopBox()?

This function is used to get an updated SetTopBox list from the network. It is typically used during the pairing
wizard for when someone has followed the Add a Receiver route.


Example:

I am new in my house and all four
set top boxes have not been setup for DAIS (the TV app has not been run).


As
such all four of my boxes are identified by the default name of Uverse Device. I have no way of knowing which of
the four “Uverse Device” in my list is the one I am standing in f
ront of. As a consequence product wanted us to not
display any boxes that have not been enabled for DAIS, and instead display a row with an Add a Receiver option.


Now the user touches the Add a Receiver row and we display a wizard advising them to launch
the TV app. After
they launch the TV app and navigate through the screens, they press Next on the iPhone. The app calls
getLastEnabledSetTopBox to update the list of STBs, now one of them no longer says no
-
info but instead includes
managed or open mode. If

it is managed mode the app displays the nonce screen, if it is open the app pairs with it.




© 2007 AT&T Knowledge Ventures

11.10

Can I issue SetTopBox commands during the discovery
process?

No. Even if there is a valid SetTopBox, no SetTopBox commands may be issued during the discover
y process.


11.11

What is the minimum “return from standby” time?

The minimum “return from standby” time is determined by the time it takes to complete discovery because
discovery is initiated upon entering the foreground (approximately 4s). In other words
, even though the
application may be able to start up faster, it is currently limited by discovery.


11.12

When I get a uvcSetTopBoxCommandDidFail notification, how
do I know which command failed?

Use the uvcSetTopBoxCommandKey to lookup the associated com
mand.


11.13

When is the
UverseConnectedManagerDidFailToObtainLatestEnabledSetTopBox
notification fired?

This is one possible result of calling getLastEnabledSetTopBox() on the UverseConnectedManager.


11.15

When should an application use the
UverseConnect
edManagerDidobtainLastEnabledSetTopBox
notification?

This is one possible result of calling getLastEnabledSetTopBox() on the UverseConnectedManager.


© 2007 AT&T Knowledge Ventures