Giter VIP home page Giter VIP logo

cumulus's People

Contributors

bdanchilla avatar cumulusdev avatar mathieupoux avatar sarahmei avatar thomasjammet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cumulus's Issues

Pixel Level Access

I need to draw a BitmapData from a Video which has a Cumulus NetStream attached in. The problem is: Cumulus is not allowing to have pixel level access.

What is the configuration to have this permission?

Thanks.

Nothing after Handshaking

Hello,

I installed CumulusService but i haven't been able to do a successful connection a launch service with
./CumulusService --log=8 --dump=all

and all i get is handshaking

DEBUG RTMFPServer[51] Handshaking
Request from 189.217.202.219:55717
0B 6E 4C 30 00 2A 19 18 0A 72 74 6D 66 70 3A 2F .nL0.*...rtmfp:/
2F 78 75 67 61 72 2E 6E 65 74 3A 31 39 38 35 2F /xugar.net:1985/
1F E2 AE 6A 5D 9D 24 BC 3C 96 5E B9 85 F4 ED DD .?j]?$?<?^?????
FF FF FF FF FF FF FF FF FF FF FF FF FF FF ??????????????
Response to 189.217.202.219:55717
0B 00 AD 70 00 9F 10 1F E2 AE 6A 5D 9D 24 BC 3C ..?p.?..?j]?$?<
96 5E B9 85 F4 ED DD 40 8A 13 2D F6 37 A3 6E 7E ?^?????@?.-?7?n~
04 C2 3F 74 57 52 50 23 01 4A DF 09 8D 3B D5 48 .??tWRP#.J?.?;?H
2A 24 44 25 7D FD 5A 60 9B 15 0A 4D 77 EB 8C E0 *$D%}?Z?..Mw?? F9 AA 3E 4B 7E BC AA 3C A5 C7 8B CD 03 AA AD 38 ??>K~??<?Nj?.??8 B6 29 58 36 57 79 3B DF 01 0A 41 0E 69 5F 99 60 ?)X6Wy;?..A.i_?
0F 8C 29 61 40 6F D4 1C 88 D5 0B 49 F1 3C 87 EB .?)a@o?.??.I?<??
5C 6D 9C 6A 25 72 77 27 CD 62 30 8A 0C E7 7A 2B \m?j%rw'?b0?.?z+
B4 77 2D 86 8C 1F 65 01 30 78 06 CA 75 4A AD 7F ?w-??.e.0x.?uJ?
ED DC BA B7 BB 31 F8 2B 3D 5F 84 25 02 15 02 02 ?ܺ??1?+=_?%....
15 05 02 15 0E

no streaming outside LAN = no NAT punching?

I use a Flash 10.1 application to stream video between clients. This works for internet clients using the Cirrus server. When using Cumulus it only works for clients on my LAN. I do see when internet clients connect to my Cumulus server, but there is no streaming.

Is this a NAT/UDP punching issue?
If so, will punching be supported by Cumulus?
If not, what would be the best way to enable punching?

Thank you and thanks for this great project.

session not created on FMS4 multicast publish (Method 'initStream' not found)

i publish an multicast Stream from AS3 FMS server

on FMS server log
Sending error message: Method not found (releaseStream).
Sending error message: Method not found (FCPublish).

Culumus log

22/04 16:03:02.4 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[127] Sender : 85.127.217.97:39046
22/04 16:03:02.4 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[63] Session d'identification '2'
Request:
0D 78 07 56 E6 51 00 03 02 7F 01 FF FF FF .x.V�Q...�.���
22/04 16:03:02.4 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[127] Sender : 85.127.217.97:39046
22/04 16:03:02.4 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[63] Session d'identification '2'
Request:
89 78 07 10 00 4D 00 02 02 01 14 00 00 00 00 02 �x...M..........
00 0B 73 65 74 50 65 65 72 49 6E 66 6F 00 00 00 ..setPeerInfo...
00 00 00 00 00 00 05 02 00 12 31 36 39 2E 32 35 ..........169.25
34 2E 38 2E 33 30 3A 33 39 30 34 36 02 00 14 31 4.8.30:39046...1
39 32 2E 31 36 38 2E 31 37 38 2E 32 31 3A 33 39 92.168.178.21:39
30 34 36 FF FF FF FF FF FF FF FF FF FF FF 046�����������
Response:
4E 56 F3 78 07 51 00 03 02 3F 02 10 00 13 00 02 NV�x.Q...?......
02 01 04 00 00 00 00 00 29 00 00 13 88 00 00 13 ........)...�...
88 �
22/04 16:03:02.4 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[127] Sender : 85.127.217.97:39046
22/04 16:03:02.4 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[63] Session d'identification '2'
Request:
89 78 07 10 00 33 80 03 01 01 05 00 54 43 04 00 �x...3�.....TC..
02 0A 02 00 14 00 00 00 00 02 00 0A 69 6E 69 74 ............init
53 74 72 65 61 6D 00 00 00 00 00 00 00 00 00 05 Stream..........
00 3F F0 00 00 00 00 00 00 FF FF FF FF FF .?�......�����
22/04 16:03:02.4 WARN RTMFPServer(140552942610176) Flow.cpp[365] 'NetConnection.InitStream.Failed' response error : Method 'initStream' not found
Response:
4E 56 F4 78 07 51 00 03 03 3F 01 10 00 8E 80 03 NV�x.Q...?....
01 01 05 00 54 43 04 00 02 0A 03 00 14 00 00 00 ....TC..........
00 02 00 06 5F 65 72 72 6F 72 00 00 00 00 00 00 ...._error......
00 00 00 05 03 00 05 6C 65 76 65 6C 02 00 05 65 .......level...e
72 72 6F 72 00 04 63 6F 64 65 02 00 1F 4E 65 74 rror..code...Net
43 6F 6E 6E 65 63 74 69 6F 6E 2E 49 6E 69 74 53 Connection.InitS
74 72 65 61 6D 2E 46 61 69 6C 65 64 00 0B 64 65 tream.Failed..de
73 63 72 69 70 74 69 6F 6E 02 00 1D 4D 65 74 68 scription...Meth
6F 64 20 27 69 6E 69 74 53 74 72 65 61 6D 27 20 od 'initStream'
6E 6F 74 20 66 6F 75 6E 64 00 00 09 not found...
22/04 16:03:02.4 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[127] Sender : 85.127.217.97:39046
22/04 16:03:02.4 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[63] Session d'identification '2'
Request:
09 78 07 10 00 2D 80 04 01 01 03 00 47 43 02 0A .x...-�.....GC..
02 00 01 1F 10 47 3A 30 31 30 31 30 31 30 63 30 .....G:0101010c0
39 30 65 36 65 36 35 37 37 36 37 37 32 36 66 37 90e6e657767726f7
35 37 30 FF FF FF FF FF FF FF FF FF FF FF 570�����������
Response:
4E 56 F4 78 07 51 00 03 04 3F 01 NV�x.Q...?.
22/04 16:03:02.5 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[127] Sender : 85.127.217.97:39046
22/04 16:03:02.5 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[63] Session d'identification '2'
Request:
0D 78 16 56 F4 5E 00 02 03 00 51 00 03 03 00 01 .x.V�^....Q.....
51 00 03 02 7F 02 FF FF FF FF FF FF FF FF Q...�.��������
22/04 16:03:02.5 WARN RTMFPServer(140552942610176) Flow.cpp[281] The flow '03' has failed
22/04 16:03:02.5 WARN RTMFPServer(140552942610176) Session.cpp[359] The flow '03' has received a negative ack for the stage '1'
22/04 16:03:02.5 WARN RTMFPServer(140552942610176) Flow.cpp[281] The flow '03' has failed
Response:
4E 57 01 78 16 10 00 04 03 03 02 02 NW.x........
22/04 16:03:02.5 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[127] Sender : 85.127.217.97:39046
22/04 16:03:02.5 DEBUG RTMFPServer(140552942610176) RTMFPServer.cpp[63] Session d'identification '2'
Request:
0D 78 23 57 01 51 00 03 03 00 02 FF FF FF .x#W.Q.....���
22/04 16:03:02.5 WARN RTMFPServer(140552942610176) Session.cpp[359] The flow '03' has received a negative ack for the stage '2'
22/04 16:03:02.5 WARN RTMFPServer(140552942610176) Flow.cpp[281] The flow '03' has failed
22/04 16:03:02.8 DEBUG RTMFPServer(140552942610176) Session.cpp[101] Flow '03' consumed

Firewall holes left open after connections closed?

I have Cumulus running as a rendezvous service. On my Actionscript app I use the peerID provided by Cumulus to establish a NetStream.DIRECT_CONNECTIONS connection between clients.

When using wireshark (protocol analyzer) I see that even after I close the netstream, UDP keep-alive packets for the peer are being exchanged between the cumulus server and the client.
I would expect the server keep-alive packets to continue - but the peer keep alive packets should stop when the netstream is closed. Is there a setting am missing?

When I use Adobe Cirrus instead - the peer keep-alive packets DO stop once the netstream is closed.

RTMFPServer.cpp[60]

28/01 16:54:14.4 DEBUG RTMFPServer(139883590113024) RTMFPServer.cpp[60] Handshaking
Request from xxx.xxx.xxx.xxx:63941
0B 43 EA 30 00 6D 5C 5B 0A 72 74 6D 66 70 3A 2F .Cк0.m[.rtmfp:/
2F 39 34 2E 32 33 2E 31 35 30 2E 38 30 3A 31 39 /xx.xx.xxx.xx:xx
33 35 2F 36 61 39 37 63 33 66 32 39 30 37 38 62 35/6a97c3f29078b
64 37 36 36 65 35 31 64 64 33 36 35 32 66 39 35 d766e51dd3652f95
66 32 34 38 31 66 39 33 38 66 65 62 30 65 32 33 f2481f938feb0e23
66 37 30 31 63 62 31 36 36 35 31 37 64 64 62 32 f701cb166517ddb2
38 66 34 80 5F F0 5F 74 06 95 2C 98 F5 29 2C 2D 8f4Ђ_р_t.•,�х),-
56 63 92 FF FF FF FF FF FF FF FF FF FF FF Vc’яяяяяяяяяяя
Response to xxx.xxx.xxx.xxx:63941
0B 89 81 70 00 9F 10 80 5F F0 5F 74 06 95 2C 98 .‰Ѓp.џ.Ђ_р_t.•,�
F5 29 2C 2D 56 63 92 40 1F 4A 76 71 87 E3 01 82 х),-Vc’@.Jvq‡г.‚
DF A0 20 A2 1A C0 7A D2 FD B9 F9 9E 94 B7 17 19 Я  ў.АzТэ№щћ”·..
5D 67 6C 1C 13 D9 CA 96 C0 FF 93 8E 0C 5B F1 7E ]gl..ЩК–Ая“Ћ.[с~
C6 11 FD D7 64 61 F7 55 BB 80 2E 00 76 91 5F 7B Ж.эЧdaчU»Ђ..v‘_{
C0 A6 6F 56 A6 38 24 45 01 0A 41 0E DA D7 40 36 А¦oV¦8$E..A.ЪЧ@6
E8 18 AB 5B BB 92 CA C6 B9 29 E2 54 9B B8 ED 8C и.«[»’КЖ№)вT›ёнЊ
B9 18 7B 8B 72 B7 5C E6 06 B5 CD 3A 29 DB 8E 31 №.{‹r·\ж.µН:)ЫЋ1
2E 96 D9 9A AA B5 2C 7A 71 A2 53 DB 1A 3C 94 87 .–ЩљЄµ,zqўSЫ.<”‡
02 DC 43 93 86 8B 99 53 99 18 61 A2 02 15 02 02 .ЬC“†‹™S™.aў....
15 05 02 15 0E .....
28/01 16:54:17.0 DEBUG RTMFPServer(139883590113024) Handshake.cpp[75] Obsolete cookie : bc6260558edfad444e7e588f2c3089fcbb92abb78d37682c0df9a195a87b5e4ac74b3e0e
fdec593114b5af0531005be7c669869d1d1ba5a1de794aa496ea3bbe

on RTMFPServer.cpp line 60

Session* RTMFPServer::findSession(UInt32 id) {

// Id session can't be egal to 0 (it's reserved to Handshake)
if(id==0) {
    DEBUG("Handshaking");
    return &_handshake;
}
Session* pSession = _sessions.find(id);
if(pSession)
    return pSession;

WARN("Unknown session %u",id);
return NULL;

}

what's this error means?

SecurityError: Error #2123: Security sandbox violation: BitmapData.draw: http://localhost/RecebedorCumulus/RecebedorCumulus.swf cannot access rtmfp://localhost:1985/. No policy files granted access.

I got this error:

SecurityError: Error #2123: Security sandbox violation: BitmapData.draw: http://localhost/ReceiverCumulus/ReceiverCumulus.swf cannot access rtmfp://localhost:1985/. No policy files granted access.

I need to capture the Bitmap from the Video with the NetStream attached. As a test, the video appears correctly.
I put crossdomain.xml in localhost and localhost/ReceiverCumulus, but it's not the problem. The problem is the cumulus policy.
How can I do it?

I used Security.allowDomain, allowInsecureDomain and loadPolicy, but without success.

To reproduce this problem, run the cumulusservice and create a client to publish the webcam and another client to receive the webcam, but attaching this netstream to a video and using bitmapData.draw(video), showing the bitmap, not the video.

Comiling Debian Lenny failed

I tested the Cumulus Server in the LAN on a Ubuntu 10.04 Server and everything works fine.
No i want to use the server script online on a debian lenny Server but i can't compile CumulusLib.

First I installed the needed librarys (aptitude install libssl-dev libpoco-dev) and also the g++ compiler is avaiable. Then cloned the git hub repo (git clone URL) and then switch to Cumulus/CumulusLib. If I call "make" i got following error message:

/path/to/Cumulus/CumulusLib# make
compiling AMFReader.cpp
In file included from ./include/PacketReader.h:21,
from ./include/AMFReader.h:21,
from ./sources/AMFReader.cpp:18:
./include/PacketWriter.h: In member function ‘void Cumulus::PacketWriter::writeRaw(const Poco::UInt8_, int)’:
./include/PacketWriter.h:67: error: no matching function for call to ‘Cumulus::PacketWriter::writeRaw(char_, int&)’
/usr/include/Poco/BinaryWriter.h:123: note: candidates are: void Poco::BinaryWriter::writeRaw(const std::string&)
./include/PacketWriter.h: In member function ‘void Cumulus::PacketWriter::writeRaw(const char_, int)’:
./include/PacketWriter.h:70: error: no matching function for call to ‘Cumulus::PacketWriter::writeRaw(const char_&, int&)’
/usr/include/Poco/BinaryWriter.h:123: note: candidates are: void Poco::BinaryWriter::writeRaw(const std::string&)
In file included from ./include/AMFReader.h:21,
from ./sources/AMFReader.cpp:18:
./include/PacketReader.h: In member function ‘void Cumulus::PacketReader::readRaw(Poco::UInt8_, int)’:
./include/PacketReader.h:57: error: no matching function for call to ‘Cumulus::PacketReader::readRaw(char_, int&)’
/usr/include/Poco/BinaryReader.h:105: note: candidates are: void Poco::BinaryReader::readRaw(int, std::string&)
./include/PacketReader.h: In member function ‘void Cumulus::PacketReader::readRaw(char_, int)’:
./include/PacketReader.h:60: error: no matching function for call to ‘Cumulus::PacketReader::readRaw(char_&, int&)’
/usr/include/Poco/BinaryReader.h:105: note: candidates are: void Poco::BinaryReader::readRaw(int, std::string&)
In file included from ./include/Logs.h:21,
from ./sources/AMFReader.cpp:19:
./include/Logger.h: At global scope:
./include/Logger.h:44: error: ‘Poco::Thread::TID’ has not been declared
./sources/AMFReader.cpp: In member function ‘void Cumulus::AMFReader::read(std::string&)’:
./sources/AMFReader.cpp:38: error: ‘currentTid’ is not a member of ‘Poco::Thread’
./sources/AMFReader.cpp: In member function ‘double Cumulus::AMFReader::readNumber()’:
./sources/AMFReader.cpp:47: error: ‘currentTid’ is not a member of ‘Poco::Thread’
./sources/AMFReader.cpp: In member function ‘void Cumulus::AMFReader::readNull()’:
./sources/AMFReader.cpp:59: error: ‘currentTid’ is not a member of ‘Poco::Thread’
./sources/AMFReader.cpp: In member function ‘void Cumulus::AMFReader::readObject(Cumulus::AMFObject&)’:
./sources/AMFReader.cpp:65: error: ‘currentTid’ is not a member of ‘Poco::Thread’
./sources/AMFReader.cpp:95: error: ‘currentTid’ is not a member of ‘Poco::Thread’
./sources/AMFReader.cpp:105: error: ‘currentTid’ is not a member of ‘Poco::Thread’
make: *** [AMFReader.o] Fehler 1

Hopefully somebody know the solution?

Problem compiling using Visual Studio 2010

Hello,

Great Job on the server!

I've successfully compiled the server on Ubuntu 10.10. However when I tried to compile with VS 2010 on Windows I get the following compilation error:

2> BinaryStream.cpp
2>include\BinaryStream.h(75): error C2039: '_Sgetn_s' : is not a member of 'std::basic_stringbuf<_Elem,_Traits,_Alloc>'
2> with
2> [
2> _Elem=char,
2> _Traits=std::char_traits,
2> _Alloc=std::allocator
2> ]

Any Suggestions?

Thanks
John

Cannot get Cumulus Server ID for RTMFP

Hi,

My cli is:

root@37:~/Cumulus/CumulusServer# ./CumulusServer
NOTE RTMFPServer[115] RTMFP server starts on 1935 port

It DOESN't show
INFO Handshake[43] Flash far id of this cumulus server XXXXXXXXXXXXXXX

What should i do ?

Thanks

Looking for contact CumulusDev

CumulusDev : Is there any way to contact you ? We are working on a project that use CumulusServer and we would like to contact you in order to see how we can help you improve CumulusServer.

CumulusDev : De quel moyen pouvons nous vous contacter ? Nous travaillons sur un projet qui utilise CumulusServer et nous aimerions vous contacter pour voir de quelle manière nous pourrions vous aider a améliorer CumulusServer.

Compiling CumulusService on Debian Lenny

Now CumulusLib compiled ... it looks good - no errors and so on.
But now CumulusService will not compile ...

This is the error message:
creating CumulusService executable CumulusService
main.o: In function Poco::Thread::currentTid()': main.cpp:(.text._ZN4Poco6Thread10currentTidEv[Poco::Thread::currentTid()]+0x5): undefined reference toPoco::ThreadImpl::currentTidImpl()'
main.o: In function Poco::DateTimeFormatter::format(Poco::DateTime const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)': main.cpp:(.text._ZN4Poco17DateTimeFormatter6formatERKNS_8DateTimeERKSsi[Poco::DateTimeFormatter::format(Poco::DateTime const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)]+0x41): undefined reference toPoco::DateTimeFormatter::append(std::basic_string<char, std::char_traits, std::allocator >&, Poco::DateTime const&, std::basic_string<char, std::char_traits, std::allocator > const&, int)'
Auth.o: In function Poco::Ascii::properties(int)': Auth.cpp:(.text._ZN4Poco5Ascii10propertiesEi[Poco::Ascii::properties(int)]+0x1f): undefined reference toPoco::Ascii::CHARACTER_PROPERTIES'
/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/libCumulus.so: undefined reference to Poco::BinaryReader::readRaw(long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/libCumulus.so: undefined reference toPoco::BinaryWriter::writeRaw(char const_, long)'
/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/libCumulus.so: undefined reference to Poco::Util::MapConfiguration::removeRaw(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/libCumulus.so: undefined reference toPoco::ThreadImpl::sleepImpl(long)'
/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/libCumulus.so: undefined reference to `Poco::BinaryReader::readRaw(char_, long)'
collect2: ld returned 1 exit status
make: *** [main] Fehler 1

how cumulus generated peerId for clients?

Hi all,

I have 3 questions:

(1) the nc.nearID we got in flash, I didn't find where cumulus generated it?
(2) what is session.farId in Cumulus used for?
(3) when client connects to cumulus, I found createSession() is invoked. But I didn't see anywhere in cumulus code that calls createSession(). how that function is invoked on earth??

./sources/Script.h:30:25: error: lua5.1/lua.h: No such file or directory

when trying to run make in ~/CumulusServer i get the following error:

root@complexi7 [/usr/local/src/OpenRTMFP-Cumulus-ca335fe/CumulusServer]# make
compiling main.cpp
In file included from ./sources/Service.h:21,
from ./sources/Server.h:22,
from ./sources/main.cpp:20:
./sources/Script.h:30:25: error: lua5.1/lua.h: No such file or directory
./sources/Script.h:31:29: error: lua5.1/lauxlib.h: No such file or directory
./sources/Script.h:108: error: expected â;â before â(â token
./sources/Script.h:110: error: âlua_Stateâ has not been declared
./sources/Script.h:112: error: âlua_Stateâ has not been declared
./sources/Script.h:113: error: âlua_Stateâ has not been declared
./sources/Script.h:115: error: âlua_Stateâ has not been declared
./sources/Script.h:116: error: ISO C++ forbids declaration of âlua_Stateâ with no type
./sources/Script.h:116: error: expected â;â before â_â token
./sources/Script.h:117: error: âlua_Stateâ has not been declared
./sources/Script.h:117: error: âlua_CFunctionâ has not been declared
./sources/Script.h:129: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:129: error: âpStateâ was not declared in this scope
./sources/Script.h:129: error: expected primary-expression before âconstâ
./sources/Script.h:129: error: ISO C++ forbids in-class initialization of non-const static member âClearPersistentObjectâ
./sources/Script.h:129: error: template declaration of âbool ClearPersistentObjectâ
./sources/Script.h:155: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:155: error: âpStateâ was not declared in this scope
./sources/Script.h:155: error: expected primary-expression before â&â token
./sources/Script.h:155: error: âobjectâ was not declared in this scope
./sources/Script.h:155: error: variable or field âWriteObjectâ declared void
./sources/Script.h:155: error: ISO C++ forbids in-class initialization of non-const static member âWriteObjectâ
./sources/Script.h:155: error: template declaration of âint WriteObjectâ
./sources/Script.h:165: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:165: error: âpStateâ was not declared in this scope
./sources/Script.h:165: error: expected primary-expression before âconstâ
./sources/Script.h:165: error: variable or field âWriteObjectâ declared void
./sources/Script.h:165: error: ISO C++ forbids in-class initialization of non-const static member âWriteObjectâ
./sources/Script.h:165: error: template declaration of âint WriteObjectâ
./sources/Script.h:200: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:200: error: âpStateâ was not declared in this scope
./sources/Script.h:200: error: expected primary-expression before â&â token
./sources/Script.h:200: error: âobjectâ was not declared in this scope
./sources/Script.h:200: error: variable or field âWritePersistentObjectâ declared void
./sources/Script.h:200: error: ISO C++ forbids in-class initialization of non-const static member âWritePersistentObjectâ
./sources/Script.h:200: error: template declaration of âint WritePersistentObjectâ
./sources/Script.h:210: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:210: error: âpStateâ was not declared in this scope
./sources/Script.h:210: error: expected primary-expression before âconstâ
./sources/Script.h:210: error: variable or field âWritePersistentObjectâ declared void
./sources/Script.h:210: error: ISO C++ forbids in-class initialization of non-const static member âWritePersistentObjectâ
./sources/Script.h:210: error: template declaration of âint WritePersistentObjectâ
./sources/Script.h:240: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:240: error: âpStateâ was not declared in this scope
./sources/Script.h:240: error: template declaration of âType_ DestructorCallbackâ
./sources/Script.h:254: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:254: error: âpStateâ was not declared in this scope
./sources/Script.h:254: error: template declaration of âType* PopCallbackâ
./sources/Script.h:268: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:268: error: âpStateâ was not declared in this scope
./sources/Script.h:268: error: expected primary-expression before âboolâ
./sources/Script.h:268: error: template declaration of âType* PushCallbackâ
./sources/Script.h:274: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:274: error: âpStateâ was not declared in this scope
./sources/Script.h:274: error: expected primary-expression before âboolâ
./sources/Script.h:274: error: template declaration of âType* Callbackâ
./sources/Script.h:342: error: âlua_Debugâ does not name a type
./sources/Script.h:345: error: âlua_Stateâ has not been declared
./sources/Script.h:346: error: âlua_Stateâ has not been declared
./sources/Script.h:349: error: âlua_Stateâ was not declared in this scope
./sources/Script.h:349: error: âpStateâ was not declared in this scope
./sources/Script.h:349: error: template declaration of âint Callâ
./sources/Script.h:357: error: âlua_Stateâ has not been declared
./sources/Script.h:358: error: âlua_Stateâ has not been declared
./sources/Script.h:359: error: âlua_Stateâ has not been declared
./sources/Script.h:360: error: âlua_Stateâ has not been declared
./sources/Script.h:361: error: âlua_Stateâ has not been declared
./sources/Script.h:362: error: âlua_Stateâ has not been declared
./sources/Script.h:364: error: âlua_Stateâ has not been declared
./sources/Script.h:365: error: âlua_Stateâ has not been declared
./sources/Service.h:27: error: expected `)' before â_â token
./sources/Service.h:30: error: âlua_Stateâ has not been declared
./sources/Service.h:31: error: âlua_Stateâ has not been declared
./sources/Service.h:32: error: âlua_Stateâ has not been declared
./sources/Service.h:37: error: ISO C++ forbids declaration of âlua_Stateâ with no type
./sources/Service.h:37: error: expected â;â before â_â token
./sources/Service.h:47: error: âlua_Stateâ has not been declared
./sources/Service.h:48: error: âlua_Stateâ has not been declared
./sources/Service.h:49: error: âlua_Stateâ has not been declared
./sources/Service.h:52: error: ISO C++ forbids declaration of âlua_Stateâ with no type
./sources/Service.h:52: error: expected â;â before â_â token
./sources/Service.h:63: error: variable or field âInitGlobalTableâ declared void
./sources/Service.h:63: error: âService::InitGlobalTableâ declared as an âinlineâ variable
./sources/Service.h:63: error: âint Service::InitGlobalTableâ is not a static member of âclass Serviceâ
./sources/Service.h:63: error: âlua_Stateâ was not declared in this scope
./sources/Service.h:63: error: âpStateâ was not declared in this scope
./sources/Service.h:63: error: expected â,â or â;â before â{â token
./sources/Server.h:59: error: ISO C++ forbids declaration of âlua_Stateâ with no type
./sources/Server.h:59: error: expected â;â before â_â token
make: *** [main.o] Error 1

i installed the lua bin first, then compile lua from src and setup the LUA_DIR environment variable in bashrc. after both times i still get the above error. i see in Script.h that it's looking for lua 5.1 directory. i assume shell then outputs the subsequent error messages because it can't find it.

if anyone has the fix, please let me know.

thanks,
john h

Cumulus Not Sending Data to NetGroup

    netConnection = new NetConnection();
netConnection.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);
netConnection.connect(Globals.SERVER + Globals.DEVKEY);

groupSpecifier = new GroupSpecifier(Globals.GROUP_PREFIX + "mygroupname");
groupSpecifier.multicastEnabled = true;
groupSpecifier.postingEnabled = true;
groupSpecifier.serverChannelEnabled = true;

netStream = new NetStream(netConnection, groupSpecifier.groupspecWithAuthorizations());
netStream.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);

netGroup = new NetGroup(netConnection, groupSpecifier.groupspecWithAuthorizations());
netGroup.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);

The peers connect and I see the sessions get created on the CumulusService side (running on Linux), but the data sent via POST never gets to the other side. This works on Adobe Cirrus.

// Send the text
var message:Object = new Object;

message.user = Globals.userName;
message.text = textInput.text;
message.sequence = sequenceNumber++;
message.sender = netConnection.nearID;

netGroup.post(message);

Has anyone seen this issue? What would be causing this?

The sample is also not working: http://labs.adobe.com/technologies/cirrus/samples/

Problems using SMP (OSMF)

Hello,

I had no problems using basic Flash Player but when I try to use Strobe Media Playback there seems to be some problems, getting a TypeError #1010 while with Cirrus everything was working fine.
You can find the full debug log pasted here:

http://pastebin.ubuntu.com/671648/

daemon error in centOS5

I git clone newest Cumulus in 2011--03-13. make lib and make service.

[root@hn CumulusService]# ./CumulusService --daemon
[root@hn CumulusService]# ps ax | grep CumulusService
30969 pts/1 S+ 0:00 grep CumulusService

I can't find CumulusService .It don't run.

but I use CumulusService that downloaded in 2011-01-23. All is right.
Why?

comile cumulus under osx

hi,

thanks for setting up this project. i would like to help with the development, specially for osx 10.6 or higher.

i downloaded all sources and tried to compile.

first i compile and install the poco basic edition.

after switchting tothe cumulus dir and make:
make

i got these errors:
compiling Session.cpp
compiling Sessions.cpp
compiling Util.cpp
creating dynamic lib libCumulus.so
Undefined symbols:
"Poco::RandomInputStream::~RandomInputStream()", referenced from:
Cumulus::Handshake::handshakeHandler(unsigned char, Cumulus::PacketReader&, Cumulus::PacketWriter&)in Handshake.o
Cumulus::Handshake::handshakeHandler(unsigned char, Cumulus::PacketReader&, Cumulus::PacketWriter&)in Handshake.o
C
....cut here..

do i maybe have an false poco version? is anyone able to compile the source under osx? can anyone write a short tutorial how to compile under osx?

thanks..
gary

ERROR Session[344] The flow '04' has received a ack negative for the stage '00'

Hello, I have started playing with Cumulus today on a Mac OSX 10.6.6 (x86_64), it works good but I am receiving the errors:

ERROR Session[344] The flow '04' has received a ack negative for the stage '00'
and
ERROR main[182] Client failed : Exception

It appears to be related with closing a NetGroup and opening a new one.

Congratulations for the great work you are doing with this project.

Method 'relay' not found

I am trying to set-up cirrus video chat example that is available here: http://labs.adobe.com/technologies/cirrus/samples

Connect works ok, clients are assigned id as expected, but calling doesn't work. The example makes use of a custom Object called relay, which is passed around methods that are invoked on netconnection object. So my guess is that there's a problem with sending complex objects. Any idea how to make this example work?

CumulusService log output:


DEBUG RTMFPServer[129] Sender : 192.168.56.1:54338
DEBUG RTMFPServer[63] Session d'identification '1'
DEBUG RTMFPServer[129] Sender : 192.168.56.1:57921
DEBUG RTMFPServer[58] Handshaking
DEBUG RTMFPServer[129] Sender : 192.168.56.1:57921
DEBUG RTMFPServer[58] Handshaking
NOTE Sessions[51] Session 2 created
DEBUG RTMFPServer[129] Sender : 192.168.56.1:57921
DEBUG RTMFPServer[63] Session d'identification '2'
DEBUG RTMFPServer[129] Sender : 192.168.56.1:57921
DEBUG RTMFPServer[63] Session d'identification '2'
DEBUG RTMFPServer[129] Sender : 192.168.56.1:57921
DEBUG RTMFPServer[63] Session d'identification '2'
DEBUG RTMFPServer[129] Sender : 192.168.56.1:57921
DEBUG RTMFPServer[63] Session d'identification '2'

DEBUG RTMFPServer[129] Sender : 192.168.56.1:54338
DEBUG RTMFPServer[63] Session d'identification '1'
DEBUG RTMFPServer[129] Sender : 192.168.56.1:57921
DEBUG RTMFPServer[63] Session d'identification '2'
DEBUG RTMFPServer[129] Sender : 192.168.56.1:54338
DEBUG RTMFPServer[63] Session d'identification '1'
DEBUG RTMFPServer[129] Sender : 192.168.56.1:57921
DEBUG RTMFPServer[63] Session d'identification '2'
WARN Flow[365] 'NetConnection.Relay.Failed' response error : Method 'relay' not found


cumulus for dummies

Hi there,

before of all thanks for your work.

We'd like to use Cumulus as p2p server for Flash client for web tv network.

Is there a step by step procedure to install Cumulus on a server and to use it inserting the video file playlists?

Many thanks!

Giuseppe

build error

Hello,cumulusdev , I like Cumulus very much, but I found a problem when I build Cumulus source code by Visual Studio 2008 or Visual Studio 2010 .

issue:

1>------ 已启动全部重新生成: 项目: CumulusLib, 配置: debug_shared Win32 ------
1> Target.cpp
1> Middle.cpp
1> Streams.cpp
1> QualityOfService.cpp
1> Publications.cpp
1> Publication.cpp
1> Listener.cpp
1> Trigger.cpp
1> Message.cpp
1> FlowWriter.cpp
1> FlowStream.cpp
1> FlowNull.cpp
1> FlowGroup.cpp
1> FlowConnection.cpp
1> Flow.cpp
1> Sessions.cpp
1> Session.cpp
1> Handshake.cpp
1> Cookie.cpp
1> Logs.cpp
1> 正在生成代码...
1> 正在编译...
1> RTMFPServer.cpp
1> RTMFP.cpp
1> Peer.cpp
1> Handler.cpp
1> Group.cpp
1> Entity.cpp
1> Clients.cpp
1> AESEngine.cpp
1> Util.cpp
1> Startable.cpp
1> ServerSession.cpp
1> ServerConnection.cpp
1> RTMFPServerEdge.cpp
1> Address.cpp
1> PacketWriter.cpp
1> PacketReader.cpp
1> MemoryStream.cpp
1> EdgeSession.cpp
1> Edges.cpp
1> BinaryWriter.cpp
1> 正在生成代码...
1> 正在编译...
1> BinaryStream.cpp
1>d:\vs2010space\openrtmfp\cumuluslib\sources\binarystream.cpp(41): warning C4244: “初始化”: 从“std::streamoff”转换到“int”,可能丢失数据
1> BinaryReader.cpp
1> AMFWriter.cpp
1> AMFReader.cpp
1> AMFObjectWriter.cpp
1> AMFObject.cpp
1> Cumulus.cpp
1> 正在生成代码...
1> 正在创建库 D:\vs2010space\OpenRTMFP\CumulusLib\lib/\CumulusLibd.lib 和对象 D:\vs2010space\OpenRTMFP\CumulusLib\lib/\CumulusLibd.exp
1> 正在创建库 D:\vs2010space\OpenRTMFP\CumulusLib\lib/\CumulusLibd.lib 和对象 D:\vs2010space\OpenRTMFP\CumulusLib\lib/\CumulusLibd.exp
1> CumulusLib.vcxproj -> D:\vs2010space\OpenRTMFP\CumulusLib\lib/\CumulusLibd.dll
2>------ 已启动全部重新生成: 项目: CumulusService, 配置: debug_shared Win32 ------
2> StatusWriter.cpp
2> Server.cpp
2> main.cpp
2> Auth.cpp
2> 正在生成代码...
2>Server.obj : error LNK2019: 无法解析的外部符号 "public: class Cumulus::FlowWriter & __thiscall Cumulus::Client::writer(void)" (?writer@Client@Cumulus@@QAEAAVFlowWriter@2@XZ),该符号在函数 "private: virtual bool __thiscall Server::onConnection(class Cumulus::Client &,class Cumulus::AMFReader &)" (?onConnection@Server@@EAE_NAAVClient@Cumulus@@AAVAMFReader@3@@z) 中被引用
2>Server.obj : error LNK2019: 无法解析的外部符号 "public: double __thiscall Cumulus::AMFReader::readNumber(void)" (?readNumber@AMFReader@Cumulus@@QAENXZ),该符号在函数 "private: virtual bool __thiscall Server::onMessage(class Cumulus::Client &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class Cumulus::AMFReader &)" (?onMessage@Server@@EAE_NAAVClient@Cumulus@@abv?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@AAVAMFReader@3@@z) 中被引用
2>StatusWriter.obj : error LNK2019: 无法解析的外部符号 "public: class Cumulus::QualityOfService const & __thiscall Cumulus::Listener::audioQOS(void)const " (?audioQOS@Listener@Cumulus@@QBEABVQualityOfService@2@XZ),该符号在函数 "private: void __thiscall StatusWriter::refresh(class Cumulus::Handler &)" (?refresh@StatusWriter@@AAEXAAVHandler@Cumulus@@@z) 中被引用
2>StatusWriter.obj : error LNK2019: 无法解析的外部符号 "public: class Cumulus::QualityOfService const & __thiscall Cumulus::Listener::videoQOS(void)const " (?videoQOS@Listener@Cumulus@@QBEABVQualityOfService@2@XZ),该符号在函数 "private: void __thiscall StatusWriter::refresh(class Cumulus::Handler &)" (?refresh@StatusWriter@@AAEXAAVHandler@Cumulus@@@z) 中被引用
2>D:\vs2010space\OpenRTMFP\CumulusService\debug_shared\CumulusService.exe : fatal error LNK1120: 4 个无法解析的外部命令
========== 全部重新生成: 成功 1 个,失败 1 个,跳过 0 个 ==========

Can you help me see what ? Thanks ! love you ! love Cumulus!

how get ID by Debian Lenny

I compiled without errors, and then launched

./CumulusServer --daemon --pidfile=/var/run/CumulusServer.pid

touch pid is ok

Here is how the daemon process
root 14404 0.5 0.0 56532 1624 ? Ssl 15:47 0:57 ./CumulusServer --daemon --pidfile=/var/run/CumulusServer.pid

in the log is only
27/01 15:47:43.5 NOTE RTMFPServer(xxx) RTMFPServer.cpp[115] RTMFP server starts on 1935 port

but where the ColumusServer ID?

example

someone please help me ,if could send me a working example of peer-to-peer connections to connect two web cams via cumulus server

thank you in advance

Some compile errors!

./include/PacketWriter.h: In member function ‘void Cumulus::PacketWriter::writeRaw(const Poco::UInt8_, int)’:
./include/PacketWriter.h:64: error: no matching function for call to ‘Cumulus::PacketWriter::writeRaw(char_, int&)’

/usr/include/Poco/BinaryWriter.h:123: note: candidates are: void Poco::BinaryWriter::writeRaw(const std::string&)

./include/PacketWriter.h: In member function ‘void Cumulus::PacketWriter::writeRaw(const char_, int)’:
./include/PacketWriter.h:67: error: no matching function for call to ‘Cumulus::PacketWriter::writeRaw(const char_&, int&)’

/usr/include/Poco/BinaryWriter.h:123: note: candidates are: void Poco::BinaryWriter::writeRaw(const std::string&)

./include/PacketReader.h: In member function ‘void Cumulus::PacketReader::readRaw(Poco::UInt8_, int)’:
./include/PacketReader.h:57: error: no matching function for call to ‘Cumulus::PacketReader::readRaw(char_, int&)’

/usr/include/Poco/BinaryReader.h:105: note: candidates are: void Poco::BinaryReader::readRaw(int, std::string&)

./include/PacketReader.h: In member function ‘void Cumulus::PacketReader::readRaw(char_, int)’:
./include/PacketReader.h:60: error: no matching function for call to ‘Cumulus::PacketReader::readRaw(char_&, int&)’

/usr/include/Poco/BinaryReader.h:105: note: candidates are: void Poco::BinaryReader::readRaw(int, std::string&)

./include/Logger.h: At global scope:
./include/Logger.h:44: error: ‘class Poco::Thread::TID’ has not been declared

./sources/AMFReader.cpp: In member function ‘void Cumulus::AMFReader::read(std::string&)’:
./sources/AMFReader.cpp:38: error: ‘currentTid’ is not a member of ‘Poco::Thread’

./sources/AMFReader.cpp: In member function ‘double Cumulus::AMFReader::readNumber()’:
./sources/AMFReader.cpp:47: error: ‘currentTid’ is not a member of ‘Poco::Thread’

./sources/AMFReader.cpp: In member function ‘void Cumulus::AMFReader::readNull()’:
./sources/AMFReader.cpp:59: error: ‘currentTid’ is not a member of ‘Poco::Thread’

./sources/AMFReader.cpp: In member function ‘void Cumulus::AMFReader::readObject(Cumulus::AMFObject&)’:
./sources/AMFReader.cpp:65: error: ‘currentTid’ is not a member of ‘Poco::Thread’

./sources/AMFReader.cpp:95: error: ‘currentTid’ is not a member of ‘Poco::Thread’

./sources/AMFReader.cpp:97: warning: passing NULL to non-pointer argument 2 of ‘void Cumulus::AMFObject::setInt(const std::string&, int)’

./sources/AMFReader.cpp:105: error: ‘currentTid’ is not a member of ‘Poco::Thread’

Server does not start

Hi there,

after successfully compiling everything, I just cannot get this thing running. Could anybody help me with this please? CLI output is the following without anything coming up afterwards, no matter how long I wait... =(

CLI output:
test-01@01-test-Ub11:~/Downloads/OpenRTMFP-Cumulus-4314950/CumulusService$ ./CumulusService
INFO Handshake[44] Id of this cumulus server : 66da64e072df9ee3da4cf74bd7ad151ab46122116e8f848223d3dd6e318af9d2
NOTE RTMFPServer[110] RTMFP server starts on 1935 port

Thanks in advance!

Got Cumulus working on OS X

I was able to compile Cumulus on OS X Lion by heavily modifying the Makefile for CumulusLib. I also had to slightly modify the Makefile for CumulusService. It's captured in a chef recipe that clones the repo, replaces the Makefiles, and then installs.

You could add to your README instructions for OS X. Installing poco on OS X is no simple matter either; I also have a chef recipe for that.

The project is https://github.com/sarahmei/xmpp-cookbook
Feel free to use anything in there.

binaries on git

It would be very nice to have a precompiled binaries on git. For windows at least ;)

Messages to RTMFPServer after successfull connection

Hello,

First of all, huge thank you for creating this project.

I've been playing with the server over the last few days, and am able to successfully connect (https://gist.github.com/898603). Once the NetConnection is established though, I don't know how to communicate with the server over the connection. I've tried creating a NetStream object with:

_nsSend = new NetStream(_nc, NetStream.CONNECT_TO_FMS); _nsSend.addEventListener(IOErrorEvent.IO_ERROR, onNSIOError); _nsSend.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onNSAsyncError); _nsSend.addEventListener(NetStatusEvent.NET_STATUS, onNSNetStatus); _nsSend.publish('foo');

but, this seems to confuse the server. If I close the connection/player, I don't get a 'Session died' message, and cannot re-connect afterwards.

Next I tried Connecting with a NetGroup object:

var spec:GroupSpecifier = new GroupSpecifier('testSpec'); spec.serverChannelEnabled = true; var sSpec:String = spec.groupspecWithoutAuthorizations(); trace('joining group, sSpec: ' + sSpec); _ng = new NetGroup(_nc, sSpec);

but, I'm not sure how that's implemented on the server. There doesn't seem to be any public accessor for RTMFPServer::_sessions. I do get a reply back from the server when using the NetGroup, but the 'code' is 'NetGroup.Connect.Rejected': https://gist.github.com/898637

Anyway, any help would be appreciated, and thanks again for this project.

Couldn't find milestones or anything like that on this project.

It still is on development stage...

I'm very interested on this project. Could you tell an aprox. amount of money you guys need to get this to a stable stage and how much time it would take you? Both as realistic as possible, please >_> it's not like I have a big pocket (trust me, I don't ;) but I prefer this than using Adobe's propietary service)

libPocoFoundation.so.11: cannot open shared object file

After much trial and error (had to get the latest Poco, not use the one through apt-get), I've managed to build CumulusLib and CumulusService on Ubuntu 9 server.

When trying to execute the CumulusService file I get this error:

./CumulusService: error while loading shared libraries: libPocoFoundation.so.11: cannot open shared object file: No such file or directory

I gather as much it has to do with some missing shared Poco library. But I'm at a loss. Is this something I have to download and put in the Cumulus directory?

Incompatibility between Flash clients 11.0 and 11.1

There is an incompatibility issue between a flash 11.0.x client and a flash 11.1.x client.

If 11.0 create a server, 11.1 can't connect to it (and the same issue exists the other way).

This issue is due to the Rendez-Vous server, because there is no issue with the official Cirrus server from Adobe.

You can see a thread here : http://forums.adobe.com/message/4023158?tstart=0

This issue still exists with the last version of Cumulus (November 14th 2011).

Can not compile under OSX 10.5.8

Hi,

When I try to compile CumulusLib, I get an error on Handshake.cpp, line 41. Throws an error like this:

./sources/Handshake.cpp:41: error: ‘EVP_sha256’ was not declared in this scope

Later on, it throws a similar error on line 105 in Middle.cpp:

./sources/Middle.cpp:105: error: ‘EVP_sha256’ was not declared in this scope

These are the only two files that throws error when running make in the directory. My guess goes to that something might be, well, declared in a corrupt way in OpenSSL. If this is the case, and someone else have successfully compiled under Mac OS 10.5.X, please provide information on what version of OpenSSL you are running.

Poco doesn't seem to be the problem here, and I got version 1.4.1 installed.
My running version of OpenSSL is 1.0.0d 8 Feb 2011.

Thanks in advance for any help with this!

Compile in ubuntu 10.04

Hi.

OpenRTMFP-Cumulus-7f8c780/CumulusService$ sudo make
[sudo] password for mari:
creating CumulusService executable CumulusService
/usr/bin/ld: cannot find -lCumulus
collect2: ld returned 1 exit status
make: *** [main] Error 1

Cirrus sample application

After some reading, I don't fully understand what a "rendezvous" server is and how it's different from the RTMP server. I've compiled and installed the CumulusService, but when I try to use the application in
http://labs.adobe.com/technologies/cirrus/samples/

the connection doesn't work (I only changed the rtmfp url in that application). These are the server logs:

5/10 14:34:28.7 NOTE RTMFPServer(140656653522688) Sessions.cpp[51] Session 2 created
25/10 14:34:29.2 WARN RTMFPServer(140656653522688) Server.cpp[63] Client failed : flow error, Client rejected
25/10 14:34:29.2 WARN RTMFPServer(140656653522688) Session.cpp[152] Session failed on the server side : flow error, 25/10 14:34:30.2 NOTE RTMFPServer(140656653522688) Sessions.cpp[76] Session 2 died

Is this supposed to work "out of the box"? If not, what would be required to make that sample application work?
With Red5 - RTMP, there's not a lot of code for this kind of application (for instance, the fitcDemo sample).

Man in the middle question

Can we know the IP and the farID of a connection made by the man in the middle ?

a draw to explain what i say :

FlashPlayer1 <=> Cumulus(in man in the middle mode) <=> Adobe rtmfp server <=> Flasplayer2
(ip1) <=> (ip2) <=> (ip3) <=> (ip4)
(nearID) <=> (xx) <=> (xx) <=> (farID)

Cumulus see "ip1" and "ip3" but can he see "ip4" ? And Cumulus see nearID but can he see "farId" ?

Thanks

How did Cumulus find the peer to connect?

To find the peer is an important functionality in RTMFP.

The peers may be in different local-network behind firewalls. It is difficult to locate them and make direct communication between them .

I want to know where the code for this purpose is in the sources of Cumulus.

Thanks very much a lot.

How to use edge server Options

I enable the edge server and start the server, then port 1935 and 1936
are both opened. My question is,

  1. How does the client connect to the edge server?
  2. When the cluster desire more edges, how to do it ?

For one, I find the adobe's way at http://help.adobe.com/en_US/flashmediaserver/configadmin/WS5b3ccc516d4fbf351e63e3d119f2925d1a-7ffc.html,

On the client, the NetConnection URL changes from "rtmfp://fms-server/application" to "rtmfp://edge-fms-server/?rtmfp://origin-fms-server/application".

However, it doesn't work for me.

compile under ubuntu

Can you please explain what packages are needed and how to compile under ubuntu?
Thanks

"undefined references" on Ubuntu 11.10

Hi there,

awesome topic, I'm already shaking to use =)
Anyway, compiling the sources under Ubuntu 11.10 (x86-desktop) brings up some errors which I cannot work out (which in fact doesn't mean that much by now =D)
Poco is v1.3.6
Could you please help me on this?

Thanks in advance.

CLI output:
test-serv-01@01-test-Ub11:~/Downloads/OpenRTMFP-Cumulus-cc27fda/CumulusService$ sudo make compiling main.cpp compiling Auth.cpp compiling Server.cpp compiling StatusWriter.cpp creating CumulusService executable CumulusService main.o: In function main':
main.cpp:(.text+0x24): undefined reference to DetectMemoryLeak()' main.cpp:(.text+0x4b): undefined reference to Poco::Util::ServerApplication::run(int, char**)'
main.o: In function Poco::MutexImpl::lockImpl()': main.cpp:(.text._ZN4Poco9MutexImpl8lockImplEv[Poco::MutexImpl::lockImpl()]+0x66): undefined reference to Poco::SystemException::SystemException(std::basic_string<char, std::char_traits, std::allocator > const&, int)'
main.cpp:(.text._ZN4Poco9MutexImpl8lockImplEv[Poco::MutexImpl::lockImpl()]+0x81): undefined reference to Poco::SystemException::~SystemException()' main.cpp:(.text._ZN4Poco9MutexImpl8lockImplEv[Poco::MutexImpl::lockImpl()]+0x8d): undefined reference to typeinfo for Poco::SystemException'
main.o:(.gcc_except_table+0x2f4): undefined reference to typeinfo for Poco::Exception' main.o: In function Poco::MutexImpl::unlockImpl()':
main.cpp:(.text._ZN4Poco9MutexImpl10unlockImplEv[Poco::MutexImpl::unlockImpl()]+0x66): undefined reference to Poco::SystemException::SystemException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)' main.cpp:(.text._ZN4Poco9MutexImpl10unlockImplEv[Poco::MutexImpl::unlockImpl()]+0x81): undefined reference to Poco::SystemException::~SystemException()'
main.cpp:(.text._ZN4Poco9MutexImpl10unlockImplEv[Poco::MutexImpl::unlockImpl()]+0x8d): undefined reference to typeinfo for Poco::SystemException' main.o: In function Poco::Thread::currentTid()':
main.cpp:(.text._ZN4Poco6Thread10currentTidEv[Poco::Thread::currentTid()]+0x7): undefined reference to Poco::ThreadImpl::currentTidImpl()' main.o: In function Cumulus::Logs::SetDump(Cumulus::Logs::DumpMode)':
main.cpp:(.text._ZN7Cumulus4Logs7SetDumpENS0_8DumpModeE[Cumulus::Logs::SetDump(Cumulus::Logs::DumpMode)]+0x7): undefined reference to Cumulus::Logs::_DumpMode' main.o: In function Cumulus::Logs::SetLevel(unsigned char)':
main.cpp:(.text._ZN7Cumulus4Logs8SetLevelEh[Cumulus::Logs::SetLevel(unsigned char)]+0x11): undefined reference to Cumulus::Logs::_Level' main.o: In function Cumulus::Logs::SetLogger(Cumulus::Logger&)':
main.cpp:(.text._ZN7Cumulus4Logs9SetLoggerERNS_6LoggerE[Cumulus::Logs::SetLogger(Cumulus::Logger&)]+0x7): undefined reference to Cumulus::Logs::_PLogger' main.o: In function Cumulus::Logs::GetLevel()':
main.cpp:(.text._ZN7Cumulus4Logs8GetLevelEv[Cumulus::Logs::GetLevel()]+0x6): undefined reference to Cumulus::Logs::_Level' main.o: In function Cumulus::Logs::GetLogger()':
main.cpp:(.text._ZN7Cumulus4Logs9GetLoggerEv[Cumulus::Logs::GetLogger()]+0x4): undefined reference to Cumulus::Logs::_PLogger' main.o: In function Cumulus::RTMFPServer::stop()':
main.cpp:(.text._ZN7Cumulus11RTMFPServer4stopEv[Cumulus::RTMFPServer::stop()]+0x10): undefined reference to Cumulus::Startable::stop()' main.o: In function Poco::DateTimeFormatter::format(Poco::DateTime const&, std::basic_string<char, std::char_traits, std::allocator > const&, int)':
main.cpp:(.text._ZN4Poco17DateTimeFormatter6formatERKNS_8DateTimeERKSsi[Poco::DateTimeFormatter::format(Poco::DateTime const&, std::basic_string<char, std::char_traits, std::allocator > const&, int)]+0x41): undefined reference to Poco::DateTimeFormatter::append(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, Poco::DateTime const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)' main.o: In function CumulusService::CumulusService()':
main.cpp:(.text._ZN14CumulusServiceC2Ev[_ZN14CumulusServiceC5Ev]+0xe): undefined reference to Poco::Util::ServerApplication::ServerApplication()' main.cpp:(.text._ZN14CumulusServiceC2Ev[_ZN14CumulusServiceC5Ev]+0xa1): undefined reference to Poco::FileOutputStream::FileOutputStream()'
main.cpp:(.text._ZN14CumulusServiceC2Ev[_ZN14CumulusServiceC5Ev]+0xb1): undefined reference to Poco::FastMutex::FastMutex()' main.cpp:(.text._ZN14CumulusServiceC2Ev[_ZN14CumulusServiceC5Ev]+0xc5): undefined reference to Poco::FileOutputStream::~FileOutputStream()'
main.cpp:(.text._ZN14CumulusServiceC2Ev[_ZN14CumulusServiceC5Ev]+0x116): undefined reference to Poco::Util::ServerApplication::~ServerApplication()' main.o: In function CumulusService::~CumulusService()':
main.cpp:(.text._ZN14CumulusServiceD2Ev[_ZN14CumulusServiceD5Ev]+0x3c): undefined reference to Poco::Net::SocketAddress::~SocketAddress()' main.cpp:(.text._ZN14CumulusServiceD2Ev[_ZN14CumulusServiceD5Ev]+0x8c): undefined reference to Poco::FastMutex::~FastMutex()'
main.cpp:(.text._ZN14CumulusServiceD2Ev[_ZN14CumulusServiceD5Ev]+0x9c): undefined reference to Poco::FileOutputStream::~FileOutputStream()' main.cpp:(.text._ZN14CumulusServiceD2Ev[_ZN14CumulusServiceD5Ev]+0xe1): undefined reference to Poco::Util::ServerApplication::~ServerApplication()'
main.cpp:(.text._ZN14CumulusServiceD2Ev[_ZN14CumulusServiceD5Ev]+0x113): undefined reference to Poco::FastMutex::~FastMutex()' main.cpp:(.text._ZN14CumulusServiceD2Ev[_ZN14CumulusServiceD5Ev]+0x127): undefined reference to Poco::FileOutputStream::~FileOutputStream()'
main.cpp:(.text._ZN14CumulusServiceD2Ev[_ZN14CumulusServiceD5Ev]+0x178): undefined reference to Poco::Util::ServerApplication::~ServerApplication()' main.o: In function CumulusService::kill()':
main.cpp:(.text._ZN14CumulusService4killEv[non-virtual thunk to CumulusService::kill()]+0xf): undefined reference to Poco::Util::ServerApplication::terminate()' main.o: In function CumulusService::initialize(Poco::Util::Application&)':
main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x17): undefined reference to Poco::Util::Application::loadConfiguration(int)' main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x29): undefined reference to Poco::Util::Application::initialize(Poco::Util::Application&)'
main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x34): undefined reference to Poco::Util::ServerApplication::isInteractive() const' main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0xb0): undefined reference to Poco::Util::AbstractConfiguration::getString(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&) const'
main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x11f): undefined reference to Poco::Util::AbstractConfiguration::getString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x1dd): undefined reference to Poco::File::File(std::basic_string<char, std::char_traits, std::allocator > const&)'
main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x208): undefined reference to Poco::File::File(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x213): undefined reference to Poco::File::createDirectory()'
main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x21e): undefined reference to Poco::File::~File()' main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x25e): undefined reference to Poco::FileIOS::open(std::basic_string<char, std::char_traits, std::allocator > const&, std::_Ios_Openmode)'
main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x2b3): undefined reference to Poco::Util::AbstractConfiguration::getBool(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const' main.cpp:(.text._ZN14CumulusService10initializeERN4Poco4Util11ApplicationE[CumulusService::initialize(Poco::Util::Application&)]+0x3e1): undefined reference to Poco::File::~File()'
main.o: In function CumulusService::uninitialize()': main.cpp:(.text._ZN14CumulusService12uninitializeEv[CumulusService::uninitialize()]+0xd): undefined reference to Poco::Util::Application::uninitialize()'
main.o: In function CumulusService::defineOptions(Poco::Util::OptionSet&)': main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x18): undefined reference to Poco::Util::ServerApplication::defineOptions(Poco::Util::OptionSet&)'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0xd7): undefined reference to Poco::Util::Option::Option(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0xed): undefined reference to Poco::Util::Option::required(bool)'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x104): undefined reference to Poco::Util::Option::argument(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x114): undefined reference to Poco::Util::Option::repeatable(bool)'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x123): undefined reference to Poco::Util::OptionSet::addOption(Poco::Util::Option const&)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x131): undefined reference to Poco::Util::Option::~Option()'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x257): undefined reference to Poco::Util::Option::Option(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x26d): undefined reference to Poco::Util::Option::repeatable(bool)'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x27c): undefined reference to Poco::Util::OptionSet::addOption(Poco::Util::Option const&)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x28a): undefined reference to Poco::Util::Option::~Option()'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x3b0): undefined reference to Poco::Util::Option::Option(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x3c6): undefined reference to Poco::Util::Option::repeatable(bool)'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x3d5): undefined reference to Poco::Util::OptionSet::addOption(Poco::Util::Option const&)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x3e3): undefined reference to Poco::Util::Option::~Option()'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x4d5): undefined reference to Poco::Util::Option::Option(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x4eb): undefined reference to Poco::Util::Option::repeatable(bool)'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x4fa): undefined reference to Poco::Util::OptionSet::addOption(Poco::Util::Option const&)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x508): undefined reference to Poco::Util::Option::~Option()'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x5e4): undefined reference to Poco::Util::Option::Option(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x5fa): undefined reference to Poco::Util::Option::required(bool)'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x60a): undefined reference to Poco::Util::Option::repeatable(bool)' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x619): undefined reference to Poco::Util::OptionSet::addOption(Poco::Util::Option const&)'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x627): undefined reference to Poco::Util::Option::~Option()' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x682): undefined reference to Poco::Util::Option::~Option()'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x708): undefined reference to Poco::Util::Option::~Option()' main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x78e): undefined reference to Poco::Util::Option::~Option()'
main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x814): undefined reference to Poco::Util::Option::~Option()' main.o:main.cpp:(.text._ZN14CumulusService13defineOptionsERN4Poco4Util9OptionSetE[CumulusService::defineOptions(Poco::Util::OptionSet&)]+0x880): more undefined references to Poco::Util::Option::~Option()' follow
main.o: In function CumulusService::handleOption(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': main.cpp:(.text._ZN14CumulusService12handleOptionERKSsS1_[CumulusService::handleOption(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x50): undefined reference to Poco::Util::ServerApplication::handleOption(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)'
main.cpp:(.text.ZN14CumulusService12handleOptionERKSsS1[CumulusService::handleOption(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)]+0xd2): undefined reference to Poco::URI::URI(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' main.cpp:(.text._ZN14CumulusService12handleOptionERKSsS1_[CumulusService::handleOption(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0xfe): undefined reference to Poco::URI::getPort() const'
main.cpp:(.text.ZN14CumulusService12handleOptionERKSsS1[CumulusService::handleOption(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)]+0x11f): undefined reference to Poco::Net::SocketAddress::SocketAddress(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short)' main.cpp:(.text._ZN14CumulusService12handleOptionERKSsS1_[CumulusService::handleOption(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x19e): undefined reference to GetThreadName()'
main.cpp:(.text.ZN14CumulusService12handleOptionERKSsS1[CumulusService::handleOption(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)]+0x1f7): undefined reference to Poco::URI::~URI()' main.cpp:(.text._ZN14CumulusService12handleOptionERKSsS1_[CumulusService::handleOption(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x338): undefined reference to Poco::URI::~URI()'
main.cpp:(.text.ZN14CumulusService12handleOptionERKSsS1[CumulusService::handleOption(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)]+0x3fa): undefined reference to GetThreadName()' main.o: In function CumulusService::displayHelp()':
main.cpp:(.text._ZN14CumulusService11displayHelpEv[CumulusService::displayHelp()]+0x1d): undefined reference to Poco::Util::HelpFormatter::HelpFormatter(Poco::Util::OptionSet const&)' main.cpp:(.text._ZN14CumulusService11displayHelpEv[CumulusService::displayHelp()]+0x2f): undefined reference to Poco::Util::Application::commandName() const'
main.cpp:(.text._ZN14CumulusService11displayHelpEv[CumulusService::displayHelp()]+0x44): undefined reference to Poco::Util::HelpFormatter::setCommand(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' main.cpp:(.text._ZN14CumulusService11displayHelpEv[CumulusService::displayHelp()]+0x86): undefined reference to Poco::Util::HelpFormatter::setUsage(std::basic_string<char, std::char_traits, std::allocator > const&)'
main.cpp:(.text._ZN14CumulusService11displayHelpEv[CumulusService::displayHelp()]+0xd3): undefined reference to Poco::Util::HelpFormatter::setHeader(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' main.cpp:(.text._ZN14CumulusService11displayHelpEv[CumulusService::displayHelp()]+0xfc): undefined reference to Poco::Util::HelpFormatter::format(std::basic_ostream<char, std::char_traits >&) const'
main.cpp:(.text._ZN14CumulusService11displayHelpEv[CumulusService::displayHelp()]+0x107): undefined reference to Poco::Util::HelpFormatter::~HelpFormatter()' main.cpp:(.text._ZN14CumulusService11displayHelpEv[CumulusService::displayHelp()]+0x164): undefined reference to Poco::Util::HelpFormatter::~HelpFormatter()'
main.o: In function CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Cumulus::Logger::Priority, char const*, long, char const*)': main.cpp:(.text._ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6_[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0x43): undefined reference to Poco::Path::Path(char const*)'
main.cpp:(.text.ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits, std::allocator > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0x55): undefined reference to Poco::Path::getBaseName() const' main.cpp:(.text._ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6_[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0xaa): undefined reference to Poco::Path::~Path()'
main.cpp:(.text.ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits, std::allocator > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0xbc): undefined reference to Poco::Path::Path(char const*)' main.cpp:(.text._ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6_[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0x106): undefined reference to Poco::LocalDateTime::LocalDateTime()'
main.cpp:(.text.ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits, std::allocator > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0x204): undefined reference to Poco::LocalDateTime::~LocalDateTime()' main.cpp:(.text._ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6_[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0x225): undefined reference to Poco::Path::~Path()'
main.cpp:(.text.ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits, std::allocator > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0x25e): undefined reference to Poco::Path::~Path()' main.cpp:(.text._ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6_[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0x27c): undefined reference to Poco::LocalDateTime::~LocalDateTime()'
main.cpp:(.text.ZN14CumulusService10logHandlerEmRKSsN7Cumulus6Logger8PriorityEPKclS6[non-virtual thunk to CumulusService::logHandler(unsigned long, std::basic_string<char, std::char_traits, std::allocator > const&, Cumulus::Logger::Priority, char const*, long, char const*)]+0x2a5): undefined reference to Poco::Path::~Path()' main.o: In function CumulusService::manageLogFile()':
main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x14): undefined reference to Poco::File::getSize() const' main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x47): undefined reference to Poco::FileIOS::close()'
main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x83): undefined reference to Poco::File::File(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x99): undefined reference to Poco::File::exists() const'
main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0xb4): undefined reference to Poco::File::remove(bool)' main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x109): undefined reference to Poco::format(std::basic_string<char, std::char_traits, std::allocator > const&, Poco::Any const&)'
main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x140): undefined reference to Poco::File::operator=(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x182): undefined reference to Poco::File::exists() const'
main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x1e3): undefined reference to Poco::format(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Poco::Any const&)' main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x21a): undefined reference to Poco::File::renameTo(std::basic_string<char, std::char_traits, std::allocator > const&)'
main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x2aa): undefined reference to Poco::FileIOS::open(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode)' main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x2b5): undefined reference to Poco::File::~File()'
main.cpp:(.text._ZN14CumulusService13manageLogFileEv[CumulusService::manageLogFile()]+0x36c): undefined reference to Poco::File::~File()' main.o: In function CumulusService::main(std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > > const&)':
main.cpp:(.text._ZN14CumulusService4mainERKSt6vectorISsSaISsEE[CumulusService::main(std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > > const&)]+0xa8): undefined reference to Poco::Util::AbstractConfiguration::getInt(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const' main.cpp:(.text._ZN14CumulusService4mainERKSt6vectorISsSaISsEE[CumulusService::main(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)]+0x140): undefined reference to Poco::Util::AbstractConfiguration::getInt(std::basic_string<char, std::char_traits, std::allocator > const&, int) const'
main.cpp:(.text._ZN14CumulusService4mainERKSt6vectorISsSaISsEE[CumulusService::main(std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > > const&)]+0x1b9): undefined reference to Poco::Util::AbstractConfiguration::getInt(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const' main.cpp:(.text._ZN14CumulusService4mainERKSt6vectorISsSaISsEE[CumulusService::main(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)]+0x21c): undefined reference to Cumulus::RTMFPServer::start(Cumulus::RTMFPServerParams&)'
main.cpp:(.text._ZN14CumulusService4mainERKSt6vectorISsSaISsEE[CumulusService::main(std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > > const&)]+0x22a): undefined reference to Poco::Util::ServerApplication::waitForTerminationRequest()' main.o:(.rodata._ZTV14CumulusService[vtable for CumulusService]+0x10): undefined reference to Poco::Util::Application::name() const'
main.o:(.rodata._ZTV14CumulusService[vtable for CumulusService]+0x1c): undefined reference to Poco::Util::Application::reinitialize(Poco::Util::Application&)' main.o:(.rodata._ZTV14CumulusService[vtable for CumulusService]+0x24): undefined reference to Poco::Util::ServerApplication::run()'
main.o:(.rodata._ZTI14CumulusService[typeinfo for CumulusService]+0x10): undefined reference to typeinfo for Poco::Util::ServerApplication' Auth.o: In function Auth::load(std::basic_string<char, std::char_traits, std::allocator > const&)':
Auth.cpp:(.text+0x17c): undefined reference to Poco::File::File(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' Auth.cpp:(.text+0x18a): undefined reference to Poco::File::exists() const'
Auth.cpp:(.text+0x19c): undefined reference to Poco::File::isFile() const' Auth.cpp:(.text+0x2ee): undefined reference to Poco::StringTokenizer::StringTokenizer(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&, int)'
Auth.cpp:(.text+0x410): undefined reference to Poco::StringTokenizer::~StringTokenizer()' Auth.cpp:(.text+0x470): undefined reference to Poco::File::~File()'
Auth.cpp:(.text+0x4b9): undefined reference to Poco::StringTokenizer::~StringTokenizer()' Auth.cpp:(.text+0x50f): undefined reference to Poco::StringTokenizer::~StringTokenizer()'
Auth.cpp:(.text+0x545): undefined reference to Poco::File::~File()' Auth.o: In function Poco::StringTokenizer::operator[](unsigned int) const':
Auth.cpp:(.text._ZNK4Poco15StringTokenizerixEj[Poco::StringTokenizer::operator[](unsigned int) const]+0x37): undefined reference to Poco::RangeException::RangeException(int)' Auth.cpp:(.text._ZNK4Poco15StringTokenizerixEj[Poco::StringTokenizer::operator[](unsigned int) const]+0x3c): undefined reference to Poco::RangeException::~RangeException()'
Auth.cpp:(.text._ZNK4Poco15StringTokenizerixEj[Poco::StringTokenizer::operator[](unsigned int) const]+0x48): undefined reference to typeinfo for Poco::RangeException' Auth.o: In function Line::Line(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)':
Auth.cpp:(.text.ZN4LineC2ERKSsS1[ZN4LineC5ERKSsS1]+0x42): undefined reference to Poco::Path::Path(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' Auth.cpp:(.text._ZN4LineC2ERKSsS1_[_ZN4LineC5ERKSsS1_]+0x54): undefined reference to Poco::Path::getExtension() const'
Auth.cpp:(.text.ZN4LineC2ERKSsS1[ZN4LineC5ERKSsS1]+0x88): undefined reference to Poco::Path::~Path()' Auth.cpp:(.text._ZN4LineC2ERKSsS1_[_ZN4LineC5ERKSsS1_]+0xa6): undefined reference to Poco::Path::~Path()'
Server.o: In function Server::Server(Auth&, ApplicationKiller&)': Server.cpp:(.text+0xe): undefined reference to Cumulus::RTMFPServer::RTMFPServer()'
Server.cpp:(.text+0x66): undefined reference to Cumulus::RTMFPServer::~RTMFPServer()' Server.o: In function Server::~Server()':
Server.cpp:(.text+0xbd): undefined reference to Cumulus::RTMFPServer::~RTMFPServer()' Server.cpp:(.text+0xe3): undefined reference to Cumulus::RTMFPServer::~RTMFPServer()'
Server.o: In function Server::manage()': Server.cpp:(.text+0x131): undefined reference to Cumulus::RTMFPServer::manage()'
Server.o: In function Server::onFailed(Cumulus::Client const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': Server.cpp:(.text+0x2ed): undefined reference to GetThreadName()'
Server.o: In function Server::onMessage(Cumulus::Client const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Cumulus::AMFReader&, Cumulus::FlowWriter&)': Server.cpp:(.text+0x45b): undefined reference to GetThreadName()'
Server.cpp:(.text+0x58b): undefined reference to Cumulus::AMFReader::readNumber()' Server.o:(.rodata._ZTV6Server[vtable for Server]+0x10): undefined reference to Cumulus::RTMFPServer::p2pHandshake(std::basic_string<char, std::char_traits, std::allocator > const&, Cumulus::PacketWriter&, Poco::Net::SocketAddress const&, unsigned char const*)'
Server.o:(.rodata._ZTV6Server[vtable for Server]+0x14): undefined reference to Cumulus::RTMFPServer::createSession(unsigned int, Cumulus::Peer const&, unsigned char const*, unsigned char const*, Cumulus::Cookie&)' Server.o:(.rodata._ZTV6Server[vtable for Server]+0x1c): undefined reference to Cumulus::RTMFPServer::run(bool const volatile&)'
Server.o:(.rodata._ZTV6Server[vtable for Server]+0xa0): undefined reference to Cumulus::Startable::run()' Server.o:(.rodata._ZTV6Server[vtable for Server]+0xa4): undefined reference to non-virtual thunk to Cumulus::RTMFPServer::run(bool const volatile&)'
Server.o:(.rodata._ZTV6Server[vtable for Server]+0xa8): undefined reference to Cumulus::Startable::prerun()' Server.o:(.rodata._ZTI6Server[typeinfo for Server]+0x8): undefined reference to typeinfo for Cumulus::RTMFPServer'
StatusWriter.o: In function StatusWriter::StatusWriter(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Cumulus::BandWriter&)': StatusWriter.cpp:(.text+0x1c): undefined reference to Cumulus::FlowWriter::FlowWriter(std::basic_string<char, std::char_traits, std::allocator > const&, Cumulus::BandWriter&)'
StatusWriter.cpp:(.text+0x51): undefined reference to Cumulus::FlowWriter::~FlowWriter()' StatusWriter.o: In function StatusWriter::~StatusWriter()':
StatusWriter.cpp:(.text+0x8d): undefined reference to Cumulus::FlowWriter::~FlowWriter()' StatusWriter.cpp:(.text+0xb3): undefined reference to Cumulus::FlowWriter::~FlowWriter()'
StatusWriter.o: In function StatusWriter::refresh(Cumulus::Handler&)': StatusWriter.cpp:(.text+0x23d): undefined reference to Cumulus::FlowWriter::writeAMFMessage(std::basic_string<char, std::char_traits, std::allocator > const&)'
StatusWriter.cpp:(.text+0x2c4): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' StatusWriter.cpp:(.text+0x345): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x3a8): undefined reference to Cumulus::AMFWriter::writeObjectArrayProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)' StatusWriter.cpp:(.text+0x478): undefined reference to Cumulus::AMFWriter::endObject()'
StatusWriter.cpp:(.text+0x51f): undefined reference to Cumulus::AMFWriter::writeObjectArrayProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)' StatusWriter.cpp:(.text+0x5d4): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x600): undefined reference to Cumulus::Listener::videoQOS() const' StatusWriter.cpp:(.text+0x64a): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x676): undefined reference to Cumulus::Listener::audioQOS() const' StatusWriter.cpp:(.text+0x6c0): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x6ec): undefined reference to Cumulus::Listener::videoQOS() const' StatusWriter.cpp:(.text+0x744): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x770): undefined reference to Cumulus::Listener::audioQOS() const' StatusWriter.cpp:(.text+0x7c8): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x7f4): undefined reference to Cumulus::Listener::videoQOS() const' StatusWriter.cpp:(.text+0x84c): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x86d): undefined reference to Cumulus::AMFWriter::endObject()' StatusWriter.cpp:(.text+0x8b5): undefined reference to Cumulus::AMFWriter::endObject()'
StatusWriter.cpp:(.text+0x8c8): undefined reference to Cumulus::FlowWriter::flush(bool)' StatusWriter.o: In function StatusWriter::addPublication(Cumulus::Publication const&)':
StatusWriter.cpp:(.text+0xb29): undefined reference to Cumulus::FlowWriter::writeAMFMessage(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' StatusWriter.cpp:(.text+0xbb0): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, std::basic_string<char, std::char_traits, std::allocator > const&)'
StatusWriter.cpp:(.text+0xc13): undefined reference to Cumulus::AMFWriter::beginSubObject(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' StatusWriter.cpp:(.text+0xc4d): undefined reference to Cumulus::AMFWriter::endObject()'
StatusWriter.cpp:(.text+0xc58): undefined reference to Cumulus::AMFWriter::endObject()' StatusWriter.cpp:(.text+0xc6b): undefined reference to Cumulus::FlowWriter::flush(bool)'
StatusWriter.o: In function StatusWriter::removePublication(Cumulus::Publication const&)': StatusWriter.cpp:(.text+0xd8a): undefined reference to Cumulus::FlowWriter::writeAMFMessage(std::basic_string<char, std::char_traits, std::allocator > const&)'
StatusWriter.cpp:(.text+0xe11): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' StatusWriter.cpp:(.text+0xe74): undefined reference to Cumulus::AMFWriter::beginSubObject(std::basic_string<char, std::char_traits, std::allocator > const&)'
StatusWriter.cpp:(.text+0xee4): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)' StatusWriter.cpp:(.text+0xf05): undefined reference to Cumulus::AMFWriter::endObject()'
StatusWriter.cpp:(.text+0xf10): undefined reference to Cumulus::AMFWriter::endObject()' StatusWriter.cpp:(.text+0xf23): undefined reference to Cumulus::FlowWriter::flush(bool)'
StatusWriter.o: In function StatusWriter::audioLostRate(Cumulus::Publication const&)': StatusWriter.cpp:(.text+0x101a): undefined reference to Cumulus::FlowWriter::writeAMFMessage(std::basic_string<char, std::char_traits, std::allocator > const&)'
StatusWriter.cpp:(.text+0x10a1): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' StatusWriter.cpp:(.text+0x1104): undefined reference to Cumulus::AMFWriter::beginSubObject(std::basic_string<char, std::char_traits, std::allocator > const&)'
StatusWriter.cpp:(.text+0x1174): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)' StatusWriter.cpp:(.text+0x11d9): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x124c): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)' StatusWriter.cpp:(.text+0x126d): undefined reference to Cumulus::AMFWriter::endObject()'
StatusWriter.cpp:(.text+0x1278): undefined reference to Cumulus::AMFWriter::endObject()' StatusWriter.cpp:(.text+0x128b): undefined reference to Cumulus::FlowWriter::flush(bool)'
StatusWriter.o: In function StatusWriter::videoLostRate(Cumulus::Publication const&)': StatusWriter.cpp:(.text+0x13ce): undefined reference to Cumulus::FlowWriter::writeAMFMessage(std::basic_string<char, std::char_traits, std::allocator > const&)'
StatusWriter.cpp:(.text+0x1455): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' StatusWriter.cpp:(.text+0x14b8): undefined reference to Cumulus::AMFWriter::beginSubObject(std::basic_string<char, std::char_traits, std::allocator > const&)'
StatusWriter.cpp:(.text+0x1528): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)' StatusWriter.cpp:(.text+0x158d): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x1600): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)' StatusWriter.cpp:(.text+0x1621): undefined reference to Cumulus::AMFWriter::endObject()'
StatusWriter.cpp:(.text+0x162c): undefined reference to Cumulus::AMFWriter::endObject()' StatusWriter.cpp:(.text+0x163f): undefined reference to Cumulus::FlowWriter::flush(bool)'
StatusWriter.o: In function StatusWriter::manage(Cumulus::Handler&)': StatusWriter.cpp:(.text+0x175c): undefined reference to Cumulus::FlowWriter::manage(Cumulus::Handler&)'
StatusWriter.o: In function StatusWriter::writePublicationContent(Cumulus::Publication const&, Cumulus::AMFWriter&)': StatusWriter.cpp:(.text+0x17d4): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x1832): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' StatusWriter.cpp:(.text+0x18a5): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x190a): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)' StatusWriter.cpp:(.text+0x196f): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.cpp:(.text+0x19e2): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)' StatusWriter.cpp:(.text+0x1a55): undefined reference to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits, std::allocator > const&, double)'
StatusWriter.o:StatusWriter.cpp:(.text+0x1ac8): more undefined references to Cumulus::AMFWriter::writeObjectProperty(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)' follow StatusWriter.o: In function Cumulus::BinaryWriter::write8(unsigned char)':
StatusWriter.cpp:(.text._ZN7Cumulus12BinaryWriter6write8Eh[Cumulus::BinaryWriter::write8(unsigned char)]+0x1e): undefined reference to Poco::BinaryWriter::operator<<(unsigned char)' StatusWriter.o:(.rodata._ZTI12StatusWriter[typeinfo for StatusWriter]+0x8): undefined reference to typeinfo for Cumulus::FlowWriter'
collect2: ld gab 1 als Ende-Status zurück
make: *** [main] Fehler 1`

Is Cumulus a substitution for Adobe's Cirrus ? Cumulus can authorize the client ?

When using RTMFP, we need setup a server ,like Cirrus,because Cirrus can authorize the clients to communication.

Is Cumulus a substitution for Adobe 's Cirrus?? Where is the codepoint of authentication?

oh, another question is : Can Cumulus provide the rendezvous service? It is the key function to build an p2p overlay network...

Thanks !

Why need to keep a privateAddress-vector?? Is the privateAddress dynamic?

The privateAddress of a peer is not stable ????

For example,

Peer A and Peer B will connect to Peer pub one after one.

A - pub : Peer pub gives a privateAddress .
B - pub : Peer pub will give a new privateAddress???

Consider that the length of Peer PUB privateAddress-vector is 10, the total number of peers who connected to PUB must be less or equal than 10??
Thanks a lot .

error in ubunto

Can you tellme your ubunto version?
My ubunto is 9.04, but I run makefile. still mang error happen.

compiling Middle.cpp
./sources/Middle.cpp: In member function 'virtual void Cumulus::Middle::packetHandler(Cumulus::PacketReader&)':
./sources/Middle.cpp:77: error: 'Sleep' was not declared in this scope
./sources/Middle.cpp: In member function 'virtual bool Cumulus::Middle::manage()':
./sources/Middle.cpp:360: error: no matching function for call to 'Cumulus::Middle::cirrusHandshakeHandler(Poco::UInt8&, Cumulus::PacketReader)'
./sources/Middle.cpp:138: note: candidates are: void Cumulus::Middle::cirrusHandshakeHandler(Poco::UInt8, Cumulus::PacketReader&)
./include/Middle.h:56: note: Poco::UInt8 Cumulus::Middle::cirrusHandshakeHandler(Poco::UInt8, Cumulus::PacketReader&, Cumulus::PacketWriter)
make: *** [Middle.o] Error 1

compiling Cirrus.cpp
In file included from ./include/Group.h:21,
from ./include/ServerData.h:21,
from ./include/Flow.h:22,
from ./include/Session.h:25,
from ./include/Sessions.h:21,
from ./include/Cirrus.h:22,
from ./sources/Cirrus.cpp:18:
./include/Peer.h:45: error: 'Group' has not been declared
./include/Peer.h:45: error: 'Group' was not declared in this scope
./include/Peer.h:45: error: template argument 1 is invalid
./include/Peer.h:45: error: template argument 2 is invalid
./include/Peer.h:45: error: expected unqualified-id before '&' token
./include/Peer.h:45: error: expected ',' or '...' before '&' token
./include/Peer.h:48: error: 'Group' was not declared in this scope
./include/Peer.h:48: error: template argument 1 is invalid
./include/Peer.h:48: error: template argument 2 is invalid
./include/Peer.h: In member function 'bool Cumulus::Peer::operator==(const Cumulus::Peer&) const':
./include/Peer.h:52: error: 'memcmp' was not declared in this scope
./include/Peer.h: In member function 'bool Cumulus::Peer::operator==(const Poco::UInt8_) const':
./include/Peer.h:55: error: 'memcmp' was not declared in this scope
./include/Peer.h: In member function 'bool Cumulus::Peer::operator!=(const Cumulus::Peer&) const':
./include/Peer.h:59: error: 'memcmp' was not declared in this scope
./include/Peer.h: In member function 'bool Cumulus::Peer::operator!=(const Poco::UInt8_) const':
./include/Peer.h:62: error: 'memcmp' was not declared in this scope
In file included from ./include/ServerData.h:21,
from ./include/Flow.h:22,
from ./include/Session.h:25,
from ./include/Sessions.h:21,
from ./include/Cirrus.h:22,
from ./sources/Cirrus.cpp:18:
./include/Group.h: In member function 'bool Cumulus::Group::operator==(const std::vector<unsigned char, std::allocator >&) const':
./include/Group.h:57: error: 'memcmp' was not declared in this scope
./include/Group.h: In member function 'bool Cumulus::Group::operator!=(const std::vector<unsigned char, std::allocator >&) const':
./include/Group.h:64: error: 'memcmp' was not declared in this scope

Compile error in Ubuntu 10.10 64-bit

In file included from ./../CumulusLib/include/Session.h:21,
from ./../CumulusLib/include/RTMFPServer.h:21,
from ./sources/main.cpp:18:
./../CumulusLib/include/PacketReader.h:79: error: prototype for ‘int Cumulus::PacketReader::available()’ does not match any in class ‘Cumulus::PacketReader’
./../CumulusLib/include/PacketReader.h:46: error: candidate is: std::streamsize Cumulus::PacketReader::available()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.