OPENZAP-30 add support for flash hook as part of the dial string using 'F'
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@612 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
parent
7d75e8df89
commit
f8b23330bc
|
@ -261,6 +261,7 @@ typedef enum {
|
|||
ZAP_COMMAND_GENERATE_RING_OFF,
|
||||
ZAP_COMMAND_OFFHOOK,
|
||||
ZAP_COMMAND_ONHOOK,
|
||||
ZAP_COMMAND_FLASH,
|
||||
ZAP_COMMAND_ENABLE_PROGRESS_DETECT,
|
||||
ZAP_COMMAND_DISABLE_PROGRESS_DETECT,
|
||||
ZAP_COMMAND_TRACE_INPUT,
|
||||
|
|
|
@ -443,6 +443,15 @@ static ZIO_COMMAND_FUNCTION(zt_command)
|
|||
zap_clear_flag_locked(zchan, ZAP_CHANNEL_OFFHOOK);
|
||||
}
|
||||
break;
|
||||
case ZAP_COMMAND_FLASH:
|
||||
{
|
||||
int command = ZT_FLASH;
|
||||
if (ioctl(zchan->sockfd, ZT_HOOK, &command)) {
|
||||
snprintf(zchan->last_error, sizeof(zchan->last_error), "FLASH Failed");
|
||||
return ZAP_FAIL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ZAP_COMMAND_GENERATE_RING_ON:
|
||||
{
|
||||
int command = ZT_RING;
|
||||
|
|
|
@ -1712,7 +1712,14 @@ static zap_status_t handle_dtmf(zap_channel_t *zchan, zap_size_t datalen)
|
|||
if (zap_buffer_read(zchan->gen_dtmf_buffer, digits, dblen) && !zap_strlen_zero_buf(digits)) {
|
||||
zap_log(ZAP_LOG_DEBUG, "%d:%d GENERATE DTMF [%s]\n", zchan->span_id, zchan->chan_id, digits);
|
||||
|
||||
for (cur = digits; *cur; cur++) {
|
||||
cur = digits;
|
||||
|
||||
if (*cur == 'F') {
|
||||
zap_channel_command(zchan, ZAP_COMMAND_FLASH, NULL);
|
||||
cur++;
|
||||
}
|
||||
|
||||
for (; *cur; cur++) {
|
||||
int wrote = 0;
|
||||
if ((wrote = teletone_mux_tones(&zchan->tone_session, &zchan->tone_session.TONES[(int)*cur]))) {
|
||||
zap_buffer_write(zchan->dtmf_buffer, zchan->tone_session.buffer, wrote * 2);
|
||||
|
|
Loading…
Reference in New Issue