OPENZAP-99
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@1036 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
parent
5aa34213df
commit
34f45f3c67
|
@ -675,7 +675,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||
tech_pvt->read_frame.samples /= 2;
|
||||
}
|
||||
|
||||
if (zap_channel_dequeue_dtmf(tech_pvt->zchan, dtmf, sizeof(dtmf))) {
|
||||
while (zap_channel_dequeue_dtmf(tech_pvt->zchan, dtmf, sizeof(dtmf))) {
|
||||
switch_dtmf_t _dtmf = { 0, SWITCH_DEFAULT_DTMF_DURATION };
|
||||
char *p;
|
||||
for (p = dtmf; p && *p; p++) {
|
||||
|
@ -737,10 +737,11 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc
|
|||
|
||||
|
||||
wflags = ZAP_WRITE;
|
||||
status = zap_channel_wait(tech_pvt->zchan, &wflags, tech_pvt->zchan->effective_interval * 4);
|
||||
status = zap_channel_wait(tech_pvt->zchan, &wflags, tech_pvt->zchan->effective_interval * 10);
|
||||
|
||||
if (!(wflags & ZAP_WRITE)) {
|
||||
goto fail;
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Dropping frame! (write not ready)\n");
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
len = frame->datalen;
|
||||
|
|
|
@ -486,6 +486,8 @@ static ZIO_OPEN_FUNCTION(wanpipe_open)
|
|||
wanpipe_tdm_api_t tdm_api;
|
||||
|
||||
memset(&tdm_api,0,sizeof(tdm_api));
|
||||
sangoma_flush_bufs(zchan->sockfd, &tdm_api);
|
||||
sangoma_flush_event_bufs(zchan->sockfd, &tdm_api);
|
||||
|
||||
if (zchan->type == ZAP_CHAN_TYPE_DQ921 || zchan->type == ZAP_CHAN_TYPE_DQ931) {
|
||||
zchan->native_codec = zchan->effective_codec = ZAP_CODEC_NONE;
|
||||
|
@ -1018,16 +1020,19 @@ ZIO_SPAN_NEXT_EVENT_FUNCTION(wanpipe_next_event)
|
|||
char tmp_dtmf[2] = { tdm_api.wp_tdm_cmd.event.wp_tdm_api_event_dtmf_digit, 0 };
|
||||
event_id = ZAP_OOB_NOOP;
|
||||
|
||||
//zap_log(ZAP_LOG_DEBUG, "%d:%d queue hardware dtmf %s\n", zchan->span_id, zchan->chan_id, tmp_dtmf);
|
||||
//zap_log(ZAP_LOG_WARNING, "%d:%d queue hardware dtmf %s %s\n", zchan->span_id, zchan->chan_id, tmp_dtmf,
|
||||
//tdm_api.wp_tdm_cmd.event.wp_tdm_api_event_dtmf_type == WAN_EC_TONE_PRESENT ? "on" : "off");
|
||||
if (tdm_api.wp_tdm_cmd.event.wp_tdm_api_event_dtmf_type == WAN_EC_TONE_PRESENT) {
|
||||
zap_set_flag_locked(zchan, ZAP_CHANNEL_MUTE);
|
||||
}
|
||||
|
||||
if (tdm_api.wp_tdm_cmd.event.wp_tdm_api_event_dtmf_type == WAN_EC_TONE_STOP) {
|
||||
zap_clear_flag_locked(zchan, ZAP_CHANNEL_MUTE);
|
||||
if (zap_test_flag(zchan, ZAP_CHANNEL_INUSE)) {
|
||||
zap_channel_queue_dtmf(zchan, tmp_dtmf);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WP_TDMAPI_EVENT_ALARM:
|
||||
event_id = ZAP_OOB_NOOP;
|
||||
|
|
|
@ -1225,9 +1225,7 @@ OZ_DECLARE(zap_status_t) zap_channel_done(zap_channel_t *zchan)
|
|||
zchan->pre_buffer_size = 0;
|
||||
zap_mutex_unlock(zchan->pre_buffer_mutex);
|
||||
|
||||
if (zchan->dtmf_buffer) {
|
||||
zap_buffer_zero(zchan->dtmf_buffer);
|
||||
}
|
||||
zap_channel_flush_dtmf(zchan);
|
||||
|
||||
zchan->init_state = ZAP_CHANNEL_STATE_DOWN;
|
||||
zchan->state = ZAP_CHANNEL_STATE_DOWN;
|
||||
|
|
Loading…
Reference in New Issue