package com.jcumulus.server.rtmfp.publisher;
/**
* jCumulus is a Java port of Cumulus OpenRTMP
*
* Copyright 2011 OpenRTMFP
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License received along this program for more
* details (or else see http://www.gnu.org/licenses/).
*
*
* This file is a part of jCumulus.
*/
import com.jcumulus.server.rtmfp.ISession;
import com.jcumulus.server.rtmfp.Peer;
import com.jcumulus.server.rtmfp.flow.A;
import com.jcumulus.server.rtmfp.flow.B;
import com.jcumulus.server.rtmfp.flow.E;
import com.jcumulus.server.rtmfp.application.C;
import java.util.ArrayList;
import java.util.List;
import org.jivesoftware.util.*;
public class F extends com.jcumulus.server.rtmfp.publisher.E
{
public F(int i, Peer p, ISession d)
{
super(i, S, "NetConnection", p, d);
U = new ArrayList();
}
public void A(String s, B b)
{
if("connect".equals(s))
{
b.C();
E e = b.L();
b.K();
K.A(e.A("swfUrl", ""));
K.C(e.A("pageUrl", ""));
K.D(e.A("flashVer", ""));
if(e.A("objectEncoding", Double.valueOf(0.0D)).doubleValue() == 0.0D)
{
O.B("Connect.Error", "ObjectEncoding client must be in a AMF3 format (not AMF0)");
return;
}
K.A(O);
int i = O.D();
A a1 = O.C("Connect.Success", "Connection succeeded");
a1.A("objectEncoding", 3D);
boolean flag = K.A(b, a1);
a1.A();
if(!flag)
{
O.A(i);
K.C();
}
} else
if("setPeerInfo".equals(s))
{
String s1;
for(; b.B(); K.N().add(s1))
s1 = b.E();
com.jcumulus.server.rtmfp.stream.BinaryWriter a = O.A(false);
a.A((short)41);
a.A(JiveGlobals.getIntProperty("voicebridge.rtmfp.keep.alive.server", 5));
a.A(JiveGlobals.getIntProperty("voicebridge.rtmfp.keep.alive.peer", 5));
} else
if(!"initStream".equals(s))
if("createStream".equals(s))
{
com.jcumulus.server.rtmfp.flow.F f = O.J();
Integer integer1 = I.getStreams().A();
U.add(integer1);
f.A(integer1.intValue());
} else
if("deleteStream".equals(s))
{
Integer integer = Integer.valueOf(b.N().intValue());
U.remove(integer);
I.getStreams().A(integer);
} else
if(!K.A(s, b))
O.B("Call.Failed", (new StringBuilder()).append("Method '").append(s).append("' not found").toString());
}
public static final byte S[] = {
0, 84, 67, 4, 0
};
public static final String T = "NetConnection";
List U;
}