001/* 002 * Copyright 2024 Vonage 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package com.vonage.client.video; 017 018import com.fasterxml.jackson.annotation.JsonCreator; 019import com.fasterxml.jackson.annotation.JsonValue; 020 021/** 022 * Represents the status of an RTMP stream. 023 * 024 * @see Rtmp#getStatus() 025 */ 026public enum RtmpStatus { 027 028 /** 029 * The Vonage video platform is in the process of connecting to the remote RTMP server. 030 * This is the initial state, and it is the status if you start when there are no streams published in the session. 031 * It changes to {@linkplain #LIVE} when there are streams (or it changes to one of the other states). 032 */ 033 CONNECTING, 034 035 /** 036 * The Vonage video platform has successfully connected to the remote RTMP server, and the media is streaming. 037 */ 038 LIVE, 039 040 /** 041 * The Vonage video platform could not connect to the remote RTMP server. This is due to an unreachable server 042 * or an error in the RTMP handshake. Causes include rejected RTMP connections, non-existing RTMP applications, 043 * rejected stream names, authentication errors, etc. Check that the server is online, and that you have 044 * provided the correct server URL and stream name. 045 */ 046 OFFLINE, 047 048 /** 049 * There is an error in the Vonage video platform. 050 */ 051 ERROR; 052 053 @JsonValue 054 @Override 055 public String toString() { 056 return name().toLowerCase(); 057 } 058 059 @JsonCreator 060 public static RtmpStatus fromString(String value) { 061 try { 062 return RtmpStatus.valueOf(value.toUpperCase()); 063 } 064 catch (NullPointerException | IllegalArgumentException ex) { 065 return null; 066 } 067 } 068}