diff --git a/libpri.h b/libpri.h index 74ffe81..06b306c 100644 --- a/libpri.h +++ b/libpri.h @@ -142,10 +142,10 @@ /* Causes for disconnection */ #define PRI_CAUSE_UNALLOCATED 1 -#define PRI_CAUSE_NO_ROUTE_TRANSIT_NET 2 +#define PRI_CAUSE_NO_ROUTE_TRANSIT_NET 2 /* !Q.SIG */ #define PRI_CAUSE_NO_ROUTE_DESTINATION 3 #define PRI_CAUSE_CHANNEL_UNACCEPTABLE 6 -#define PRI_CAUSE_CALL_AWARDED_DELIVERED 7 +#define PRI_CAUSE_CALL_AWARDED_DELIVERED 7 /* !Q.SIG */ #define PRI_CAUSE_NORMAL_CLEARING 16 #define PRI_CAUSE_USER_BUSY 17 #define PRI_CAUSE_NO_USER_RESPONSE 18 @@ -154,27 +154,29 @@ #define PRI_CAUSE_NUMBER_CHANGED 22 #define PRI_CAUSE_DESTINATION_OUT_OF_ORDER 27 #define PRI_CAUSE_INVALID_NUMBER_FORMAT 28 -#define PRI_CAUSE_FACILITY_REJECTED 29 +#define PRI_CAUSE_FACILITY_REJECTED 29 /* !Q.SIG */ #define PRI_CAUSE_RESPONSE_TO_STATUS_ENQUIRY 30 #define PRI_CAUSE_NORMAL_UNSPECIFIED 31 #define PRI_CAUSE_NORMAL_CIRCUIT_CONGESTION 34 -#define PRI_CAUSE_NETWORK_OUT_OF_ORDER 38 +#define PRI_CAUSE_NETWORK_OUT_OF_ORDER 38 /* !Q.SIG */ #define PRI_CAUSE_NORMAL_TEMPORARY_FAILURE 41 -#define PRI_CAUSE_SWITCH_CONGESTION 42 -#define PRI_CAUSE_ACCESS_INFO_DISCARDED 43 +#define PRI_CAUSE_SWITCH_CONGESTION 42 /* !Q.SIG */ +#define PRI_CAUSE_ACCESS_INFO_DISCARDED 43 /* !Q.SIG */ #define PRI_CAUSE_REQUESTED_CHAN_UNAVAIL 44 -#define PRI_CAUSE_PRE_EMPTED 45 -#define PRI_CAUSE_FACILITY_NOT_SUBSCRIBED 50 -#define PRI_CAUSE_OUTGOING_CALL_BARRED 52 -#define PRI_CAUSE_INCOMING_CALL_BARRED 54 +#define PRI_CAUSE_PRE_EMPTED 45 /* !Q.SIG */ +#define PRI_CAUSE_FACILITY_NOT_SUBSCRIBED 50 /* !Q.SIG */ +#define PRI_CAUSE_OUTGOING_CALL_BARRED 52 /* !Q.SIG */ +#define PRI_CAUSE_INCOMING_CALL_BARRED 54 /* !Q.SIG */ #define PRI_CAUSE_BEARERCAPABILITY_NOTAUTH 57 #define PRI_CAUSE_BEARERCAPABILITY_NOTAVAIL 58 +#define PRI_CAUSE_SERVICEOROPTION_NOTAVAIL 63 /* Q.SIG */ #define PRI_CAUSE_BEARERCAPABILITY_NOTIMPL 65 -#define PRI_CAUSE_CHAN_NOT_IMPLEMENTED 66 -#define PRI_CAUSE_FACILITY_NOT_IMPLEMENTED 69 +#define PRI_CAUSE_CHAN_NOT_IMPLEMENTED 66 /* !Q.SIG */ +#define PRI_CAUSE_FACILITY_NOT_IMPLEMENTED 69 /* !Q.SIG */ #define PRI_CAUSE_INVALID_CALL_REFERENCE 81 +#define PRI_CAUSE_IDENTIFIED_CHANNEL_NOTEXIST 82 /* Q.SIG */ #define PRI_CAUSE_INCOMPATIBLE_DESTINATION 88 -#define PRI_CAUSE_INVALID_MSG_UNSPECIFIED 95 +#define PRI_CAUSE_INVALID_MSG_UNSPECIFIED 95 /* !Q.SIG */ #define PRI_CAUSE_MANDATORY_IE_MISSING 96 #define PRI_CAUSE_MESSAGE_TYPE_NONEXIST 97 #define PRI_CAUSE_WRONG_MESSAGE 98 @@ -182,9 +184,9 @@ #define PRI_CAUSE_INVALID_IE_CONTENTS 100 #define PRI_CAUSE_WRONG_CALL_STATE 101 #define PRI_CAUSE_RECOVERY_ON_TIMER_EXPIRE 102 -#define PRI_CAUSE_MANDATORY_IE_LENGTH_ERROR 103 +#define PRI_CAUSE_MANDATORY_IE_LENGTH_ERROR 103 /* !Q.SIG */ #define PRI_CAUSE_PROTOCOL_ERROR 111 -#define PRI_CAUSE_INTERWORKING 127 +#define PRI_CAUSE_INTERWORKING 127 /* !Q.SIG */ /* Transmit capabilities */ #define PRI_TRANS_CAP_SPEECH 0x0 diff --git a/q931.c b/q931.c index b254f1b..3f1186a 100644 --- a/q931.c +++ b/q931.c @@ -120,9 +120,11 @@ struct msgtype causes[] = { { PRI_CAUSE_BEARERCAPABILITY_NOTAUTH, "Bearer capability not authorized" }, { PRI_CAUSE_BEARERCAPABILITY_NOTAVAIL, "Bearer capability not available" }, { PRI_CAUSE_BEARERCAPABILITY_NOTIMPL, "Bearer capability not implemented" }, + { PRI_CAUSE_SERVICEOROPTION_NOTAVAIL, "Service or option not available, unspecified" }, { PRI_CAUSE_CHAN_NOT_IMPLEMENTED, "Channel not implemented" }, { PRI_CAUSE_FACILITY_NOT_IMPLEMENTED, "Facility not implemented" }, { PRI_CAUSE_INVALID_CALL_REFERENCE, "Invalid call reference value" }, + { PRI_CAUSE_IDENTIFIED_CHANNEL_NOTEXIST, "Identified channel does not exist" }, { PRI_CAUSE_INCOMPATIBLE_DESTINATION, "Incompatible destination" }, { PRI_CAUSE_INVALID_MSG_UNSPECIFIED, "Invalid message unspecified" }, { PRI_CAUSE_MANDATORY_IE_MISSING, "Mandatory information element is missing" }, @@ -1531,11 +1533,11 @@ static char *pri_causeclass2str(int cause) static struct msgtype causeclasses[] = { { 0, "Normal Event" }, { 1, "Normal Event" }, - { 2, "Network Congestion" }, + { 2, "Network Congestion (resource unavailable)" }, { 3, "Service or Option not Available" }, { 4, "Service or Option not Implemented" }, - { 5, "Invalid message" }, - { 6, "Protocol Error" }, + { 5, "Invalid message (e.g. parameter out of range)" }, + { 6, "Protocol Error (e.g. unknown message)" }, { 7, "Interworking" }, }; return code2str(cause, causeclasses, sizeof(causeclasses) / sizeof(causeclasses[0]));