diff --git a/channels/chan_sip.c b/channels/chan_sip.c index f8df46409c..e274976084 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -778,6 +778,7 @@ struct sip_auth { #define SIP_PAGE2_CALL_ONHOLD_INACTIVE (1 << 24) /*!< 24: Inactive */ #define SIP_PAGE2_RFC2833_COMPENSATE (1 << 25) /*!< 25: ???? */ #define SIP_PAGE2_BUGGY_MWI (1 << 26) /*!< 26: Buggy CISCO MWI fix */ +#define SIP_PAGE2_OUTGOING_CALL (1 << 27) /*!< 27: Is this an outgoing call? */ #define SIP_PAGE2_FLAGS_TO_COPY \ (SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_VIDEOSUPPORT | \ @@ -2992,7 +2993,7 @@ static int update_call_counter(struct sip_pvt *fup, int event) { char name[256]; int *inuse = NULL, *call_limit = NULL, *inringing = NULL; - int outgoing = ast_test_flag(&fup->flags[0], SIP_OUTGOING); + int outgoing = ast_test_flag(&fup->flags[1], SIP_PAGE2_OUTGOING_CALL); struct sip_user *u = NULL; struct sip_peer *p = NULL; @@ -15257,6 +15258,8 @@ static struct ast_channel *sip_request_call(const char *type, int format, void * return NULL; } + ast_set_flag(&p->flags[1], SIP_PAGE2_OUTGOING_CALL); + if (!(p->options = ast_calloc(1, sizeof(*p->options)))) { sip_destroy(p); ast_log(LOG_ERROR, "Unable to build option SIP data structure - Out of memory\n");