Hi, I'm using the PJSUA API for a simple SIP-Client. I want to know the codec currently used (which might change during the call with an SDP update). I try to use the on_stream_created callback from the pjsua_callbacks structure. The signature of this function is void (*on_stream_created)(pjsua_call_id call_id, pjmedia_session *sess, unsigned stream_idx, pjmedia_port **p_port); My problem is the type of the second parameter: pjmedia_session is defined in pjmedia/src/pjmedia/session.c - yes ".c". How is my compiler supposed to find that definition, when it is not available in any header file? Since I want to access the stream_info array inside of sess, the compiler needs to know the memory layout of pjmedia_session when compiling my on_stream_created callback function. I suspect that I'm missing something fundamental, trivial and obvious, but I just can't find it ... am I not able to see the wood for the trees? What's the deal with that structure? Thanks, Sebastian. PS: making a local copy of the pjmedia_session definition to my file fixes the compiling and everything works fine. But that's not the way on_stream_created is supposed to be used, is it?