intercom.c

来自「mgcp协议源代码。支持多种编码:g711」· C语言 代码 · 共 64 行

C
64
字号
#include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <strings.h>#include <sys/ioctl.h>#include <unistd.h>#include <fcntl.h>#include "ixjuser.h"int main(int argc, char *argv[]){  int ixj1,ixj2;  int b1, b2, codec;  char pname1[80], pname2[80];  sprintf(pname1, "/dev/ixj%s", argv[1]);  sprintf(pname2, "/dev/ixj%s", argv[2]);  codec = atoi(argv[3]);  ixj1 = open(pname1, O_RDWR);  ixj2 = open(pname2, O_RDWR);  b1 = atoi(argv[1]);  b2 = atoi(argv[2]);  if(ixj1 <= 0)  {    printf("Open failed %s\n", pname1);    exit(0);  }    if(ixj2 <= 0)  {    printf("Open failed %s\n", pname2);    exit(0);  }    if(!ioctl(ixj1, IXJCTL_RING))  {    exit(0);  }  if(!ioctl(ixj2, IXJCTL_RING))  {    exit(0);  }  ioctl(ixj1, IXJCTL_REC_CODEC, codec);  ioctl(ixj1, IXJCTL_PLAY_CODEC, codec);  ioctl(ixj2, IXJCTL_REC_CODEC, codec);  ioctl(ixj2, IXJCTL_PLAY_CODEC, codec);  if(!ioctl(ixj1, IXJCTL_INTERCOM_START, b2))  {    printf("Intercom mode on %d to %d\n", b1, b2);    while(ioctl(ixj1, IXJCTL_HOOKSTATE) && ioctl(ixj2, IXJCTL_HOOKSTATE)){}//    getchar();    ioctl(ixj1,  IXJCTL_INTERCOM_STOP, b2);    printf("Intercom mode off\n");  }  else  {    printf("Intercom Failure\n");  }  close(ixj1);  close(ixj2);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?