diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2009-10-06 11:29:14 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2009-10-06 11:29:14 +0000 |
commit | 31a9ba0b9488e15f685eb9c343fc1f628e40cc6e (patch) | |
tree | 8fcff1b51b36ebbe0976452765245d9bff10c121 | |
parent | c8d381ec5640a00e3d950c297b4987ade8772214 (diff) |
Ticket #964:
- Fixed creating media answer in SDP negotation to just clone the offer (and update media direction) when media offer specifies port 0 (media inactive).
- Added pjsua python test.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2926 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjmedia/src/pjmedia/sdp_neg.c | 13 | ||||
-rw-r--r-- | tests/pjsua/scripts-sendto/126_sdp_with_port_0_and_no_rtpmap_for_dynamic_pt.py | 26 |
2 files changed, 35 insertions, 4 deletions
diff --git a/pjmedia/src/pjmedia/sdp_neg.c b/pjmedia/src/pjmedia/sdp_neg.c index 9c4e9cfa..6ce097e3 100644 --- a/pjmedia/src/pjmedia/sdp_neg.c +++ b/pjmedia/src/pjmedia/sdp_neg.c @@ -1006,6 +1006,15 @@ static pj_status_t match_offer(pj_pool_t *pool, const pjmedia_sdp_media *master, *slave; pj_str_t pt_amr_need_adapt = {NULL, 0}; + /* If offer has zero port, just clone the offer and update direction */ + if (offer->desc.port == 0) { + answer = pjmedia_sdp_media_clone(pool, offer); + remove_all_media_directions(answer); + update_media_direction(pool, offer, answer); + *p_answer = answer; + return PJ_SUCCESS; + } + /* Set master/slave negotiator based on prefer_remote_codec_order. */ if (prefer_remote_codec_order) { master = offer; @@ -1218,10 +1227,6 @@ static pj_status_t match_offer(pj_pool_t *pool, } answer->desc.fmt_count = pt_answer_count; - /* If offer has zero port, set our answer with zero port too */ - if (offer->desc.port == 0) - answer->desc.port = 0; - /* Update media direction. */ update_media_direction(pool, offer, answer); diff --git a/tests/pjsua/scripts-sendto/126_sdp_with_port_0_and_no_rtpmap_for_dynamic_pt.py b/tests/pjsua/scripts-sendto/126_sdp_with_port_0_and_no_rtpmap_for_dynamic_pt.py new file mode 100644 index 00000000..a79a4138 --- /dev/null +++ b/tests/pjsua/scripts-sendto/126_sdp_with_port_0_and_no_rtpmap_for_dynamic_pt.py @@ -0,0 +1,26 @@ +# $Id$ +import inc_sip as sip +import inc_sdp as sdp + +sdp = \ +""" +v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=- +c=IN IP4 127.0.0.1 +t=0 0 +m=video 0 RTP/AVP 100 +m=audio 5000 RTP/AVP 0 +""" + +pjsua_args = "--null-audio --auto-answer 200" +extra_headers = "" +include = ["Content-Type: application/sdp", # response must include SDP + "m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+m=video 0 RTP/AVP" + ] +exclude = [] + +sendto_cfg = sip.SendtoCfg("SDP media with port 0 and no rtpmap for dynamic PT", pjsua_args, sdp, 200, + extra_headers=extra_headers, + resp_inc=include, resp_exc=exclude) + |