memset(&p_settings, 0, sizeof(p_settings));
}
SCPY(p_name, portname);
- if (interface)
+ if (interface) {
SCPY(p_interface_name, interface->name);
+ SCPY(p_tones_interface, interface->tones_dir);
+ }
p_tone_dir[0] = '\0';
p_type = type;
p_serial = port_serial++;
#ifdef WITH_VOOTP
p_vootp = NULL;
#endif
+ /* D-O-V */
+ dov_init();
/* append port to chain */
next = NULL;
if (p_record)
close_record(0, 0);
+ dov_exit();
+
classuse--;
/* disconnect port from endpoint */
if (name == NULL)
name = "";
- if (!dir || !dir[0])
- dir = options.tones_dir; /* just in case we have no PmISDN instance */
+ if (!dir || !dir[0]) {
+ if (p_tones_interface[0])
+ dir = p_tones_interface;
+ else
+ dir = options.tones_dir; /* just in case we have no PmISDN instance */
+ }
/* no counter, no eof, normal speed */
p_tone_counter = 0;
set_vootp(¶m->vootp);
return 1;
#endif
+
+ case MESSAGE_DOV_REQUEST: /* Data-Over-Voice message */
+ PDEBUG(DEBUG_PORT, "PORT(%s) sending data over voice message (len=%d)\n", p_name, param->dov.length);
+ dov_sendmsg(param->dov.data, param->dov.length, (enum dov_type)param->dov.type, param->dov.level);
+ return 1;
+
+ case MESSAGE_DOV_LISTEN: /* Data-Over-Voice listen order */
+ PDEBUG(DEBUG_PORT, "PORT(%s) sending data over voice listen order\n", p_name);
+ dov_listen((enum dov_type)param->dov.type);
+ return 1;
}
return 0;
case CODEC_MONO:
case CODEC_STEREO:
case CODEC_8BIT:
+ memset(&dummyheader, 0, sizeof(dummyheader));
ret = fwrite(dummyheader, sizeof(dummyheader), 1, p_record);
break;