Advertisement
Guest User

Untitled

a guest
Nov 25th, 2012
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.87 KB | None | 0 0
  1. <!-- Root description : -->
  2.  
  3. <service>
  4. <serviceType>urn:schemas-sony-com:service:Party:1</serviceType>
  5. <serviceId>urn:schemas-sony-com:serviceId:Party</serviceId>
  6. <SCPDURL>/Party_scpd.xml</SCPDURL>
  7. <controlURL>/Party_Control</controlURL>
  8. <eventSubURL>/Party_Event</eventSubURL>
  9. </service>
  10.  
  11. <!-- PartyStreaming description : -->
  12.  
  13. <!--
  14. X_GetDeviceInfo():(SingerCapability, TransportPort)
  15. X_GetState():(PartyState, PartyMode, PartySong, SessionID, NumberOfListeners, ListenerList, SingerUUID, SingerSessionID)
  16. X_Abort(SingerSessionID):()
  17. X_Entry(SingerSessionID, ListenerList):()
  18. X_Start(PartyMode, ListenerList):(SingerSessionID)
  19. X_Exit(ListenerSessionID):()
  20. X_Leave(SingerSessionID, ListenerList):()
  21. X_Invite(PartyMode, SingerUUID, SingerSessionID):(ListenerSessionID)
  22. -->
  23.  
  24. <!--
  25.  
  26. PartyState values:
  27. IDLE
  28. SINGING
  29. LISTENING
  30.  
  31. PartyMode values:
  32. IDLE
  33. PARTY
  34.  
  35. PartySong values:
  36. PUBLIC
  37.  
  38. The Singer UUID is the GUID id of the server
  39.  
  40. -->
  41.  
  42. <!--
  43.  
  44. (ALL UDP PACKET WILL BE DISPLAYED IN HEX FOR BETTER UNDERSTANDING)
  45.  
  46. To start a server, just call X_Start(PartyMode=PARTY, ListenerList="") and it'll give back the SessionID
  47. To join a server, just call X_Invite(PartyMode=PARTY, SingerUUID=ServerGUID, SingerSessionID=SessionID)
  48.  
  49. 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.
  50.  
  51. 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:
  52.  
  53. 42 56 00 01 <- header client-side signature
  54. 00 08 d9 7f <- SessionID of the party
  55. 00 00 00 01 <- packet counter in case of retry (10 times if no response then 3 others packets for quitting)
  56. 00 40 01 00
  57. 00 00 00 00
  58. 00 00 00 05
  59. 0f 87 00 00
  60. 00 00 00 00
  61.  
  62. 00 00 00 00
  63. 00 00 00 00
  64. 00 00 00 00
  65. 00 00 00 00
  66. 00 00 00 00
  67. 00 00 00 00
  68. 00 00 00 00
  69. 00 00 00 00
  70.  
  71. When the server have this, it will automatically write 1024 bytes data messages on UDP 3975 of the client:
  72.  
  73. 564200010008d97f00000000054000100001f93f034d95220140ac4401000000000000000000000000000000000000000000000000000000000000000000000008530831f959fa4df001efd5f4edf485058206f10c950e1c00790024ef70ee5ce98fea04fb34fd0c12a3132b0b8d0a52f09af01fe707e8bef6f2f8ad0c540ab50b2d0860f713f75cedeaeeb7f55cf37c021c001207880672ff83fcdaf88df3ccf93bf4aefdd6fa8f061c02ba06980262fcebf963f447f2c0f55ef5000411039b0a690ab8fb54fd8cf042f2a5f215f2e1f757f941fe31041000550539fce8fb4df970f6eef781f96bf79df8b2fa55f90ffffa01680153045bfc82fdf2facffb99fa54fb1dfa02fac3fcbdfe04fc0dfeabf94ffd4dfa3cfd8ffe0e009bff410297f834fa8af3def439fb3efbc6040d04fa04a80421f9f4f7b0f086eef0f9dffa440a140a5f089707edf5e6f542ecd5ec06f98af85105eb03fd04ab01affddafa07f71ff356f46cf218fa5cf89207180433095e0626f972f6c4ee62ed1ef3a2f3b00079ff8b09df086a0138008ff330f245f4a6f3dbfa82fa48fc88fc6bfef0ff0000ae0016ff3bfe66f8b4f87cf443f3a2f751f710fd94fe4001e9020bfd6efe06f51af74ef22af457f2d1f475f903fba8ffeb039afdbc012df671f973f167f342f6e4f6b101c4022b017704def9a7fdc3f2f3f479f20bf167fc79fd6304c8079dfefd0040f571f5def3f3f582f9bff9b7fca2fafdf9f0fb21f8cdfc61fcabfdf3008bffe7f9c3fa7aeee3effaf3bdf348030b01cd089a0714fe17fcf2ef6befebf049f228fe7e00b103320453f949f810f364f1bcfb95fc6e035d05a9fe47ff73f3fff3a9f170f09efb1ffb0a053e059d01d1012ef7f4f6a4f4e2f30df8ddf668fe8ffd6a011d00a1fe45fbcbfa70f67bfb7af707ffe7fc0101ebff40fe6efa64fb30f516008cfb8405fb03ae00f2003cf9a6f85bf8f1f773fe09fdc0ff28fe56f856f797f8b4fb96ffe40539ff3402a6f80cf857f02df0a0f396f6ce033706bd066b082ef941fa6feb5ced03ea01ed4cfc64001a0a980b260024ff5eedebf093e92bed92f93bfac40916098affa30366eeedf3d9ee4ef157f839fc94005c0647ff4400e8f8f7f65cf63df52ff674f7f6f790f868fb79fa37ffd1fd9400f1ff2b006dfec5fa50f7c0efb4ecfcf29cf163020601af0a45084d048b026af3b7f517ea19eba5f7fdf4b20ab305f10a3f096efac2fccbf312f2d2fc10f7b90536016b04fb053efdbffee2f5dff46bfaeef88706e306de07f709b7016e0217fb7ffc04f816f9c7fbc8fbd50538032609ae08ac05e80667fff80042fa35f9e1fa3cf9c701c90254070208a5093f0a2506b1065efc3afc65f960fa8c02a003b30ab30be109f90b95025d01e5ffc5fd300431042b07990b0a07700b12008b0275fcc8fca9
  74.  
  75. 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 :
  76.  
  77. 56 42 00 01 <- header server signature (2 first bytes reversed from client's signature)
  78. 00 08 d9 7f <- SessionID of the party
  79. 00 00 00 00
  80. 05 40 00 10
  81. 00 01 f9 3f <- packet counter
  82. 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]
  83. 01 40 ac 44
  84. 01 00 00 00
  85. 00 00 00 00
  86. 00 00 00 00
  87. 00 00 00 00
  88. 00 00 00 00
  89. 00 00 00 00
  90. 00 00 00 00
  91. 00 00 00 00
  92. 00 00 00 00
  93.  
  94. Then the data is written in a unknown format...
  95.  
  96. The server will stop sending data after approx. 30s if no new "i'm alive" message is sent.
  97.  
  98. -->
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement