Send empty voice frame on 183 session progress
authorMark Spencer <markster@digium.com>
Tue, 8 Apr 2003 21:50:32 +0000 (21:50 +0000)
committerMark Spencer <markster@digium.com>
Tue, 8 Apr 2003 21:50:32 +0000 (21:50 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@787 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 5ee2ead..ad09620 100755 (executable)
@@ -3741,9 +3741,17 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
                case 100:
                        break;
                case 183:       /* We don't really need this since we pass in-band audio anyway */
-                       /* Not important */
-                       if (strlen(get_header(req, "Content-Type")))
-                               process_sdp(p, req);
+                       {
+                               /* Send back an empty audio frame to get things moving, (like in the case of 
+                                  back-to-back 183's, getting audio */
+                               if (strlen(get_header(req, "Content-Type")))
+                                       process_sdp(p, req);
+                               if (p->owner && p->owner->pvt) {
+                                       struct ast_frame af = { AST_FRAME_VOICE, };
+                                       af.subclass = p->owner->pvt->rawreadformat;
+                                       ast_queue_frame(p->owner, &af, 0);
+                               }
+                       }
                        break;
                case 180:
                        if (p->owner) {