Index: res/res_pjsip_pubsub.c =================================================================== --- res/res_pjsip_pubsub.c (revision 410558) +++ res/res_pjsip_pubsub.c (working copy) @@ -762,7 +762,8 @@ expires_header = pjsip_msg_find_hdr(rdata->msg_info.msg, PJSIP_H_EXPIRES, rdata->msg_info.msg->hdr.next); - if (expires_header && expires_header->ivalue < endpoint->subscription.minexpiry) { + if (expires_header && (expires_header->ivalue == 0 || + expires_header->ivalue < endpoint->subscription.minexpiry)) { ast_log(LOG_WARNING, "Subscription expiration %d is too brief for endpoint %s. Minimum is %d\n", expires_header->ivalue, ast_sorcery_object_get_id(endpoint), endpoint->subscription.minexpiry); pjsip_endpt_respond_stateless(ast_sip_get_pjsip_endpoint(), rdata, 423, NULL, NULL, NULL);