Although the concept is quite simple, and the necessary packets to trade such information between a client and a pubsub server, the biggest challenge was adapt the Smack API to the particularities from the buddycloud's XEP. The work was a lot easier because in the last year GSoC, another buddycloud's student (Abmar Barros) had to implement similar functionality into his project, also using Smack.
So, to verify if an user like "rodrigo@buddycloud.org" can POST a media into "private@topics.buddycloug.org" all that the Media Server does is retrieve the channel's affiliations, and check if "rodrigo@buddycloud.org" has post capabilities:
<iq from="mediaserver@buddycloud.org/Client" id="Eq5j2-2" to="channels.buddycloud.org" type="get"> <pubsub xmlns="http://jabber.org/protocol/pubsub#owner"> <affiliations node="/user/private@buddycloud.org/posts"> </affiliations></pubsub> </iq>
RESPONSE:
<iq from="channels.buddycloud.org" id="Eq5j2-2" to="mediaserver@buddycloud.org/Client" type="result"> <pubsub xmlns="http://jabber.org/protocol/pubsub#owner"> <affiliations xmlns="http://jabber.org/protocol/pubsub#owner"> <...> <affiliation jid="rodrigo@buddycloud.org" affiliation="publisher"/> </affiliations> <set xmlns="http://jabber.org/protocol/rsm"> <first index="0"> user1@buddycloud.org </first> <last> user5@buddycloud.org </last> <count> 5 </count> </set> </pubsub> </iq>
What are the next steps?
- Fist I'd like to deploy a toy client to demonstrate some of the Media Server functionality;
- After that, the next step is the implementation of the XEP-0070 and documentation.
Nice blog..! I really loved reading through this article. Thanks for sharing such an amazing post with us and keep blogging...Well written article Thank You for Sharing with Us pmp training institute in chennai | pmp training in chennai | pmp training class in chennai | pmp training near me | pmp training courses online
ResponderExcluir