diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 89e52342a1..7e2ebb6763 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -542,7 +542,7 @@ static char global_useragent[AST_MAX_EXTENSION]; /*!< Useragent for the SIP chan static int allow_external_domains; /*!< Accept calls to external SIP domains? */ static int global_callevents; /*!< Whether we send manager events or not */ static int global_t1min; /*!< T1 roundtrip time minimum */ -static int global_autoframing; /*!< ?????????? */ +static int global_autoframing; /*!< Turn autoframing on or off. */ static enum transfermodes global_allowtransfer; /*!< SIP Refer restriction scheme */ /*! \brief Codecs that we support by default: */ @@ -11505,11 +11505,12 @@ static void handle_response_invite(struct sip_pvt *p, int resp, char *rest, stru /* RFC3261 says we must treat every 1xx response (but not 100) that we don't recognize as if it was 183. */ - if (resp > 100 && resp < 200 && resp != 180 && resp != 183) + if (resp > 100 && resp < 200 && resp!=101 && resp != 180 && resp != 183) resp = 183; switch (resp) { case 100: /* Trying */ + case 101: /* Dialog establishment */ if (!ast_test_flag(req, SIP_PKT_IGNORE)) sip_cancel_destroy(p); check_pendings(p); @@ -11993,6 +11994,7 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_ } else if (ast_test_flag(&p->flags[0], SIP_OUTGOING)) { switch(resp) { case 100: /* 100 Trying */ + case 101: /* 101 Dialog establishment */ if (sipmethod == SIP_INVITE) handle_response_invite(p, resp, rest, req, seqno); break; @@ -12701,6 +12703,7 @@ static int handle_request_notify(struct sip_pvt *p, struct sip_request *req, str respcode = atoi(code); switch (respcode) { case 100: /* Trying: */ + case 101: /* dialog establishment */ /* Don't do anything yet */ break; case 183: /* Ringing: */