Home Page Icon
Home Page
Table of Contents for
III. Advanced Topics
Close
III. Advanced Topics
by Rogelio Martinez Perea
Internet Multimedia Communications Using SIP
Copyright
Dedication
The Morgan Kaufmann Series in Networking
Preface
Why This Book
Approach
Audience
Organization
Code Examples
Acknowledgments
About the Author
Foreword
Jorge Gató, Vodafone España
Rogier Noldus, Ericsson, Netherlands
I. Fundamentals
1. Introduction
1.1. IP Multimedia Communication Services
1.2. The Role of Signaling and Media
1.3. Type of Services Enabled by SIP
1.3.1. Basic Session Management Services
1.3.2. Enhanced Control Services
1.3.3. Media Services
1.3.4. Conferencing Services
1.3.5. Presence
1.4. Examples of SIP Applications
1.4.1. SIP Communicator Applications
1.4.2. IP PBX Applications
1.4.3. Enterprise Total Communication Systems
1.4.4. IP Centrex Applications
1.4.5. PSTN Emulation Applications
1.5. The Internet Engineering Task Force (IETF)
1.5.1. The IETF Publications: RFCs and I-Ds
Standards Track RFCs
Non–Standards Track RFCs
Best Current Practice RFCs
Internet Drafts (I-Ds)
1.5.2. SIP in the IETF
SIP WG
SIPPING WG
MMUSIC WG
SIMPLE WG
ENUM WG
IPTEL WG
AVT WG
1.6. Summary
2. A Bit of History
2.1. The Third Revolution in the Internet
2.2. The Next Revolution in the Telecommunication Industry
2.3. A Brief History of Internet Multimedia
2.4. Summary
3. IP Multimedia Fundamentals
3.1. Internet Concepts
3.1.1. Internet Protocol
3.1.2. The Internet Paradigm
3.2. TCP/IP Protocol Architecture
3.2.1. Application-Layer Protocols
3.2.2. Transport-Layer Protocols
User Datagram Protocol
Transmission Control Protocol
Stream Control Transmission Protocol
3.3. Architecture for Internet Multimedia Communications
3.3.1. Core Protocols: Signaling
3.3.2. Core Protocols: Media
3.3.3. Complementary Protocols
Quality of Service
Policy Control
Authentication, Authorization, and Accounting (AAA)
Conferencing
NAT Traversal
3.3.4. Internet Protocols in Other Service Domains
3.4. Summary
4. SIP Overview
4.1. What is SIP?
4.2. SIP Addressing
4.3. SIP Functions
4.3.1. Session Setup, Termination, and Modification
Note on the Usage of SIP in Multicast Conferences
4.3.2. Location of Users
4.4. SIP Entities
4.4.1. User Agents
4.4.2. Registrar
4.4.3. Location Service
4.4.4. Proxy Servers
Outbound Proxy
Inbound Proxy
Forking
4.4.5. Redirect Servers
4.4.6. Back-to-Back User Agents
4.5. Summary
5. Multimedia-Service Creation Overview
5.1. What are SIP Services?
5.2. SIP Services and SIP Entities
5.3. Terminal-Based or Network-Based SIP Services
5.3.1. Option A: Implementation at Alice’s Terminal
5.3.2. Option B: Implementation at Alice’s SIP Inbound Proxy
5.3.3. Aspects to Consider
1. Control on Users
2. Intelligence in the Terminals
3. Service Homogeneity
4. End-User Availability
5.3.4. Application Servers
5.4. SIP Programming Interfaces
5.4.1. Standard APIs
JAIN SIP
JAIN SDP
SIP Servlets
SIMPLE Instant Messaging
SIP API for J2ME
JAIN SLEE
IMS API
OSA/PARLAY
PARLAY X
5.4.2. Open-Source Implementations
5.5. Media-Programming APIs
5.5.1. Mobile Media API
5.5.2. Java Media Framework
5.6. APIs Used in This Book
5.7. Summary
II. Core Protocols
6. SIP Protocol Operation
6.1. SIP Mode of Operation
6.1.1. SIP Responses
6.1.2. SIP Requests
REGISTER
INVITE
Re-INVITE
ACK
CANCEL
BYE
OPTIONS
6.2. SIP Message Format
6.2.1. SIP Requests
6.2.2. SIP Responses
6.2.3. SIP Header Fields
From
To
Call-ID
Via
Contact
Record-Route and Route
CSeq
Max-Forwards
Content-Type, Content-Length, Content-Encoding, Content-Disposition
6.2.4. SIP Message Body
Content-Type
Content-Length
Content-Encoding
Content-Disposition
6.3. SIP Routing
6.3.1. Step 1: Determination of the Next-Hop SIP URI
Strict Routing
6.3.2. Step 2: Determination of IP address, Port, and Transport
6.3.3. SIP Routing Scenarios
Direct-Mode Scenario
Proxy-Assisted-Mode Scenarios
6.4. SIP Detailed Call Flows
6.4.1. SIP Registration
Step 1
Step 2
6.4.2. SIP Call
Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
Step 7
Step 8
Step 9
Step 10
Step 11
Step 12
Step 13
Step 14
Step 15
Step 16
Step 17
Step 18
6.5. Summary
7. SIP Protocol Structure
7.1. Protocol Structure Overview
7.1.1. The Layered Approach
7.1.2. About the Terminology
7.1.3. SIP Protocol Sublayers
7.1.4. What Layers Do the SIP Entities Implement?
SIP User Agent
Registrar
Stateful Proxy
Stateless Proxy
7.2. SIP Core Sublayer
7.2.1. SIP Transaction Users
7.2.2. SIP Transport Users
7.3. SIP Transaction Sublayer
7.3.1. Client Transaction and Server Transaction
7.3.2. Transaction-Layer Functions
Request/Response Correlation
Reliable Delivery
Non-INVITE transactions
INVITE transactions
7.3.3. Example
Direct Call
SIP Trapezoid
7.4. SIP Transport Sublayer
7.4.1. Client Transport
Sending Requests
Receiving Responses
7.4.2. Server Transport
Receiving Requests
Sending Responses
Example
7.5. SIP Syntax and Encoding Function
7.6. SIP Dialogs
7.6.1. Identification of Dialogs
7.6.2. Dialog Information
7.6.3. How Dialogs Work
7.7. Summary
8. Practice with SIP
8.1. What Is JAIN SIP?
8.1.1. JAIN SIP Versions
8.2. JAIN SIP Architecture
8.2.1. The Peer-Provider Pattern
8.2.2. The Factory Pattern
8.2.3. The Event-Listener Pattern
8.3. The SipStack, SipProvider and ListeningPoint
8.4. The SipListener
8.5. Other Factories: MessageFactory, HeaderFactory, AddressFactory
8.5.1. MessageFactory
8.5.2. HeaderFactory
8.5.3. AddressFactory
8.6. Programs and Practice
8.6.1. Structure of the Applications
8.6.2. JAIN SIP Initialization
8.6.3. How to Test the Examples
Option 1
Option 2
8.6.4. Example 1: Building SIP Messages
8.6.5. Example 2: Using the Transport Sublayer
User Interface
Architecture
Initialization
Creating and Sending the Request
Receiving the Request
8.6.6. Example 3: Using the Transaction Sublayer
Creating the Request
Sending a Request
Receiving a Request
Sending a Response
Receiving a Response
8.6.7. Example 4: Creating a Dialog
Creating the INVITE Request
Sending the INVITE Request
Receiving the INVITE Request
Sending a Provisional Response
Sending a 200 OK Response
Receiving a 180 Provisional Response
Receiving a 200 OK Response
Sending the ACK
Receiving the ACK
8.6.8. Example 5: Terminating a Dialog
Sending a BYE Request
Receiving the BYE Request
Sending the 200 OK Response to BYE
Receiving the 200 OK Response to BYE
8.7. Summary
9. Session Description
9.1. The Purpose of Session Description
9.2. The Session Description Protocol (SDP)
9.2.1. Origins of SDP
9.2.2. SDP Overview
9.2.3. Protocol Version (v-line)
9.2.4. Origin (o-line)
9.2.5. Session Name (s-line)
9.2.6. Connection Information (c-line)
9.2.7. Time Line (t-line)
9.2.8. Media and Transport (m-line)
9.2.9. Bandwidth (b-line)
9.2.10. Attributes (a-line)
9.3. Example IP Communication Sessions Described with SDP
9.3.1. Voice and Video
9.3.2. Telephony Tones
9.3.3. Real-time Text
9.3.4. Instant Messages (MSRP)
c-line
m-line
9.3.5. TCP Content
9.4. The Offer/Answer Model with SDP
9.4.1. Voice/Video
Putting a Media Stream on Hold
9.4.2. MSRP
9.4.3. TCP Content
Offer
Answer
Offer
Answer
Offer
Answer
9.5. SDP Programming
9.5.1. JAIN SDP Overview
9.5.2. Encoding SDP Messages
9.5.3. Parsing SDP Messages
9.5.4. SDP Practice
9.6. Summary
10. The Media Plane
10.1. Overview of the Media Plane
10.2. Real-time Transport Protocol (RTP)
10.2.1. Motivation
End-to-End Delay and Packet Loss
Out-of-Sequence Delivery
Jitter
10.2.2. RTP Overview
Profile Specification
Payload Format Specification
10.2.3. RTCP
10.2.4. Application Examples
Audio/Video
Telephony Tones
Real-time Text
10.3. Messaging Service Relay Protocol (MSRP)
10.3.1. Main Features
Message Chunking
Message Framing
MSRP Addressing
Reporting
10.3.2. MSRP Nodes
10.3.3. MSRP Message Format
Example
MSRP Header Fields
From-Path
To-Path
Message-ID
Success-Report and Failure-Report
Status
Byte-Range
10.3.4. MSRP Mode of Operation
Operation without Relays
Operation with MSRP Relays
Reporting
10.3.5. Detailed MSRP Example
(SIP/SDP session establishment)
10.4. Summary
11. Media Plane Programming
11.1. Overview
11.1.1. Media streams
11.2. JMF Entities
11.2.1. Managers
11.2.2. Data Source
The Format Class
11.2.3. Player
11.2.4. Processor
11.2.5. Data Sinks
11.2.6. SessionManager
RTP Streams
Listeners
SessionManager Operation
Session Addresses
11.3. JMF Operation
11.3.1. Capture Live Media
11.3.2. Capture Media File
11.3.3. Present Media
11.3.4. Send Media to File
11.3.5. Process Media
11.3.6. Receive and Send Media from/over the Network
Approach 1: Media Locators
Approach 2: SessionManager
11.4. Putting It All Together: The VoiceTool
startMedia(String peerIP, int peerPort, int recvPort, int fmt)
update(ReceiveStreamEvent event)
stopMedia()
11.5. Putting It All Together: The VideoTool
startMedia()
update()
stopMedia()
11.6. Putting It All Together: The TonesTool
prepareTone(String filename)
playTone()
stopTone()
controllerUpdate(ControllerEvent cEvent)
11.7. Using the Components. Example 6
11.8. Summary
12. The SIP Soft-Phone
12.1. Scope
12.2. Architecture
12.2.1. Components
12.2.2. Interfaces
Interface between Softphone1GUI and Softphone1Listener
Interface between Softphone1Listener and the SIP Implementation
Interface between Softphone1Listener and the SDPManager
Interface between SDPManager and the SDP Implementation
Interface between Softphone1Listener and the VoiceTool
Interface between Softphone1Listener and the VideoTool
Interface between Softphone1Listener and the TonesTool
12.3. User Interface and Configuration
12.3.1. User Interaction Area
“On” Button
“Off” Button
Info Label
Destination Text Field
“Yes” Button
“No” Button
12.3.2. Configuration/Display Area
12.4. State Model
12.4.1. IDLE State
Incoming Events
Outgoing Events
12.4.2. WAIT_PROV State (in Originator)
Incoming Events
Outgoing Events
12.4.3. WAIT_FINAL State (in Originator)
Incoming Events
Outgoing Events
12.4.4. ESTABLISHED State (in Both Originator and Recipient)
Incoming Events
Outgoing Events
12.4.5. RINGING State (in Recipient)
Incoming Events
Outgoing Events
12.4.6. WAIT_ACK State (in Recipient)
Incoming events
Outgoing events
12.5. Implementation Aspects
12.5.1. Soft-phone Configuration
12.5.2. Treatment of CANCEL Requests
12.5.3. Tag Calculation and Management
12.5.4. Error Conditions and Timeouts
12.5.5. Retransmissions
12.5.6. Call Management and Transactions
12.5.7. Reception of 486 Busy Here and Generation of ACK
12.5.8. SDP Handling and Media Tool Utilization
Sending the SDP Offer
Receiving the SDP Offer
Sending the SDP Answer
Receiving the SDP Answer
12.5.9. Session Termination
12.5.10. Playing Tones and Signals
12.5.11. Running the Code
12.6. Summary
13. SIP Proxies
13.1. What Is a SIP Proxy?
13.1.1. Sip Routing
13.1.2. Proxy Types
13.2. Transaction Stateful Proxies
13.2.1. Treatment of Transactions
13.2.2. Call Stateful Proxies
13.3. Stateful Proxy Behavior
13.3.1. Treatment of Requests
13.3.2. Treatment of Responses
13.3.3. Receiving a CANCEL Request
13.3.4. Receiving an ACK Request
13.4. Transaction Stateless Proxies
13.5. Stateless Proxy Behavior
13.6. Practice: SIP Server
13.6.1. Scope
13.6.2. Architecture
13.6.3. Management Console (GUI)
“On” Button
“Off” Button
Home Domain Text Box
Port Text Box
Record-Route Check Box
The Tracer Display
The Location Service Display
The Transaction Display
13.6.4. JAIN SIP Initialization
13.6.5. Proxying Requests
Non-ACK, Non-CANCEL Requests
ACK Requests
CANCEL Requests
13.6.6. Proxying Responses
13.6.7. Terminated Transactions
13.6.8. Handling Registrations
13.6.9. The Enhanced Client
Softphone2GUI
Softphone2Listener
13.6.10. Putting It All Together
Starting the SIP Server
Starting the Soft-phones
Making Calls
13.7. Summary
14. Securing Multimedia Communications
14.1. Review of Basic Encryption Concepts
14.1.1. Cryptography
14.1.2. Symmetric Ciphers
14.1.3. Asymmetric Ciphers
14.1.4. Hash Functions
14.1.5. Digital Signatures
14.1.6. Digital Certificates
14.1.7. Cipher Suites
14.2. Attacks and Threat Models in SIP
14.2.1. Registration Hijacking
14.2.2. Tearing Down and Modification of Sessions
14.2.3. Impersonating a Server
14.2.4. Tampering with Message Bodies
14.2.5. Denial of Service
14.3. Security Services for SIP
14.4. Security Mechanisms for SIP
14.4.1. Network-Layer Security (IPsec)
14.4.2. Transport Layer Security (TLS)
14.4.3. SIPS URI Scheme
14.4.4. HTTP Authentication
WWW-Authenticate Header
Authorization Header
14.4.5. S/MIME
14.5. Best Practices on SIP Security
14.5.1. Example
14.6. Securing the Media Plane
14.6.1. Securing the Real-time Transport Protocol
SDP Security Descriptions
Key-Management Extensions for SDP
ZRTP
EKT
Other Approaches for Securing the RTP Traffic
14.6.2. Securing TCP-Based Media Transport
14.6.3. Securing the Message Service Relay Protocol
14.7. Summary
III. Advanced Topics
15. Extending SIP
15.1. Defining New Extensions
15.2. SIP Architectural Principles
15.3. Extensibility and Compatibility
15.3.1. Extending SIP with New Headers
Option Tags
P-Headers
15.3.2. Extending SIP with New Methods
15.3.3. Extending SIP with New Content Types
15.4. Reliability of Provisional Responses
15.4.1. Motivation
15.4.2. How It Works
15.5. UPDATE
15.5.1. Motivation
15.5.2. How It Works
15.6. SIP-specific Event Notification
15.6.1. Motivation
15.6.2. How It Works
15.6.3. Event Packages
15.6.4. Event Package for SIP Registrations
15.6.5. Event Package for SIP Dialogs
15.7. History-Info
15.7.1. Motivation
15.7.2. How It Works
15.8. Globally Routable User Agent URIs (GRUUs)
15.8.1. Motivation
15.8.2. How It Works
15.9. Summary
16. Presence and Instant Messaging
16.1. Overview of Presence and Instant Messaging
16.1.1. Presence and Online Communications
16.1.2. Presence and Instant Messaging Standards
16.2. The Presence Model
16.3. Presence with SIP
16.3.1. Publication of Presence Information
16.3.2. Subscribing to Presence Information
16.3.3. Generation of Notifications
16.3.4. Example
16.4. Presence Information
16.5. Address Resolution
16.6. Resource Lists
16.7. XCAP
16.8. Instant Messaging
16.8.1. Content Indirection
16.9. IM Servers
16.10. Practice: Softphone3
16.10.1. Softphone3GUI
16.10.2. Softphone3Listener
Sending Instant Messages
Receiving Instant Messages
16.11. Summary
17. Call Control
17.1. What Is Call Control?
17.2. Peer-to-Peer Call Control
17.2.1. The REFER Method
Basic Call Transfer Example
17.2.2. The Referred-By Mechanism
17.2.3. The Replaces Header
17.2.4. The Join Header
17.3. Third Party Call Control (3PCC)
17.4. Remote Call Control
17.5. Summary
18. Interworking with PSTN/PLMN
18.1. Motivation
18.2. Architecture
18.2.1. Signaling Plane
18.2.2. Media Plane
18.2.3. Gateway Decomposition
18.2.4. Scenario 1 (IP to PSTN)
18.2.5. Scenario 2 (PSTN to Ip)
18.2.6. Scenario 3 (PSTN to PSTN via IP)
18.3. Telephone Addressing: The TEL URI
18.3.1. Motivation
18.3.2. TEL URI Format
18.4. ENUM: The E.164 to URI Dynamic Delegation Discovery System
18.5. Protocol Translation
18.5.1. Message Mapping
18.5.2. Parameter Mapping
18.5.3. State Machine Alignment
18.5.4. Example 1: IP-to-PSTN Call
18.5.5. Example 2: PSTN-to-IP Call
18.5.6. Example 3: PSTN to PSTN via IP
18.6. Protocol Encapsulation
18.6.1. The INFO Method
18.7. Translation or Encapsulation?
18.8. Summary
19. Media Servers and Conferencing
19.1. Basic Media Services
19.1.1. Architecture for Basic Media Services
19.1.2. Implementation
Announcements
User Interaction
Basic Conferences
19.1.3. Examples
19.2. About KPML and the User Interaction Framework
19.3. Enhanced Conferencing
19.4. Framework for Conferencing with SIP
19.4.1. Example 1: Dial-out to a New Participant
19.4.2. Example 2: Focus Removes a Participant
19.5. XCON Framework
19.5.1. Additional Requirements
Enhanced Conference Management
Floor Control
Media Services for Enhanced Conferencing
19.5.2. Architecture
Conference Control
Floor Control
Focus
Conference Notification
Mixer
19.5.3. Example 1: Adding a New Participant to the Conference
19.5.4. Example 2: Media Manipulation
19.6. Media Server Control
19.6.1. Motivation
19.6.2. Approaches
19.6.3. Future Trends
19.7. Other Media Services
19.8. Summary
20. SIP Identity Aspects
20.1. Identity Management in SIP
20.2. Basic Identity Management
20.2.1. Assertion of the SIP Identity
20.2.2. Privacy Mechanisms
20.3. Private Header for Network Asserted Identity
20.3.1. Assertion of Identity
20.3.2. Privacy Mechanisms
20.4. Enhanced Identity Management
20.4.1. Assertion of Identity
20.4.2. Privacy Mechanisms
20.5. Summary
21. Quality of Service
21.1. Quality of Service in IP Networks
21.2. Mechanisms for QoS
21.2.1. Integrated Services
21.2.2. Differentiated Services
21.2.3. Integrated Services over diffserv Networks
21.3. Policy-based Admission Control
21.4. SIP Integration with Resource Reservation: The Preconditions framework
21.4.1. Motivation
21.4.2. Overview
21.4.3. Operation
21.5. SIP Integration with Policy Control: Media and QoS Authorization
21.5.1. Motivation
21.5.2. Architecture
21.5.3. Implementation
21.5.4. Example
21.6. Summary
22. NAT Traversal
22.1. NAT Overview
22.1.1. Basic NAT (Network Address Translation)
22.1.2. NAPT (Network Address and Port Translation)
22.2. Behavior of NAT Devices
22.2.1. Address Mapping Behavior for UDP Traffic
22.2.2. Filtering Behavior for UDP Traffic
22.2.3. Examples
Endpoint-Independent NAT
Address and Port-Dependent NAT
22.3. SIP Traversal through NAT
22.3.1. Issues
Routing of SIP Responses
Routing of Incoming Requests
22.3.2. Proposed Solutions
Routing of Responses
Routing of Incoming Requests
22.4. RTP Traversal through NAT
22.4.1. Issues
22.4.2. Proposed Solutions
Scenario 1
Scenario 2
Scenario 3
Putting It All Together
22.5. Session Border Controllers
22.6. NAT Traversal Using SBCs
22.6.1. SBC-Based NAT Traversal of SIP Signaling
If TCP Is Used
If UDP Is Used
22.6.2. SBC-Based NAT Traversal of RTP Traffic
22.7. Summary
23. SIP Networks
23.1. The Role of the Network
23.1.1. Network Functions
23.2. Mobility and Routing
23.3. Authentication, Authorization, and Accounting
23.4. Security
23.5. Interworking and Border Functions
23.6. Provision of Network-Based Services
23.7. Summary
24. The IMS
24.1. 3GPP and IMS
24.2. High-Level IMS Requirements
24.2.1. IP Connectivity
24.2.2. Access Independence
24.2.3. Roaming Support
24.2.4. QoS Support
24.2.5. Support for Multiple Services
24.2.6. Security
24.3. Overview of IMS Architecture
24.3.1. The Home SIP Server and the Subscriber Database
1. Authentication
2. User Profile
3. Originating Calls
4. Service Control
5. Prohibition of Media Types
24.3.2. The Outbound/Inbound Proxy
1. Securing the Communication between UE and Network
2. Compression of SIP Messages
3. Prohibition of Codecs
4. Policy Control
24.3.3. The Edge Proxy
24.3.4. The Application Server and the Media Server
MRFP
MRFC
24.3.5. The PSTN Gateway
24.3.6. The Border Function
24.3.7. The IMS Architecture
24.3.8. Call Flows: Nonroaming Case
Registration
Call Setup
24.3.9. Call Flows: Roaming Case
Registration
Call Setup
24.4. IMS Concepts
24.4.1. IMS Identities
Private User Identity
Public User Identity
24.4.2. IMS Security
Access Security
Network Domain Security (NDS)
24.4.3. Identity Management
24.4.4. The IM Call Model
24.4.5. Charging
Offline Charging
Online Charging
24.4.6. Policy and Charging Control
24.5. New Requirements on SIP
24.5.1. Service Route Discovery During Registration
24.5.2. Discovering Adjacent Contacts
24.5.3. Private SIP Extensions for 3GPP IMS
P-Visited-Network-ID Header
P-Access-Network-Info Header
P-Charging-Function-Address Header
P-Charging-Vector Header
IMS Correlation ID
Access Network Charging Information
Inter Operator Identifier
P-Associated-URI
P-Called-Party-ID
24.6. IMS Services
24.6.1. The Presence Service
24.6.2. IMS Messaging
24.6.3. The PoC Service
24.6.4. The IMS Multimedia Telephony Service
24.6.5. Combinational Services
24.6.6. Global Text Telephony
24.7. ETSI TISPAN NGN
24.8. Next Trends in IMS
24.8.1. Voice Call Continuity (VCC)
24.8.2. IMS Centralized Services
24.9. Summary
A. Source Code
A.1 Obtaining the JAIN SIP and JAIN SDP Libraries
A.2 Obtaining the JMF Libraries
A.3 The Book’s Source Code
Acronyms
References
IETF Documents
Requests for Comments
Internet Drafts
3GPP Documents
ETSI TISPAN Documents
ITU Documents
OMA Documents
W3C Documents
Java Specification Requests
Web Links
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
14. Securing Multimedia Communications
Next
Next Chapter
15. Extending SIP
Part III. Advanced Topics
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset