aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-08-31 20:47:28 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-08-31 20:47:28 +0000
commit0dc63dd534d20afee9ed949b0eac30c44c59a0d0 (patch)
treef0e352effad56f41be3b890029c4b6b9b77f1151 /channels
parent9571fb9dd9dd44aea1f129444c072bc131f3edb7 (diff)
Merged revisions 284415 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r284415 | tilghman | 2010-08-31 15:22:10 -0500 (Tue, 31 Aug 2010) | 21 lines Merged revisions 284399 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r284399 | tilghman | 2010-08-31 15:18:32 -0500 (Tue, 31 Aug 2010) | 14 lines Merged revisions 284393 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r284393 | tilghman | 2010-08-31 15:13:21 -0500 (Tue, 31 Aug 2010) | 7 lines Don't send a devstate change on poke_noanswer if the state did not change. (closes issue #17741) Reported by: schmidts Patches: chan_sip.c.patch uploaded by schmidts (license 1077) ........ ................ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@284440 f38db490-d61c-443f-a65b-d21fe96a405b
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 2033fda00..e06f02272 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -24618,7 +24618,7 @@ enum st_mode st_get_mode(struct sip_pvt *p)
static int sip_poke_noanswer(const void *data)
{
struct sip_peer *peer = (struct sip_peer *)data;
-
+
peer->pokeexpire = -1;
if (peer->lastms > -1) {
@@ -24637,9 +24637,12 @@ static int sip_poke_noanswer(const void *data)
peer->call = dialog_unref(peer->call, "unref dialog peer->call");
/* peer->call = sip_destroy(peer->call);*/
}
-
- peer->lastms = -1;
- ast_devstate_changed(AST_DEVICE_UNKNOWN, "SIP/%s", peer->name);
+
+ /* Don't send a devstate change if nothing changed. */
+ if (peer->lastms > -1) {
+ peer->lastms = -1;
+ ast_devstate_changed(AST_DEVICE_UNKNOWN, "SIP/%s", peer->name);
+ }
/* Try again quickly */
AST_SCHED_REPLACE_UNREF(peer->pokeexpire, sched,