[asterisk-dev] [Video / SIP] Codec negotiation passthrough ?

Nicolas Bourbaki ncl.bourbaki at gmail.com
Thu Sep 2 07:09:16 CDT 2010


Hi,

I've got a litlle problem : Asterisk rewrite every SDP in codec negociation,
even for video. I would have liked that I don't loose any information for
video, as some are constructor specific.
Here is a litlle exemple of what I have :

An Asterisk, doing NAT, so every RTP flow comes to and goes from it.
An Tandberg (or other ;)) system (VCS, ...) connected to the Asterisk
Another Tandberg (or other ;)) system (VCS, ...) connected to the Asterisk

It can be drawed like that :   TDB visiophone <--> VCS 1 <--> Asterisk <-->
VCS 2 <--> TDB visiophone

Tandberg add some information in his SDP, eg
a=profile-level-id=428016;max-mbps=35000;max-fs=3600;max-smbps=323500
Other systems add their own information too.

The result is that, when Asterisk strips theses information, I've got a QCIF
codec negociation, whereas I could have w720p (which is a litlle better ;))

So how could have a SDP passthrough for video codec negotiation ? I've
checked the code, but didn't find a way to do it :

process_sdp_a_video :  get the string and have a sip_pvt structure
add_vcodec_to_sdp  : write a_video string from another sip_pvt structure

What I've done is adding an ast_str to sip_pvt structure and to sip_request
structure)

In process_sdp_a_video, I copy the string to sip_pvt
In process_sdp, I copy the sip_pvt data to the sip_request "req"
In respprep, I copy the data from "req" to "resp"
In add_sdp, I copy the data from resp to the new sip_pvt
In add_vcodec_to_sdp, I copy the data from sip_pvt to a_video

But it didn't work. What did I missed ? Is ther a simple way to do it ?

Thanks for you answer (and sorry for my poor english ;))



For Information : I'm running asterisk 1.6
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-dev/attachments/20100902/42b56b45/attachment.htm 


More information about the asterisk-dev mailing list