[svn-commits] anthonyl: branch anthonyl/skinny-redux r48140 - /team/anthonyl/skinny-redux/c...

svn-commits at lists.digium.com svn-commits at lists.digium.com
Thu Nov 30 10:38:43 MST 2006


Author: anthonyl
Date: Thu Nov 30 11:38:42 2006
New Revision: 48140

URL: http://svn.digium.com/view/asterisk?view=rev&rev=48140
Log:
move all of the messages we handle to an enum

Modified:
    team/anthonyl/skinny-redux/channels/chan_skinny.c

Modified: team/anthonyl/skinny-redux/channels/chan_skinny.c
URL: http://svn.digium.com/view/asterisk/team/anthonyl/skinny-redux/channels/chan_skinny.c?view=diff&rev=48140&r1=48139&r2=48140
==============================================================================
--- team/anthonyl/skinny-redux/channels/chan_skinny.c (original)
+++ team/anthonyl/skinny-redux/channels/chan_skinny.c Thu Nov 30 11:38:42 2006
@@ -144,11 +144,6 @@
 /*********************
  * Protocol Messages *
  *********************/
-/* message types */
-#define KEEP_ALIVE_MESSAGE 0x0000
-/* no additional struct */
-
-#define REGISTER_MESSAGE 0x0001
 struct register_message {
 	char name[16];
 	uint32_t userId;
@@ -158,35 +153,28 @@
 	uint32_t maxStreams;
 };
 
-#define IP_PORT_MESSAGE	0x0002
-
-#define KEYPAD_BUTTON_MESSAGE 0x0003
 struct keypad_button_message {
 	uint32_t button;
 	uint32_t lineInstance;
 	uint32_t callReference;
 };
 
-#define STIMULUS_MESSAGE 0x0005
 struct stimulus_message {
 	uint32_t stimulus;
 	uint32_t stimulusInstance;
 	uint32_t unknown1;
 };
 
-#define OFFHOOK_MESSAGE 0x0006
 struct offhook_message {
 	uint32_t unknown1;
 	uint32_t unknown2;
 };
 
-#define ONHOOK_MESSAGE 0x0007
 struct onhook_message {
 	uint32_t unknown1;
 	uint32_t unknown2;
 };
 
-#define CAPABILITIES_RES_MESSAGE 0x0010
 struct station_capabilities {
 	uint32_t codec;
 	uint32_t frames;
@@ -201,22 +189,14 @@
 	struct station_capabilities caps[18];
 };
 
-#define SPEED_DIAL_STAT_REQ_MESSAGE 0x000A
 struct speed_dial_stat_req_message {
 	uint32_t speedDialNumber;
 };
 
-#define LINE_STATE_REQ_MESSAGE 0x000B
 struct line_state_req_message {
 	uint32_t lineNumber;
 };
 
-#define TIME_DATE_REQ_MESSAGE 0x000D
-#define BUTTON_TEMPLATE_REQ_MESSAGE 0x000E
-#define VERSION_REQ_MESSAGE 0x000F
-#define SERVER_REQUEST_MESSAGE 0x0012
-
-#define ALARM_MESSAGE 0x0020
 struct alarm_message {
 	uint32_t alarmSeverity;
 	char displayMessage[80];
@@ -224,7 +204,6 @@
 	uint32_t alarmParam2;
 };
 
-#define OPEN_RECEIVE_CHANNEL_ACK_MESSAGE 0x0022
 struct open_receive_channel_ack_message {
 	uint32_t status;
 	uint32_t ipAddr;
@@ -232,21 +211,12 @@
 	uint32_t passThruId;
 };
 
-#define SOFT_KEY_SET_REQ_MESSAGE 0x0025
-
-#define SOFT_KEY_EVENT_MESSAGE 0x0026
 struct soft_key_event_message {
 	uint32_t softKeyEvent;
 	uint32_t instance;
 	uint32_t reference;
 };
 
-#define UNREGISTER_MESSAGE 0x0027
-#define SOFT_KEY_TEMPLATE_REQ_MESSAGE 0x0028
-#define HEADSET_STATUS_MESSAGE 0x002B
-#define REGISTER_AVAILABLE_LINES_MESSAGE 0x002D
-
-#define REGISTER_ACK_MESSAGE 0x0081
 struct register_ack_message {
 	uint32_t keepAlive;
 	char dateTemplate[6];
@@ -255,39 +225,31 @@
 	char res2[4];
 };
 
-#define START_TONE_MESSAGE 0x0082
 struct start_tone_message {
 	uint32_t tone;
 };
 
-#define STOP_TONE_MESSAGE 0x0083
-
-#define SET_RINGER_MESSAGE 0x0085
 struct set_ringer_message {
 	uint32_t ringerMode;
 	uint32_t unknown1; /* See notes in transmit_ringer_mode */
 	uint32_t unknown2;
 };
 
-#define SET_LAMP_MESSAGE 0x0086
 struct set_lamp_message {
 	uint32_t stimulus;
 	uint32_t stimulusInstance;
 	uint32_t deviceStimulus;
 };
 
-#define SET_SPEAKER_MESSAGE 0x0088
 struct set_speaker_message {
 	uint32_t mode;
 };
 
 /* XXX When do we need to use this? */
-#define SET_MICROPHONE_MESSAGE 0x0089
 struct set_microphone_message {
 	uint32_t mode;
 };
 
-#define START_MEDIA_TRANSMISSION_MESSAGE 0x008A
 struct media_qualifier {
 	uint32_t precedence;
 	uint32_t vad;
@@ -305,13 +267,11 @@
 	struct media_qualifier qualifier;
 };
 
-#define STOP_MEDIA_TRANSMISSION_MESSAGE 0x008B
 struct stop_media_transmission_message {
 	uint32_t conferenceId;
 	uint32_t passThruPartyId;
 };
 
-#define CALL_INFO_MESSAGE 0x008F
 struct call_info_message {
 	char callingPartyName[40];
 	char callingParty[24];
@@ -324,14 +284,12 @@
 	char originalCalledParty[24];
 };
 
-#define SPEED_DIAL_STAT_RES_MESSAGE 0x0091
 struct speed_dial_stat_res_message {
 	uint32_t speedDialNumber;
 	char speedDialDirNumber[24];
 	char speedDialDisplayName[40];
 };
 
-#define LINE_STAT_RES_MESSAGE 0x0092
 struct line_stat_res_message {
 	uint32_t lineNumber;
 	char lineDirNumber[24];
@@ -339,7 +297,6 @@
 	uint32_t space;
 };
 
-#define DEFINETIMEDATE_MESSAGE 0x0094
 struct definetimedate_message {
 	uint32_t year;	/* since 1900 */
 	uint32_t month;
@@ -352,7 +309,6 @@
 	uint32_t timestamp;
 };
 
-#define BUTTON_TEMPLATE_RES_MESSAGE 0x0097
 struct button_definition {
 	uint8_t instanceNumber;
 	uint8_t buttonDefinition;
@@ -410,34 +366,23 @@
 	struct button_definition definition[42];
 };
 
-#define VERSION_RES_MESSAGE 0x0098
 struct version_res_message {
 	char version[16];
 };
 
-#define DISPLAYTEXT_MESSAGE 0x0099
 struct displaytext_message {
 	char text[40];
 };
 
-#define CLEAR_NOTIFY_MESSAGE  0x0115
-
-#define CLEAR_PROMPT_MESSAGE  0x0113
 struct clear_prompt_message {
         uint32_t instance;
 	uint32_t callid;
 };
 
-#define CLEAR_DISPLAY_MESSAGE 0x009A
-
-#define CAPABILITIES_REQ_MESSAGE 0x009B
-
-#define REGISTER_REJ_MESSAGE 0x009D
 struct register_rej_message {
 	char errMsg[33];
 };
 
-#define SERVER_RES_MESSAGE 0x009E
 struct server_identifier {
 	char serverName[48];
 };
@@ -448,14 +393,10 @@
 	uint32_t serverIpAddr[5];
 };
 
-#define RESET_MESSAGE 0x009F
 struct reset_message {
 	uint32_t resetType;
 };
 
-#define KEEP_ALIVE_ACK_MESSAGE 0x0100
-
-#define OPEN_RECEIVE_CHANNEL_MESSAGE 0x0105
 struct open_receive_channel_message {
 	uint32_t conferenceId;
 	uint32_t partyId;
@@ -465,13 +406,10 @@
 	uint32_t bitrate;
 };
 
-#define CLOSE_RECEIVE_CHANNEL_MESSAGE 0x0106
 struct close_receive_channel_message {
 	uint32_t conferenceId;
 	uint32_t partyId;
 };
-
-#define SOFT_KEY_TEMPLATE_RES_MESSAGE 0x0108
 
 struct soft_key_template_definition {
 	char softKeyLabel[16];
@@ -630,7 +568,6 @@
 	struct soft_key_template_definition softKeyTemplateDefinition[32];
 };
 
-#define SOFT_KEY_SET_RES_MESSAGE 0x0109
 
 struct soft_key_set_definition {
 	uint8_t softKeyTemplateIndex[16];
@@ -645,7 +582,6 @@
 	uint32_t res;
 };
 
-#define SELECT_SOFT_KEYS_MESSAGE 0x0110
 struct select_soft_keys_message {
 	uint32_t instance;
 	uint32_t reference;
@@ -653,14 +589,12 @@
 	uint32_t validKeyMask;
 };
 
-#define CALL_STATE_MESSAGE 0x0111
 struct call_state_message {
 	uint32_t callState;
 	uint32_t lineInstance;
 	uint32_t callReference;
 };
 
-#define DISPLAY_PROMPT_STATUS_MESSAGE 0x0112
 struct display_prompt_status_message {
 	uint32_t messageTimeout;
 	char promptMessage[32];
@@ -668,24 +602,22 @@
 	uint32_t callReference;
 };
 
-#define DISPLAY_NOTIFY_MESSAGE 0x0114
 struct display_notify_message {
 	uint32_t displayTimeout;
 	char displayMessage[100];
 };
 
-#define ACTIVATE_CALL_PLANE_MESSAGE 0x0116
 struct activate_call_plane_message {
 	uint32_t lineInstance;
 };
 
-#define DIALED_NUMBER_MESSAGE 0x011D
 struct dialed_number_message {
 	char dialedNumber[24];
 	uint32_t lineInstance;
 	uint32_t callReference;
 };
 
+/* this needs to be removed and replaced with something much better */
 union skinny_data {
 	struct alarm_message alarm;
 	struct speed_dial_stat_req_message speeddialreq;
@@ -1054,6 +986,66 @@
 	.send_digit_begin = skinny_senddigit_begin,
 	.send_digit_end = skinny_senddigit_end,
 /*	.bridge = ast_rtp_bridge, */
+};
+
+/* contains all of the messages we support */
+enum skinny_messages {
+	KEEP_ALIVE_MESSAGE		= 0x0000,
+	REGISTER_MESSAGE		= 0x0001,
+	IP_PORT_MESSAGE			= 0x0002,
+	KEYPAD_BUTTON_MESSAGE 		= 0x0003,
+	STIMULUS_MESSAGE 		= 0x0005,
+	OFFHOOK_MESSAGE			= 0x0006,
+	ONHOOK_MESSAGE 			= 0x0007,
+	CAPABILITIES_RES_MESSAGE 	= 0x0010,
+	SPEED_DIAL_STAT_REQ_MESSAGE 	= 0x000A,
+	LINE_STATE_REQ_MESSAGE 		= 0x000B,
+	TIME_DATE_REQ_MESSAGE 		= 0x000D,
+	BUTTON_TEMPLATE_REQ_MESSAGE 	= 0x000E,
+	VERSION_REQ_MESSAGE 		= 0x000F,
+	SERVER_REQUEST_MESSAGE 		= 0x0012,
+	ALARM_MESSAGE 			= 0x0020,
+	OPEN_RECEIVE_CHANNEL_ACK_MESSAGE = 0x0022,
+	SOFT_KEY_SET_REQ_MESSAGE	 = 0x0025,
+	SOFT_KEY_EVENT_MESSAGE 		 = 0x0026,
+	UNREGISTER_MESSAGE 		 = 0x0027,
+	SOFT_KEY_TEMPLATE_REQ_MESSAGE 	 = 0x0028,
+	HEADSET_STATUS_MESSAGE 		 = 0x002B,
+	REGISTER_AVAILABLE_LINES_MESSAGE = 0x002D,
+	REGISTER_ACK_MESSAGE 		 = 0x0081,
+	START_TONE_MESSAGE 		 = 0x0082,
+	STOP_TONE_MESSAGE	 	 = 0x0083,
+	SET_RINGER_MESSAGE 		 = 0x0085,
+	SET_LAMP_MESSAGE  		 = 0x0086,
+	SET_SPEAKER_MESSAGE 		 = 0x0088,
+	SET_MICROPHONE_MESSAGE 		 = 0x0089,
+	START_MEDIA_TRANSMISSION_MESSAGE = 0x008A,
+	STOP_MEDIA_TRANSMISSION_MESSAGE  = 0x008B,
+	CALL_INFO_MESSAGE                = 0x008F,
+	SPEED_DIAL_STAT_RES_MESSAGE      = 0x0091,
+	LINE_STAT_RES_MESSAGE            = 0x0092,
+	DEFINETIMEDATE_MESSAGE           = 0x0094,
+	BUTTON_TEMPLATE_RES_MESSAGE      = 0x0097,
+	VERSION_RES_MESSAGE              = 0x0098,
+	DISPLAYTEXT_MESSAGE              = 0x0099,
+	CLEAR_PROMPT_MESSAGE             = 0x0113,
+	CLEAR_NOTIFY_MESSAGE             = 0x0115,
+	CLEAR_DISPLAY_MESSAGE            = 0x009A,
+	CAPABILITIES_REQ_MESSAGE         = 0x009B,
+	REGISTER_REJ_MESSAGE             = 0x009D,
+	SERVER_RES_MESSAGE               = 0x009E,
+	RESET_MESSAGE                    = 0x009F,
+	KEEP_ALIVE_ACK_MESSAGE           = 0x0100,
+	OPEN_RECEIVE_CHANNEL_MESSAGE     = 0x0105,
+	CLOSE_RECEIVE_CHANNEL_MESSAGE    = 0x0106,
+	SOFT_KEY_TEMPLATE_RES_MESSAGE    = 0x0108,
+	SOFT_KEY_SET_RES_MESSAGE         = 0x0109,
+	SELECT_SOFT_KEYS_MESSAGE         = 0x0110,
+	CALL_STATE_MESSAGE               = 0x0111,
+	DISPLAY_PROMPT_STATUS_MESSAGE    = 0x0112,
+	DISPLAY_NOTIFY_MESSAGE           = 0x0114,
+	ACTIVATE_CALL_PLANE_MESSAGE      = 0x0116,
+	DIALED_NUMBER_MESSAGE            = 0x011D,
 };
 
 static void *get_button_template(struct skinnysession *s, struct button_definition_template *btn)
@@ -1400,6 +1392,10 @@
 		ast_verbose("writing packet type %04X (%d bytes) to socket %d\n", letohl(req->e), letohl(req->len)+8, s->fd);
 #endif
 
+	if (!req) {
+		return -1;
+	}
+	
 	memset(s->outbuf,0,sizeof(s->outbuf));
 	memcpy(s->outbuf, req, skinny_header_size);
 	memcpy(s->outbuf+skinny_header_size, &req->data, letohl(req->len));
@@ -1417,6 +1413,7 @@
 	}
 	
 	ast_mutex_unlock(&s->lock);
+	
 	return 1;
 }
 



More information about the svn-commits mailing list