libisdn
Q932.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002 
00003   FileName:             Q932.h
00004 
00005   Contents:             Header w/structs for Q932 Suplementary Services.
00006 
00007   NB:                   Do NOT include this header directly, include Q931.h
00008 
00009   License/Copyright:
00010 
00011   Copyright (c) 2007, Jan Vidar Berger, Case Labs, Ltd. All rights reserved.
00012   email:janvb@caselaboratories.com
00013 
00014   Redistribution and use in source and binary forms, with or without
00015   modification, are permitted provided that the following conditions are
00016   met:
00017 
00018     * Redistributions of source code must retain the above copyright notice,
00019           this list of conditions and the following disclaimer.
00020     * Redistributions in binary form must reproduce the above copyright notice,
00021           this list of conditions and the following disclaimer in the documentation
00022           and/or other materials provided with the distribution.
00023     * Neither the name of the Case Labs, Ltd nor the names of its contributors
00024           may be used to endorse or promote products derived from this software
00025           without specific prior written permission.
00026 
00027   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00028   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00029   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00030   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00031   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00032   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00033   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00034   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00035   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00036   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00037   POSSIBILITY OF SUCH DAMAGE.
00038 *****************************************************************************/
00039 
00040 /*****************************************************************************
00041   Q.932 Additional Message codes
00042 *****************************************************************************/
00043 
00044 #define Q932mes_HOLD                 0x24 /* 0010 0100                      */
00045 #define Q932mes_HOLD_ACKNOWLEDGE     0x28 /* 0010 1000                      */
00046 #define Q932mes_HOLD_REJECT          0x30 /* 0011 0000                      */
00047 #define Q932mes_RETRIEVE             0x31 /* 0011 0001                      */
00048 #define Q932mes_RETRIEVE_ACKNOWLEDGE 0x33 /* 0011 0011                      */
00049 #define Q932mes_RETRIEVE_REJECT      0x37 /* 0011 0111                      */
00050 #define Q932mes_FACILITY             0x62 /* 0110 0010                      */
00051 #define Q932mes_REGISTER             0x64 /* 0110 0100                      */
00052 
00053 /*****************************************************************************
00054   Q.932 Additional EI Codes
00055 *****************************************************************************/
00056 #define Q932ie_FACILITY              0x1c /* 0001 1100                      */
00057 
00058 /*****************************************************************************
00059   Function Prototypes.
00060 *****************************************************************************/
00061 L3INT Q932ProcFacilityTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00062 L3INT Q932ProcHoldTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00063 L3INT Q932ProcHoldAckTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00064 L3INT Q932ProcHoldRejectTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00065 L3INT Q932ProcRegisterTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00066 L3INT Q932ProcRetrieveTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00067 L3INT Q932ProcRetrieveAckTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00068 L3INT Q932ProcRetrieveRejectTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00069 
00070 L3INT Q932ProcFacilityNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00071 L3INT Q932ProcHoldNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00072 L3INT Q932ProcHoldAckNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00073 L3INT Q932ProcHoldRejectNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00074 L3INT Q932ProcRegisterNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00075 L3INT Q932ProcRetrieveNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00076 L3INT Q932ProcRetrieveAckNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00077 L3INT Q932ProcRetrieveRejectNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from);
00078 
00079 L3INT Q932Pmes_Facility(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
00080 L3INT Q932Pmes_Hold(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
00081 L3INT Q932Pmes_HoldAck(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
00082 L3INT Q932Pmes_HoldReject(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
00083 L3INT Q932Pmes_Register(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
00084 L3INT Q932Pmes_Retrieve(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
00085 L3INT Q932Pmes_RetrieveAck(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
00086 L3INT Q932Pmes_RetrieveReject(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
00087 
00088 L3INT Q932Umes_Facility(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic * OBuf, L3INT I, L3INT O, struct Q931MesgErrors *Errs);
00089 L3INT Q932Umes_Hold(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic * OBuf, L3INT I, L3INT O, struct Q931MesgErrors *Errs);
00090 L3INT Q932Umes_HoldAck(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic * OBuf, L3INT I, L3INT O, struct Q931MesgErrors *Errs);
00091 L3INT Q932Umes_HoldReject(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic * OBuf, L3INT I, L3INT O, struct Q931MesgErrors *Errs);
00092 L3INT Q932Umes_Register(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic * OBuf, L3INT I, L3INT O, struct Q931MesgErrors *Errs);
00093 L3INT Q932Umes_Retrieve(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic * OBuf, L3INT I, L3INT O, struct Q931MesgErrors *Errs);
00094 L3INT Q932Umes_RetrieveAck(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic * OBuf, L3INT I, L3INT O, struct Q931MesgErrors *Errs);
00095 L3INT Q932Umes_RetrieveReject(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic * OBuf, L3INT I, L3INT O, struct Q931MesgErrors *Errs);