Q931ie.h

Go to the documentation of this file.
00001 /******************************************************************************
00002 
00003   FileName:         Q931ie.h
00004 
00005   Contents:         Header and definition for the ITU-T Q.931 ie
00006                                         structures and functions
00007 
00008   License/Copyright:
00009 
00010   Copyright (c) 2007, Jan Vidar Berger, Case Labs, Ltd. All rights reserved.
00011   email:janvb@caselaboratories.com  
00012 
00013   Redistribution and use in source and binary forms, with or without 
00014   modification, are permitted provided that the following conditions are 
00015   met:
00016 
00017     * Redistributions of source code must retain the above copyright notice, 
00018           this list of conditions and the following disclaimer.
00019     * Redistributions in binary form must reproduce the above copyright notice, 
00020           this list of conditions and the following disclaimer in the documentation 
00021           and/or other materials provided with the distribution.
00022     * Neither the name of the Case Labs, Ltd nor the names of its contributors 
00023           may be used to endorse or promote products derived from this software 
00024           without specific prior written permission.
00025 
00026   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
00027   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
00028   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
00029   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
00030   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
00031   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
00032   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
00033   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
00034   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
00035   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
00036   POSSIBILITY OF SUCH DAMAGE.
00037 ******************************************************************************/
00038 
00039 #ifndef _Q931IE_NL
00040 #define _Q931IE_NL
00041 
00042 /* Codesets */
00043 /*
00044 typedef enum {
00045 
00046         Q931_CODESET_0                  = ( 0 ),
00047         Q931_CODESET_1                  = ( 1 << 8 ),
00048         Q931_CODESET_2                  = ( 2 << 8 ),
00049         Q931_CODESET_3                  = ( 3 << 8 ),
00050         Q931_CODESET_4                  = ( 4 << 8 ),
00051         Q931_CODESET_5                  = ( 5 << 8 ),
00052         Q931_CODESET_6                  = ( 6 << 8 ),
00053         Q931_CODESET_7                  = ( 7 << 8 )
00054 
00055 } q931_codeset_t;
00056 */
00057 
00058 /*
00059  * Q.931 IEs
00060  */
00061 /* Single octet information elements */
00062 #define Q931ie_SHIFT                            0x90 /* 1001 ----       */
00063 #define Q931ie_MORE_DATA                        0xa0 /* 1010 ----       */
00064 #define Q931ie_SENDING_COMPLETE                 0xa1 /* 1010 0001       */
00065 #define Q931ie_CONGESTION_LEVEL                 0xb0 /* 1011 ----       */
00066 #define Q931ie_REPEAT_INDICATOR                 0xd0 /* 1101 ----       */
00067 
00068 /* Variable Length Information Elements */
00069 #define Q931ie_SEGMENTED_MESSAGE                0x00 /* 0000 0000       */
00070 #define Q931ie_CHANGE_STATUS                    0x01 /* 0000 0001       */
00071 #define Q931ie_BEARER_CAPABILITY                0x04 /* 0000 0100       */
00072 #define Q931ie_CAUSE                            0x08 /* 0000 1000       */
00073 #define Q931ie_CALL_IDENTITY                    0x10 /* 0001 0000       */
00074 #define Q931ie_CALL_STATE                       0x14 /* 0001 0100       */
00075 #define Q931ie_CHANNEL_IDENTIFICATION           0x18 /* 0001 1000       */
00076 #define Q931ie_PROGRESS_INDICATOR               0x1e /* 0001 1110       */
00077 #define Q931ie_NETWORK_SPECIFIC_FACILITIES      0x20 /* 0010 0000       */
00078 #define Q931ie_NOTIFICATION_INDICATOR           0x27 /* 0010 0111       */
00079 #define Q931ie_DISPLAY                          0x28 /* 0010 1000       */
00080 #define Q931ie_DATETIME                         0x29 /* 0010 1001       */
00081 #define Q931ie_KEYPAD_FACILITY                  0x2c /* 0010 1100       */
00082 #define Q931ie_SIGNAL                           0x34 /* 0011 0100       */
00083 #define Q931ie_INFORMATION_RATE                 0x40 /* 0100 0000       */
00084 #define Q931ie_END_TO_END_TRANSIT_DELAY         0x42 /* 0100 0010       */
00085 #define Q931ie_TRANSIT_DELAY_SELECTION_AND_IND  0x43 /* 0100 0011       */
00086 #define Q931ie_PACKED_LAYER_BINARY_PARAMETERS   0x44 /* 0100 0100       */
00087 #define Q931ie_PACKED_LAYER_WINDOW_SIZE         0x45 /* 0100 0101       */
00088 #define Q931ie_PACKED_SIZE                      0x46 /* 0100 0110       */
00089 #define Q931ie_CLOSED_USER_GROUP                0x47 /* 0100 0111       */
00090 #define Q931ie_REVERSE_CHARGING_INDICATION      0x4a /* 0100 1010       */
00091 #define Q931ie_CALLING_PARTY_NUMBER             0x6c /* 0110 1100       */
00092 #define Q931ie_CALLING_PARTY_SUBADDRESS         0x6d /* 0110 1101       */
00093 #define Q931ie_CALLED_PARTY_NUMBER              0x70 /* 0111 0000       */
00094 #define Q931ie_CALLED_PARTY_SUBADDRESS          0x71 /* 0111 0001       */
00095 #define Q931ie_REDIRECTING_NUMBER               0x74 /* 0111 0100       */
00096 #define Q931ie_TRANSIT_NETWORK_SELECTION        0x78 /* 0111 1000       */
00097 #define Q931ie_RESTART_INDICATOR                0x79 /* 0111 1001       */
00098 #define Q931ie_LOW_LAYER_COMPATIBILITY          0x7c /* 0111 1100       */
00099 #define Q931ie_HIGH_LAYER_COMPATIBILITY         0x7d /* 0111 1101       */
00100 #define Q931ie_USER_USER                        0x7e /* 0111 1110       */
00101 #define Q931ie_ESCAPE_FOR_EXTENSION             0x7f /* 0111 1111       */
00102 
00103 /*
00104  * ???
00105  */
00106 #define Q931ie_SWITCHOOK                        0x36 /* 0011 0110 */
00107 /* Variable Length Codeset 6 Information Elements */
00108 #define Q931ie_GENERIC_DIGITS                   0x37 /* 0011 0111 */
00109 
00110 
00111 /*
00112  * Q.931 Annex M / Q.951 / EN 300 097-1
00113  */
00114 #define Q931ie_CONNECTED_NUMBER                 0x4c /* 0100 1100 */
00115 #define Q931ie_CONNECTED_SUBADDRESS             0x4d /* 0100 1101 */
00116 
00117 /*
00118  * Q.932 / EN 300 196-1
00119  */
00120 #define Q932ie_EXTENDED_FACILITY                0x0d /* 0000 1101 */
00121 #define Q932ie_FACILITY                         0x1c /* 0001 1100 */
00122 #define Q932ie_FEATURE_ACTIVATION               0x38 /* 0011 1000 */
00123 #define Q932ie_FEATURE_INDICATION               0x39 /* 0011 1001 */
00124 #define Q932ie_SERVICE_PROFILE_IDENTIFICATION   0x3a /* 0011 1010 */
00125 #define Q932ie_ENDPOINT_IDENTIFIER              0x3b /* 0011 1011 */
00126 
00127 
00128 
00129 typedef struct {
00130         L3UCHAR IEId;
00131         L3UCHAR Size;
00132 } Q931ie_Generic;
00133 
00134 /*****************************************************************************
00135 
00136   Struct:        Q931ie_BearerCap
00137 
00138   Description:   Bearer Capability Information Element.
00139 
00140 *****************************************************************************/
00141 
00142 typedef struct {
00143 
00144     L3UCHAR IEId;                   /* 00000100 for Bearer Capability       */
00145     L3UCHAR Size;                   /* Length of Information Element        */
00146 
00147     L3UCHAR CodStand;               /* Coding Standard.                     */
00148                                     /*  00 - ITU-T                          */
00149                                     /*  01 - ISO/IEC                        */
00150                                     /*  10 - National standard              */
00151                                     /*  11 - Network side spesific          */
00152 
00153     L3UCHAR ITC;                    /* Information Transfer Capability      */
00154                                     /*  00000 - Speech                      */
00155                                     /*  01000 - Unrestricted digital info   */
00156                                     /*  01001 - Restricted digital info     */
00157                                     /*  10000 - 3.1 kHz audio               */
00158                                     /*  10001 - Unrestricted with tones     */
00159                                     /*  11000 - Video                       */
00160 
00161     L3UCHAR TransMode;              /* Transfer Mode.                       */
00162                                     /*  00 - Circuit mode                   */
00163                                     /*  10 - Packet mode                    */
00164 
00165     L3UCHAR ITR;                    /* Information Transfer Rate.           */
00166                                     /*  00000 - Packed mode                 */
00167                                     /*  10000 - 64 kbit/s                   */
00168                                     /*  10001 - 2 x 64 kbit/s               */
00169                                     /*  10011 - 384 kbit/s                  */
00170                                     /*  10101 - 1536 kbit/s                 */
00171                                     /*  10111 - 1920 kbit/s                 */
00172                                     /*  11000 - Multirat (64 kbit/s base)   */
00173 
00174     L3UCHAR RateMul;                /* Rate Multiplier                      */
00175 
00176     L3UCHAR Layer1Ident;                        /* Layer 1 Ident.                                               */
00177 
00178     L3UCHAR UIL1Prot;               /* User Information Layer 1 Protocol    */
00179                                                                         /*      00001 : ITU-T V.110, I.460 and X.30 */
00180                                                                         /*  00010 : G.711 my-law                                */
00181                                                                         /*  00011 : G.711 A-law                                 */
00182                                                                         /*  00100 : G.721                                               */
00183                                     /*  00101 : H.221 and H.242                         */
00184                                                                         /*  00110 : H.223 and H.245                             */
00185                                                                         /*  00111 : Non ITU-T Standard                  */
00186                                                                         /*  01000 : ITU-T V.120                                 */
00187                                                                         /*  01001 : ITU-T X.31 HDLC flag stuff. */
00188 
00189     L3UCHAR SyncAsync;              /* Sync/Async                           */
00190                                                                         /*      0 : Syncronous data                                     */
00191                                                                         /*      1 : Asyncronous data                            */
00192 
00193     L3UCHAR Negot;                                      /* Negotiation                                                  */
00194                                                                         /*      0 : In-band negotiation not possib.     */
00195                                                                         /*  1 : In-band negotiation possible    */
00196 
00197     L3UCHAR UserRate;                           /* User rate                                                    */
00198                                                                         /*      00000 : I.460, V.110, X,30                      */
00199                                                                         /*  00001 : 0.6 kbit/s x.1                              */
00200                                                                         /*  00010 : 1.2 kbit/s                                  */
00201                                                                         /*  00011 : 2.4 kbit/s                                  */
00202                                                                         /*  00100 : 3.6 kbit/s                                  */
00203                                                                         /*  00101 : 4.8 kbit/s                                  */
00204                                                                         /*  00110 : 7.2 kbit/s                                  */
00205                                                                         /*  00111 : 8 kbit/s I.460                              */
00206                                                                         /*  01000 : 9.6 kbit/s                                  */
00207                                                                         /*  01001 : 14.4 kbit/s                                 */
00208                                                                         /*  01010 : 16 kbit/s                                   */
00209                                                                         /*  01011 :     19.2 kbit/s                                     */
00210                                                                         /*  01100 : 32 kbit/s                                   */
00211                                                                         /*  01101 : 38.4 kbit/s                                 */
00212                                                                         /*  01110 : 48 kbit/s                                   */
00213                                                                         /*  01111 : 56 kbit/s                                   */
00214                                                                         /*  10000 : 57.6 kbit/s                                 */
00215                                                                         /*  10010 : 28.8 kbit/s                                 */
00216                                                                         /*  10100 : 24 kbit/s                                   */
00217                                                                         /*  10101 : 0.1345 kbit/s                               */
00218                                                                         /*  10110 : 0.100 kbit/s                                */
00219                                                                         /*  10111 : 0.075/1.2 kbit/s                    */
00220                                                                         /*  11000 : 1.2/0.075/kbit/s                    */
00221                                                                         /*  11001 : 0.050 kbit/s                                */
00222                                                                         /*  11010 : 0.075 kbit/s                                */
00223                                                                         /*  11011 : 0.110 kbit/s                                */
00224                                                                         /*  11100 : 0.150 kbit/s                                */
00225                                                                         /*  11101 : 0.200 kbit/s                                */
00226                                                                         /*  11110 : 0.300 kbit/s                                */
00227                                                                         /*  11111 : 12 kbit/s                                   */
00228 
00229     L3UCHAR InterRate;              /* Intermediate Rate                    */
00230                                                                         /*      00 : Not used                                           */
00231                                                                         /*  01 : 8 kbit/s                                               */
00232                                                                         /*  10 : 16 kbit/s                                              */
00233                                                                         /*  11 : 32 kbit/s                                              */
00234 
00235     L3UCHAR NIConTx;                            /* Network Indepentend Clock on transmit*/
00236                                                                         /*      0 : Not required to send data  clc  */
00237                                                                         /*  1 : Send data w/NIC clc                             */
00238 
00239     L3UCHAR NIConRx;                            /* NIC on Rx                                                    */
00240                                                                         /*      0 : Cannot accept indep. clc            */
00241                                                                         /*  1 : data with indep. clc accepted   */
00242 
00243     L3UCHAR FlowCtlTx;              /* Flow control on Tx                   */
00244                                                                         /*  0 : Send Flow ctrl not required             */
00245                                                                         /*  1 : Send flow ctrl required                 */
00246 
00247     L3UCHAR FlowCtlRx;              /* Flow control on Rx                   */
00248                                                                         /*  0 : cannot use receive flow ctrl    */
00249                                                                         /*  1 : Receive flow ctrl accepted              */
00250     L3UCHAR HDR;                                        /* HDR/No HDR                                                   */
00251     L3UCHAR MultiFrame;             /* Multi frame support                  */
00252                                                                         /*  0 : multiframe not supported                */
00253                                                                         /*  1 : multiframe supported                    */
00254 
00255     L3UCHAR Mode;                                       /* Mode of operation                                    */
00256                                                                         /*      0 : bit transparent mode of operat.     */
00257                                                                         /*      1 : protocol sesitive mode of op.       */
00258 
00259     L3UCHAR LLInegot;                           /* Logical link id negotiation (oct. 5b)*/
00260                                                                         /*  0 : default LLI=256 only                    */
00261                                                                         /*  1 : Full protocol negotiation               */
00262 
00263     L3UCHAR Assignor;               /* Assignor/assignee                    */
00264                                                                         /*  0 : Default Asignee                                 */
00265                                                                         /*  1 : Assignor only                                   */
00266 
00267     L3UCHAR InBandNeg;              /* In-band/out-band negot.              */
00268                                                                         /*  0 : negot done w/ USER INFO mes             */
00269                                                                         /*  1 : negot done in-band w/link zero  */
00270 
00271     L3UCHAR NumStopBits;            /* Number of stop bits                                      */
00272                                                                         /*  00 : Not used                                               */
00273                                                                         /*  01 : 1 bit                                                  */
00274                                                                         /*  10 : 1.5 bits                                               */
00275                                                                         /*  11 : 2 bits                                                 */
00276 
00277     L3UCHAR NumDataBits;            /* Number of data bits.                 */
00278                                                                         /*  00 : not used                                               */
00279                                                                         /*  01 : 5 bits                                                 */
00280                                                                         /*  10 : 7 bits                                                 */
00281                                                                         /*  11 : 8 bits                                                 */
00282 
00283     L3UCHAR Parity;                                     /* Parity Information                                   */
00284                                                                         /*      000 : Odd                                                       */
00285                                                                         /*  010 : Even                                                  */
00286                                                                         /*  011 : None                                                  */
00287                                                                         /*  100 : Forced to 0                                   */
00288                                                                         /*  101 : Forced to 1                                   */
00289 
00290     L3UCHAR DuplexMode;                         /* Mode duplex                                                  */
00291                                                                         /*  0 : Half duplex                                             */
00292                                                                         /*  1 : Full duplex                                             */
00293 
00294     L3UCHAR ModemType;                          /* Modem type, see Q.931 p 64                   */
00295 
00296     L3UCHAR Layer2Ident;                        /* Layer 2 Ident                                                */
00297 
00298     L3UCHAR UIL2Prot;               /* User Information Layer 2 Protocol    */
00299                                                                         /*      00010 : Q.921/I.441                                     */
00300                                                                         /*  00110 : X.25                                                */
00301                                                                         /*  01100 : LAN logical link                    */
00302 
00303     L3UCHAR Layer3Ident;            /* Layer 3 ident.                                           */
00304 
00305     L3UCHAR UIL3Prot;               /* User Information Layer 3 Protocol    */
00306                                                                         /*      00010 : Q.931                                           */
00307                                                                         /*  00110 : X.25                                                */
00308                                                                         /*  01011 : ISO/IEC TR 9577                             */
00309 
00310     L3UCHAR AL3Info1;                           /* additional layer 3 info 1                    */
00311 
00312     L3UCHAR AL3Info2;                           /* additional layer 3 info 2                    */
00313 
00314 } Q931ie_BearerCap;
00315 
00316 /*****************************************************************************
00317 
00318   Struct:       Q931ie_CallID
00319 
00320 
00321 *****************************************************************************/
00322 
00323 typedef struct {
00324 
00325     L3UCHAR IEId;                   /* 00010000                             */
00326     L3UCHAR Size;                   /* Length of Information Element        */
00327     L3UCHAR CallId[1];                          /* Call identity                        */
00328 
00329 } Q931ie_CallID;
00330 
00331 /*****************************************************************************
00332 
00333   Struct:       Q931ie_CallState
00334 
00335 
00336 *****************************************************************************/
00337 
00338 typedef struct {
00339 
00340     L3UCHAR IEId;                   /* 00010100                             */
00341     L3UCHAR Size;                   /* Length of Information Element        */
00342     L3UCHAR CodStand;               /* Coding Standard                      */
00343     L3UCHAR CallState;              /* Call State Value                     */
00344 
00345 } Q931ie_CallState;
00346 
00347 /*****************************************************************************
00348 
00349   Struct:               Q931ie_Cause
00350 
00351   Description:  Cause IE as described in Q.850
00352 
00353 *****************************************************************************/
00354 typedef struct {
00355 
00356     L3UCHAR IEId;                   /* 00010100                             */
00357     L3UCHAR Size;                   /* Length of Information Element        */
00358     L3UCHAR CodStand;               /* Coding Standard                      */
00359         L3UCHAR Location;                               /* Location                                                             */
00360         L3UCHAR Recom;                                  /* Recommendation                                               */
00361         L3UCHAR Value;                                  /* Cause Value                                                  */
00362         L3UCHAR Diag[1];                                /* Optional Diagnostics Field                   */
00363 
00364 } Q931ie_Cause;
00365 
00366 /*****************************************************************************
00367 
00368   Struct:        Q931ie_CalledNum
00369 
00370 *****************************************************************************/
00371 typedef struct {
00372 
00373     L3UCHAR IEId;                   /* 01110000                             */
00374     L3UCHAR Size;                   /* Length of Information Element        */
00375     L3UCHAR TypNum;                 /* Type of Number                       */
00376     L3UCHAR NumPlanID;              /* Numbering plan identification        */
00377     L3UCHAR Digit[1];                           /* Digit (IA5)                          */
00378 
00379 } Q931ie_CalledNum;
00380 
00381 /*****************************************************************************
00382 
00383   Struct:       Q931ie_CalledSub
00384 
00385   Description:  Called party subaddress
00386 
00387 *****************************************************************************/
00388 
00389 typedef struct {
00390 
00391     L3UCHAR IEId;                   /* 01110001                             */
00392     L3UCHAR Size;                   /* Length of Information Element        */
00393     L3UCHAR TypNum;                 /* Type of subaddress                   */
00394     L3UCHAR OddEvenInd;             /* Odd/Even indicator                   */
00395     L3UCHAR Digit[1];                           /* digits                               */
00396 
00397 } Q931ie_CalledSub;
00398 
00399 /*****************************************************************************
00400 
00401   Struct:       Q931ie_CallingNum
00402 
00403   Description:  Calling party number
00404 
00405 *****************************************************************************/
00406 
00407 typedef struct {
00408 
00409     L3UCHAR IEId;                   /* 01101100                             */
00410     L3UCHAR Size;                   /* Length of Information Element        */
00411     L3UCHAR TypNum;                 /* Type of number                       */
00412     L3UCHAR NumPlanID;              /* Numbering plan identification        */
00413     L3UCHAR PresInd;                /* Presentation indicator               */
00414     L3UCHAR ScreenInd;              /* Screening indicator                  */
00415     L3UCHAR Digit[1];                           /* Number digits (IA5)                  */
00416 
00417 } Q931ie_CallingNum;
00418 
00419 /*****************************************************************************
00420 
00421   Struct:        Q931ie_CallingSub
00422 
00423   Description:   Calling party subaddress
00424 
00425 *****************************************************************************/
00426 
00427 typedef struct {
00428 
00429     L3UCHAR IEId;                   /* 01101101                             */
00430     L3UCHAR Size;                   /* Length of Information Element        */
00431     L3UCHAR TypNum;                 /* Type of subaddress                   */
00432     L3UCHAR OddEvenInd;             /* Odd/Even indicator                   */
00433     L3UCHAR Digit[1];                           /* digits                               */
00434 
00435 } Q931ie_CallingSub;
00436 
00437 /*****************************************************************************
00438 
00439   Struct:       Q931ie_ChanID
00440 
00441   Description:  Channel identification
00442 
00443                                 Channel Identificationis one of the IE elements that differ
00444                                 between BRI and PRI. IntType = 1 = BRI and ChanSlot is used
00445                                 for channel number, while InfoChanSel is used for BRI.
00446 
00447                                 ChanID is one of the most important IE as it is passed  
00448                                 either though SETUP or CALL PROCEEDING to select the channel
00449                                 to be used.
00450 
00451 *****************************************************************************/
00452 
00453 typedef struct {
00454 
00455     L3UCHAR IEId;                   /* 00011000                             */
00456     L3UCHAR Size;                   /* Length of Information Element        */
00457     L3UCHAR IntIDPresent;           /* Int. id. present                     */
00458     L3UCHAR IntType;                /* Interface Type                       */
00459                                                                         /*      0 : Basic Interface     (BRI)                   */
00460                                                                         /*  1 : Other interfaces, PRI etc.              */
00461 
00462     L3UCHAR PrefExcl;               /* Pref./Excl.                          */
00463                                                                         /*      0 : Indicated channel is preffered      */
00464                                                                         /*  1 : Exclusive, no other accepted    */
00465 
00466     L3UCHAR DChanInd;               /* D-channel ind.                       */
00467                                                                         /*  0 : chan is NOT D chan.                             */
00468                                                                         /*  1 : chan is D chan                                  */
00469 
00470     L3UCHAR InfoChanSel;            /* Info. channel selection              */
00471                                                                         /*  00 : No channel                                             */
00472                                                                         /*  01 : B1 channel                                             */
00473                                                                         /*  10 : B2 channel                                             */
00474                                                                         /*  11 : Any channel                                    */
00475 
00476     L3UCHAR InterfaceID;            /* Interface identifier                 */
00477 
00478     L3UCHAR CodStand;                   /* Code standard                        */
00479                                                                         /*  00 : ITU-T standardization coding   */
00480                                                                         /*  01 : ISO/IEC Standard                               */
00481                                                                         /*  10 : National Standard                              */
00482                                                                         /*  11 : Standard def. by network.              */
00483 
00484     L3UCHAR NumMap;                 /* Number/Map                           */
00485                                                                         /*  0 : chan is in following octet              */
00486                                                                         /*  1 : chan is indicated by slot map   */
00487 
00488     L3UCHAR ChanMapType;            /* Channel type/Map element type        */
00489                                                                         /*  0011 : B Channel units                              */
00490                                                                         /*  0110 : H0 channel units                             */
00491                                                                         /*  1000 : H11 channel units                    */
00492                                                                         /*  1001 : H12 channel units                    */
00493 
00494     L3UCHAR ChanSlot;               /* Channel number                                           */
00495 
00496 } Q931ie_ChanID;
00497 
00498 /*****************************************************************************
00499 
00500   Struct:       Q931ie_DateTime
00501 
00502   Description:  Date/time
00503 
00504 *****************************************************************************/
00505 
00506 typedef struct {
00507 
00508     L3UCHAR IEId;                   /* 00101001                             */
00509     L3UCHAR Size;                   /* Length of Information Element        */
00510     L3UCHAR Year;                   /* Year                                 */
00511     L3UCHAR Month;                  /* Month                                */
00512     L3UCHAR Day;                    /* Day                                  */
00513     L3UCHAR Hour;                   /* Hour                                 */
00514     L3UCHAR Minute;                 /* Minute                               */
00515     L3UCHAR Second;                 /* Second                               */
00516         L3UCHAR Format;                                 /* Indicate presense of Hour, Min & sec */
00517                                                                         /*      0 : Only Date                                           */
00518                                                                         /*  1 : Hour present                                    */
00519                                                                         /*  2 : Hour and Minute present                 */
00520                                                                         /*  3 : Hour, Minute and Second present */
00521 } Q931ie_DateTime;
00522 
00523 /*****************************************************************************
00524 
00525   Struct:       Q931ie_Display
00526 
00527   Description:  Display
00528 
00529 *****************************************************************************/
00530 
00531 typedef struct {
00532 
00533     L3UCHAR IEId;                   /* 00101000                             */
00534     L3UCHAR Size;                   /* Length of Information Element        */
00535     L3UCHAR Display[1];             /* Display information (IA5)            */
00536 
00537 } Q931ie_Display;
00538 
00539 /*****************************************************************************
00540 
00541   Struct:       Q931ie_HLComp
00542 
00543   Description:  High layer compatibility
00544 
00545 *****************************************************************************/
00546 
00547 typedef struct {
00548 
00549     L3UCHAR IEId;                   /* 01111101                             */
00550     L3UCHAR Size;                   /* Length of Information Element        */
00551     L3UCHAR CodStand;               /* Coding standard                      */
00552     L3UCHAR Interpret;              /* Interpretation                       */
00553     L3UCHAR PresMeth;               /* Presentation methor of prot. profile */
00554     L3UCHAR HLCharID;               /* High layer characteristics id.       */
00555     L3UCHAR EHLCharID;              /* Extended high layer character. id.   */
00556     L3UCHAR EVideoTlfCharID;        /* Ext. videotelephony char. id.        */
00557 
00558 } Q931ie_HLComp;
00559 
00560 /*****************************************************************************
00561 
00562   Struct:       Q931ie_KeypadFac
00563 
00564   Description:  Keypad facility
00565 
00566 *****************************************************************************/
00567 
00568 typedef struct {
00569     L3UCHAR IEId;                   /* 00101100                             */
00570     L3UCHAR Size;                   /* Length of Information Element        */
00571     L3UCHAR KeypadFac[1];           /* dynamic buffer                       */
00572 
00573 } Q931ie_KeypadFac;
00574 
00575 /*****************************************************************************
00576 
00577   Struct:       Q931ie_LLComp
00578 
00579   Description:  Low layer compatibility
00580 
00581 *****************************************************************************/
00582 
00583 typedef struct {
00584 
00585     L3UCHAR IEId;                   /* 01111100                             */
00586     L3UCHAR Size;                   /* Length of Information Element        */
00587     L3UCHAR CodStand;               /* Coding standard                      */
00588                                     /*  00 - ITU-T                          */
00589                                     /*  01 - ISO/IEC                        */
00590                                     /*  10 - National standard              */
00591                                     /*  11 - Network side spesific          */
00592 
00593     L3UCHAR ITransCap;              /* Information transfer capability      */
00594                                     /*  00000 - Speech                      */
00595                                     /*  01000 - Unrestricted digital info   */
00596                                     /*  01001 - Restricted digital info     */
00597                                     /*  10000 - 3.1 kHz audio               */
00598                                     /*  10001 - Unrestricted with tones     */
00599                                     /*  11000 - Video                       */
00600 
00601     L3UCHAR NegotInd;               /* Negot indic.                         */
00602                                                                         /*      0 : Out-band neg. not possib.       */
00603                                                                         /*  1 : Out-band neg. possible          */
00604 
00605     L3UCHAR TransMode;              /* Transfer Mode                        */
00606                                     /*  00 : Circuit Mode                   */
00607                                     /*  10 : Packed Mode                    */
00608 
00609     L3UCHAR InfoRate;               /* Information transfer rate            */
00610                                     /*  00000 - Packed mode                 */
00611                                     /*  10000 - 64 kbit/s                   */
00612                                     /*  10001 - 2 x 64 kbit/s               */
00613                                     /*  10011 - 384 kbit/s                  */
00614                                     /*  10101 - 1536 kbit/s                 */
00615                                     /*  10111 - 1920 kbit/s                 */
00616                                     /*  11000 - Multirat (64 kbit/s base)   */
00617 
00618     L3UCHAR RateMul;                /* Rate multiplier                      */
00619     L3UCHAR Layer1Ident;            /* Layer 1 ident.                       */
00620     L3UCHAR UIL1Prot;               /* User information layer 1 protocol    */
00621                                                                         /*      00001 : ITU-T V.110, I.460 and X.30 */
00622                                                                         /*  00010 : G.711 my-law                                */
00623                                                                         /*  00011 : G.711 A-law                                 */
00624                                                                         /*  00100 : G.721                                               */
00625                                     /*  00101 : H.221 and H.242                         */
00626                                                                         /*  00110 : H.223 and H.245                             */
00627                                                                         /*  00111 : Non ITU-T Standard                  */
00628                                                                         /*  01000 : ITU-T V.120                                 */
00629                                                                         /*  01001 : ITU-T X.31 HDLC flag stuff. */
00630 
00631     L3UCHAR SyncAsync;              /* Synch/asynch                         */
00632                                                                         /*      0 : Syncronous data                                     */
00633                                                                         /*      1 : Asyncronous data                            */
00634 
00635     L3UCHAR Negot;                  /* Negot                                */
00636                                                                         /*      0 : In-band negotiation not possib.     */
00637                                                                         /*  1 : In-band negotiation possible    */
00638 
00639     L3UCHAR UserRate;               /* User rate                            */
00640                                                                         /*      00000 : I.460, V.110, X,30                      */
00641                                                                         /*  00001 : 0.6 kbit/s x.1                              */
00642                                                                         /*  00010 : 1.2 kbit/s                                  */
00643                                                                         /*  00011 : 2.4 kbit/s                                  */
00644                                                                         /*  00100 : 3.6 kbit/s                                  */
00645                                                                         /*  00101 : 4.8 kbit/s                                  */
00646                                                                         /*  00110 : 7.2 kbit/s                                  */
00647                                                                         /*  00111 : 8 kbit/s I.460                              */
00648                                                                         /*  01000 : 9.6 kbit/s                                  */
00649                                                                         /*  01001 : 14.4 kbit/s                                 */
00650                                                                         /*  01010 : 16 kbit/s                                   */
00651                                                                         /*  01011 :     19.2 kbit/s                                     */
00652                                                                         /*  01100 : 32 kbit/s                                   */
00653                                                                         /*  01101 : 38.4 kbit/s                                 */
00654                                                                         /*  01110 : 48 kbit/s                                   */
00655                                                                         /*  01111 : 56 kbit/s                                   */
00656                                                                         /*  10000 : 57.6 kbit/s                                 */
00657                                                                         /*  10010 : 28.8 kbit/s                                 */
00658                                                                         /*  10100 : 24 kbit/s                                   */
00659                                                                         /*  10101 : 0.1345 kbit/s                               */
00660                                                                         /*  10110 : 0.100 kbit/s                                */
00661                                                                         /*  10111 : 0.075/1.2 kbit/s                    */
00662                                                                         /*  11000 : 1.2/0.075/kbit/s                    */
00663                                                                         /*  11001 : 0.050 kbit/s                                */
00664                                                                         /*  11010 : 0.075 kbit/s                                */
00665                                                                         /*  11011 : 0.110 kbit/s                                */
00666                                                                         /*  11100 : 0.150 kbit/s                                */
00667                                                                         /*  11101 : 0.200 kbit/s                                */
00668                                                                         /*  11110 : 0.300 kbit/s                                */
00669                                                                         /*  11111 : 12 kbit/s                                   */
00670 
00671     L3UCHAR InterRate;              /* Intermediate rate                    */
00672                                                                         /*      00 : Not used                                           */
00673                                                                         /*  01 : 8 kbit/s                                               */
00674                                                                         /*  10 : 16 kbit/s                                              */
00675                                                                         /*  11 : 32 kbit/s                                              */
00676 
00677     L3UCHAR NIConTx;                            /* Network Indepentend Clock on transmit*/
00678                                                                         /*      0 : Not required to send data  clc  */
00679                                                                         /*  1 : Send data w/NIC clc                             */
00680 
00681     L3UCHAR NIConRx;                            /* NIC on Rx                                                    */
00682                                                                         /*      0 : Cannot accept indep. clc            */
00683                                                                         /*  1 : data with indep. clc accepted   */
00684 
00685     L3UCHAR FlowCtlTx;              /* Flow control on Tx                   */
00686                                                                         /*  0 : Send Flow ctrl not required             */
00687                                                                         /*  1 : Send flow ctrl required                 */
00688 
00689     L3UCHAR FlowCtlRx;              /* Flow control on Rx                   */
00690                                                                         /*  0 : cannot use receive flow ctrl    */
00691                                                                         /*  1 : Receive flow ctrl accepted              */
00692     L3UCHAR HDR;                                        /* HDR/No HDR                                                   */
00693     L3UCHAR MultiFrame;             /* Multi frame support                  */
00694                                                                         /*  0 : multiframe not supported                */
00695                                                                         /*  1 : multiframe supported                    */
00696 
00697         L3UCHAR ModeL1;                                 /* Mode L1                                                              */
00698                                                                         /*      0 : bit transparent mode of operat.     */
00699                                                                         /*      1 : protocol sesitive mode of op.       */
00700 
00701     L3UCHAR NegotLLI;               /* Negot. LLI                           */
00702                                                                         /*  0 : default LLI=256 only                    */
00703                                                                         /*  1 : Full protocol negotiation               */
00704 
00705     L3UCHAR Assignor;               /* Assignor/Assignor ee                 */
00706                                                                         /*  0 : Default Asignee                                 */
00707                                                                         /*  1 : Assignor only                                   */
00708 
00709     L3UCHAR InBandNeg;              /* In-band negot.                       */
00710                                                                         /*  0 : negot done w/ USER INFO mes             */
00711                                                                         /*  1 : negot done in-band w/link zero  */
00712 
00713     L3UCHAR NumStopBits;            /* Number of stop bits                                      */
00714                                                                         /*  00 : Not used                                               */
00715                                                                         /*  01 : 1 bit                                                  */
00716                                                                         /*  10 : 1.5 bits                                               */
00717                                                                         /*  11 : 2 bits                                                 */
00718 
00719     L3UCHAR NumDataBits;            /* Number of data bits.                 */
00720                                                                         /*  00 : not used                                               */
00721                                                                         /*  01 : 5 bits                                                 */
00722                                                                         /*  10 : 7 bits                                                 */
00723                                                                         /*  11 : 8 bits                                                 */
00724 
00725     L3UCHAR Parity;                                     /* Parity Information                                   */
00726                                                                         /*      000 : Odd                                                       */
00727                                                                         /*  010 : Even                                                  */
00728                                                                         /*  011 : None                                                  */
00729                                                                         /*  100 : Forced to 0                                   */
00730                                                                         /*  101 : Forced to 1                                   */
00731 
00732     L3UCHAR DuplexMode;                         /* Mode duplex                                                  */
00733                                                                         /*  0 : Half duplex                                             */
00734                                                                         /*  1 : Full duplex                                             */
00735 
00736     L3UCHAR ModemType;                          /* Modem type, see Q.931 p 89                   */
00737 
00738     L3UCHAR Layer2Ident;            /* Layer 2 ident.                       */
00739 
00740     L3UCHAR UIL2Prot;               /* User information layer 2 protocol    */
00741                                     /*  00001 : Basic mode ISO 1745         */
00742                                                                         /*      00010 : Q.921/I.441                                     */
00743                                                                         /*  00110 : X.25 single link                    */
00744                                     /*  00111 : X.25 multilink              */
00745                                     /*  01000 : Extended LAPB T.71          */
00746                                     /*  01001 : HDLC ARM                    */
00747                                     /*  01010 : HDLC NRM                    */
00748                                     /*  01011 : HDLC ABM                    */
00749                                                                         /*  01100 : LAN logical link                    */
00750                                     /*  01101 : X.75 SLP                    */
00751                                     /*  01110 : Q.922                       */
00752                                     /*  01111 : Q.922 core aspect           */
00753                                     /*  10000 : User specified              */
00754                                     /*  10001 : ISO/IEC 7776 DTE-DCE        */
00755 
00756     L3UCHAR ModeL2;                 /* Mode                                 */
00757                                                                         /*      01 : Normal Mode of operation           */
00758                                                                         /*      10 : Extended mode of operation         */
00759 
00760     L3UCHAR Q933use;                /* Q.9333 use                           */
00761 
00762     L3UCHAR UsrSpcL2Prot;           /* User specified layer 2 protocol info */
00763 
00764     L3UCHAR WindowSize;             /* Window size (k)                      */
00765 
00766     L3UCHAR Layer3Ident;            /* Layer 3 ident                        */
00767 
00768     L3UCHAR UIL3Prot;                           /* User Information Layer 3 protocol    */
00769                                                                         /*      00010 : Q.931                                           */
00770                                                                         /*  00110 : X.25                                                */
00771                                     /*  00111 : 8208                        */
00772                                     /*  01000 : X.233 ...                   */
00773                                     /*  01001 : 6473                        */
00774                                     /*  01010 : T.70                        */
00775                                                                         /*  01011 : ISO/IEC TR 9577                             */
00776                                     /*  10000 : User specified              */
00777     L3UCHAR OptL3Info;              /* Optional Leyer 3 info                */
00778 
00779     L3UCHAR ModeL3;                 /* Mode of operation                    */
00780                                     /*  01 : Normal packed seq. numbering   */
00781                                     /*  10 : Extended packed seq. numbering */
00782 
00783     L3UCHAR DefPackSize;            /* Default packet size                  */
00784 
00785     L3UCHAR PackWinSize;            /* Packet window size                   */
00786 
00787     L3UCHAR AddL3Info;              /* Additional Layer 3 protocol info     */
00788 
00789 } Q931ie_LLComp;
00790 
00791 /*****************************************************************************
00792 
00793   Struct:       Q931ie_NetFac;
00794 
00795   Description:  Network-specific facilities
00796 
00797 *****************************************************************************/
00798 
00799 typedef struct {
00800 
00801     L3UCHAR IEId;                   /* 00100000                             */
00802     L3UCHAR Size;                   /* Length of Information Element        */
00803     L3UCHAR LenNetID;               /* Length of network facilities id.     */
00804     L3UCHAR TypeNetID;              /* Type of network identification       */
00805     L3UCHAR NetIDPlan;              /* Network identification plan.         */
00806     L3UCHAR NetFac;                 /* Network specific facility spec.      */
00807     L3UCHAR NetID[1];               /* Network id. (IA5)                    */
00808 
00809 } Q931ie_NetFac;
00810 
00811 /*****************************************************************************
00812 
00813   Struct:       Q931ie_NotifInd;
00814 
00815   Description:  Notification Indicator
00816 
00817 *****************************************************************************/
00818 
00819 typedef struct {
00820 
00821     L3UCHAR IEId;                   /* 00100000                             */
00822     L3UCHAR Size;                   /* Length of Information Element        */
00823         L3UCHAR Notification;                   /* Notification descriptor                              */
00824 
00825 } Q931ie_NotifInd;
00826 
00827 /*****************************************************************************
00828 
00829   Struct:       Q931ie_ProgInd
00830 
00831   Description:  Progress indicator
00832 
00833 *****************************************************************************/
00834 
00835 typedef struct {
00836 
00837     L3UCHAR IEId;                   /* 00011110                             */
00838     L3UCHAR Size;                   /* Length of Information Element        */
00839     L3UCHAR CodStand;               /* Coding standard                      */
00840     L3UCHAR Location;               /* Location                             */
00841     L3UCHAR ProgDesc;               /* Progress description                 */
00842 
00843 } Q931ie_ProgInd;
00844 
00845 /*****************************************************************************
00846 
00847   Struct;       Q931ie_Segment
00848 
00849   Description:  Segmented message
00850 
00851 *****************************************************************************/
00852 
00853 typedef struct {
00854 
00855     L3UCHAR IEId;                   /* 00000000                             */
00856     L3UCHAR Size;                   /* Length of Information Element        */
00857     L3UCHAR FSI;                    /* First segment indicator              */
00858     L3UCHAR NumSegRem;              /* Number of segments remaining         */
00859     L3UCHAR SegType;                /* Segment message type                 */
00860 
00861 } Q931ie_Segment;
00862 
00863 
00864 typedef struct {
00865 
00866     L3UCHAR IEId;                   /* 00000000                             */
00867     L3UCHAR Size;                   /* Length of Information Element        */
00868 
00869 } Q931ie_SendComplete;
00870 
00871 /*****************************************************************************
00872 
00873   Struct:       Q931ie_Signal
00874 
00875   Description:  Signal
00876 
00877 *****************************************************************************/
00878 
00879 typedef struct {
00880 
00881     L3UCHAR IEId;                   /* 00000000                             */
00882     L3UCHAR Size;                   /* Length of Information Element        */
00883     L3UCHAR Signal;                 /* Signal value                         */
00884                                     /*  00000000    Dial tone on            */
00885                                     /*  00000001    Ring back tone on       */
00886                                     /*  00000010    Intercept tone on       */
00887                                     /*  00000011    Network congestion on   */
00888                                     /*  00000100    Busy tone on            */
00889                                     /*  00000101    Confirm tone on         */
00890                                     /*  00000110    Answer tone on          */
00891                                     /*  00000111    Call waiting tone       */
00892                                     /*  00001000    Off-hook warning tone   */
00893                                     /*  00001001    Pre-emption tone on     */
00894                                     /*  00111111    Tones off               */
00895                                     /*  01000000    Alerting on - pattern 0 */
00896                                     /*  01000001    Alerting on - pattern 1 */
00897                                     /*  01000010    Alerting on - pattern 2 */
00898                                     /*  01000011    Alerting on - pattern 3 */
00899                                     /*  01000100    Alerting on - pattern 4 */
00900                                     /*  01000101    Alerting on - pattern 5 */
00901                                     /*  01000110    Alerting on - pattern 6 */
00902                                     /*  01000111    Alerting on - pattern 7 */
00903                                     /*  01001111    Alerting off            */
00904 } Q931ie_Signal;
00905 
00906 /*****************************************************************************
00907 
00908   Struct:       Q931ie_TransDelSelInd
00909 
00910   description:  Transit delay selection and indication
00911 
00912 *****************************************************************************/
00913 #ifdef Q931_X25_SUPPORT
00914 typedef struct {
00915 
00916     L3UCHAR IEId;                   /* 00000000                             */
00917     L3UCHAR Size;                   /* Length of Information Element        */
00918     L3ULONG TxDSIValue;             /* Trans. delay sel. & ind. value       */ 
00919 
00920 } Q931ie_TransDelSelInd;
00921 #endif
00922 
00923 /*****************************************************************************
00924 
00925   Struct:       Q931ie_TransNetSel
00926 
00927   Description:  Transit network selection
00928 
00929 *****************************************************************************/
00930 
00931 typedef struct {
00932 
00933     L3UCHAR IEId;                   /* 01111000                             */
00934     L3UCHAR Size;                   /* Length of Information Element        */
00935     L3UCHAR Type;                   /* Type of network identifier           */
00936     L3UCHAR NetIDPlan;              /* Network idetification plan           */
00937     L3UCHAR NetID[1];               /* Network identification(IA5)          */
00938 
00939 } Q931ie_TransNetSel;
00940 
00941 /*****************************************************************************
00942 
00943   Struct:       Q931ie_UserUser
00944 
00945   Description:  User-user
00946 
00947 *****************************************************************************/
00948 
00949 typedef struct {
00950 
00951     L3UCHAR IEId;                   /* 01111110                             */
00952     L3UCHAR Size;                   /* Length of Information Element        */
00953     L3UCHAR ProtDisc;               /* Protocol discriminator               */
00954     L3UCHAR User[1];                /* User information                     */
00955 
00956 } Q931ie_UserUser;
00957 
00958 /*****************************************************************************
00959 
00960   Struct:       Q931ie_ClosedUserGrp
00961 
00962   Description:  Closed user group
00963 
00964 *****************************************************************************/
00965 #ifdef Q931_X25_SUPPORT
00966 typedef struct {
00967 
00968     L3UCHAR IEId;                   /* 01000111                             */
00969     L3UCHAR Size;                   /* Length of Information Element        */
00970     L3UCHAR CUGInd;                 /* CUG indication                       */
00971     L3UCHAR CUG[1];                 /* CUG index code (IA5)                 */
00972 
00973 } Q931ie_ClosedUserGrp;
00974 #endif
00975 
00976 /*****************************************************************************
00977 
00978   Struct:               Q931ie_CongLevel
00979 
00980   Description:  Congestion Level
00981 
00982 *****************************************************************************/
00983 typedef struct {
00984 
00985     L3UCHAR IEId;                   /* 01000111                             */
00986     L3UCHAR Size;                   /* Length of Information Element        */
00987         L3UCHAR CongLevel;                              /* Conguestion Level                                    */
00988 
00989 } Q931ie_CongLevel;
00990 
00991 /*****************************************************************************
00992 
00993   Struct:       Q931ie_EndEndTxDelay
00994 
00995   Description:  End to end transit delay
00996 
00997 *****************************************************************************/
00998 #ifdef Q931_X25_SUPPORT
00999 typedef struct {
01000 
01001     L3UCHAR IEId;                   /* 01000010                             */
01002     L3UCHAR Size;                   /* Length of Information Element        */
01003     L3ULONG CumTxDelay;             /* Cumulative transit delay value       */
01004     L3ULONG ReqTxDelay;             /* Requested end to end transit delay   */
01005     L3ULONG MaxTxDelay;             /* Maximum transit delay                */
01006 
01007 } Q931ie_EndEndTxDelay;
01008 #endif
01009 
01010 /*****************************************************************************
01011 
01012   Struct:       Q931ie_InfoRate
01013 
01014   Description:  Information Rate
01015 
01016 *****************************************************************************/
01017 #ifdef Q931_X25_SUPPORT
01018 typedef struct {
01019 
01020     L3UCHAR IEId;                   /* 01100000                             */
01021     L3UCHAR Size;                   /* Length of Information Element        */
01022     L3UCHAR InInfoRate;             /* Incoming information rate            */
01023     L3UCHAR OutInfoRate;            /* Outgoing information rate            */
01024     L3UCHAR MinInInfoRate;          /* Minimum incoming information rate    */
01025     L3UCHAR MinOutInfoRate;         /* Minimum outgoing information rate    */
01026 
01027 } Q931ie_InfoRate;
01028 #endif
01029 
01030 /*****************************************************************************
01031 
01032   Struct:       Q931ie_PackParam
01033 
01034   Description:  Packed layer binary parameters
01035 
01036 *****************************************************************************/
01037 #ifdef Q931_X25_SUPPORT
01038 typedef struct {
01039 
01040     L3UCHAR IEId;                   /* 01000100                             */
01041     L3UCHAR Size;                   /* Length of Information Element        */
01042     L3UCHAR FastSel;                /* Fast selected                        */
01043     L3UCHAR ExpData;                /* Exp. data                            */
01044     L3UCHAR DelConf;                /* Delivery conf                        */
01045     L3UCHAR Modulus;                /* Modulus                              */
01046 
01047 } Q931ie_PackParam;
01048 #endif
01049 
01050 /*****************************************************************************
01051 
01052   Struct:       Q931ie_PackWinSize
01053 
01054   Description:  Packed window size
01055 
01056 *****************************************************************************/
01057 #ifdef Q931_X25_SUPPORT
01058 typedef struct {
01059 
01060     L3UCHAR IEId;                   /* 01000101                             */
01061     L3UCHAR Size;                   /* Length of Information Element        */
01062     L3UCHAR ForwardValue;           /* Forward value                        */
01063     L3UCHAR BackwardValue;          /* Backward value                       */
01064 
01065 } Q931ie_PackWinSize;
01066 #endif
01067 
01068 /*****************************************************************************
01069 
01070   Struct:       Q931ie_PackSize
01071 
01072   Description:  Packet size
01073 
01074 *****************************************************************************/
01075 #ifdef Q931_X25_SUPPORT
01076 typedef struct {
01077 
01078     L3UCHAR IEId;                   /* 01000110                             */
01079     L3UCHAR Size;                   /* Length of Information Element        */
01080     L3UCHAR ForwardValue;           /* Forward value                        */
01081     L3UCHAR BackwardValue;          /* Backward value                       */
01082 
01083 } Q931ie_PackSize;
01084 #endif
01085 
01086 /*****************************************************************************
01087 
01088   Struct:       Q931ie_RedirNum
01089 
01090   Description:  Redirecting number
01091 
01092 *****************************************************************************/
01093 #ifdef Q931_X25_SUPPORT
01094 typedef struct {
01095 
01096     L3UCHAR IEId;                   /* 01110100                             */
01097     L3UCHAR Size;                   /* Length of Information Element        */
01098     L3UCHAR TypeNum;                /* Type of number                       */
01099     L3UCHAR NumPlanID;              /* Number plan identification           */
01100     L3UCHAR PresInd;                /* Presentation indicator               */
01101     L3UCHAR ScreenInd;              /* Screening indicator                  */
01102     L3UCHAR Reason;                 /* Reason for redirection               */
01103     L3UCHAR Digit[1];               /* Number digits (IA5)                  */
01104 
01105 } Q931ie_RedirNum;
01106 #endif
01107 
01108 typedef struct {
01109 
01110     L3UCHAR IEId;                   /* 01110100                             */
01111     L3UCHAR Size;                   /* Length of Information Element        */
01112     L3UCHAR RepeatInd;              /* 0010 Prioritized list for selecting  */
01113                                     /* one possible.                        */
01114 } Q931ie_RepeatInd;
01115 
01116 typedef struct {
01117 
01118     L3UCHAR IEId;                   /* 01110100                             */
01119     L3UCHAR Size;                   /* Length of Information Element        */
01120     L3UCHAR Spare;                  /* Spare                                */
01121     L3UCHAR Class;                  /* Class                                */
01122                                     /*  000 Indicate channels               */
01123                                     /*  110 Single interface                */
01124                                     /*  111 All interfaces                  */
01125 } Q931ie_RestartInd;
01126 
01127 typedef struct {
01128 
01129     L3UCHAR IEId;                   /* 01110100                             */
01130     L3UCHAR Size;                   /* Length of Information Element        */
01131         L3UCHAR Preference;             /* Preference 0 = reserved, 1 = channel */
01132         L3UCHAR Spare;                  /* Spare                                */
01133     L3UCHAR NewStatus;              /* NewStatus                            */
01134                                     /*  000 In service                      */
01135                                     /*  001 Maintenance                     */
01136                                     /*  010 Out of service                  */
01137 } Q931ie_ChangeStatus;
01138 
01139 /*****************************************************************************
01140 
01141   Struct:       Q931ie_GenericDigits
01142 
01143 
01144 *****************************************************************************/
01145 
01146 typedef struct {
01147 
01148     L3UCHAR IEId;                   /* 00110111                             */
01149     L3UCHAR Size;                   /* Length of Information Element        */
01150     L3UCHAR Type;                                       /* Type of number                       */
01151     L3UCHAR Encoding;                           /* Encoding of number                   */
01152     L3UCHAR Digit[1];                           /* Number digits (IA5)                  */
01153 
01154 } Q931ie_GenericDigits;
01155 
01156 
01157 /*****************************************************************************
01158 
01159   Q.931 Information Element Pack/Unpack functions. Implemented in Q931ie.c
01160 
01161 *****************************************************************************/
01162 q931pie_func_t Q931Pie_ChangeStatus;
01163 q931pie_func_t Q931Pie_BearerCap;
01164 q931pie_func_t Q931Pie_ChanID;
01165 q931pie_func_t Q931Pie_ProgInd;
01166 q931pie_func_t Q931Pie_Display;
01167 q931pie_func_t Q931Pie_Signal;
01168 q931pie_func_t Q931Pie_HLComp;
01169 q931pie_func_t Q931Pie_Segment;
01170 q931pie_func_t Q931Pie_DateTime;
01171 q931pie_func_t Q931Pie_Cause;
01172 q931pie_func_t Q931Pie_SendComplete;
01173 q931pie_func_t Q931Pie_KeypadFac;
01174 q931pie_func_t Q931Pie_NotifInd;
01175 q931pie_func_t Q931Pie_CallID;
01176 q931pie_func_t Q931Pie_RepeatInd;
01177 q931pie_func_t Q931Pie_NetFac;
01178 q931pie_func_t Q931Pie_CallingNum;
01179 q931pie_func_t Q931Pie_CallingSub;
01180 q931pie_func_t Q931Pie_CalledNum;
01181 q931pie_func_t Q931Pie_CalledSub;
01182 q931pie_func_t Q931Pie_CalledNum;
01183 q931pie_func_t Q931Pie_TransNetSel;
01184 q931pie_func_t Q931Pie_LLComp;
01185 q931pie_func_t Q931Pie_CallState;
01186 q931pie_func_t Q931Pie_RestartInd;
01187 q931pie_func_t Q931Pie_UserUser;
01188 
01189 q931pie_func_t Q931Pie_GenericDigits;
01190 
01191 L3USHORT Q931Uie_CRV(Q931_TrunkInfo_t *pTrunk,L3UCHAR * IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff);
01192 
01193 q931uie_func_t Q931Uie_ChangeStatus;
01194 q931uie_func_t Q931Uie_BearerCap;
01195 q931uie_func_t Q931Uie_ChanID;
01196 q931uie_func_t Q931Uie_ProgInd;
01197 q931uie_func_t Q931Uie_Display;
01198 q931uie_func_t Q931Uie_Signal;
01199 q931uie_func_t Q931Uie_HLComp;
01200 q931uie_func_t Q931Uie_Segment;
01201 q931uie_func_t Q931Uie_DateTime;
01202 q931uie_func_t Q931Uie_Cause;
01203 q931uie_func_t Q931Uie_SendComplete;
01204 q931uie_func_t Q931Uie_KeypadFac;
01205 q931uie_func_t Q931Uie_NotifInd;
01206 q931uie_func_t Q931Uie_CallID;
01207 q931uie_func_t Q931Uie_RepeatInd;
01208 q931uie_func_t Q931Uie_NetFac;
01209 q931uie_func_t Q931Uie_CallingNum;
01210 q931uie_func_t Q931Uie_CallingSub;
01211 q931uie_func_t Q931Uie_CalledNum;
01212 q931uie_func_t Q931Uie_CalledSub;
01213 q931uie_func_t Q931Uie_TransNetSel;
01214 q931uie_func_t Q931Uie_LLComp;
01215 q931uie_func_t Q931Uie_CallState;
01216 q931uie_func_t Q931Uie_RestartInd;
01217 q931uie_func_t Q931Uie_UserUser;
01218 
01219 q931uie_func_t Q931Uie_GenericDigits;
01220 
01221 
01222 L3INT Q931ReadExt(L3UCHAR * IBuf, L3INT Off);
01223 L3INT Q931Uie_CongLevel(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
01224 L3INT Q931Pie_CongLevel(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
01225 L3INT Q931Uie_RevChargeInd(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
01226 L3INT Q931Pie_RevChargeInd(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
01227 
01228 L3INT Q931Uie_Generic(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff);
01229 L3INT Q931Pie_Generic(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
01230 
01231 #endif /* _Q931IE_NL */

Generated on Tue Apr 7 17:38:19 2009 for mod_ssh by  doxygen 1.5.4