diff --git a/channels/chan_unistim.c b/channels/chan_unistim.c
index b8ccdbb2a5ff204633deb650491f261b1706339b..f82522111e2564dc95dda90ac1707fb89ec88c49 100644
--- a/channels/chan_unistim.c
+++ b/channels/chan_unistim.c
@@ -161,6 +161,7 @@ enum autoprov_extn {
 #define LED_HEADPHONE_ON		0x011
 #define LED_MUTE_OFF			0x018
 #define LED_MUTE_ON			0x019
+#define LED_MUTE_BLINK			0x1A
 
 #define SIZE_HEADER	     6
 #define SIZE_MAC_ADDR	   17
@@ -357,8 +358,8 @@ struct unistim_subchannel {
 	int softkey;			/*! Softkey assigned */
 	pthread_t ss_thread;		/*! unistim_ss thread handle */
 	int alreadygone;
-	char ringvolume;
-	char ringstyle;
+	signed char ringvolume;
+	signed char ringstyle;
 	int moh;					/*!< Music on hold in progress */
 	AST_LIST_ENTRY(unistim_subchannel) list;
 };
@@ -413,13 +414,13 @@ static struct unistim_device {
 	char maintext2[25];		     /*!< when the phone is idle, display this string on line 2 */
 	char titledefault[13];	  /*!< title (text before date/time) */
 	char datetimeformat;	    /*!< format used for displaying time/date */
-	char contrast;			  /*!< contrast */
+	signed char contrast;			  /*!< contrast */
 	char country[3];			/*!< country used for dial tone frequency */
 	struct ast_tone_zone *tz;	       /*!< Tone zone for res_indications (ring, busy, congestion) */
-	char ringvolume;			/*!< Ring volume */
-	char ringstyle;			 /*!< Ring melody */
-	char cwvolume;			/*!< Ring volume on call waiting */
-	char cwstyle;			 /*!< Ring melody on call waiting */
+	signed char ringvolume;			/*!< Ring volume */
+	signed char ringstyle;			 /*!< Ring melody */
+	signed char cwvolume;			/*!< Ring volume on call waiting */
+	signed char cwstyle;			 /*!< Ring melody on call waiting */
 	int interdigit_timer;		/*!< Interdigit timer for dialing number by timeout */
 	int dtmfduration;		/*!< DTMF playback duration */
 	time_t nextdial;		/*!< Timer used for dial by timeout */
@@ -443,7 +444,7 @@ static struct unistim_device {
 	int nat;					/*!< Used by the obscure ast_rtp_setnat */
 	enum autoprov_extn extension;   /*!< See ifdef EXTENSION for valid values */
 	char extension_number[11];      /*!< Extension number entered by the user */
-	char to_delete;			 /*!< Used in reload */
+	signed char to_delete;			 /*!< Used in reload */
 	struct ast_silence_generator *silence_generator;
 	AST_LIST_HEAD(,unistim_subchannel) subs; /*!< pointer to our current connection, channel... */
 	AST_LIST_HEAD(,unistim_line) lines;
@@ -1701,7 +1702,7 @@ send_select_output(struct unistimsession *pte, unsigned char output, unsigned ch
 	}
 	pte->device->output = output;
 }
-static void send_ring(struct unistimsession *pte, char volume, char style)
+static void send_ring(struct unistimsession *pte, signed char volume, signed char style)
 {
 	BUFFSEND;
 	if (unistimdebug) {
@@ -4835,7 +4836,7 @@ static int unistim_call(struct ast_channel *ast, const char *dest, int timeout)
 	int res = 0, i;
 	struct unistim_subchannel *sub, *sub_real;
 	struct unistimsession *session;
-	char ringstyle, ringvolume;
+	signed char ringstyle, ringvolume;
 
 	session = channel_to_session(ast);
 	if (!session) {
@@ -5438,8 +5439,8 @@ static struct unistim_subchannel *find_subchannel_by_name(const char *dest)
 							if ((*at < '0') || (*at > '7')) { /* ring style */
 								ast_log(LOG_WARNING, "Invalid ring selection (%s)", at);
 							} else {
-								char ring_volume = -1;
-								char ring_style = *at - '0';
+								signed char ring_volume = -1;
+								signed char ring_style = *at - '0';
 								at++;
 								if ((*at >= '0') && (*at <= '3')) {      /* ring volume */
 									ring_volume = *at - '0';
@@ -6483,7 +6484,7 @@ static struct unistim_device *build_device(const char *cat, const struct ast_var
 	int create = 1;
 	int nbsoftkey, dateformat, timeformat, callhistory, sharpdial, linecnt;
 	char linelabel[AST_MAX_EXTENSION];
-	char ringvolume, ringstyle, cwvolume, cwstyle;
+	signed char ringvolume, ringstyle, cwvolume, cwstyle;
 
 	/* First, we need to know if we already have this name in our list */
 	/* Get a lock for the device chained list */