Hi, I'm trying to combine VLC with the given NSIS implementation. However, I'm wondering how to send or receive real video data using the installed signaling path. I think, there are no parts of APIs for real data communication (only for signaling messages) in the current implementation. If there are any parts related to my concern, please let me know.
Hi,
Hi, I'm trying to combine VLC with the given NSIS implementation.
Great, we look forward to nice applications of our NSIS implementations. If you succeed, we would be very happy if you could share your experience and/or code.
However, I'm wondering how to send or receive real video data using the installed signaling path. I think, there are no parts of APIs for real data communication (only for signaling messages) in the current implementation. If there are any parts related to my concern, please let me know.
You missunderstood the basic concept of NSIS signaling. Neither is NSIS signaling piggy-backed on the data traffic, nor is the data traffic tunneld through NSIS. Instead, the NSIS signaling packets have no direct connection to the data packets. In fact, NSIS signaling speaks ABOUT data packets, or better data flows. Typically a data flow is identified by the source and destination IP, the transport protocol used, the source and destionation port and maybe some other information, like the DiffServ-CodePoint or a FlowIdentifier. All these parameters are summarized as the Flow-Information, which is encoded in the Message Routing Informatin of GIST.
So how does a NSIS scenario look like? Take a SIP phone, which wants to do a Voice-over-IP call. After some session setup, it knows where to send the voice data and starts doing so. It knows all the Flow-Information I spoke of above. Therefore it invokes the NSIS (or better QoS-NSLP) daemon and tells it, that it wants a certain degree of Quality of Service (e.g. 20 kB/s bandwidth) for the particular Flow (and therefore provides the Flow-Information). Then, with no direct connection to the data traffic, NSIS does all the work to reserve the QoS on the routers on the data path for that particular flow. After that, the SIP phone, or better the data traffic, will experience the improved or guaranteed QoS.
So how do you integrate NSIS into a SIP phone from the implementation point of view? As said, you need to extend the SIP phone. You need to find the place in the code where the phone has all the Flow-Information and wants to start to send the audio stream. At that point, you hook yourself in and make a call to the local QoS-NSLP daemon and give it all the information that it needs to do the reservation (see above). Once the QoS-NSLP tells you, that it succeeded, the normal operation of the SIP-phone should continue (so it really starts sending the audio stream, the data).
So how do actually invoke the QoS-NSLP of our implementation? For that, please have a look at the current command line client for the QoS-NSLP. As the QoS-NSLP is still in development, the API between your application and QoS-NSLP is not yet fully functional (I hope I remember correctly). We would welcome any suggestions here, and I guess Bernd Schloer (the main developer of QoS-NSLP) can tell you more about the QoS-NSLP API.
I hope that helps. Feel free to ask any further questions here on the mailing list.
Greetings, Christian Dickmann
So how do actually invoke the QoS-NSLP of our implementation? For that, please have a look at the current command line client for the QoS-NSLP. As the QoS-NSLP is still in development, the API between your application and QoS-NSLP is not yet fully functional (I hope I remember correctly). We would welcome any suggestions here, and I guess Bernd Schloer (the main developer of QoS-NSLP) can tell you more about the QoS-NSLP API.
Currently there's no API that can be used between QoS NSLP and application. This needs further discussion. It doesn't make sense to give the application full control over the QoS NSLP.
we need:
- setting up a reservation to dest-ip - tear down session - callback for notify - qosm-specific functions - query(response) for available bandwidth?
Any suggestions what an API should else include?
Bernd
nsis_imp@informatik.uni-goettingen.de