root/src/testr2.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. FIO_SIGNAL_CB_FUNCTION
  2. handle_SIGINT
  3. main

   1 #include "freetdm.h"
   2 #include <signal.h>
   3 #include <stdlib.h>
   4 
   5 static int R = 0;
   6 static ftdm_mutex_t *mutex = NULL;
   7 
   8 static FIO_SIGNAL_CB_FUNCTION(on_r2_signal)
   9 {
  10         int chanid = ftdm_channel_get_ph_id(sigmsg->channel);
  11     ftdm_log(FTDM_LOG_DEBUG, "Got R2 channel sig [%s] in channel\n", ftdm_signal_event2str(sigmsg->event_id), chanid);
  12     return FTDM_SUCCESS;
  13 }
  14 
  15 static void handle_SIGINT(int sig)
  16 {
  17         ftdm_mutex_lock(mutex);
  18         R = 0;
  19         ftdm_mutex_unlock(mutex);
  20         return;
  21 }
  22 
  23 int main(int argc, char *argv[])
  24 {
  25         ftdm_span_t *span;
  26         ftdm_mutex_create(&mutex);
  27 
  28         ftdm_global_set_default_logger(FTDM_LOG_LEVEL_DEBUG);
  29 
  30         if (argc < 2) {
  31                 printf("umm no\n");
  32                 exit(-1);
  33         }
  34 
  35         if (ftdm_global_init() != FTDM_SUCCESS) {
  36                 fprintf(stderr, "Error loading FreeTDM\n");
  37                 exit(-1);
  38         }
  39 
  40         printf("FreeTDM loaded\n");
  41 
  42         if (ftdm_span_find(atoi(argv[1]), &span) != FTDM_SUCCESS) {
  43                 fprintf(stderr, "Error finding FreeTDM span\n");
  44                 goto done;
  45         }
  46         
  47 
  48 
  49         if (ftdm_configure_span(span, "r2", on_r2_signal,
  50                                                    "variant", "mx",
  51                                                    "max_ani", 10,
  52                                                    "max_dnis", 4,
  53                                                    "logging", "all",
  54                                                    FTDM_TAG_END) == FTDM_SUCCESS) {
  55                                                    
  56 
  57                 ftdm_span_start(span);
  58         } else {
  59                 fprintf(stderr, "Error starting R2 span\n");
  60                 goto done;
  61         }
  62 
  63         signal(SIGINT, handle_SIGINT);
  64         ftdm_mutex_lock(mutex);
  65         R = 1;
  66         ftdm_mutex_unlock(mutex);
  67         while(R) {
  68                 ftdm_sleep(1 * 1000);
  69         }
  70 
  71  done:
  72 
  73         ftdm_global_destroy();
  74 
  75         return 1;
  76 
  77 }
  78 
  79 /* For Emacs:
  80  * Local Variables:
  81  * mode:c
  82  * indent-tabs-mode:t
  83  * tab-width:4
  84  * c-basic-offset:4
  85  * End:
  86  * For VIM:
  87  * vim:set softtabstop=4 shiftwidth=4 tabstop=4:
  88  */

/* [<][>][^][v][top][bottom][index][help] */