⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 provasc.c

📁 VoiFax is a program that manage voice/data/fax modem in the same manner of vgetty and mgetty.VoiFax
💻 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 + -