summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2007-02-21 17:23:42 +0000
committerJoshua Colp <jcolp@digium.com>2007-02-21 17:23:42 +0000
commit93671917f98bf01eefc59174ded465a0532ed6ec (patch)
treefc9d82baed5c7ec1f612fa9947323780087ef932 /channels
parentbf3c67c2d28a032eaa8e4bb3868a010a8387ad74 (diff)
Merged revisions 55914 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r55914 | file | 2007-02-21 12:18:19 -0500 (Wed, 21 Feb 2007) | 2 lines Add a flag that indicates whether a SIP dialog is an outgoing call or not. SIP_OUTGOING originally did it but it was repurposed to the direction of the last transaction, which can cause update_call_counter to falsely decrease the wrong counters. (please don't hurt me oej) (issue #8943 reported by mdu113) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@55915 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 21709d6ba..6ec889703 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -796,9 +796,10 @@ 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_NOTEXT (1 << 27) /*!< 26: Text not supported */
-#define SIP_PAGE2_TEXTSUPPORT (1 << 28) /*!< 27: Global text enable */
-#define SIP_PAGE2_DEBUG_TEXT (1 << 29) /*!< 28: Global text debug */
+#define SIP_PAGE2_NOTEXT (1 << 27) /*!< 27: Text not supported */
+#define SIP_PAGE2_TEXTSUPPORT (1 << 28) /*!< 28: Global text enable */
+#define SIP_PAGE2_DEBUG_TEXT (1 << 29) /*!< 29: Global text debug */
+#define SIP_PAGE2_OUTGOING_CALL (1 << 30) /*!< 30: Is this an outgoing call? */
#define SIP_PAGE2_FLAGS_TO_COPY \
(SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_VIDEOSUPPORT | \
@@ -3296,7 +3297,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;
@@ -15962,6 +15963,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");