📄 provasc.c
字号:
/* provasc, test program for voice scripting interface * Copyright (C) 2004 Simone Freddio & Andrea Emanuelli * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include "scriptcntl.h"#include "scprot.h"#include "libevent.h"#include "util.h"void init_script_handlers(void);int voice_handler_play (int argc, char **argv);int voice_handler_get_tty (int argc, char **argv);int voice_handler_get_modem (int argc, char **argv);int voice_handler_autostop (int argc, char **argv);int voice_handler_beep (int argc, char **argv);int voice_handler_dial (int argc, char **argv);int voice_handler_device (int argc, char **argv);int voice_handler_record (int argc, char **argv);int voice_handler_wait (int argc, char **argv);int voice_handler_stop (int argc, char **argv);int voice_handler_dtmf (int argc, char **argv);int voice_handler_quote (int argc, char **argv);int voice_handler_getfax (int argc, char **argv);int voice_handler_sendfax (int argc, char **argv);int voice_handler_play(int argc, char **argv){ char module[] = "voice_play_hander"; argc = argc; argv = argv; TRC(TRC_INFO, module, "Called play_hander!"); TRC(TRC_INFO, module, argv[1]); /* libvoice_play(argv[1]);*/ sp_send_playing(); sp_send_ready(); return true;}int voice_handler_get_tty(int argc, char **argv){ argc = argc; argv = argv; sp_send_tty("DUMMY"); sp_send_ready(); return true;}int voice_handler_get_modem(int argc, char **argv){ argc = argc; argv = argv; sp_send_modem("DUMMY"); /* TODO *//* sc_send_modem(libvoice_getmodem());*/ sp_send_ready(); return true;}int voice_handler_autostop(int argc, char **argv){ argc = argc; argv = argv; /* TODO */ /*libvoice_autostop(atoi(argv[1]));*/ sp_send_ready(); return true;}int voice_handler_beep(int argc, char **argv){ argc = argc; argv = argv; /* TODO */ sp_send_ready(); return true;}int voice_handler_dial(int argc, char **argv){ argc = argc; argv = argv; /* TODO */ /* libvoice_dial(argv[1]); */ sp_send_ready(); return true;}int voice_handler_device(int argc, char **argv){ argc = argc; argv = argv; /* TODO */ /* libvoice_setdevice(atoi(argv[1])); */ sp_send_ready(); return true;}int voice_handler_record(int argc, char **argv){ argc = argc; argv = argv; /* TODO *//* libvoice_record(argv[1]);*/ sp_send_ready(); return true;}int voice_handler_wait(int argc, char **argv){ argc = argc; argv = argv; /* TODO *//* libvoice_wait(atoi(argv[1]));*/ sp_send_ready(); return true;}int voice_handler_stop(int argc, char **argv){ argc = argc; argv = argv; /* TODO *//* libvoice_stop();*/ sp_send_ready(); return true;}int voice_handler_dtmf(int argc, char **argv){ argc = argc; argv = argv; /* TODO *//* libvoice_senddtmf(atoi(argv[1]));*/ sp_send_ready(); return true;}int voice_handler_quote(int argc, char **argv){ argc = argc; argv = argv; /* TODO *//* libvoice_quote(argv[1], NULL ?!?);*/ sp_send_ready(); return true;}int voice_handler_getfax(int argc, char **argv){ argc = argc; argv = argv; /* TODO *//* libvoice_getfax(NULL ?!?);*/ sp_send_ready(); return true;}int voice_handler_sendfax(int argc, char **argv){ argc = argc; argv = argv; /* TODO *//* libvoice_sendfax(NULL ?!?);*/ sp_send_ready(); return true;}void init_script_handlers(void){ libevent_add_handler(voice_handler_play, SP_EVENT_PLAY); libevent_add_handler(voice_handler_get_tty, SP_EVENT_GET_TTY); libevent_add_handler(voice_handler_get_modem, SP_EVENT_GET_MODEM); libevent_add_handler(voice_handler_autostop, SP_EVENT_AUTOSTOP); libevent_add_handler(voice_handler_beep, SP_EVENT_BEEP); libevent_add_handler(voice_handler_dial, SP_EVENT_DIAL); libevent_add_handler(voice_handler_device, SP_EVENT_DEVICE); libevent_add_handler(voice_handler_record, SP_EVENT_RECORD); libevent_add_handler(voice_handler_wait, SP_EVENT_WAIT); libevent_add_handler(voice_handler_stop, SP_EVENT_STOP); libevent_add_handler(voice_handler_dtmf, SP_EVENT_DTMF); libevent_add_handler(voice_handler_quote, SP_EVENT_QUOTE); libevent_add_handler(voice_handler_getfax, SP_EVENT_GETFAX); libevent_add_handler(voice_handler_sendfax, SP_EVENT_SENDFAX);}int main(int argc, char **argv){ char module[] = "provasc"; int ext = false; int wd = 0; if (argc == 1) { printf("Please specify tty\n"); exit(0); } if (!libvoice_init(argv[1])) { TRC(TRC_ERR, module, "libvoice_init error"); exit(1); } init_script_handlers(); wd_init(); wd = wd_create(5, "Prova timeout"); TRC(TRC_INFO, module, "Starting script..."); if (!sp_init(argc == 2 ? "./demo.sh" : argv[2])) { TRC(TRC_ERR, module, "Error on sp_init"); exit(1); } while (ext == false) { usleep(10000); switch (sp_handle_messages()) { case SP_HM_OK: case SP_HM_NONE: break; case SP_HM_CLOSED: TRC(TRC_INFO, module, "Child said goodbye..."); ext = true; break; case SP_HM_ERROR: TRC(TRC_ERR, module, "vcprot_handle_messages error, killing child."); exit(1); break; } /* do something else... */ } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -