--- channels/chan_sip.c.orig 2010-07-28 23:21:31.000000000 +0200 +++ channels/chan_sip.c 2010-07-28 23:22:32.000000000 +0200 @@ -22958,9 +22958,11 @@ peer->call = dialog_unref(peer->call, "unref dialog peer->call"); /* peer->call = sip_destroy(peer->call);*/ } - + + if (peer->lastms > 1) { + ast_devstate_changed(AST_DEVICE_UNKNOWN, "SIP/%s", peer->name); + } peer->lastms = -1; - ast_devstate_changed(AST_DEVICE_UNKNOWN, "SIP/%s", peer->name); /* Try again quickly */ AST_SCHED_REPLACE_UNREF(peer->pokeexpire, sched,