cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements
Please note that Remote Expert Mobile announced end-of-life and support will end on February 28, 2022.
1534
Views
2
Helpful
9
Replies
Cisco Employee

Jabber API to send files

Hi Team,

DO we have APIs available wherein we can setup the Jabber to send/receive the files within the participants?

regards,

Jayant

Everyone's tags (1)
9 REPLIES 9
Contributor

Re: Jabber API to send files

Hi Jayant,

Sorry, the file transfer feature is not current implemented in CAXL.

Will update you if there is any plan in the roadmap.

Thanks,

Howard

Cisco Employee

Re: Jabber API to send files

Per the CUP documentation, it will route requests containing the XEP-0096 'file transfer' XMPP extensions (i.e. not block/reject), however CUP does not participate at all in the actual interpretation or processing of XEP-0096.  As I understand it, this means if both endpoints support XEP-0096, they could send low-level XMPP messages (via CAXL) to each other which contain the XEP-0096 schema elements, and therefore negotiate and implement file transfer between themselves.

There is no higher-level function in CAXL exposed for file transfer, the apps would need to build and send lower-level XMPP stanzas with XEP-0096 contents.

Highlighted
Cisco Employee

Re: Jabber API to send files

Hi David,

Based on the suggestion we tried following:

1. Using strophe.js unable to connect with the cups server , always we get the response as connecting , there is no response from our cups server after that  . is there any other approach to achieve the file transfer?

Cisco Employee

Re: Jabber API to send files

Strophe.js is roughly equivalent to CAXL, in that it represents a javascript library which implements XMPP over BOSH (note CUP does not support websockets.)  As Cisco does not support integrating directly via the BOSH interface (SIMPLE, CAXL and direct XMPP are supported) its possible that strophe.js 'might just work', but would not be officially supported.

Can you determine at the HTTP or XMPP level what the issue/error is?  I.e. a pcap of an attempted connection (non-secure) might be helpful...

As mentioned before, it may be possible to implement XEP-0096 using low-level CAXL requests (in much the same way that I assume the 'outofband' strophe.js plugin does it using low-level strophe.js requests)...not aware of any easier solution.

Beginner

Re: Jabber API to send files

HI David,

As you recommended, we are working on XEP-0096 via CAXL.

But whenever we fire Stream Initiation(SI), getting <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></feature-not-implemented> without <text> information according to XEP-0020: Feature Negotiation.


I've attached all requests and responses, can you please help what was the problem?

1. Requesting Disco Information From Receiver

<body xmlns="http://jabber.org/protocol/httpbind" sid="5679F49E16" rid="1218099237">
<iq xmlns="jabber:client" to="preddy2@cisco.com/xep099tester" type="get">
<query xmlns="http://jabber.org/protocol/disco#info"></query>

</iq>

</body>

2. Receiver Disco Information Result

<body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams">
<iq from="preddy2@cisco.com/xep099tester" to="shahhuss@cisco.com/xep099tester" type="result" xmlns="jabber:client">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="client" name="Cisco AJAX XMPP Library" type="pc"></identity>

<feature var="http://jabber.org/protocol/bytestreams"></feature>

<feature var="http://jabber.org/protocol/caps"></feature>

<feature var="http://jabber.org/protocol/chatstates"></feature>

<feature var="http://jabber.org/protocol/disco#info"></feature>

<feature var="http://jabber.org/protocol/ibb"></feature>

<feature var="http://jabber.org/protocol/muc"></feature>

<feature var="http://jabber.org/protocol/muc#user"></feature>

<feature var="http://jabber.org/protocol/si"></feature>

<feature var="http://jabber.org/protocol/si/profile/file-transfer"></feature>

<feature var="http://jabber.org/protocol/xhtml-im"></feature>

</query>

</iq>

</body>

3. Offer Stream Initiation

<body xmlns="http://jabber.org/protocol/httpbind" sid="58587F1758" rid="248678858">
<iq id="offer1" xmlns="jabber:client" to="preddy2@cisco.com/xep099tester" type="set">
<si id="a0" xmlns="http://jabber.org/protocol/si" mime-type="text/plain" profile="http://jabber.org/protocol/si/profile/file-transfer">
<file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="test.txt" size="1022"></file>

<feature xmlns="http://jabber.org/protocol/feature-neg">

<x xmlns="jabber:x:data" type="form">
<field var="stream-method" type="list-single">
<option>

<option>

<value>http://jabber.org/protocol/ibb</value>

</option>

</field>

</x>

</feature>

</si>

</iq>

</body>

4. Error

<body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams">

  <iq id="offer1" from="preddy2@cisco.com/xep099tester" to="shahhuss@cisco.com/xep099tester"

  type="error" xmlns="jabber:client">

  <si id="a0" mime-type="text/plain"

  profile="http://jabber.org/protocol/si/profile/file-transfer" xmlns="http://jabber.org/protocol/si">

  <file name="test.txt" size="1022"

  xmlns="http://jabber.org/protocol/si/profile/file-transfer"></file>

  <feature xmlns="http://jabber.org/protocol/feature-neg">

  <x type="form" xmlns="jabber:x:data">

  <field type="list-single" var="stream-method">

  <option>

  <value>http://jabber.org/protocol/bytestreams</value>

  </option>

  <option>

  <value>http://jabber.org/protocol/ibb</value>

  </option>

  </field>

  </x>

  </feature>

  </si>

  <error type="cancel">

  <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></feature-not-implemented>

  </error>

  </iq>

</body>

---------------------------------------------------------------------------------------

Thanks,

Hyun

Contributor

Re: Jabber API to send files

Hi Hyun,

Have you checked if your CUPS server has the file transfer feature turned on?

Configuration and Administration of IM and Presence Service on Cisco Unified Communications Manager, Release 10.0(1) - …

Regards,

Howard

Beginner

Re: Jabber API to send files

Hi Howard,

Thanks for you reply!

The configuration of CUPS were on. 

Fortunately we got it work.

What we need to do was not only implement sender side of logic but also implement for receiver side of logic.

Regards,

Hyun

Contributor

Re: Jabber API to send files

Hi Hyun,

God to hear that...:)

Did you managed to use CAXL, or Strophe.js?

Do you might share the code sample to the forum so that others can follow?

Regards,

Howard

Beginner

Re: Jabber API to send files

We refer Cryptocat filetransfer logic and added some amount of code to jabberwerx.js. :-)

I uploaded my sample code in here:

https://communities.cisco.com/docs/DOC-53445

-Hyun-


CreatePlease to create content
Content for Community-Ad
August's Community Spotlight Awards