From 277dc8e77aa0b7844d6f85129eefd113f45058d6 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Sat, 15 Nov 2014 18:27:56 +0000 Subject: [PATCH] res_pjsip: Enforce requirements for session timer minimum expiration period and normal expiration period. This change enforces the requirements in PJSIP for session timer configuration. The minimum expiration period must be 90 seconds or higher and the normal expiration period can not be lower than the minimum expiration period. If either of these were done the code would assert at session setup time. ASTERISK-24336 #close Reported by: Leon Rowland git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@427978 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_pjsip/pjsip_configuration.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/res/res_pjsip/pjsip_configuration.c b/res/res_pjsip/pjsip_configuration.c index a57abf7ed9..31b84555ed 100644 --- a/res/res_pjsip/pjsip_configuration.c +++ b/res/res_pjsip/pjsip_configuration.c @@ -960,6 +960,14 @@ static int sip_endpoint_apply_handler(const struct ast_sorcery *sorcery, void *o ast_log(LOG_ERROR, "Invalid outbound proxy '%s' specified on endpoint '%s'\n", endpoint->outbound_proxy, ast_sorcery_object_get_id(endpoint)); return -1; + } else if (endpoint->extensions.timer.min_se < 90) { + ast_log(LOG_ERROR, "Session timer minimum expires time must be 90 or greater on endpoint '%s'\n", + ast_sorcery_object_get_id(endpoint)); + return -1; + } else if (endpoint->extensions.timer.sess_expires < endpoint->extensions.timer.min_se) { + ast_log(LOG_ERROR, "Session timer expires must be greater than minimum session expires time on endpoint '%s'\n", + ast_sorcery_object_get_id(endpoint)); + return -1; } return 0; -- 2.47.2