Hello!
Im trying to build a proof of concept app for an Android device.
I have a browser plugin built on the jingle library which can be used to call other clients that has the same plugin(I didnt write this plugin). The signaling is transported by the already up and running xmpp server.
Its working according to this principle.
INITIATOR RESPONDER
| |
| session-initiate (1) |
|----------------------------------->|
| ack (1) |
|<-----------------------------------|
| transport-info(candidates) (2) |
|----------------------------------->|
| ack (2) |
|<-----------------------------------|
| transport-info(candidates) (2) |
|<-----------------------------------|
| ack (2) |
|----------------------------------->|
| STUN Binding Request (3) |
|===================================>|
| STUN Binding Result (3) |
|<===================================|
| STUN Binding Request (3) |
|<===================================|
| STUN Binding Result (3) |
|===================================>|
| session-accept (4) |
|<-----------------------------------|
| ack (4) |
|----------------------------------->|
|<=======AUDIO/VIDEO RTP (5)========>|
|----------------------------------->|
| session-terminate (6) |
|----------------------------------->|
| ack (6) |
|<-----------------------------------|
| |
The goal is to use this plugin to establish an audio only call to a client built on android. (from regular browser with plugin to an android app).
Right now im sending Jingle data to my android devide and parse it. That is working nicely, the problem is that I dont know what to do with this data.. For example when I start a call from the browser I get this on the android :
<iq xmlns='jabber:client' from='the_from_adress' to='the_to_adress' id='quwqegC9Vm' type='set'>
<jingle xmlns='urn:xmpp:jingle:1' action='session-initiate' initiator='the_from_adress' responder='the_to_adress' sid='GUV3WncaSdoPhQFF'>
<content creator='initiator' name='Audio'>
<description xmlns='urn:xmpp:jingle:apps:rtp:1' media='audio'>
<payload-type bitrate='32000' channels='1' clockrate='16000' id='103' name='ISAC' ptime='33'/>
<payload-type bitrate='56000' channels='1' clockrate='32000' id='104' name='ISAC' ptime='33'/>
<payload-type bitrate='128000' channels='1' clockrate='8000' id='105' name='L16' ptime='100'/>
<payload-type bitrate='256000' channels='1' clockrate='16000' id='107' name='L16' ptime='100'/>
<payload-type bitrate='512000' channels='1' clockrate='32000' id='108' name='L16' ptime='100'/>
<payload-type bitrate='128000' channels='2' clockrate='8000' id='109' name='L16' ptime='100'/>
<payload-type bitrate='256000' channels='2' clockrate='16000' id='111' name='L16' ptime='100'/>
<payload-type bitrate='512000' channels='2' clockrate='32000' id='112' name='L16' ptime='100'/>
<payload-type bitrate='64000' channels='1' clockrate='8000' id='0' name='PCMU' ptime='50'/>
<payload-type bitrate='64000' channels='1' clockrate='8000' id='8' name='PCMA' ptime='50'/>
<payload-type bitrate='64000' channels='2' clockrate='8000' id='110' name='PCMU' ptime='50'/>
<payload-type bitrate='64000' channels='2' clockrate='8000' id='118' name='PCMA' ptime='50'/>
<payload-type bitrate='13300' channels='1' clockrate='8000' id='102' name='ILBC' ptime='33'/>
<payload-type bitrate='64000' channels='1' clockrate='16000' id='9' name='G722' ptime='50'/>
<payload-type bitrate='64000' channels='2' clockrate='16000' id='119' name='G722' ptime='50'/>
<encryption required='0'>
<crypto crypto-suite='AES_CM_128_HMAC_SHA1_80' key-params='inline:6wTsrUisanoAvhiWgNDznyjZvO17Ex' tag='0'/>
</encryption></description></content></jingle></iq></body>
I parse it and put the data in some self defined objects.
But then what? I have the libjingle_peerconnection.jar in my project. How do I use it to establish the actual call?
Any help is greatly appreciated :)
Regards
Pär