Listing 2. Ringing the Phone

#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <linux/telephony.h>
#include <linux/ixjuser.h>


int
main(int argc, char *argv[])
{
  int ixj=-1;
  char pname[80], maxrings;

  if(argc >= 2)
    sprintf(pname, "%s", argv[1]);
  else
    sprintf(pname, "/dev/phone0");

  printf("Opening %s\n",pname);
  ixj = open(pname, O_RDWR);

  if(ixj<1)
  {
    printf("Error opening device %s\n",pname);
    perror("open ");
    exit(-1);
  }

  if(argc >= 3)
    maxrings = atoi(argv[2]);
  else
    maxrings = 2;

  ioctl(ixj, PHONE_MAXRINGS, maxrings);

  if(!ioctl(ixj, PHONE_RING))
  {
    printf("No Answer\n");
  }
  else
  {
  printf("Phone answered\n");
  }
  close(ixj);
}