aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-04-08 21:50:32 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-04-08 21:50:32 +0000
commit3152503cf71a272a63cf9c755222ab823eec1075 (patch)
tree8d4e8ce163192490053bb2d27f618153f0da8b13 /channels
parent51736795dc6c28ad06257b50593ff245fd5acf9f (diff)
Send empty voice frame on 183 session progress
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@787 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_sip.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 5ee2eadad..ad096208a 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -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) {