home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / nsu / root / usr / include / dial.h / dial
Text File  |  1998-08-19  |  6KB  |  172 lines

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. /*        copyright    "%c%"     */
  12.  
  13. #ident    "@(#)dial.h    1.10"
  14.  
  15. #ifndef _DIAL_H
  16. #define _DIAL_H
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.  
  22. #include <sys/termios.h> /* SVR4COMPAT */
  23.  
  24. /* uucico routines need these */
  25. /*#define DIAL */
  26.  
  27. /* The following are no longer used by dial() and may be out of date.    */
  28. /* They are included here only to maintain source compatibility.    */
  29. #define STANDALONE
  30. #define DEVDIR    "/dev/"                /* device path        */
  31. #define LOCK    "/var/spool/uucp/LCK.."        /* lock file semaphore    */
  32. #define DVC_LEN    80    /* max NO of chars in TTY-device path name    */
  33. /* End of unused definitions                        */
  34.  
  35.         /* error mnemonics */
  36.  
  37. #define    TRUE    1
  38. #define FALSE    0
  39. #define INTRPT    (-1)    /* interrupt occured */
  40. #define D_HUNG    (-2)    /* dialer hung (no return from write) */
  41. #define NO_ANS    (-3)    /* no answer (caller script failed) */
  42. #define ILL_BD    (-4)    /* illegal baud-rate */
  43. #define A_PROB    (-5)    /* acu problem (open() failure) */
  44. #define L_PROB    (-6)    /* line problem (open() failure) */
  45. #define NO_Ldv    (-7)    /* can't open Devices file */
  46. #define DV_NT_A    (-8)    /* requested device not available */
  47. #define DV_NT_K    (-9)    /* requested device not known */
  48. #define NO_BD_A    (-10)    /* no device available at requested baud */
  49. #define NO_BD_K    (-11)    /* no device known at requested baud */
  50. #define DV_NT_E (-12)    /* requested speed does not match */
  51. #define BAD_SYS (-13)    /* system not in Systems file */
  52. #define CS_PROB (-14)    /* connection server related error */
  53. #define DV_W_TM    (-15)    /* wrong time to call */
  54.  
  55. /* dialer return codes */
  56. #define D_DIALER_ERR (-16)    /* dialer error */
  57. #define D_LINE_IN_USE (-17)    /* phone line is in use */
  58. #define D_ABORTED (-18)        /* dialer aborted */
  59. #define D_BAD_ARGS (-19)    /* bad arguments passed to the dialer */
  60. #define D_BAD_PHONE_NUM (-20)    /* bad phone number given to the dialer */
  61. #define D_BAD_BAUD_RATE (-21)    /* bad baud rate */
  62. #define D_CANT_OPEN_LINE (-22)    /* dialer cannot open device */
  63. #define D_IOCTL_ERR (-23)    /* dialer got bad ioctl call */
  64. #define D_TIMED_OUT (-24)    /* dialer timed out */
  65. #define    D_NO_DIAL_TONE (-25)    /* no dial tone found */
  66. #define D_PHONE_BUSY (-26)     /* phone line is busy */
  67. #define D_NO_CARRIER (-27)    /* carrier not detected */
  68. #define D_NO_ANSWER (-28)    /* remote system did not answer */
  69. #define D_UNKNOWN (-99)        /* unknown dialer error occured */
  70.  
  71. typedef struct{
  72.     int    version;    /* for future modifications to structure format */
  73.     char    *service;    /* name of service to use(default = "cu") */
  74. #ifndef __cplusplus
  75.     char    *class;        /* "class" of device to use */
  76. #else
  77.     char    *dev_class;    /* "class" of device to use */
  78. #endif
  79.     char    *protocol;    /* returns the protocol string for the connection made */
  80.     char    *reserved1;    /* reserved for future expansion */
  81. } CALL_EXT;
  82.  
  83. typedef struct {
  84.     struct termio *attr;    /* ptr to termio attribute struct */
  85.     int    baud;        /* unused */
  86.     int    speed;        /* 212A modem: low=300, high=1200 */
  87.     char    *line;        /* device name for out-going line */
  88.     char    *telno;        /* ptr to tel-no/system name string */
  89.     int    modem;        /* unused */
  90.     char    *device;    /* pointer to a CALL_EXT structure */
  91.                 /* this was unused previously */
  92.     int    dev_len;    /* unused */
  93. } CALL;
  94.  
  95. /* bit fields for line function */
  96. #define FUNC_NULL    0x00    /* default function only */
  97. #define    FUNC_CHAT    0x80    /* want to run chat scripts */
  98. #define FUNC_TX        0x40    /* want to perform file transfers */
  99. #define FUNC_INBOUND    0x20    /* want to perform inbound setup */
  100.  
  101. /* standard masks for cu, uucico and ct services */
  102. #define F_UUCICO    FUNC_CHAT|FUNC_TX
  103. #define F_CU        FUNC_NULL
  104. #define F_CT        FUNC_NULL 
  105.  
  106. struct calls_s {
  107.     long    flags;        /* for future use */
  108.     struct termios *attr;    /* ptr to termios attribute struct */
  109.     int    speed;        /* eg 9600  */
  110.     char    *device_name;    /* device name for out-going line */
  111.     char    *telno;        /* ptr to tel-no string */
  112.     char    *caller_telno;    /* ptr to tel-no string of caller */
  113.     char    *sysname;    /* ptr to system name */
  114.     unsigned short function; /* bit field for FUNC_ masks */
  115.     char    *class;        /* class field in Devices file */
  116.     char    *protocol;    /* protocol string for the connection made */
  117.     int    pinfo_len;    /* size of pinfo structure (in bytes) */ 
  118.     void    *pinfo;        /* ptr to pinfo structure */
  119. };
  120. typedef struct calls_s calls_t;
  121.  
  122. typedef enum dial_service {
  123.     DIAL_NULL,    /* service not defined */
  124.     DIAL_ACU,    /* data over modem */
  125.     DIAL_ISDN_SYNC,    /* synchronous isdn */
  126.     DIAL_ISDN_ASYNC,/* asynchronous isdn */
  127.     DIAL_TCP,    /* tcp */
  128.     DIAL_DIRECT,    /* direct serial line, dedicated line */
  129.     DIAL_ACU_FAX,    /* fax over modem */
  130.     DIAL_ISDN_FAX,    /* fax over isdn */
  131.     DIAL_ISDN_VOICE, /* voice over isdn */
  132.     DIAL_ISDN_VIDEO    /* video over isdn */
  133. } dial_service_t;
  134.  
  135.  
  136. typedef struct {
  137.     int status_code;    /* dialer status, error mnemonics as above */
  138.     dial_service_t dial_service;    /* dialer service got */
  139. } dial_status_t;
  140.  
  141.  
  142. typedef struct {
  143.     char *caller_id;    /* caller ID */
  144.     dial_service_t type;    /* incoming service requested */
  145.     int    speed;        /* eg 9600  */
  146.     char    *device_name;    /* device name for out-going line */
  147.     int pinfo_len;        /* size of protocol specific data */
  148.     void *pinfo;        /* pointer to protocol specific data */
  149. } service_info_t;
  150.  
  151. #if defined(__STDC__)
  152.  
  153. extern int dial(CALL);
  154. extern int dials(calls_t *i_call, calls_t **r_call, dial_status_t *dstatus);
  155. extern void undial(int);
  156. extern void undials(int fd, calls_t *r_call);
  157.  
  158. #else
  159.  
  160. extern int dial();
  161. extern int dials();
  162. extern void undial();
  163. extern void undials();
  164.  
  165. #endif
  166.  
  167. #ifdef __cplusplus
  168. }
  169. #endif
  170.  
  171. #endif     /* _DIAL_H */
  172.