aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authordvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2010-01-12 16:16:17 +0000
committerdvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2010-01-12 16:16:17 +0000
commit5c946587e02b50bee33b585419846186fca19611 (patch)
tree6daa2519a9f91b5b0ff6cc7a8e68d8e123530719 /channels/chan_sip.c
parente81dc2f44d4f692b6d6c36f711f1287d99fdb2d5 (diff)
Merged revisions 239427 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r239427 | dvossel | 2010-01-12 10:14:41 -0600 (Tue, 12 Jan 2010) | 14 lines fixes text support in sdp answer The code that handled setting 'm=text' in the sdp was not executing in the correct order. The check to see if text was needed came after the check to add 'm=text' to the sdp, this resulted in 'm=text' always being set to 0 because it looked like text was never required. (closes issue #16457) Reported by: peterj Patches: textportinsdp.diff uploaded by peterj (license 951) issue16457.diff uploaded by dvossel (license 671) Tested by: peterj ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@239428 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r--channels/chan_sip.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index d9478d8de..15890d500 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -10049,13 +10049,29 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
p->sessionversion++;
}
- /* Check if we need video in this call */
- if (add_audio && (p->jointcapability & AST_FORMAT_VIDEO_MASK) && !p->novideo) {
- if (p->vrtp) {
- needvideo = TRUE;
- ast_debug(2, "This call needs video offers!\n");
- } else
- ast_debug(2, "This call needs video offers, but there's no video support enabled!\n");
+ if (add_audio) {
+ /* Check if we need video in this call */
+ if ((p->jointcapability & AST_FORMAT_VIDEO_MASK) && !p->novideo) {
+ if (p->vrtp) {
+ needvideo = TRUE;
+ ast_debug(2, "This call needs video offers!\n");
+ } else
+ ast_debug(2, "This call needs video offers, but there's no video support enabled!\n");
+ }
+ /* Check if we need text in this call */
+ if ((p->jointcapability & AST_FORMAT_TEXT_MASK) && !p->notext) {
+ if (sipdebug_text)
+ ast_verbose("We think we can do text\n");
+ if (p->trtp) {
+ if (sipdebug_text) {
+ ast_verbose("And we have a text rtp object\n");
+ }
+ needtext = TRUE;
+ ast_debug(2, "This call needs text offers! \n");
+ } else {
+ ast_debug(2, "This call needs text offers, but there's no text support enabled ! \n");
+ }
+ }
}
get_our_media_address(p, needvideo, &sin, &vsin, &tsin, &dest, &vdest);
@@ -10090,19 +10106,6 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
ast_verbose("Video is at %s port %d\n", ast_inet_ntoa(p->ourip.sin_addr), ntohs(vdest.sin_port));
}
- /* Check if we need text in this call */
- if((capability & AST_FORMAT_TEXT_MASK) && !p->notext) {
- if (sipdebug_text)
- ast_verbose("We think we can do text\n");
- if (p->trtp) {
- if (sipdebug_text)
- ast_verbose("And we have a text rtp object\n");
- needtext = TRUE;
- ast_debug(2, "This call needs text offers! \n");
- } else
- ast_debug(2, "This call needs text offers, but there's no text support enabled ! \n");
- }
-
/* Ok, we need text. Let's add what we need for text and set codecs.
Text is handled differently than audio since we can not transcode. */
if (needtext) {