set rtp params in skinny for rtp flush on bridge

This commit is contained in:
Anthony Minessale 2013-06-26 18:35:06 -05:00
parent 75e0d9d885
commit ec67542628
2 changed files with 39 additions and 20 deletions

View File

@ -1051,27 +1051,40 @@ switch_status_t channel_receive_message(switch_core_session_t *session, switch_c
private_t *tech_pvt = switch_core_session_get_private(session);
switch (msg->message_id) {
case SWITCH_MESSAGE_INDICATE_ANSWER:
switch_clear_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA);
case SWITCH_MESSAGE_INDICATE_ANSWER:
switch_clear_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA);
return channel_answer_channel(session);
case SWITCH_MESSAGE_INDICATE_DISPLAY:
skinny_session_send_call_info_all(session);
break;
case SWITCH_MESSAGE_INDICATE_PROGRESS:
if (!switch_test_flag(tech_pvt, TFLAG_EARLY_MEDIA)) {
/* early media */
switch_set_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA);
return channel_answer_channel(session);
case SWITCH_MESSAGE_INDICATE_DISPLAY:
skinny_session_send_call_info_all(session);
return SWITCH_STATUS_SUCCESS;
case SWITCH_MESSAGE_INDICATE_PROGRESS:
if (!switch_test_flag(tech_pvt, TFLAG_EARLY_MEDIA)) {
/* early media */
switch_set_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA);
return channel_answer_channel(session);
}
return SWITCH_STATUS_SUCCESS;
default:
return SWITCH_STATUS_SUCCESS;
}
break;
case SWITCH_MESSAGE_INDICATE_BRIDGE:
if (switch_rtp_ready(tech_pvt->rtp_session)) {
rtp_flush_read_buffer(tech_pvt->rtp_session, SWITCH_RTP_FLUSH_STICK);
}
break;
case SWITCH_MESSAGE_INDICATE_UNBRIDGE:
if (switch_rtp_ready(tech_pvt->rtp_session)) {
rtp_flush_read_buffer(tech_pvt->rtp_session, SWITCH_RTP_FLUSH_UNSTICK);
}
break;
default:
break;
}
return SWITCH_STATUS_SUCCESS;
}
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines

View File

@ -58,6 +58,8 @@ uint32_t soft_key_template_default_textids[] = {
SKINNY_TEXTID_IDIVERT
};
#define TEXT_ID_LEN 20
uint32_t soft_key_template_default_events[] = {
SOFTKEY_REDIAL,
SOFTKEY_NEWCALL,
@ -1731,6 +1733,10 @@ switch_status_t skinny_handle_open_receive_channel_ack_message(listener_t *liste
switch_channel_t *channel = NULL;
struct in_addr addr;
flags[SWITCH_RTP_FLAG_DATAWAIT]++;
flags[SWITCH_RTP_FLAG_AUTOADJ]++;
flags[SWITCH_RTP_FLAG_RAW_WRITE]++;
tech_pvt = switch_core_session_get_private(session);
channel = switch_core_session_get_channel(session);
@ -1954,7 +1960,7 @@ switch_status_t skinny_handle_unregister(listener_t *listener, skinny_message_t
switch_status_t skinny_handle_soft_key_template_request(listener_t *listener, skinny_message_t *request)
{
int i;
size_t i;
skinny_message_t *message;
switch_assert(listener->profile);
@ -1969,7 +1975,7 @@ switch_status_t skinny_handle_soft_key_template_request(listener_t *listener, sk
message->data.soft_key_template.total_soft_key_count = 21;
memset(message->data.soft_key_template.soft_key, 0, sizeof(message->data.soft_key_template));
for (i=0; i<sizeof(soft_key_template_default_textids); i++) {
for (i=0; i< TEXT_ID_LEN; i++) {
char *label = skinny_textid2raw(soft_key_template_default_textids[i]);
strcpy(message->data.soft_key_template.soft_key[i].soft_key_label, skinny_textid2raw(soft_key_template_default_textids[i]));
switch_safe_free(label);