Version 0.1.0 from FTP
authorMark Spencer <markster@digium.com>
Mon, 18 Oct 1999 04:50:40 +0000 (04:50 +0000)
committerMark Spencer <markster@digium.com>
Mon, 18 Oct 1999 04:50:40 +0000 (04:50 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/adtranvofr.h [new file with mode: 0755]

diff --git a/channels/adtranvofr.h b/channels/adtranvofr.h
new file mode 100755 (executable)
index 0000000..090e089
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Asterisk -- A telephony toolkit for Linux.
+ *
+ * Implementation of Voice over Frame Relay, Adtran Style
+ * 
+ * Copyright (C) 1999, Adtran Inc. and Linux Support Services, LLC
+ *
+ * Mark Spencer <markster@linux-support.net>
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License
+ */
+
+#ifndef _ADTRANVOFR_H
+#define _ADTRANVOFR_H
+
+#define VOFR_CONTROL_ADTRAN            0x0
+#define VOFR_CONTROL_VOICE             0x1
+#define VOFR_CONTROL_RFC1490           0x3
+
+#define VOFR_TYPE_SIGNAL               0x0
+#define VOFR_TYPE_VOICE                        0x1
+#define VOFR_TYPE_ANSWER               0x2
+#define VOFR_TYPE_FAX                  0x3
+#define VOFR_TYPE_DTMF                 0x4
+
+#define VOFR_CARD_TYPE_UNSPEC          0x0
+#define VOFR_CARD_TYPE_FXS             0x1
+#define VOFR_CARD_TYPE_FXO             0x2
+#define VOFR_CARD_TYPE_ENM             0x3
+#define VOFR_CARD_TYPE_VCOM            0x4
+#define VOFR_CARD_TYPE_ASTERISK                0xf
+
+#define VOFR_MODULATION_SINGLE         0x0
+#define VOFR_MODULATION_V21            0x1
+#define VOFR_MODULATION_V27ter_2       0x2
+#define VOFR_MODULATION_V27ter_4       0x3
+#define VOFR_MODULATION_V29_7          0x4
+#define VOFR_MODULATION_V29_9          0x5
+#define VOFR_MODULATION_V33_12         0x6
+#define VOFR_MODULATION_V33_14         0x7
+
+#define VOFR_ROUTE_NONE                        0x0
+#define VOFR_ROUTE_LOCAL               0x1
+#define VOFR_ROUTE_VOICE               0x2
+#define VOFR_ROUTE_DTE1                        0x4
+#define VOFR_ROUTE_DTE2                        0x8
+#define VOFR_ROUTE_DTE                 0xC
+
+#define VOFR_MASK_EI                   0x80
+#define VOFR_MASK_LI                   0x40
+#define VOFR_MASK_CONTROL              0x3F
+
+#define VOFR_SIGNAL_ON_HOOK            0x00
+#define VOFR_SIGNAL_OFF_HOOK           0x01
+#define VOFR_SIGNAL_RING               0x40
+#define VOFR_SIGNAL_SWITCHED_DIAL      0x08
+#define VOFR_SIGNAL_BUSY               0x02
+#define VOFR_SIGNAL_TRUNK_BUSY         0x04
+#define VOFR_SIGNAL_UNKNOWN            0x10
+#define VOFR_SIGNAL_OFFHOOK            0x81
+
+#define VOFR_TRACE_SIGNAL              1 << 0
+#define VOFR_TRACE_VOICE               1 << 1
+
+#define VOFR_MAX_PKT_SIZE              1500
+
+/*
+ * Wire level protocol 
+ */
+
+struct vofr_hdr {
+       u_int8_t control;               /* Also contains unused EI and LI bits */
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+       u_int8_t dtype:4;               /* Data type */
+       u_int8_t ctag:4;                /* Connect tag */
+       u_int8_t dlcih:4;               /* Hi 2 bits of DLCI x-ref */
+       u_int8_t vflags:4;              /* Voice Routing Flags */
+       u_int8_t dlcil;                 /* Lo 8 bits of DLCI x-ref */
+       u_int8_t cid;                   /* Channel ID */
+       u_int8_t mod:4;                 /* Modulation */
+       u_int8_t remid:4;               /* Remote ID */
+#elif __BYTE__ORDER == __BIG_ENDIAN
+       u_int8_t ctag:4;                /* Connect tag */
+       u_int8_t dtype:4;               /* Data type */
+       u_int8_t vflags:4;              /* Voice Routing Flags */
+       u_int8_t dlcih:4;               /* Hi 2 bits of DLCI x-ref */
+       u_int8_t dlcil;                 /* Lo 8 bits of DLCI x-ref */
+       u_int8_t cid;                   /* Channel ID */
+       u_int8_t remid:4;               /* Remote ID or Relay CMD*/
+       u_int8_t mod:4;                 /* Modulation */
+#else
+#error "Please fix <bytesex.h>"
+#endif
+#ifdef __GNUC__
+       u_int8_t data[0];               /* Data */
+#endif
+};
+
+#define VOFR_HDR_SIZE 6
+
+/* Number of milliseconds to fudge -- experimentally derived */
+#define VOFR_FUDGE 2
+
+#endif