Подскажите как, а еще лучше ткните в пример, в котором есть как обратиться к agi из любого места программы. И выполнить примерно такую схему
Код: Выделить всё
int main(int argc, char * argv[]){
int ret = EXIT_SUCCESS;
if (argc <= 1){
printf("Не переданы аргументы", 0);
ret = -1;
}
else if (!strcmp(argv[2], "нечто")){
opsos_separator(argc, argv); // Функция которая дергается (она указана в нижней вставке кода)
} else if (in == "eer"){
еще_чего(argc, argv);
}
return (ret);
}
Код: Выделить всё
int opsos_separator( int argc, char *argv[]) {
int ret = EXIT_SUCCESS;
char ind[4],num[8];
int n,i;
AGI_TOOLS agi;
AGI_CMD_RESULT res;
char dest[100];
AGITool_Init(&agi);
AGITool_verbose(&agi, &res, AGITool_ListGetVal(agi.agi_vars, "agi_request"), 0);
sscanf(argv[1],"%3s%7s",(char *)&ind,(char *)&num);
sscanf(argv[1],"%3d%7d",&i,&n);
//printf("string to string parse - %s %s %s\n",argv[1],ind,num);
//printf("string to integer parse - %s %d %d\n",argv[1],i,n);
if (argc <= 1){
AGITool_verbose(&agi, &res, "Не переданы аргументы", 0);
//AGITool_Destroy(&agi);
//ret = -1;
}
else
/*--Определяем оператора связи opsos-separator -- */
switch (i){
case 99:
AGITool_set_variable(&agi, &res, "OPSOS", "MTS");
AGITool_set_variable(&agi, &res, "opsosvoice", "mts");
break;
default:
sscanf(argv[1],"%5s%7s",(char *)&ind,(char *)&num);
sscanf(argv[1],"%5d%7d",&i,&n);
printf("string to integer parse - %s %d %d\n",argv[1],i,n);
if (i == 4122){
AGITool_set_variable(&agi, &res, "OPSOS", "ZHITOMIR");
AGITool_set_variable(&agi, &res, "opsosvoice", "gts");
// break;
}
AGITool_Destroy(&agi);
return ret;
}
Пробовал инициализировать в мэйн, а затем передать типа
Код: Выделить всё
opsos_separator(AGI_TOOLS agi, int argc, char *argv[])
Есть мысли?