[asterisk-commits] branch oej/test-this-branch r15281 - in
/team/oej/test-this-branch: ./ channe...
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Mon Mar 27 10:45:29 MST 2006
Author: oej
Date: Mon Mar 27 11:45:28 2006
New Revision: 15281
URL: http://svn.digium.com/view/asterisk?rev=15281&view=rev
Log:
Reset, resolve, go
Modified:
team/oej/test-this-branch/ (props changed)
team/oej/test-this-branch/channels/chan_misdn.c
team/oej/test-this-branch/channels/chan_sip.c
team/oej/test-this-branch/channels/misdn/isdn_lib.c
Propchange: team/oej/test-this-branch/
------------------------------------------------------------------------------
automerge = http://edvina.net/training/
Propchange: team/oej/test-this-branch/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Mar 27 11:45:28 2006
@@ -1,1 +1,1 @@
-/trunk:1-15184
+/trunk:1-15252
Modified: team/oej/test-this-branch/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/channels/chan_misdn.c?rev=15281&r1=15280&r2=15281&view=diff
==============================================================================
--- team/oej/test-this-branch/channels/chan_misdn.c (original)
+++ team/oej/test-this-branch/channels/chan_misdn.c Mon Mar 27 11:45:28 2006
@@ -3324,6 +3324,16 @@
}
+ /* check if we should jump into s when we have no dad */
+ {
+ int im;
+ misdn_cfg_get( bc->port, MISDN_CFG_IMMEDIATE, &im, sizeof(im));
+ if ( im && ast_strlen_zero(bc->dad) ) {
+ do_immediate_setup(bc, ch , chan);
+ break;
+ }
+ }
+
chan_misdn_log(5,bc->port,"CONTEXT:%s\n",ch->context);
if(!ast_canmatch_extension(ch->ast, ch->context, bc->dad, 1, bc->oad)) {
Modified: team/oej/test-this-branch/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/channels/chan_sip.c?rev=15281&r1=15280&r2=15281&view=diff
==============================================================================
--- team/oej/test-this-branch/channels/chan_sip.c (original)
+++ team/oej/test-this-branch/channels/chan_sip.c Mon Mar 27 11:45:28 2006
@@ -436,7 +436,7 @@
static int global_regattempts_max; /*!< Registration attempts before giving up */
static int global_allowguest; /*!< allow unauthenticated users/peers to connect? */
static int global_allowsubscribe; /*!< Flag for disabling ALL subscriptions, this is FALSE only if all peers are FALSE
- the global setting is in globals_flag_page2 */
+ the global setting is in globals_flags[1] */
static int global_mwitime; /*!< Time between MWI checks for peers */
static int global_tos_sip; /*!< IP Type of service for SIP */
static int global_tos_audio; /*!< IP Type of service for RTP audio */
@@ -464,8 +464,7 @@
static int apeerobjs = 0; /*!< Autocreated peer objects */
static int regobjs = 0; /*!< Registry objects */
-static struct ast_flags global_flags = {0}; /*!< global SIP_ flags */
-static struct ast_flags global_flags_page2 = {0}; /*!< more global SIP_ flags */
+static struct ast_flags global_flags[2] = {{0}}; /*!< global SIP_ flags */
AST_MUTEX_DEFINE_STATIC(usecnt_lock);
@@ -707,9 +706,9 @@
#define SIP_PKT_DEBUG (1 << 0) /*!< Debug this packet */
#define SIP_PKT_WITH_TOTAG (1 << 1) /*!< This packet has a to-tag */
-#define sipdebug ast_test_flag(&global_flags_page2, SIP_PAGE2_DEBUG)
-#define sipdebug_config ast_test_flag(&global_flags_page2, SIP_PAGE2_DEBUG_CONFIG)
-#define sipdebug_console ast_test_flag(&global_flags_page2, SIP_PAGE2_DEBUG_CONSOLE)
+#define sipdebug ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG)
+#define sipdebug_config ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG_CONFIG)
+#define sipdebug_console ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG_CONSOLE)
/*! \brief sip_pvt: PVT structures are used for each SIP dialog, ie. a call, a registration, a subscribe */
static struct sip_pvt {
@@ -763,8 +762,7 @@
ast_group_t callgroup; /*!< Call group */
ast_group_t pickupgroup; /*!< Pickup group */
int lastinvite; /*!< Last Cseq of invite */
- unsigned int flags; /*!< SIP_ flags */
- struct ast_flags flags_page2; /*!< SIP PAGE2 flags */
+ struct ast_flags flags[2]; /*!< SIP_ flags */
int timer_t1; /*!< SIP timer T1, ms rtt */
unsigned int sipoptions; /*!< Supported SIP sipoptions on the other end */
int capability; /*!< Special capability (codec) */
@@ -886,9 +884,8 @@
struct ast_codec_pref prefs; /*!< codec prefs */
int lastmsgssent;
time_t lastmsgcheck; /*!< Last time we checked for MWI */
- unsigned int flags; /*!< SIP flags */
unsigned int sipoptions; /*!< Supported SIP options */
- struct ast_flags flags_page2; /*!< SIP_PAGE2 flags */
+ struct ast_flags flags[2]; /*!< SIP_ flags */
int expire; /*!< When to expire this peer registration */
int capability; /*!< Codec capability */
int rtptimeout; /*!< RTP timeout */
@@ -1230,7 +1227,7 @@
{
if (!sipdebug)
return 0;
- return sip_debug_test_addr(((ast_test_flag(p, SIP_NAT) & SIP_NAT_ROUTE) ? &p->recv : &p->sa));
+ return sip_debug_test_addr(ast_test_flag(&p->flags[0], SIP_NAT_ROUTE) ? &p->recv : &p->sa);
}
@@ -1240,7 +1237,7 @@
int res;
char iabuf[INET_ADDRSTRLEN];
- if (ast_test_flag(p, SIP_NAT) & SIP_NAT_ROUTE)
+ if (ast_test_flag(&p->flags[0], SIP_NAT_ROUTE))
res=sendto(sipsock, data, len, 0, (struct sockaddr *)&p->recv, sizeof(struct sockaddr_in));
else
res=sendto(sipsock, data, len, 0, (struct sockaddr *)&p->sa, sizeof(struct sockaddr_in));
@@ -1257,7 +1254,7 @@
{
char iabuf[INET_ADDRSTRLEN];
/* Work around buggy UNIDEN UIP200 firmware */
- const char *rport = ast_test_flag(p, SIP_NAT) & SIP_NAT_RFC3581 ? ";rport" : "";
+ const char *rport = ast_test_flag(&p->flags[0], SIP_NAT) & SIP_NAT_RFC3581 ? ";rport" : "";
/* z9hG4bK is a magic cookie. See RFC 3261 section 8.1.1.7 */
ast_string_field_build(p, via, "SIP/2.0/UDP %s:%d;branch=z9hG4bK%08x%s",
@@ -1381,7 +1378,7 @@
}
if (pkt->owner && sip_debug_test_pvt(pkt->owner)) {
- if (ast_test_flag(pkt->owner, SIP_NAT) & SIP_NAT_ROUTE)
+ if (ast_test_flag(&pkt->owner->flags[0], SIP_NAT_ROUTE))
ast_verbose("Retransmitting #%d (NAT) to %s:%d:\n%s\n---\n", pkt->retrans, ast_inet_ntoa(iabuf, sizeof(iabuf), pkt->owner->recv.sin_addr), ntohs(pkt->owner->recv.sin_port), pkt->data);
else
ast_verbose("Retransmitting #%d (no NAT) to %s:%d:\n%s\n---\n", pkt->retrans, ast_inet_ntoa(iabuf, sizeof(iabuf), pkt->owner->sa.sin_addr), ntohs(pkt->owner->sa.sin_port), pkt->data);
@@ -1411,13 +1408,13 @@
ast_mutex_lock(&pkt->owner->lock);
}
if (pkt->owner->owner) {
- ast_set_flag(pkt->owner, SIP_ALREADYGONE);
+ ast_set_flag(&pkt->owner->flags[0], SIP_ALREADYGONE);
ast_log(LOG_WARNING, "Hanging up call %s - no reply to our critical packet.\n", pkt->owner->callid);
ast_queue_hangup(pkt->owner->owner);
ast_mutex_unlock(&pkt->owner->owner->lock);
} else {
/* If no channel owner, destroy now */
- ast_set_flag(pkt->owner, SIP_NEEDDESTROY);
+ ast_set_flag(&pkt->owner->flags[0], SIP_NEEDDESTROY);
}
}
/* In any case, go ahead and remove the packet */
@@ -1655,7 +1652,7 @@
if (sip_debug_test_pvt(p)) {
char iabuf[INET_ADDRSTRLEN];
- if (ast_test_flag(p, SIP_NAT) & SIP_NAT_ROUTE)
+ if (ast_test_flag(&p->flags[0], SIP_NAT_ROUTE))
ast_verbose("%sTransmitting (NAT) to %s:%d:\n%s\n---\n", reliable ? "Reliably " : "", ast_inet_ntoa(iabuf, sizeof(iabuf), p->recv.sin_addr), ntohs(p->recv.sin_port), req->data);
else
ast_verbose("%sTransmitting (no NAT) to %s:%d:\n%s\n---\n", reliable ? "Reliably " : "", ast_inet_ntoa(iabuf, sizeof(iabuf), p->sa.sin_addr), ntohs(p->sa.sin_port), req->data);
@@ -1680,7 +1677,7 @@
if (sip_debug_test_pvt(p)) {
char iabuf[INET_ADDRSTRLEN];
- if (ast_test_flag(p, SIP_NAT) & SIP_NAT_ROUTE)
+ if (ast_test_flag(&p->flags[0], SIP_NAT_ROUTE))
ast_verbose("%sTransmitting (NAT) to %s:%d:\n%s\n---\n", reliable ? "Reliably " : "", ast_inet_ntoa(iabuf, sizeof(iabuf), p->recv.sin_addr), ntohs(p->recv.sin_port), req->data);
else
ast_verbose("%sTransmitting (no NAT) to %s:%d:\n%s\n---\n", reliable ? "Reliably " : "", ast_inet_ntoa(iabuf, sizeof(iabuf), p->sa.sin_addr), ntohs(p->sa.sin_port), req->data);
@@ -1818,15 +1815,15 @@
if (device->type & SIP_PEER) {
register_peer_exten(device, FALSE);
clear_realm_authentication(device->auth);
- if (ast_test_flag((&device->flags_page2), SIP_PAGE2_SELFDESTRUCT))
+ if (ast_test_flag((&device->flags[1]), SIP_PAGE2_SELFDESTRUCT))
apeerobjs--;
- else if (ast_test_flag(device, SIP_REALTIME))
+ else if (ast_test_flag(&device->flags[0], SIP_REALTIME))
rpeerobjs--;
else
speerobjs--;
}
if (device->type & SIP_USER) { /* SIP_USER */
- if (ast_test_flag(device, SIP_REALTIME))
+ if (ast_test_flag(&device->flags[0], SIP_REALTIME))
ruserobjs--;
else
suserobjs--;
@@ -1840,9 +1837,9 @@
/*! \brief Update peer data in database (if used) */
static void update_peer(struct sip_peer *p, int expiry)
{
- int rtcachefriends = ast_test_flag(&(p->flags_page2), SIP_PAGE2_RTCACHEFRIENDS);
- if (ast_test_flag((&global_flags_page2), SIP_PAGE2_RTUPDATE) &&
- (ast_test_flag(p, SIP_REALTIME) || rtcachefriends)) {
+ int rtcachefriends = ast_test_flag(&p->flags[1], SIP_PAGE2_RTCACHEFRIENDS);
+ if (ast_test_flag(&global_flags[1], SIP_PAGE2_RTUPDATE) &&
+ (ast_test_flag(&p->flags[0], SIP_REALTIME) || rtcachefriends)) {
realtime_update_peer(p->name, &p->addr, p->username, rtcachefriends ? p->fullcontact : NULL, expiry);
}
}
@@ -1894,16 +1891,16 @@
}
/* Peer found in realtime, now build it in memory */
- peer = build_peer(newpeername, var, !ast_test_flag((&global_flags_page2), SIP_PAGE2_RTCACHEFRIENDS));
+ peer = build_peer(newpeername, var, !ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS));
if (!peer) {
ast_variables_destroy(var);
return (struct sip_peer *) NULL;
}
- if (ast_test_flag((&global_flags_page2), SIP_PAGE2_RTCACHEFRIENDS)) {
+ if (ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS)) {
/* Cache peer */
- ast_copy_flags((&peer->flags_page2),(&global_flags_page2), SIP_PAGE2_RTAUTOCLEAR|SIP_PAGE2_RTCACHEFRIENDS);
- if (ast_test_flag((&global_flags_page2), SIP_PAGE2_RTAUTOCLEAR)) {
+ ast_copy_flags(&peer->flags[1],&global_flags[1], SIP_PAGE2_RTAUTOCLEAR|SIP_PAGE2_RTCACHEFRIENDS);
+ if (ast_test_flag(&global_flags[1], SIP_PAGE2_RTAUTOCLEAR)) {
if (peer->expire > -1) {
ast_sched_del(sched, peer->expire);
}
@@ -1911,7 +1908,7 @@
}
ASTOBJ_CONTAINER_LINK(&peerl,peer);
} else {
- ast_set_flag(peer, SIP_REALTIME);
+ ast_set_flag(&peer->flags[0], SIP_REALTIME);
}
ast_variables_destroy(var);
@@ -1924,7 +1921,7 @@
/* We know name is the first field, so we can cast */
struct sip_peer *p = (struct sip_peer *) name;
return !(!inaddrcmp(&p->addr, sin) ||
- (ast_test_flag(p, SIP_INSECURE_PORT) &&
+ (ast_test_flag(&p->flags[0], SIP_INSECURE_PORT) &&
(p->addr.sin_addr.s_addr == sin->sin_addr.s_addr)));
}
@@ -1968,21 +1965,21 @@
}
}
- user = build_user(username, var, !ast_test_flag((&global_flags_page2), SIP_PAGE2_RTCACHEFRIENDS));
+ user = build_user(username, var, !ast_test_flag((&global_flags[1]), SIP_PAGE2_RTCACHEFRIENDS));
if (!user) { /* No user found */
ast_variables_destroy(var);
return NULL;
}
- if (ast_test_flag((&global_flags_page2), SIP_PAGE2_RTCACHEFRIENDS)) {
- ast_set_flag((&user->flags_page2), SIP_PAGE2_RTCACHEFRIENDS);
+ if (ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS)) {
+ ast_set_flag(&user->flags[1], SIP_PAGE2_RTCACHEFRIENDS);
suserobjs++;
ASTOBJ_CONTAINER_LINK(&userl,user);
} else {
/* Move counter from s to r... */
suserobjs--;
ruserobjs++;
- ast_set_flag(user, SIP_REALTIME);
+ ast_set_flag(&user->flags[0], SIP_REALTIME);
}
ast_variables_destroy(var);
return user;
@@ -2005,6 +2002,8 @@
/*! \brief Create address structure from peer reference */
static int create_addr_from_peer(struct sip_pvt *r, struct sip_peer *peer)
{
+ int usenatroute;
+
if ((peer->addr.sin_addr.s_addr || peer->defaddr.sin_addr.s_addr) &&
(!peer->maxms || ((peer->lastms >= 0) && (peer->lastms <= peer->maxms)))) {
if (peer->addr.sin_addr.s_addr) {
@@ -2021,16 +2020,16 @@
return -1;
}
- ast_copy_flags(r, peer, SIP_FLAGS_TO_COPY);
- ast_copy_flags((&r->flags_page2),(&peer->flags_page2), SIP_PAGE2_FLAGS_TO_COPY);
+ ast_copy_flags(&r->flags[0], &peer->flags[0], SIP_FLAGS_TO_COPY);
+ ast_copy_flags(&r->flags[1], &peer->flags[1], SIP_PAGE2_FLAGS_TO_COPY);
r->capability = peer->capability;
- if (!ast_test_flag((&r->flags_page2), SIP_PAGE2_VIDEOSUPPORT) && r->vrtp) {
+ if (!ast_test_flag(&r->flags[0], SIP_PAGE2_VIDEOSUPPORT) && r->vrtp) {
ast_rtp_destroy(r->vrtp);
r->vrtp = NULL;
}
r->prefs = peer->prefs;
- if (ast_test_flag(&peer->flags_page2, SIP_PAGE2_T38SUPPORT)) {
- ast_copy_flags(&r->t38.t38support, &peer->flags_page2, SIP_PAGE2_T38SUPPORT);
+ if (ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT)) {
+ ast_copy_flags(&r->t38.t38support, &peer->flags[1], SIP_PAGE2_T38SUPPORT);
r->t38.capability = global_t38_capability;
if (r->udptl) {
if (ast_udptl_get_error_correction_scheme(r->udptl) == UDPTL_ERROR_CORRECTION_FEC )
@@ -2049,20 +2048,21 @@
if (r->udptl)
ast_udptl_destroy(r->udptl);
}
+ usenatroute = ast_test_flag(&r->flags[0], SIP_NAT) & SIP_NAT_ROUTE;
if (r->rtp) {
if (option_debug)
- ast_log(LOG_DEBUG, "Setting NAT on RTP to %d\n", (ast_test_flag(r, SIP_NAT) & SIP_NAT_ROUTE));
- ast_rtp_setnat(r->rtp, (ast_test_flag(r, SIP_NAT) & SIP_NAT_ROUTE));
+ ast_log(LOG_DEBUG, "Setting NAT on RTP to %d\n", usenatroute);
+ ast_rtp_setnat(r->rtp, usenatroute);
}
if (r->vrtp) {
if (option_debug)
- ast_log(LOG_DEBUG, "Setting NAT on VRTP to %d\n", (ast_test_flag(r, SIP_NAT) & SIP_NAT_ROUTE));
- ast_rtp_setnat(r->vrtp, (ast_test_flag(r, SIP_NAT) & SIP_NAT_ROUTE));
+ ast_log(LOG_DEBUG, "Setting NAT on VRTP to %d\n", usenatroute);
+ ast_rtp_setnat(r->vrtp, usenatroute);
}
if (r->udptl) {
if (option_debug)
- ast_log(LOG_DEBUG, "Setting NAT on UDPTL to %d\n", (ast_test_flag(r, SIP_NAT) & SIP_NAT_ROUTE));
- ast_udptl_setnat(r->udptl, (ast_test_flag(r, SIP_NAT) & SIP_NAT_ROUTE));
+ ast_log(LOG_DEBUG, "Setting NAT on UDPTL to %d\n", usenatroute);
+ ast_udptl_setnat(r->udptl, usenatroute);
}
ast_string_field_set(r, peername, peer->username);
ast_string_field_set(r, authname, peer->username);
@@ -2103,7 +2103,8 @@
/* Minimum is settable or default to 100 ms */
if (peer->maxms && peer->lastms)
r->timer_t1 = peer->lastms < global_t1min ? global_t1min : peer->lastms;
- if ((ast_test_flag(r, SIP_DTMF) == SIP_DTMF_RFC2833) || (ast_test_flag(r, SIP_DTMF) == SIP_DTMF_AUTO))
+ if ((ast_test_flag(&r->flags[0], SIP_DTMF) == SIP_DTMF_RFC2833) ||
+ (ast_test_flag(&r->flags[0], SIP_DTMF) == SIP_DTMF_AUTO))
r->noncodeccapability |= AST_RTP_DTMF;
else
r->noncodeccapability &= ~AST_RTP_DTMF;
@@ -2112,7 +2113,7 @@
r->rtpholdtimeout = peer->rtpholdtimeout;
r->rtpkeepalive = peer->rtpkeepalive;
if (peer->call_limit)
- ast_set_flag(r, SIP_CALL_LIMIT);
+ ast_set_flag(&r->flags[0], SIP_CALL_LIMIT);
r->maxcallbitrate = peer->maxcallbitrate;
return 0;
@@ -2255,7 +2256,7 @@
}
res = 0;
- ast_set_flag(p, SIP_OUTGOING);
+ ast_set_flag(&p->flags[0], SIP_OUTGOING);
#ifdef OSP_SUPPORT
if (!p->options->osptoken || !osphandle || (sscanf(osphandle, "%d", &p->osphandle) != 1)) {
/* Force Disable OSP support */
@@ -2432,14 +2433,14 @@
static int update_call_counter(struct sip_pvt *fup, int event)
{
char name[256];
- int outgoing = ast_test_flag(fup, SIP_OUTGOING);
+ int outgoing = ast_test_flag(&fup->flags[0], SIP_OUTGOING);
struct sip_peer *device = NULL;
if (option_debug > 2)
ast_log(LOG_DEBUG, "Updating call counter for %s call\n", outgoing ? "outgoing" : "incoming");
/* Test if we need to check call limits, in order to avoid
realtime lookups if we do not need it */
- if (!ast_test_flag(fup, SIP_CALL_LIMIT))
+ if (!ast_test_flag(&fup->flags[0], SIP_CALL_LIMIT))
return 0;
ast_copy_string(name, fup->username, sizeof(name));
@@ -2462,7 +2463,7 @@
/* incoming and outgoing affects the inUse counter */
case DEC_CALL_LIMIT:
if ( device->inUse > 0 ) {
- if (ast_test_flag(fup, SIP_INC_COUNT))
+ if (ast_test_flag(&fup->flags[0], SIP_INC_COUNT))
device->inUse--;
} else {
device->inUse= 0;
@@ -2480,7 +2481,7 @@
}
}
device->inUse++;
- ast_set_flag(fup, SIP_INC_COUNT);
+ ast_set_flag(&fup->flags[0], SIP_INC_COUNT);
if (option_debug > 1 || sipdebug) {
ast_log(LOG_DEBUG, "Call %s %s '%s' is %d out of %d\n", outgoing ? "to" : "from", device->type & SIP_USER ? "user" : "peer", name, device->inUse, device->call_limit);
}
@@ -2713,9 +2714,9 @@
ast_set_flag(&locflags, SIP_NEEDDESTROY);
/* Start the process if it's not already started */
- if (!ast_test_flag(p, SIP_ALREADYGONE) && !ast_strlen_zero(p->initreq.data)) {
+ if (!ast_test_flag(&p->flags[0], SIP_ALREADYGONE) && !ast_strlen_zero(p->initreq.data)) {
if (needcancel) { /* Outgoing call, not up */
- if (ast_test_flag(p, SIP_OUTGOING)) {
+ if (ast_test_flag(&p->flags[0], SIP_OUTGOING)) {
/* stop retransmitting an INVITE that has not received a response */
__sip_pretend_ack(p);
@@ -2745,12 +2746,12 @@
} else {
/* Note we will need a BYE when this all settles out
but we can't send one while we have "INVITE" outstanding. */
- ast_set_flag(p, SIP_PENDINGBYE);
- ast_clear_flag(p, SIP_NEEDREINVITE);
+ ast_set_flag(&p->flags[0], SIP_PENDINGBYE);
+ ast_clear_flag(&p->flags[0], SIP_NEEDREINVITE);
}
}
}
- ast_copy_flags(p, (&locflags), SIP_NEEDDESTROY);
+ ast_copy_flags(&p->flags[0], &locflags, SIP_NEEDDESTROY);
ast_mutex_unlock(&p->lock);
return 0;
}
@@ -2825,9 +2826,11 @@
ast_mutex_lock(&p->lock);
if (p->rtp) {
/* If channel is not up, activate early media session */
- if ((ast->_state != AST_STATE_UP) && !ast_test_flag(p, SIP_PROGRESS_SENT) && !ast_test_flag(p, SIP_OUTGOING)) {
+ if ((ast->_state != AST_STATE_UP) &&
+ !ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) &&
+ !ast_test_flag(&p->flags[0], SIP_OUTGOING)) {
transmit_response_with_sdp(p, "183 Session Progress", &p->initreq, XMIT_UNRELIABLE);
- ast_set_flag(p, SIP_PROGRESS_SENT);
+ ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT);
}
time(&p->lastrtptx);
res = ast_rtp_write(p->rtp, frame);
@@ -2840,9 +2843,11 @@
ast_mutex_lock(&p->lock);
if (p->vrtp) {
/* Activate video early media */
- if ((ast->_state != AST_STATE_UP) && !ast_test_flag(p, SIP_PROGRESS_SENT) && !ast_test_flag(p, SIP_OUTGOING)) {
+ if ((ast->_state != AST_STATE_UP) &&
+ !ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) &&
+ !ast_test_flag(&p->flags[0], SIP_OUTGOING)) {
transmit_response_with_sdp(p, "183 Session Progress", &p->initreq, XMIT_UNRELIABLE);
- ast_set_flag(p, SIP_PROGRESS_SENT);
+ ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT);
}
time(&p->lastrtptx);
res = ast_rtp_write(p->vrtp, frame);
@@ -2857,9 +2862,9 @@
if (p) {
ast_mutex_lock(&p->lock);
if (p->udptl) {
- if ((ast->_state != AST_STATE_UP) && !ast_test_flag(p, SIP_PROGRESS_SENT) && !ast_test_flag(p, SIP_OUTGOING)) {
+ if ((ast->_state != AST_STATE_UP) && !ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) && !ast_test_flag(&p->flags[0], SIP_OUTGOING)) {
transmit_response_with_t38_sdp(p, "183 Session Progress", &p->initreq, 0);
- ast_set_flag(p, SIP_PROGRESS_SENT);
+ ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT);
}
res = ast_udptl_write(p->udptl, frame);
}
@@ -2898,7 +2903,7 @@
int res = 0;
ast_mutex_lock(&p->lock);
- switch (ast_test_flag(p, SIP_DTMF)) {
+ switch (ast_test_flag(&p->flags[0], SIP_DTMF)) {
case SIP_DTMF_INFO:
transmit_info_with_digit(p, digit);
break;
@@ -2943,12 +2948,12 @@
switch(condition) {
case AST_CONTROL_RINGING:
if (ast->_state == AST_STATE_RING) {
- if (!ast_test_flag(p, SIP_PROGRESS_SENT) ||
- (ast_test_flag(p, SIP_PROG_INBAND) == SIP_PROG_INBAND_NEVER)) {
+ if (!ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) ||
+ (ast_test_flag(&p->flags[0], SIP_PROG_INBAND) == SIP_PROG_INBAND_NEVER)) {
/* Send 180 ringing if out-of-band seems reasonable */
transmit_response(p, "180 Ringing", &p->initreq);
- ast_set_flag(p, SIP_RINGING);
- if (ast_test_flag(p, SIP_PROG_INBAND) != SIP_PROG_INBAND_YES)
+ ast_set_flag(&p->flags[0], SIP_RINGING);
+ if (ast_test_flag(&p->flags[0], SIP_PROG_INBAND) != SIP_PROG_INBAND_YES)
break;
} else {
/* Well, if it's not reasonable, just send in-band */
@@ -2959,7 +2964,7 @@
case AST_CONTROL_BUSY:
if (ast->_state != AST_STATE_UP) {
transmit_response(p, "486 Busy Here", &p->initreq);
- ast_set_flag(p, SIP_ALREADYGONE);
+ ast_set_flag(&p->flags[0], SIP_ALREADYGONE);
ast_softhangup_nolock(ast, AST_SOFTHANGUP_DEV);
break;
}
@@ -2968,23 +2973,27 @@
case AST_CONTROL_CONGESTION:
if (ast->_state != AST_STATE_UP) {
transmit_response(p, "503 Service Unavailable", &p->initreq);
- ast_set_flag(p, SIP_ALREADYGONE);
+ ast_set_flag(&p->flags[0], SIP_ALREADYGONE);
ast_softhangup_nolock(ast, AST_SOFTHANGUP_DEV);
break;
}
res = -1;
break;
case AST_CONTROL_PROCEEDING:
- if ((ast->_state != AST_STATE_UP) && !ast_test_flag(p, SIP_PROGRESS_SENT) && !ast_test_flag(p, SIP_OUTGOING)) {
+ if ((ast->_state != AST_STATE_UP) &&
+ !ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) &&
+ !ast_test_flag(&p->flags[0], SIP_OUTGOING)) {
transmit_response(p, "100 Trying", &p->initreq);
break;
}
res = -1;
break;
case AST_CONTROL_PROGRESS:
- if ((ast->_state != AST_STATE_UP) && !ast_test_flag(p, SIP_PROGRESS_SENT) && !ast_test_flag(p, SIP_OUTGOING)) {
+ if ((ast->_state != AST_STATE_UP) &&
+ !ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) &&
+ !ast_test_flag(&p->flags[0], SIP_OUTGOING)) {
transmit_response_with_sdp(p, "183 Session Progress", &p->initreq, XMIT_UNRELIABLE);
- ast_set_flag(p, SIP_PROGRESS_SENT);
+ ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT);
break;
}
res = -1;
@@ -3000,7 +3009,7 @@
res = -1;
break;
case AST_CONTROL_VIDUPDATE: /* Request a video frame update */
- if (p->vrtp && !ast_test_flag(p, SIP_NOVIDEO)) {
+ if (p->vrtp && !ast_test_flag(&p->flags[0], SIP_NOVIDEO)) {
transmit_info_with_vidupdate(p);
/* ast_rtcp_send_h261fur(p->vrtp); */
res = 0;
@@ -3083,7 +3092,7 @@
else
ast_string_field_build(tmp, name, "SIP/%s-%08x", i->fromdomain, (int)(long)(i));
- if (ast_test_flag(i, SIP_DTMF) == SIP_DTMF_INBAND) {
+ if (ast_test_flag(&i->flags[0], SIP_DTMF) == SIP_DTMF_INBAND) {
i->vad = ast_dsp_new();
if (ast_test_flag(&i->t38.t38support, SIP_PAGE2_T38SUPPORT))
ast_dsp_set_features(i->vad, DSP_FEATURE_DTMF_DETECT | DSP_FEATURE_FAX_DETECT);
@@ -3309,7 +3318,8 @@
f = &ast_null_frame;
}
/* Don't forward RFC2833 if we're not supposed to */
- if (f && (f->frametype == AST_FRAME_DTMF) && (ast_test_flag(p, SIP_DTMF) != SIP_DTMF_RFC2833))
+ if (f && (f->frametype == AST_FRAME_DTMF) &&
+ (ast_test_flag(&p->flags[0], SIP_DTMF) != SIP_DTMF_RFC2833))
return &ast_null_frame;
if (p->owner) {
@@ -3322,7 +3332,7 @@
ast_set_read_format(p->owner, p->owner->readformat);
ast_set_write_format(p->owner, p->owner->writeformat);
}
- if ((ast_test_flag(p, SIP_DTMF) == SIP_DTMF_INBAND) && p->vad) {
+ if ((ast_test_flag(&p->flags[0], SIP_DTMF) == SIP_DTMF_INBAND) && p->vad) {
f = ast_dsp_process(p->owner, p->vad, f);
if (f && (f->frametype == AST_FRAME_DTMF)) {
if (ast_test_flag(&p->t38.t38support, SIP_PAGE2_T38SUPPORT_UDPTL) && f->subclass == 'f') {
@@ -3356,7 +3366,7 @@
/* If we are NOT bridged to another channel, and we have detected fax tone we issue T38 re-invite to a peer */
/* If we are bridged then it is responsibility of the SIP device to issue T38 re-invite if it detects CNG or fax preabmle */
if (faxdetected && ast_test_flag(&p->t38.t38support, SIP_PAGE2_T38SUPPORT_UDPTL) && (p->t38.state == T38_DISABLED) && !(ast_bridged_channel(ast))) {
- if (!ast_test_flag(p, SIP_GOTREFER)) {
+ if (!ast_test_flag(&p->flags[0], SIP_GOTREFER)) {
if (!p->pendinginvite) {
if (option_debug > 2)
ast_log(LOG_DEBUG, "Sending reinvite on SIP (%s) for T.38 negotiation.\n",ast->name);
@@ -3365,10 +3375,10 @@
if (option_debug > 1)
ast_log(LOG_DEBUG, "T38 state changed to %d on channel %s", p->t38.state, ast->name);
}
- } else if (!ast_test_flag(p, SIP_PENDINGBYE)) {
+ } else if (!ast_test_flag(&p->flags[0], SIP_PENDINGBYE)) {
if (option_debug > 2)
ast_log(LOG_DEBUG, "Deferring reinvite on SIP (%s) - it will be re-negotiated for T.38\n",ast->name);
- ast_set_flag(p, SIP_NEEDREINVITE);
+ ast_set_flag(&p->flags[0], SIP_NEEDREINVITE);
}
}
@@ -3455,8 +3465,8 @@
memcpy(&p->ourip, &__ourip, sizeof(p->ourip));
}
- ast_copy_flags(p, &global_flags, SIP_FLAGS_TO_COPY);
- ast_copy_flags((&p->flags_page2),(&global_flags_page2), SIP_PAGE2_FLAGS_TO_COPY);
+ ast_copy_flags(&p->flags[0], &global_flags[0], SIP_FLAGS_TO_COPY);
+ ast_copy_flags(&p->flags[1], &global_flags[1], SIP_PAGE2_FLAGS_TO_COPY);
p->branch = thread_safe_rand();
make_our_tag(p->tag, sizeof(p->tag));
@@ -3465,14 +3475,14 @@
if (sip_methods[intended_method].need_rtp) {
p->rtp = ast_rtp_new_with_bindaddr(sched, io, 1, 0, bindaddr.sin_addr);
- if (ast_test_flag((&p->flags_page2), SIP_PAGE2_VIDEOSUPPORT))
+ if (ast_test_flag(&p->flags[1], SIP_PAGE2_VIDEOSUPPORT))
p->vrtp = ast_rtp_new_with_bindaddr(sched, io, 1, 0, bindaddr.sin_addr);
if (ast_test_flag(&p->t38.t38support, SIP_PAGE2_T38SUPPORT_UDPTL) )
/* TODO: Need to check for error - or ?? */
p->udptl = ast_udptl_new_with_bindaddr(sched, io, 0, bindaddr.sin_addr);
- if (!p->rtp || (ast_test_flag((&p->flags_page2), SIP_PAGE2_VIDEOSUPPORT) && !p->vrtp)) {
- ast_log(LOG_WARNING, "Unable to create RTP audio %s session: %s\n", ast_test_flag((&p->flags_page2), SIP_PAGE2_VIDEOSUPPORT) ? "and video" : "", strerror(errno));
+ if (!p->rtp || (ast_test_flag((&p->flags[1]), SIP_PAGE2_VIDEOSUPPORT) && !p->vrtp)) {
+ ast_log(LOG_WARNING, "Unable to create RTP audio %s session: %s\n", ast_test_flag((&p->flags[1]), SIP_PAGE2_VIDEOSUPPORT) ? "and video" : "", strerror(errno));
ast_mutex_destroy(&p->lock);
if (p->chanvars) {
ast_variables_destroy(p->chanvars);
@@ -3495,14 +3505,14 @@
if (useglobal_nat && sin) {
/* Setup NAT structure according to global settings if we have an address */
- ast_copy_flags(p, &global_flags, SIP_NAT);
+ ast_copy_flags(&p->flags[0], &global_flags[0], SIP_NAT);
memcpy(&p->recv, sin, sizeof(p->recv));
if (p->rtp)
- ast_rtp_setnat(p->rtp, (ast_test_flag(p, SIP_NAT) & SIP_NAT_ROUTE));
+ ast_rtp_setnat(p->rtp, ast_test_flag(&p->flags[0], SIP_NAT_ROUTE));
if (p->vrtp)
- ast_rtp_setnat(p->vrtp, (ast_test_flag(p, SIP_NAT) & SIP_NAT_ROUTE));
+ ast_rtp_setnat(p->vrtp, ast_test_flag(&p->flags[0], SIP_NAT_ROUTE));
if (p->udptl)
- ast_udptl_setnat(p->udptl, (ast_test_flag(p, SIP_NAT) & SIP_NAT_ROUTE));
+ ast_udptl_setnat(p->udptl, ast_test_flag(&p->flags[0], SIP_NAT_ROUTE));
}
if (p->method != SIP_REGISTER)
@@ -3516,7 +3526,8 @@
ast_string_field_set(p, musicclass, default_musicclass);
ast_string_field_set(p, parkinglot, default_parkinglot);
p->capability = global_capability;
- if ((ast_test_flag(p, SIP_DTMF) == SIP_DTMF_RFC2833) || (ast_test_flag(p, SIP_DTMF) == SIP_DTMF_AUTO))
+ if ((ast_test_flag(&p->flags[0], SIP_DTMF) == SIP_DTMF_RFC2833) ||
+ (ast_test_flag(&p->flags[0], SIP_DTMF) == SIP_DTMF_AUTO))
p->noncodeccapability |= AST_RTP_DTMF;
if (p->udptl) {
p->t38.capability = global_t38_capability;
@@ -3896,7 +3907,7 @@
return -1;
}
sdpLineNum_iterator_init(&iterator);
- ast_set_flag(p, SIP_NOVIDEO);
+ ast_set_flag(&p->flags[0], SIP_NOVIDEO);
while ((m = get_sdp_iterate(&iterator, req, "m"))[0] != '\0') {
int found = 0;
if ((sscanf(m, "audio %d/%d RTP/AVP %n", &x, &y, &len) == 2) ||
@@ -3940,7 +3951,7 @@
if (p->vrtp && (sscanf(m, "video %d RTP/AVP %n", &x, &len) == 1)) {
found = 1;
- ast_clear_flag(p, SIP_NOVIDEO);
+ ast_clear_flag(&p->flags[0], SIP_NOVIDEO);
vportno = x;
/* Scan through the RTP payload types specified in a "m=" line: */
codecs = m + len;
@@ -4194,13 +4205,13 @@
p->peercapability = (peercapability | vpeercapability);
p->noncodeccapability = noncodeccapability & peernoncodeccapability;
- if (ast_test_flag(p, SIP_DTMF) == SIP_DTMF_AUTO) {
- ast_clear_flag(p, SIP_DTMF);
+ if (ast_test_flag(&p->flags[0], SIP_DTMF) == SIP_DTMF_AUTO) {
+ ast_clear_flag(&p->flags[0], SIP_DTMF);
if (p->noncodeccapability & AST_RTP_DTMF) {
/* XXX Would it be reasonable to drop the DSP at this point? XXX */
- ast_set_flag(p, SIP_DTMF_RFC2833);
+ ast_set_flag(&p->flags[0], SIP_DTMF_RFC2833);
} else {
- ast_set_flag(p, SIP_DTMF_INBAND);
+ ast_set_flag(&p->flags[0], SIP_DTMF_INBAND);
}
}
@@ -4261,7 +4272,7 @@
if (sin.sin_addr.s_addr && !sendonly) {
append_history(p, "Unhold", "%s", req->data);
- if (global_callevents && ast_test_flag(p, SIP_CALL_ONHOLD)) {
+ if (global_callevents && ast_test_flag(&p->flags[0], SIP_CALL_ONHOLD)) {
manager_event(EVENT_FLAG_CALL, "Unhold",
"Channel: %s\r\n"
"Uniqueid: %s\r\n",
@@ -4269,19 +4280,19 @@
p->owner->uniqueid);
}
- ast_clear_flag(p, SIP_CALL_ONHOLD);
+ ast_clear_flag(&p->flags[0], SIP_CALL_ONHOLD);
} else {
/* No address for RTP, we're on hold */
append_history(p, "Hold", "%s", req->data);
- if (global_callevents && !ast_test_flag(p, SIP_CALL_ONHOLD)) {
+ if (global_callevents && !ast_test_flag(&p->flags[0], SIP_CALL_ONHOLD)) {
manager_event(EVENT_FLAG_CALL, "Hold",
"Channel: %s\r\n"
"Uniqueid: %s\r\n",
p->owner->name,
p->owner->uniqueid);
}
- ast_set_flag(p, SIP_CALL_ONHOLD);
+ ast_set_flag(&p->flags[0], SIP_CALL_ONHOLD);
}
return 0;
@@ -4432,7 +4443,7 @@
if (rport && *(rport+6) == '=')
rport = NULL; /* We already have a parameter to rport */
- if (rport && (ast_test_flag(p, SIP_NAT) == SIP_NAT_ALWAYS)) {
+ if (rport && (ast_test_flag(&p->flags[0], SIP_NAT) == SIP_NAT_ALWAYS)) {
/* We need to add received port - rport */
ast_copy_string(tmp, oh, sizeof(tmp));
@@ -4608,9 +4619,9 @@
if (!strcasestr(ot, "tag=") && strncmp(msg, "100", 3)) {
/* Add the proper tag if we don't have it already. If they have specified
their tag, use it. Otherwise, use our own tag */
- if (!ast_strlen_zero(p->theirtag) && ast_test_flag(p, SIP_OUTGOING))
+ if (!ast_strlen_zero(p->theirtag) && ast_test_flag(&p->flags[0], SIP_OUTGOING))
snprintf(newto, sizeof(newto), "%s;tag=%s", ot, p->theirtag);
- else if (p->tag && !ast_test_flag(p, SIP_OUTGOING))
+ else if (p->tag && !ast_test_flag(&p->flags[0], SIP_OUTGOING))
snprintf(newto, sizeof(newto), "%s;tag=%s", ot, p->tag);
else {
ast_copy_string(newto, ot, sizeof(newto));
@@ -4689,7 +4700,7 @@
c = p->uri;
} else {
/* We have no URI, use To: or From: header as URI (depending on direction) */
- ast_copy_string(stripped, get_header(orig, (ast_test_flag(p, SIP_OUTGOING)) ? "To" : "From"),
+ ast_copy_string(stripped, get_header(orig, (ast_test_flag(&p->flags[0], SIP_OUTGOING)) ? "To" : "From"),
sizeof(stripped));
c = get_in_brackets(stripped);
n = strchr(c, ';');
@@ -4717,16 +4728,16 @@
if (!strcasestr(ot, "tag=") && sipmethod != SIP_CANCEL) {
/* Add the proper tag if we don't have it already. If they have specified
their tag, use it. Otherwise, use our own tag */
- if (ast_test_flag(p, SIP_OUTGOING) && !ast_strlen_zero(p->theirtag))
+ if (ast_test_flag(&p->flags[0], SIP_OUTGOING) && !ast_strlen_zero(p->theirtag))
snprintf(newto, sizeof(newto), "%s;tag=%s", ot, p->theirtag);
- else if (!ast_test_flag(p, SIP_OUTGOING))
+ else if (!ast_test_flag(&p->flags[0], SIP_OUTGOING))
snprintf(newto, sizeof(newto), "%s;tag=%s", ot, p->tag);
else
snprintf(newto, sizeof(newto), "%s", ot);
ot = newto;
}
- if (ast_test_flag(p, SIP_OUTGOING)) {
+ if (ast_test_flag(&p->flags[0], SIP_OUTGOING)) {
add_header(req, "From", of);
add_header(req, "To", ot);
} else {
@@ -5150,7 +5161,9 @@
snprintf(o, sizeof(o), "o=root %d %d IN IP4 %s\r\n", p->sessionid, p->sessionversion, ast_inet_ntoa(iabuf, sizeof(iabuf), dest.sin_addr));
snprintf(s, sizeof(s), "s=session\r\n");
snprintf(c, sizeof(c), "c=IN IP4 %s\r\n", ast_inet_ntoa(iabuf, sizeof(iabuf), dest.sin_addr));
- if ((p->vrtp) && (!ast_test_flag(p, SIP_NOVIDEO)) && (capability & VIDEO_CODEC_MASK)) /* only if video response is appropriate */
+ if ((p->vrtp) &&
+ (!ast_test_flag(&p->flags[0], SIP_NOVIDEO)) &&
+ (capability & VIDEO_CODEC_MASK)) /* only if video response is appropriate */
snprintf(b, sizeof(b), "b=CT:%d\r\n", p->maxcallbitrate);
snprintf(t, sizeof(t), "t=0 0\r\n");
@@ -5202,7 +5215,9 @@
}
/* Now send any other common codecs, and non-codec formats: */
- for (x = 1; x <= ((ast_test_flag((&p->flags_page2), SIP_PAGE2_VIDEOSUPPORT) && p->vrtp) ? AST_FORMAT_MAX_VIDEO : AST_FORMAT_MAX_AUDIO); x <<= 1) {
+ for (x = 1;
+ x <= ((ast_test_flag(&p->flags[1], SIP_PAGE2_VIDEOSUPPORT) && p->vrtp) ? AST_FORMAT_MAX_VIDEO : AST_FORMAT_MAX_AUDIO);
+ x <<= 1) {
if (!(capability & x))
continue;
@@ -5241,7 +5256,9 @@
ast_build_string(&m_video_next, &m_video_left, "\r\n");
len = strlen(v) + strlen(s) + strlen(o) + strlen(c) + strlen(t) + strlen(m_audio) + strlen(a_audio);
- if ((p->vrtp) && (!ast_test_flag(p, SIP_NOVIDEO)) && (capability & VIDEO_CODEC_MASK)) /* only if video response is appropriate */
+ if ((p->vrtp) &&
+ (!ast_test_flag(&p->flags[0], SIP_NOVIDEO)) &&
+ (capability & VIDEO_CODEC_MASK)) /* only if video response is appropriate */
len += strlen(m_video) + strlen(a_video) + strlen(b);
add_header(resp, "Content-Type", "application/sdp");
@@ -5250,12 +5267,16 @@
add_line(resp, o);
add_line(resp, s);
add_line(resp, c);
- if ((p->vrtp) && (!ast_test_flag(p, SIP_NOVIDEO)) && (capability & VIDEO_CODEC_MASK)) /* only if video response is appropriate */
+ if ((p->vrtp) &&
+ (!ast_test_flag(&p->flags[0], SIP_NOVIDEO)) &&
+ (capability & VIDEO_CODEC_MASK)) /* only if video response is appropriate */
add_line(resp, b);
add_line(resp, t);
add_line(resp, m_audio);
add_line(resp, a_audio);
- if ((p->vrtp) && (!ast_test_flag(p, SIP_NOVIDEO)) && (capability & VIDEO_CODEC_MASK)) { /* only if video response is appropriate */
+ if ((p->vrtp) &&
+ (!ast_test_flag(&p->flags[0], SIP_NOVIDEO)) &&
+ (capability & VIDEO_CODEC_MASK)) { /* only if video response is appropriate */
add_line(resp, m_video);
add_line(resp, a_video);
}
@@ -5379,7 +5400,7 @@
static int transmit_reinvite_with_sdp(struct sip_pvt *p)
{
struct sip_request req;
- if (ast_test_flag(p, SIP_REINVITE_UPDATE))
+ if (ast_test_flag(&p->flags[0], SIP_REINVITE_UPDATE))
reqprep(&req, p, SIP_UPDATE, 0, 1);
else
reqprep(&req, p, SIP_INVITE, 0, 1);
@@ -5394,7 +5415,7 @@
if (sip_debug_test_pvt(p))
ast_verbose("%d headers, %d lines\n", p->initreq.headers, p->initreq.lines);
p->lastinvite = p->ocseq;
- ast_set_flag(p, SIP_OUTGOING);
+ ast_set_flag(&p->flags[0], SIP_OUTGOING);
return send_request(p, &req, 1, p->ocseq);
}
@@ -5407,7 +5428,7 @@
static int transmit_reinvite_with_t38_sdp(struct sip_pvt *p)
{
struct sip_request req;
- if (ast_test_flag(p, SIP_REINVITE_UPDATE))
+ if (ast_test_flag(&p->flags[0], SIP_REINVITE_UPDATE))
reqprep(&req, p, SIP_UPDATE, 0, 1);
else
reqprep(&req, p, SIP_INVITE, 0, 1);
@@ -5423,7 +5444,7 @@
if (sip_debug_test_pvt(p))
ast_verbose("%d headers, %d lines\n", p->initreq.headers, p->initreq.lines);
p->lastinvite = p->ocseq;
- ast_set_flag(p, SIP_OUTGOING);
+ ast_set_flag(&p->flags[0], SIP_OUTGOING);
return send_request(p, &req, 1, p->ocseq);
}
@@ -5549,7 +5570,7 @@
int x;
char urioptions[256]="";
- if (ast_test_flag(p, SIP_USEREQPHONE)) {
+ if (ast_test_flag(&p->flags[0], SIP_USEREQPHONE)) {
char onlydigits = TRUE;
x=0;
@@ -5581,7 +5602,8 @@
n = p->owner->cid.cid_name;
}
/* if we are not sending RPID and user wants his callerid restricted */
- if (!ast_test_flag(p, SIP_SENDRPID) && ((p->callingpres & AST_PRES_RESTRICTION) != AST_PRES_ALLOWED)) {
+ if (!ast_test_flag(&p->flags[0], SIP_SENDRPID) &&
+ ((p->callingpres & AST_PRES_RESTRICTION) != AST_PRES_ALLOWED)) {
l = CALLERID_UNKNOWN;
n = l;
}
@@ -5654,7 +5676,7 @@
/* SLD: FIXME?: do Route: here too? I think not cos this is the first request.
* OTOH, then we won't have anything in p->route anyway */
/* Build Remote Party-ID and From */
- if (ast_test_flag(p, SIP_SENDRPID) && (sipmethod == SIP_INVITE)) {
+ if (ast_test_flag(&p->flags[0], SIP_SENDRPID) && (sipmethod == SIP_INVITE)) {
build_rpid(p);
add_header(req, "From", p->rpid_from);
} else {
@@ -6110,7 +6132,7 @@
if (p->registry)
ASTOBJ_UNREF(p->registry, sip_registry_destroy);
r->call = NULL;
- ast_set_flag(p, SIP_NEEDDESTROY);
+ ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);
/* Pretend to ACK anything just in case */
__sip_pretend_ack(p);
}
@@ -6190,7 +6212,7 @@
ast_string_field_set(r, callid, p->callid);
if (r->portno)
p->sa.sin_port = htons(r->portno);
- ast_set_flag(p, SIP_OUTGOING); /* Registration is outgoing call */
+ ast_set_flag(&p->flags[0], SIP_OUTGOING); /* Registration is outgoing call */
r->call=p; /* Save pointer to SIP packet */
p->registry = ASTOBJ_REF(r); /* Add pointer to registry in packet */
if (!ast_strlen_zero(r->secret)) /* Secret (password) */
@@ -6336,7 +6358,7 @@
char *of, *c;
char referto[256];
- if (ast_test_flag(p, SIP_OUTGOING))
+ if (ast_test_flag(&p->flags[0], SIP_OUTGOING))
of = get_header(&p->initreq, "To");
else
of = get_header(&p->initreq, "From");
@@ -6436,8 +6458,8 @@
/*! \brief Remove registration data from realtime database and AST/DB when registration expires */
static void destroy_association(struct sip_peer *peer)
{
- if (!ast_test_flag((&global_flags_page2), SIP_PAGE2_IGNOREREGEXPIRE)) {
- if (ast_test_flag(&(peer->flags_page2), SIP_PAGE2_RT_FROMCONTACT)) {
+ if (!ast_test_flag(&global_flags[1], SIP_PAGE2_IGNOREREGEXPIRE)) {
+ if (ast_test_flag(&peer->flags[1], SIP_PAGE2_RT_FROMCONTACT)) {
ast_update_realtime("sippeers", "name", peer->name, "fullcontact", "", "ipaddr", "", "port", "", "regseconds", "0", "username", "", NULL);
} else {
ast_db_del("SIP/Registry", peer->name);
@@ -6458,7 +6480,8 @@
register_peer_exten(peer, FALSE);
peer->expire = -1;
ast_device_state_changed("SIP/%s", peer->name);
- if (ast_test_flag((&peer->flags_page2), SIP_PAGE2_SELFDESTRUCT) || ast_test_flag((&peer->flags_page2), SIP_PAGE2_RTAUTOCLEAR)) {
+ if (ast_test_flag(&peer->flags[1], SIP_PAGE2_SELFDESTRUCT) ||
+ ast_test_flag(&peer->flags[1], SIP_PAGE2_RTAUTOCLEAR)) {
peer = ASTOBJ_CONTAINER_UNLINK(&peerl, peer);
ASTOBJ_UNREF(peer, sip_destroy_device);
}
@@ -6486,7 +6509,7 @@
int port;
char *scan, *addr, *port_str, *expiry_str, *username, *contact;
- if (ast_test_flag(&(peer->flags_page2), SIP_PAGE2_RT_FROMCONTACT))
+ if (ast_test_flag(&peer->flags[1], SIP_PAGE2_RT_FROMCONTACT))
return;
if (ast_db_get("SIP/Registry", peer->name, data, sizeof(data)))
return;
@@ -6587,7 +6610,7 @@
memcpy(&oldsin, &pvt->sa, sizeof(oldsin));
- if (!(ast_test_flag(pvt, SIP_NAT) & SIP_NAT_ROUTE)) {
+ if (!ast_test_flag(&pvt->flags[0], SIP_NAT_ROUTE)) {
[... 2110 lines stripped ...]
More information about the asterisk-commits
mailing list