Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!-- Root description : -->
- <service>
- <serviceType>urn:schemas-sony-com:service:Party:1</serviceType>
- <serviceId>urn:schemas-sony-com:serviceId:Party</serviceId>
- <SCPDURL>/Party_scpd.xml</SCPDURL>
- <controlURL>/Party_Control</controlURL>
- <eventSubURL>/Party_Event</eventSubURL>
- </service>
- <!-- PartyStreaming description : -->
- <!--
- X_GetDeviceInfo():(SingerCapability, TransportPort)
- X_GetState():(PartyState, PartyMode, PartySong, SessionID, NumberOfListeners, ListenerList, SingerUUID, SingerSessionID)
- X_Abort(SingerSessionID):()
- X_Entry(SingerSessionID, ListenerList):()
- X_Start(PartyMode, ListenerList):(SingerSessionID)
- X_Exit(ListenerSessionID):()
- X_Leave(SingerSessionID, ListenerList):()
- X_Invite(PartyMode, SingerUUID, SingerSessionID):(ListenerSessionID)
- -->
- <!--
- PartyState values:
- IDLE
- SINGING
- LISTENING
- PartyMode values:
- IDLE
- PARTY
- PartySong values:
- PUBLIC
- The Singer UUID is the GUID id of the server
- -->
- <!--
- (ALL UDP PACKET WILL BE DISPLAYED IN HEX FOR BETTER UNDERSTANDING)
- To start a server, just call X_Start(PartyMode=PARTY, ListenerList="") and it'll give back the SessionID
- To join a server, just call X_Invite(PartyMode=PARTY, SingerUUID=ServerGUID, SingerSessionID=SessionID)
- When a server starts, it should search for PartyStreaming capable device, then test if those are in IDLE state, then calls X_Invite on each automatically.
- After SOAP X_Invite, the client should respond normally, then initialize audio data streaming by sending a 128 bytes "i'm alive"-like message to the server on UDP 3975:
- 42 56 00 01 <- header client-side signature
- 00 08 d9 7f <- SessionID of the party
- 00 00 00 01 <- packet counter in case of retry (10 times if no response then 3 others packets for quitting)
- 00 40 01 00
- 00 00 00 00
- 00 00 00 05
- 0f 87 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- When the server have this, it will automatically write 1024 bytes data messages on UDP 3975 of the client:
- 564200010008d97f00000000054000100001f93f034d95220140ac4401000000000000000000000000000000000000000000000000000000000000000000000008530831f959fa4df001efd5f4edf485058206f10c950e1c00790024ef70ee5ce98fea04fb34fd0c12a3132b0b8d0a52f09af01fe707e8bef6f2f8ad0c540ab50b2d0860f713f75cedeaeeb7f55cf37c021c001207880672ff83fcdaf88df3ccf93bf4aefdd6fa8f061c02ba06980262fcebf963f447f2c0f55ef5000411039b0a690ab8fb54fd8cf042f2a5f215f2e1f757f941fe31041000550539fce8fb4df970f6eef781f96bf79df8b2fa55f90ffffa01680153045bfc82fdf2facffb99fa54fb1dfa02fac3fcbdfe04fc0dfeabf94ffd4dfa3cfd8ffe0e009bff410297f834fa8af3def439fb3efbc6040d04fa04a80421f9f4f7b0f086eef0f9dffa440a140a5f089707edf5e6f542ecd5ec06f98af85105eb03fd04ab01affddafa07f71ff356f46cf218fa5cf89207180433095e0626f972f6c4ee62ed1ef3a2f3b00079ff8b09df086a0138008ff330f245f4a6f3dbfa82fa48fc88fc6bfef0ff0000ae0016ff3bfe66f8b4f87cf443f3a2f751f710fd94fe4001e9020bfd6efe06f51af74ef22af457f2d1f475f903fba8ffeb039afdbc012df671f973f167f342f6e4f6b101c4022b017704def9a7fdc3f2f3f479f20bf167fc79fd6304c8079dfefd0040f571f5def3f3f582f9bff9b7fca2fafdf9f0fb21f8cdfc61fcabfdf3008bffe7f9c3fa7aeee3effaf3bdf348030b01cd089a0714fe17fcf2ef6befebf049f228fe7e00b103320453f949f810f364f1bcfb95fc6e035d05a9fe47ff73f3fff3a9f170f09efb1ffb0a053e059d01d1012ef7f4f6a4f4e2f30df8ddf668fe8ffd6a011d00a1fe45fbcbfa70f67bfb7af707ffe7fc0101ebff40fe6efa64fb30f516008cfb8405fb03ae00f2003cf9a6f85bf8f1f773fe09fdc0ff28fe56f856f797f8b4fb96ffe40539ff3402a6f80cf857f02df0a0f396f6ce033706bd066b082ef941fa6feb5ced03ea01ed4cfc64001a0a980b260024ff5eedebf093e92bed92f93bfac40916098affa30366eeedf3d9ee4ef157f839fc94005c0647ff4400e8f8f7f65cf63df52ff674f7f6f790f868fb79fa37ffd1fd9400f1ff2b006dfec5fa50f7c0efb4ecfcf29cf163020601af0a45084d048b026af3b7f517ea19eba5f7fdf4b20ab305f10a3f096efac2fccbf312f2d2fc10f7b90536016b04fb053efdbffee2f5dff46bfaeef88706e306de07f709b7016e0217fb7ffc04f816f9c7fbc8fbd50538032609ae08ac05e80667fff80042fa35f9e1fa3cf9c701c90254070208a5093f0a2506b1065efc3afc65f960fa8c02a003b30ab30be109f90b95025d01e5ffc5fd300431042b07990b0a07700b12008b0275fcc8fca9
- We can see the 2 first bytes as the (reversed) header signature. Also, the long 0000 line tells us it "fills" what looks like a 128 bytes header :
- 56 42 00 01 <- header server signature (2 first bytes reversed from client's signature)
- 00 08 d9 7f <- SessionID of the party
- 00 00 00 00
- 05 40 00 10
- 00 01 f9 3f <- packet counter
- 03 4d 95 22 <- the 3 firsts bytes are also a counting, the 4th byte is a sequence of 4 values: [22,62,a2,e2]
- 01 40 ac 44
- 01 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- Then the data is written in a unknown format...
- The server will stop sending data after approx. 30s if no new "i'm alive" message is sent.
- -->
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement