busytone.c
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:1k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. #include <sys/types.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <strings.h>
  5. #include <sys/ioctl.h>
  6. #include <unistd.h>
  7. #include <fcntl.h>
  8. #include "ixjuser.h"
  9. int main(int argc, char *argv[])
  10. {
  11.   int ixj1, hook, m_hook, digit, state, cnt;
  12.   char pname1[80], pname2[80];
  13.   sprintf(pname1, "/dev/ixj%s", argv[1]);
  14.   ixj1 = open(pname1, O_RDWR);
  15.   if(ixj1 <= 0)
  16.   {
  17.     printf("Open failed %sn", pname1);
  18.     exit(0);
  19.   }  
  20.   hook = m_hook = ioctl(ixj1, IXJCTL_HOOKSTATE);
  21.   printf("hook state %dn", hook);
  22. //  if(!ioctl(ixj1, IXJCTL_RING))
  23. //    exit(0);
  24.   hook = ioctl(ixj1, IXJCTL_HOOKSTATE);
  25.   while(!hook)
  26.   {
  27.     hook = ioctl(ixj1, IXJCTL_HOOKSTATE);
  28.   }
  29.   printf("hook state %dn", hook);
  30.   fflush(stdout);
  31.   ioctl(ixj1, IXJCTL_AEC_STOP);
  32.   printf("Starting busy signaln");
  33.   ioctl(ixj1, IXJCTL_BUSY);
  34.   getchar();
  35.   printf("Stopping busy signaln");
  36.   ioctl(ixj1, IXJCTL_CPT_STOP);
  37.   getchar();
  38.   printf("Starting dial tonen");
  39.   ioctl(ixj1, IXJCTL_DIALTONE);
  40.   getchar();
  41.   printf("Stopping dial tonen");
  42.   ioctl(ixj1, IXJCTL_CPT_STOP);
  43.   getchar();
  44.   printf("Starting ringback signaln");
  45.   ioctl(ixj1, IXJCTL_RINGBACK);
  46.   getchar();
  47.   printf("Stopping ringback signaln");
  48.   ioctl(ixj1, IXJCTL_CPT_STOP);
  49.   getchar();
  50.   close(ixj1);
  51. }