DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `pbx`.`sip_isValid`(vExtension VARCHAR(255))
BEGIN
/**
 * Check if an extension has the correct format and
 * throws an exception if it hasn't.
 *
 * @param vExtension The extension
 */
	DECLARE vIsValid BOOL;

	SET vIsValid =  vExtension IS NULL
		OR (vExtension REGEXP '^[0-9]{4}$'
		AND MOD(vExtension, 100) != 0);

	IF NOT vIsValid THEN
		SIGNAL SQLSTATE '45000'
			SET MESSAGE_TEXT = 'Extension format is invalid';
	END IF;
END$$
DELIMITER ;
