Commit b19c0b0a authored by Richard Mudgett's avatar Richard Mudgett

Added Q.SIG Advice-Of-Charge encode/decode routines.


git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@772 2fbb986a-6c06-0410-b554-c9c1f0a7f128
parent ba45095c
......@@ -54,6 +54,7 @@ STATIC_OBJS= \
rose_etsi_aoc.o \
rose_other.o \
rose_q931.o \
rose_qsig_aoc.o \
rose_qsig_ct.o \
rose_qsig_diversion.o \
rose_qsig_mwi.o \
......@@ -72,6 +73,7 @@ DYNAMIC_OBJS= \
rose_etsi_aoc.lo \
rose_other.lo \
rose_q931.lo \
rose_qsig_aoc.lo \
rose_qsig_ct.lo \
rose_qsig_diversion.lo \
rose_qsig_mwi.lo \
......
......@@ -1559,6 +1559,12 @@ void rose_handle_result(struct pri *ctrl, q931_call *call, q931_ie *ie,
case ROSE_ETSI_ChargingRequest:
break;
#endif /* Not handled yet */
#if 0 /* Not handled yet */
case ROSE_QSIG_ChargeRequest:
break;
case ROSE_QSIG_AocComplete:
break;
#endif /* Not handled yet */
#if 0 /* Not handled yet */
case ROSE_QSIG_CallTransferIdentify:
break;
......@@ -1673,6 +1679,22 @@ void rose_handle_invoke(struct pri *ctrl, q931_call *call, q931_ie *ie,
case ROSE_QSIG_BusyName:
break;
#endif /* Not handled yet */
#if 0 /* Not handled yet */
case ROSE_QSIG_ChargeRequest:
break;
case ROSE_QSIG_GetFinalCharge:
break;
case ROSE_QSIG_AocFinal:
break;
case ROSE_QSIG_AocInterim:
break;
case ROSE_QSIG_AocRate:
break;
case ROSE_QSIG_AocComplete:
break;
case ROSE_QSIG_AocDivChargeReq:
break;
#endif /* Not handled yet */
#if 0 /* Not handled yet */
case ROSE_QSIG_CallTransferIdentify:
break;
......
......@@ -343,6 +343,46 @@ static const struct rose_convert_msg rose_qsig_msgs[] = {
rose_dec_qsig_BusyName_ARG, NULL
},
/*
* localValue's from Q.SIG SS-AOC-Operations
* { iso(1) standard(0) pss1-advice-of-charge(15050) advice-of-charge-operations(0) }
*/
{
ROSE_QSIG_ChargeRequest, NULL, 59,
rose_enc_qsig_ChargeRequest_ARG, rose_enc_qsig_ChargeRequest_RES,
rose_dec_qsig_ChargeRequest_ARG, rose_dec_qsig_ChargeRequest_RES
},
{
ROSE_QSIG_GetFinalCharge, NULL, 60,
rose_enc_qsig_DummyArg_ARG, NULL,
rose_dec_qsig_DummyArg_ARG, NULL
},
{
ROSE_QSIG_AocFinal, NULL, 61,
rose_enc_qsig_AocFinal_ARG, NULL,
rose_dec_qsig_AocFinal_ARG, NULL
},
{
ROSE_QSIG_AocInterim, NULL, 62,
rose_enc_qsig_AocInterim_ARG, NULL,
rose_dec_qsig_AocInterim_ARG, NULL
},
{
ROSE_QSIG_AocRate, NULL, 63,
rose_enc_qsig_AocRate_ARG, NULL,
rose_dec_qsig_AocRate_ARG, NULL
},
{
ROSE_QSIG_AocComplete, NULL, 64,
rose_enc_qsig_AocComplete_ARG, rose_enc_qsig_AocComplete_RES,
rose_dec_qsig_AocComplete_ARG, rose_dec_qsig_AocComplete_RES
},
{
ROSE_QSIG_AocDivChargeReq, NULL, 65,
rose_enc_qsig_AocDivChargeReq_ARG, NULL,
rose_dec_qsig_AocDivChargeReq_ARG, NULL
},
/*
* localValue's from Q.SIG Call-Transfer-Operations
* { iso(1) standard(0) pss1-call-transfer(13869) call-transfer-operations(0) }
......@@ -545,6 +585,15 @@ static const struct rose_convert_error rose_qsig_errors[] = {
NULL, NULL
},
/*
* localValue Errors from Q.SIG SS-AOC-Operations
* { iso(1) standard(0) pss1-advice-of-charge(15050) advice-of-charge-operations(0) }
*/
{
ROSE_ERROR_QSIG_AOC_FreeOfCharge, NULL, 1016,
NULL, NULL
},
/*
* localValue's from Q.SIG Call-Transfer-Operations
* { iso(1) standard(0) pss1-call-transfer(13869) call-transfer-operations(0) }
......@@ -844,6 +893,14 @@ const char *rose_operation2str(enum rose_operation operation)
{ ROSE_QSIG_ConnectedName, "ROSE_QSIG_ConnectedName" },
{ ROSE_QSIG_BusyName, "ROSE_QSIG_BusyName" },
{ ROSE_QSIG_ChargeRequest, "ROSE_QSIG_ChargeRequest" },
{ ROSE_QSIG_GetFinalCharge, "ROSE_QSIG_GetFinalCharge" },
{ ROSE_QSIG_AocFinal, "ROSE_QSIG_AocFinal" },
{ ROSE_QSIG_AocInterim, "ROSE_QSIG_AocInterim" },
{ ROSE_QSIG_AocRate, "ROSE_QSIG_AocRate" },
{ ROSE_QSIG_AocComplete, "ROSE_QSIG_AocComplete" },
{ ROSE_QSIG_AocDivChargeReq, "ROSE_QSIG_AocDivChargeReq" },
{ ROSE_QSIG_CallTransferIdentify, "ROSE_QSIG_CallTransferIdentify" },
{ ROSE_QSIG_CallTransferAbandon, "ROSE_QSIG_CallTransferAbandon" },
{ ROSE_QSIG_CallTransferInitiate, "ROSE_QSIG_CallTransferInitiate" },
......@@ -921,6 +978,8 @@ const char *rose_error2str(enum rose_error_code code)
/* Q.SIG specific errors */
{ ROSE_ERROR_QSIG_Unspecified, "Unspecified" },
{ ROSE_ERROR_QSIG_AOC_FreeOfCharge, "AOC: FreeOfCharge" },
{ ROSE_ERROR_QSIG_CT_InvalidReroutingNumber, "CT: Invalid Rerouting Number" },
{ ROSE_ERROR_QSIG_CT_UnrecognizedCallIdentity,"CT: Unrecognized Call Identity" },
{ ROSE_ERROR_QSIG_CT_EstablishmentFailure, "CT: Establishment Failure" },
......
This diff is collapsed.
......@@ -169,9 +169,10 @@ const unsigned char *rose_dec_qsig_BusyName_ARG(struct pri *ctrl, unsigned tag,
/*
* Q.SIG Dummy invoke/result argument used by:
* SS-AOC-Operations,
* Call-Transfer-Operations,
* Call-Diversion-Operations,
* and SS-MWI-Operations
* Call-Diversion-Operations,
* and SS-MWI-Operations.
*/
unsigned char *rose_enc_qsig_DummyArg_ARG(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_invoke_args *args);
......@@ -185,6 +186,49 @@ const unsigned char *rose_dec_qsig_DummyRes_RES(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_result_args *args);
/* Q.SIG SS-AOC-Operations */
unsigned char *rose_enc_qsig_ChargeRequest_ARG(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_invoke_args *args);
unsigned char *rose_enc_qsig_ChargeRequest_RES(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_result_args *args);
unsigned char *rose_enc_qsig_AocFinal_ARG(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_invoke_args *args);
unsigned char *rose_enc_qsig_AocInterim_ARG(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_invoke_args *args);
unsigned char *rose_enc_qsig_AocRate_ARG(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_invoke_args *args);
unsigned char *rose_enc_qsig_AocComplete_ARG(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_invoke_args *args);
unsigned char *rose_enc_qsig_AocComplete_RES(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_result_args *args);
unsigned char *rose_enc_qsig_AocDivChargeReq_ARG(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_invoke_args *args);
const unsigned char *rose_dec_qsig_ChargeRequest_ARG(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_invoke_args *args);
const unsigned char *rose_dec_qsig_ChargeRequest_RES(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_result_args *args);
const unsigned char *rose_dec_qsig_AocFinal_ARG(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_invoke_args *args);
const unsigned char *rose_dec_qsig_AocInterim_ARG(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_invoke_args *args);
const unsigned char *rose_dec_qsig_AocRate_ARG(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_invoke_args *args);
const unsigned char *rose_dec_qsig_AocComplete_ARG(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_invoke_args *args);
const unsigned char *rose_dec_qsig_AocComplete_RES(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_result_args *args);
const unsigned char *rose_dec_qsig_AocDivChargeReq_ARG(struct pri *ctrl, unsigned tag,
const unsigned char *pos, const unsigned char *end,
union rose_msg_invoke_args *args);
/* Q.SIG Call-Diversion-Operations */
unsigned char *rose_enc_qsig_ActivateDiversionQ_ARG(struct pri *ctrl, unsigned char *pos,
unsigned char *end, const union rose_msg_invoke_args *args);
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment