Package Exports
- sdp-jingle-json
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sdp-jingle-json) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
SDP-Jingle-JSON
What is this?
Ever taken a peek at the data blobs that get sent back and forth in WebRTC signalling? Yeah, that mess of line-oriented data is SDP. But sometimes you want to have that data available in JSON, like if you want to use XMPP Jingle for signalling.
This library will convert raw SDP into JSON that mirrors the structure of XMPP Jingle content, making it simple to convert the SDP data into an XMPP stanza with any of the various JS XMPP libraries, such as stanza.io, or xmpp-ftw.
And since you're working with WebRTC, be sure to check out simplewebrtc.
Installing
npm install sdp-jingle-jsonAlso suitable for use with browserify/CommonJS in the browser.
If you're not using browserify or you want AMD support use sdp-jingle-json.bundle.js.
How to use it
var sjj = require('sdp-jingle-json');
// I have SDP, but want JSON:
var json = sjj.toSessionJSON(sdpBlob, 'initiator'); // or 'responder'
// I have JSON (a dictionary of session and content descriptions), but want SDP:
var sdp = sjj.toSessionSDP(jsonSession);You can also use toMediaSDP and toMediaJSON to convert only a single media section.
Jingle JSON
The format for the generated JSON content is:
{
"action": "",
"initiator": "",
"responder": "",
"sid": "",
// ---- Content payload
"grouping": [
{
"semantics": "",
"contents": [],
} //...
],
"contents": [
{
"name": "",
"creator": "",
"senders": "",
"description": {
// ---- RTP description
"descType": "rtp",
"media": "",
"ssrc": "",
"ssrcs": [
{
"ssrc": "",
"cname": "",
"msid": "",
"mslabel": "",
"label": ""
} //...
],
"bandwidth": "",
"bandwidthType": "",
"headerExtensions": [
{
"id": "",
"uri": "",
"senders": ""
} //...
],
"payloads": [
{
"id": "",
"channels": "",
"clockrate": "",
"maxptime": "",
"ptime": "",
"name": "",
"parameters": [
{
"key": "",
"value": ""
} //...
],
"feedback": [
{
"type": "",
"subtype": "",
"value": ""
} //...
]
}
],
"encryption": [
{
"cipherSuite": "",
"keyParams": "",
"sessionParams": "",
"tag": ""
} //...
]
},
"transport": {
// ---- ICE UDP transport
"transType": "iceUdp",
"ufrag": "",
"pwd": "",
"candidates": [
{
"component": "",
"foundation": "",
"generation": "",
"id": "",
"ip": "",
"network": "",
"port": "",
"priority": "",
"protocol": "",
"relAddr": "",
"relPort": "",
"type": ""
} //...
],
"fingerprints": [
{
"hash": "",
"value": ""
} // ...
]
}
} //...
]
}License
MIT
Created By
If you like this, follow @lancestout on twitter.
SDP-Jingle-JSON is derived, in collaboration, from the work done by Philipp Hancke for strophe.jingle.