aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-06-09 21:11:30 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-06-09 21:11:30 +0000
commit6f23c71d755123290c37d384dd7424b7ad11879c (patch)
treefcf2b0545a0b06bbe9e8c8773806af66fb8faaaf /channels/chan_iax2.c
parent644f0e446bb7e7228ddf5aa77c1344d21f23f3cc (diff)
add 'rtignoreexpire' option to allow Realtime addresses to be used regardless of expiration time (bug #4362)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5889 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_iax2.c')
-rwxr-xr-xchannels/chan_iax2.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 8d727b2d6..17d1f347c 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -239,6 +239,7 @@ struct iax2_context {
#define IAX_RTNOUPDATE (1 << 18) /* Don't send a realtime update */
#define IAX_RTAUTOCLEAR (1 << 19) /* erase me on expire */
#define IAX_FORCEJITTERBUF (1 << 20) /* Force jitterbuffer, even when bridged to a channel that can take jitter */
+#define IAX_RTIGNOREREGEXPIRE (1 << 21)
static int global_rtautoclear = 120;
@@ -2579,7 +2580,7 @@ static struct iax2_peer *realtime_peer(const char *peername)
ast_set_flag(peer, IAX_TEMPONLY);
}
- if (dynamic) {
+ if (!ast_test_flag(&globalflags, IAX_RTIGNOREREGEXPIRE) && dynamic) {
time(&nowtime);
if ((nowtime - regseconds) > IAX_DEFAULT_REG_EXPIRE) {
memset(&peer->addr, 0, sizeof(peer->addr));
@@ -8371,6 +8372,8 @@ static int set_config(char *config_file, int reload)
ast_set2_flag((&globalflags), ast_true(v->value), IAX_MESSAGEDETAIL);
else if (!strcasecmp(v->name, "rtcachefriends"))
ast_set2_flag((&globalflags), ast_true(v->value), IAX_RTCACHEFRIENDS);
+ else if (!strcasecmp(v->name, "rtignoreregexpire"))
+ ast_set2_flag((&globalflags), ast_true(v->value), IAX_RTIGNOREREGEXPIRE);
else if (!strcasecmp(v->name, "rtnoupdate"))
ast_set2_flag((&globalflags), ast_true(v->value), IAX_RTNOUPDATE);
else if (!strcasecmp(v->name, "rtautoclear")) {