powered by Jive Software

Service not implemented when trying voice chat

hi all,

am trying to build a simple voice chat using smarkx-jingle. Its based on the Demo provided. I have two users: user1 and user2. When user1 tries to call user2, i get the following messages in debug:




Evident in these messages is ‘feature-not-implemented’

what does this mean?

Thanks.

davidwaf

anyone to please help explain this: “feature-not-implemented” in the voice chat context? I have smackx-jingle on the client side. Do i need anything on the server side too? Do i need to configure something? Am using openfire. OR what exactly could be the problem? For countless hours cant just go beyond this, i would really hate to abondon it.

Thanks!

An appeal again: has anyone implemented a simple voice chat, or even ran the demo in jingle API successfully? (am sure there are many). Would they be kind enough to provide me with step by step instructions.Am convinced am missing a tep somwhere. Am not new to java, not at all, but am new to openfire/smack world. As i mentioned: what does ‘feature-not-implemented’ mean in the smackx-jingle context? What feature? What should i do. Any troubleshooting tips.

Some one please.

I am having the same problem, does anyone know the solution?

Hi,

probably you forgot to enable the Jingle Service at the beginning of your program

JingleManager.setJingleServiceEnabled();

Without this line incoming jingle requests will be responded with a “feature-not-implemented” error.

The following demo code worked fine for me for a simple voice chat demo:

public static void main(String[] args) throws Exception {
    // enable Jingle service
    JingleManager.setJingleServiceEnabled();     // user1 connect to a XMPP Server
    XMPPConnection x1 = new XMPPConnection("localhost");
    x1.connect();
    x1.login("user1", "user1");     // Create a JingleManager using a BasicTransportManager
    List<JingleMediaManager> mediaManagers1 = new ArrayList<JingleMediaManager>();
    mediaManagers1.add(new JmfMediaManager(new BasicTransportManager()));
    final JingleManager jm1 = new JingleManager(x1, mediaManagers1);     // Listen for incoming calls
    jm1.addJingleSessionRequestListener(new JingleSessionRequestListener() {
        public void sessionRequested(JingleSessionRequest request) {             try {
                // Accept the call
                JingleSession session = request.accept();                 // Start the call
                session.startIncoming();
            }
            catch (XMPPException e) {
                e.printStackTrace();
            }         }
    });     // user2 connect to a XMPP Server
    XMPPConnection x0 = new XMPPConnection("localhost");
    x0.connect();
    x0.login("user2", "user2");     // Create a JingleManager using a BasicTransportManager
    List<JingleMediaManager> mediaManagers0 = new ArrayList<JingleMediaManager>();
    mediaManagers0.add(new JmfMediaManager(new BasicTransportManager()));
    final JingleManager jm0 = new JingleManager(x0, mediaManagers0);     // Create a new Jingle Call with a full JID
    JingleSession js0 = jm0
                    .createOutgoingJingleSession("user1@localhost/Smack");     // Start the call
    js0.startOutgoing();     Thread.sleep(30000);
    js0.terminate();     Thread.sleep(3000); }

For the JMFMediaManager to work you have to add the jmf.jar and maybe some OS dependent libraries to the classpath. These can be found in the svn repository /smack/jingle/extensions/build/lib

Best regards,

Henning

ok, this help me out a little. Now I can seemingly communicate from Smack to Smack. If I try to communicate from Smack to Spark, I am still getting an error.

Packet:

I am using the Smack 3.1.0 and Spark 2.5.8.

//here is the code I am using… (same as above, just user names changed)

public static void main( String[] args ) throws Exception {
// enable Jingle service
JingleManager.setJingleServiceEnabled();

// user2 connect to a XMPP Server
XMPPConnection x0 = new XMPPConnection( “localhost” );
x0.connect();
x0.login( “jkunkle”, “***” );
JingleManager.setServiceEnabled( x0, true );

// Create a JingleManager using a BasicTransportManager
List mediaManagers0 = new ArrayList();
mediaManagers0.add( new JmfMediaManager( new BasicTransportManager() ) );
final JingleManager jm0 = new JingleManager( x0, mediaManagers0 );

// Create a new Jingle Call with a full JID
JingleSession js0 = jm0.createOutgoingJingleSession( “jskunkle@localhost/spark” );

// Start the call
js0.startOutgoing();

Thread.sleep( 30000 );
js0.terminate();

Thread.sleep( 3000 );
Smack_Run.txt.zip (978 Bytes)