Merged revisions 68249 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r68249 | qwell | 2007-06-07 15:25:18 -0500 (Thu, 07 Jun 2007) | 4 lines

Fix an issue with newer phones which require packets be padded out to the correct length.

Issue 9887, patch by DEA.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@68251 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jason Parker 2007-06-07 20:25:56 +00:00
parent 20e1e1ad3c
commit 4db176fdc2
1 changed files with 25 additions and 6 deletions

View File

@ -260,15 +260,20 @@ struct register_ack_message {
#define START_TONE_MESSAGE 0x0082 #define START_TONE_MESSAGE 0x0082
struct start_tone_message { struct start_tone_message {
uint32_t tone; uint32_t tone;
uint32_t space[3];
}; };
#define STOP_TONE_MESSAGE 0x0083 #define STOP_TONE_MESSAGE 0x0083
struct stop_tone_message {
uint32_t space[2];
};
#define SET_RINGER_MESSAGE 0x0085 #define SET_RINGER_MESSAGE 0x0085
struct set_ringer_message { struct set_ringer_message {
uint32_t ringerMode; uint32_t ringerMode;
uint32_t unknown1; /* See notes in transmit_ringer_mode */ uint32_t unknown1; /* See notes in transmit_ringer_mode */
uint32_t unknown2; uint32_t unknown2;
uint32_t space[2];
}; };
#define SET_LAMP_MESSAGE 0x0086 #define SET_LAMP_MESSAGE 0x0086
@ -293,7 +298,7 @@ struct set_microphone_message {
struct media_qualifier { struct media_qualifier {
uint32_t precedence; uint32_t precedence;
uint32_t vad; uint32_t vad;
uint32_t packets; uint16_t packets;
uint32_t bitRate; uint32_t bitRate;
}; };
@ -305,12 +310,14 @@ struct start_media_transmission_message {
uint32_t packetSize; uint32_t packetSize;
uint32_t payloadType; uint32_t payloadType;
struct media_qualifier qualifier; struct media_qualifier qualifier;
uint32_t space[16];
}; };
#define STOP_MEDIA_TRANSMISSION_MESSAGE 0x008B #define STOP_MEDIA_TRANSMISSION_MESSAGE 0x008B
struct stop_media_transmission_message { struct stop_media_transmission_message {
uint32_t conferenceId; uint32_t conferenceId;
uint32_t passThruPartyId; uint32_t passThruPartyId;
uint32_t space[3];
}; };
#define CALL_INFO_MESSAGE 0x008F #define CALL_INFO_MESSAGE 0x008F
@ -332,6 +339,7 @@ struct call_info_message {
char calledPartyVoiceMailbox[24]; char calledPartyVoiceMailbox[24];
char originalCalledPartyVoiceMailbox[24]; char originalCalledPartyVoiceMailbox[24];
char lastRedirectingVoiceMailbox[24]; char lastRedirectingVoiceMailbox[24];
uint32_t space[3];
}; };
#define SPEED_DIAL_STAT_RES_MESSAGE 0x0091 #define SPEED_DIAL_STAT_RES_MESSAGE 0x0091
@ -345,8 +353,8 @@ struct speed_dial_stat_res_message {
struct line_stat_res_message { struct line_stat_res_message {
uint32_t lineNumber; uint32_t lineNumber;
char lineDirNumber[24]; char lineDirNumber[24];
char lineDisplayName[42]; char lineDisplayName[24];
uint32_t space; uint32_t space[15];
}; };
#define DEFINETIMEDATE_MESSAGE 0x0094 #define DEFINETIMEDATE_MESSAGE 0x0094
@ -431,7 +439,6 @@ struct displaytext_message {
}; };
#define CLEAR_NOTIFY_MESSAGE 0x0115 #define CLEAR_NOTIFY_MESSAGE 0x0115
#define CLEAR_PROMPT_MESSAGE 0x0113
#define CLEAR_DISPLAY_MESSAGE 0x009A #define CLEAR_DISPLAY_MESSAGE 0x009A
#define CAPABILITIES_REQ_MESSAGE 0x009B #define CAPABILITIES_REQ_MESSAGE 0x009B
@ -467,12 +474,14 @@ struct open_receive_channel_message {
uint32_t capability; uint32_t capability;
uint32_t echo; uint32_t echo;
uint32_t bitrate; uint32_t bitrate;
uint32_t space[16];
}; };
#define CLOSE_RECEIVE_CHANNEL_MESSAGE 0x0106 #define CLOSE_RECEIVE_CHANNEL_MESSAGE 0x0106
struct close_receive_channel_message { struct close_receive_channel_message {
uint32_t conferenceId; uint32_t conferenceId;
uint32_t partyId; uint32_t partyId;
uint32_t space[2];
}; };
#define SOFT_KEY_TEMPLATE_RES_MESSAGE 0x0108 #define SOFT_KEY_TEMPLATE_RES_MESSAGE 0x0108
@ -662,6 +671,7 @@ struct call_state_message {
uint32_t callState; uint32_t callState;
uint32_t lineInstance; uint32_t lineInstance;
uint32_t callReference; uint32_t callReference;
uint32_t space[3];
}; };
#define DISPLAY_PROMPT_STATUS_MESSAGE 0x0112 #define DISPLAY_PROMPT_STATUS_MESSAGE 0x0112
@ -672,6 +682,12 @@ struct display_prompt_status_message {
uint32_t callReference; uint32_t callReference;
}; };
#define CLEAR_PROMPT_MESSAGE 0x0113
struct clear_prompt_message {
uint32_t lineInstance;
uint32_t callReference;
};
#define DISPLAY_NOTIFY_MESSAGE 0x0114 #define DISPLAY_NOTIFY_MESSAGE 0x0114
struct display_notify_message { struct display_notify_message {
uint32_t displayTimeout; uint32_t displayTimeout;
@ -701,6 +717,7 @@ union skinny_data {
struct button_template_res_message buttontemplate; struct button_template_res_message buttontemplate;
struct displaytext_message displaytext; struct displaytext_message displaytext;
struct display_prompt_status_message displaypromptstatus; struct display_prompt_status_message displaypromptstatus;
struct clear_prompt_message clearpromptstatus;
struct definetimedate_message definetimedate; struct definetimedate_message definetimedate;
struct start_tone_message starttone; struct start_tone_message starttone;
struct speed_dial_stat_res_message speeddial; struct speed_dial_stat_res_message speeddial;
@ -929,7 +946,7 @@ struct skinny_subchannel {
struct skinny_line { struct skinny_line {
ast_mutex_t lock; ast_mutex_t lock;
char name[80]; char name[80];
char label[42]; /* Label that shows next to the line buttons */ char label[24]; /* Label that shows next to the line buttons */
char accountcode[AST_MAX_ACCOUNT_CODE]; char accountcode[AST_MAX_ACCOUNT_CODE];
char exten[AST_MAX_EXTENSION]; /* Extension where to start */ char exten[AST_MAX_EXTENSION]; /* Extension where to start */
char context[AST_MAX_CONTEXT]; char context[AST_MAX_CONTEXT];
@ -1598,7 +1615,7 @@ static void transmit_tone(struct skinnysession *s, int tone)
if (!(req = req_alloc(sizeof(struct start_tone_message), START_TONE_MESSAGE))) if (!(req = req_alloc(sizeof(struct start_tone_message), START_TONE_MESSAGE)))
return; return;
} else { } else {
if (!(req = req_alloc(0, STOP_TONE_MESSAGE))) if (!(req = req_alloc(sizeof(struct stop_tone_message), STOP_TONE_MESSAGE)))
return; return;
} }
@ -4330,6 +4347,8 @@ static int handle_message(struct skinny_req *req, struct skinnysession *s)
res = handle_speed_dial_stat_req_message(req, s); res = handle_speed_dial_stat_req_message(req, s);
break; break;
case LINE_STATE_REQ_MESSAGE: case LINE_STATE_REQ_MESSAGE:
if (skinnydebug)
ast_verbose("Received LineStatRequest\n");
res = handle_line_state_req_message(req, s); res = handle_line_state_req_message(req, s);
break; break;
case TIME_DATE_REQ_MESSAGE: case TIME_DATE_REQ_MESSAGE: