diff --git a/channels/chan_sip.c b/channels/chan_sip.c index e1f6f13301..f8963ea6f9 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -31977,7 +31977,11 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v_head if (realtime) { int enablepoke = 1; - if (!sip_cfg.ignore_regexpire && peer->host_dynamic) { + if (peer->maxms == 0) { + /* In sip_poke_peer_now we'd stop poking when maxms is 0. + * So let's just not even schedule anything. */ + enablepoke = 0; + } else if (!sip_cfg.ignore_regexpire && peer->host_dynamic) { time_t nowtime = time(NULL); if ((nowtime - regseconds) > 0) {