diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 1a7f04beed..8c58d20d82 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -6823,6 +6823,11 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_ p->alreadygone = 1; if (!p->owner) p->needdestroy = 1; + } else if ((resp >= 100) && (resp < 200)) { + /* Unknown 1xx repsonses should be treated as 100 */ + if (!strcasecmp(msg, "INVITE")) { + sip_cancel_destroy(p); + } } else ast_log(LOG_NOTICE, "Dunno anything about a %d %s response from %s\n", resp, rest, p->owner ? p->owner->name : ast_inet_ntoa(iabuf, sizeof(iabuf), p->sa.sin_addr)); }