diff --git a/Makefile b/Makefile index 9e46c36..f61e331 100644 --- a/Makefile +++ b/Makefile @@ -8,9 +8,9 @@ $(PKG_CONFIG_PATH)/libpjproject.pc: $(MAKE) -C $(PJSIP_DIR) && \ $(MAKE) -C $(PJSIP_DIR) install -d-modem: d-modem.c dmodem2.c $(PKG_CONFIG_PATH)/libpjproject.pc - $(CC) -g -o $@ $< `PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --static --cflags --libs libpjproject` - $(CC) -g -o dmodem2 dmodem2.c `PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --static --cflags --libs libpjproject` +d-modem: d-modem.c $(PKG_CONFIG_PATH)/libpjproject.pc + $(CC) -o $@ $< `PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --static --cflags --libs libpjproject` + slmodemd: $(MAKE) -C slmodemd diff --git a/slmodemd/modem.c b/slmodemd/modem.c index 07a3911..3a4c711 100644 --- a/slmodemd/modem.c +++ b/slmodemd/modem.c @@ -1203,7 +1203,7 @@ static int modem_stop (struct modem *m) } #ifdef MODEM_CONFIG_RING_DETECTOR if(m->rd_obj) { - free(m->rd_obj); + RD_delete(m->rd_obj); m->rd_obj = NULL; } #endif @@ -1316,11 +1316,6 @@ static int modem_cid_start(struct modem *m, unsigned timeout) #ifdef MODEM_CONFIG_RING_DETECTOR static void modem_ring_detector_process(struct modem *m, void *in, void *out, int count) { - if(count != 0) { - char callid[10]; - strncpy(callid, in, 10); - printf("Ringing! callid:%s\n", callid); - }/* int ret; memset(out, 0, count*2); ret = RD_process(m->rd_obj, in, count); @@ -1335,7 +1330,7 @@ static void modem_ring_detector_process(struct modem *m, void *in, void *out, in } else if (freq > 0) { MODEM_DBG("report ring end...\n"); - /* ring finishing *//* + /* ring finishing */ m->event |= MDMEVENT_RING_CHECK; if (m->ring_count <= 1) m->ring_count = duration * freq / 1000 ; @@ -1344,7 +1339,7 @@ static void modem_ring_detector_process(struct modem *m, void *in, void *out, in else MODEM_ERR("RD returns %ld freq. (duration %ld)\n", freq, duration); - }*/ + } #ifdef MODEM_CONFIG_CID if(m->cid) modem_cid_process(m, in, out, count); @@ -1358,11 +1353,10 @@ int modem_ring_detector_start(struct modem *m) MODEM_ERR("modem_ring_detector_start: rd_obj already exists!\n"); return -1; } - m->rd_obj = malloc(sizeof(char)); + m->rd_obj = RD_create(m, m->srate); m->process = modem_ring_detector_process; modem_set_hook(m, MODEM_HOOK_SNOOPING); return do_modem_start(m); - } #endif /* MODEM_CONFIG_RING_DETECTOR */ diff --git a/slmodemd/modem.h b/slmodemd/modem.h index 59465d3..3550d83 100644 --- a/slmodemd/modem.h +++ b/slmodemd/modem.h @@ -91,7 +91,7 @@ enum MODEM_MODE { #define MODEM_DEFAULT_COUNTRY_CODE 0xb5 /* USA */ -#define MODEM_CONFIG_CID 0 +#define MODEM_CONFIG_CID 1 #define MODEM_CONFIG_VOICE 1 #define MODEM_CONFIG_FAX 1 #define MODEM_CONFIG_FAX_CLASS1 1 diff --git a/slmodemd/modem_main.c b/slmodemd/modem_main.c index e924249..0a20e61 100644 --- a/slmodemd/modem_main.c +++ b/slmodemd/modem_main.c @@ -600,8 +600,6 @@ static int modemap_ioctl(struct modem *m, unsigned int cmd, unsigned long arg) if (cmd == MDMCTL_IODELAY && ret > 0) { ret >>= MFMT_SHIFT(m->format); ret += dev->delay; - - } return ret; } @@ -637,10 +635,12 @@ static int socket_start (struct modem *m) char str[16]; snprintf(str,sizeof(str),"%d",sockets[0]); close(sockets[1]); - if(m->hook == MODEM_HOOK_SNOOPING) + if(m->hook == MODEM_HOOK_SNOOPING) { ret = execl(modem_exec,modem_exec,"rr",str,NULL); - else + } + else { ret = execl(modem_exec,modem_exec,m->dial_string,str,NULL); + } if (ret == -1) { ERR("prog: %s\n", modem_exec); perror("execl"); @@ -950,7 +950,7 @@ static int modem_run(struct modem *m, struct device_struct *dev) } if(FD_ISSET(dev->fd, &rset)) { count = device_read(dev,inbuf,sizeof(inbuf)/2); - if((count <= 0) && (m->hook != MODEM_HOOK_SNOOPING)) { + if(count <= 0) { if (errno == ECONNRESET) { DBG("lost connection to child socket process\n"); } else {