root/src/testapp.c

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

DEFINITIONS

This source file includes following definitions.
  1. main

   1 #include "freetdm.h"
   2 #include <stdlib.h>
   3 
   4 int main(int argc, char *argv[])
   5 {
   6         ftdm_global_set_default_logger(FTDM_LOG_LEVEL_DEBUG);
   7         ftdm_channel_t *chan;
   8         unsigned ms = 20;
   9         ftdm_codec_t codec = FTDM_CODEC_SLIN;
  10         unsigned runs = 1;
  11         int spanid, chanid;
  12 
  13 
  14         if (ftdm_global_init() != FTDM_SUCCESS) {
  15                 fprintf(stderr, "Error loading FreeTDM\n");
  16                 exit(-1);
  17         }
  18 
  19         printf("FreeTDM loaded\n");
  20 
  21  top:
  22         //if (ftdm_channel_open_any("wanpipe", 0, FTDM_TOP_DOWN, &chan) == FTDM_SUCCESS) {
  23         if (ftdm_channel_open(1, 1, &chan) == FTDM_SUCCESS) {
  24                 int x = 0;
  25                 spanid = ftdm_channel_get_span_id(chan);
  26                 chanid = ftdm_channel_get_id(chan);
  27                 printf("opened channel %d:%d\n", spanid, chanid);
  28 
  29 #if 1
  30                 if (ftdm_channel_command(chan, FTDM_COMMAND_SET_INTERVAL, &ms) == FTDM_SUCCESS) {
  31                         ms = 0;
  32                         ftdm_channel_command(chan, FTDM_COMMAND_GET_INTERVAL, &ms);
  33                         printf("interval set to %u\n", ms);
  34                 } else {
  35                         printf("set interval failed [%s]\n", ftdm_channel_get_last_error(chan));
  36                 }
  37 #endif
  38                 if (ftdm_channel_command(chan, FTDM_COMMAND_SET_CODEC, &codec) == FTDM_SUCCESS) {
  39                         codec = 1;
  40                         ftdm_channel_command(chan, FTDM_COMMAND_GET_CODEC, &codec);
  41                         printf("codec set to %u\n", codec);
  42                 } else {
  43                         printf("set codec failed [%s]\n", ftdm_channel_get_last_error(chan));
  44                 }
  45 
  46                 for(x = 0; x < 25; x++) {
  47                         unsigned char buf[2048];
  48                         ftdm_size_t len = sizeof(buf);
  49                         ftdm_wait_flag_t flags = FTDM_READ;
  50 
  51                         if (ftdm_channel_wait(chan, &flags, -1) == FTDM_FAIL) {
  52                                 printf("wait FAIL! %u [%s]\n", (unsigned)len, ftdm_channel_get_last_error(chan));
  53                         }
  54                         if (flags & FTDM_READ) {
  55                                 if (ftdm_channel_read(chan, buf, &len) == FTDM_SUCCESS) {
  56                                         printf("READ: %u\n", (unsigned)len); 
  57                                 } else {
  58                                         printf("READ FAIL! %u [%s]\n", (unsigned)len, ftdm_channel_get_last_error(chan));
  59                                         break;
  60                                 }
  61                         } else {
  62                                 printf("wait fail [%s]\n", ftdm_channel_get_last_error(chan));
  63                         }
  64                 }
  65                 ftdm_channel_close(&chan);
  66         } else {
  67                 printf("open fail [%s]\n", ftdm_channel_get_last_error(chan));
  68         }
  69 
  70         if(--runs) {
  71                 goto top;
  72         }
  73 
  74         ftdm_global_destroy();
  75         return 0;
  76 }
  77 
  78 /* For Emacs:
  79  * Local Variables:
  80  * mode:c
  81  * indent-tabs-mode:t
  82  * tab-width:4
  83  * c-basic-offset:4
  84  * End:
  85  * For VIM:
  86  * vim:set softtabstop=4 shiftwidth=4 tabstop=4:
  87  */

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