[asterisk-commits] rmudgett: branch dvossel/generic_aoc r258767 - in /team/dvossel/generic_aoc: ...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Apr 23 11:02:35 CDT 2010
Author: rmudgett
Date: Fri Apr 23 11:02:24 2010
New Revision: 258767
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=258767
Log:
Cosmetic changes. Doxygen and whitespace.
Modified:
team/dvossel/generic_aoc/include/asterisk/aoc.h
team/dvossel/generic_aoc/main/aoc.c
Modified: team/dvossel/generic_aoc/include/asterisk/aoc.h
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/generic_aoc/include/asterisk/aoc.h?view=diff&rev=258767&r1=258766&r2=258767
==============================================================================
--- team/dvossel/generic_aoc/include/asterisk/aoc.h (original)
+++ team/dvossel/generic_aoc/include/asterisk/aoc.h Fri Apr 23 11:02:24 2010
@@ -42,8 +42,9 @@
AST_AOC_MULT_NUM_ENTRIES, /* must remain the last item in enum, this is not a valid type */
};
-/*! \brief Defines the billing id options for an aoc message.
- * \note AOC-D is limited to NORMAL, REFERSE_CHARGE, and CREDIT_CARD.
+/*!
+ * \brief Defines the billing id options for an aoc message.
+ * \note AOC-D is limited to NORMAL, REVERSE_CHARGE, and CREDIT_CARD.
*/
enum ast_aoc_billing_id {
AST_AOC_BILLING_NA = 0,
@@ -55,7 +56,7 @@
AST_AOC_BILLING_CALL_FWD_NO_REPLY,
AST_AOC_BILLING_CALL_DEFLECTION,
AST_AOC_BILLING_CALL_TRANSFER,
- AST_AOC_BILLING_NUM_ENTRIES, /* must remain the last item in enum, not a valid billing id */
+ AST_AOC_BILLING_NUM_ENTRIES /* must remain the last item in enum, not a valid billing id */
};
enum ast_aoc_type {
@@ -160,6 +161,7 @@
AST_AOC_RATE_TYPE_VOLUME,
AST_AOC_RATE_TYPE_SPECIAL_CODE,
};
+
struct ast_aoc_s_entry {
uint16_t charged_item;
uint16_t rate_type;
@@ -171,7 +173,7 @@
struct ast_aoc_volume_rate volume;
uint16_t special_code; /* 1...10 */
} rate;
-}__attribute__ ((packed));
+} __attribute__((packed));
struct ast_aoc_unit_entry {
char valid_amount;
@@ -188,7 +190,7 @@
struct ast_aoc_charging_association_number {
uint8_t plan;
char number[32];
-}__attribute__ ((packed));
+} __attribute__((packed));
struct ast_aoc_charging_association {
union {
int32_t id;
@@ -196,7 +198,7 @@
} charge;
/*! \see enum AST_AOC_CHARGING_ASSOCIATION */
uint8_t charging_type;
-}__attribute__ ((packed));
+} __attribute__((packed));
/*! \brief AOC Payload Header. Holds all the encoded AOC data to pass on the wire */
struct ast_aoc_encoded;
@@ -204,12 +206,12 @@
/*! \brief Decoded AOC data. This value is used to set all the values in an AOC message before encoding.*/
struct ast_aoc_decoded;
-/*! \brief creates a ast_aoc_decode object of a specific message type
- * \since 1.8
- *
- * \param message type AOC-D, AOC-E, or AOC Request
- * \param charge type, this is ignored if message type is not
- * AOC-D or AOC-E.
+/*!
+ * \brief creates a ast_aoc_decode object of a specific message type
+ * \since 1.8
+ *
+ * \param msg_type AOC-D, AOC-E, or AOC Request
+ * \param charge_type this is ignored if message type is not AOC-D or AOC-E.
* \param requests flags. This defines the types of AOC requested. This
* field should only be set when the message type is AOC Request,
* the value is ignored otherwise.
@@ -228,48 +230,53 @@
/*! \brief free an ast_aoc_encoded object */
void *ast_aoc_destroy_encoded(struct ast_aoc_encoded *encoded);
-/*! \brief decodes an encoded aoc payload.
- * \since 1.8
- *
- * \param ast_aoc_encoded, the encoded payload to decode.
- * \param total size of encoded payload
- * \param ast channel, Optional for DEBUG output purposes
+/*!
+ * \brief decodes an encoded aoc payload.
+ * \since 1.8
+ *
+ * \param encoded the encoded payload to decode.
+ * \param size total size of encoded payload
+ * \param chan ast channel, Optional for DEBUG output purposes
*
* \retval heap allocated ast_aoc_decoded object ptr on success
* \retval NULL failure
*/
struct ast_aoc_decoded *ast_aoc_decode(struct ast_aoc_encoded *encoded, size_t size, struct ast_channel *chan);
-/*! \brief encodes a decoded aoc structure so it can be passed on the wire
- * \since 1.8
- *
- * \param ast_aoc_decoded struct to be encoded
- * \param output parameter representing size of encoded data
- * \param ast channel, Optional for DEBUG output purposes
+/*!
+ * \brief encodes a decoded aoc structure so it can be passed on the wire
+ * \since 1.8
+ *
+ * \param decoded the decoded struct to be encoded
+ * \param out_size output parameter representing size of encoded data
+ * \param chan ast channel, Optional for DEBUG output purposes
*
* \retval pointer to encoded data
* \retval NULL failure
*/
struct ast_aoc_encoded *ast_aoc_encode(struct ast_aoc_decoded *decoded, size_t *out_size, struct ast_channel *chan);
-/*! \brief Sets the type of total for a AOC-D message
- * \since 1.8
+/*!
+ * \brief Sets the type of total for a AOC-D message
+ * \since 1.8
+ *
+ * \param decoded ast_aoc_decoded struct to set values on
+ * \param type total type: TOTAL or SUBTOTAL
*
* \note If this value is not set, the default for the message is TOTAL
*
- * \param total type, TOTAL or SUBTOTAL
- *
* \retval 0 success
*/
int ast_aoc_set_total_type(struct ast_aoc_decoded *decoded, const enum ast_aoc_total_type type);
-/*! \brief Sets the currency values for a AOC-D or AOC-E message
- * \since 1.8
- *
- * \param ast_aoc_decoded struct to set values on
- * \param currency amount REQUIRED
- * \param currency multiplier REQUIRED, 0 or undefined value defaults to AST_AOC_MULT_ONE.
- * \param currency name OPTIONAL
+/*!
+ * \brief Sets the currency values for a AOC-D or AOC-E message
+ * \since 1.8
+ *
+ * \param decoded ast_aoc_decoded struct to set values on
+ * \param amount currency amount REQUIRED
+ * \param multiplier currency multiplier REQUIRED, 0 or undefined value defaults to AST_AOC_MULT_ONE.
+ * \param name currency name OPTIONAL
*
* \retval 0 success
*/
@@ -278,15 +285,15 @@
const enum ast_aoc_currency_multiplier multiplier,
const char *name);
-/*! \brief Adds a unit entry into the list of units
- * \since 1.8
- *
- * \param ast_aoc_decoded struct to set values on
- * \param amount_is_present, set this if the number of units is
- * actually present.
- * \param number of units
- * \param type_is_present, set this if the type value is present
- * \param unit type
+/*!
+ * \brief Adds a unit entry into the list of units
+ * \since 1.8
+ *
+ * \param decoded ast_aoc_decoded struct to set values on
+ * \param amount_is_present set this if the number of units is actually present.
+ * \param amount number of units
+ * \param type_is_present set this if the type value is present
+ * \param type unit type
*
* \note If neither the amount nor the type is present, the entry will
* not be added.
@@ -299,21 +306,23 @@
const unsigned int type_is_present,
const unsigned int type);
-/*! \brief set the billing id for a AOC-D or AST_AOC_E message
- * \since 1.8
- *
- * \param ast_aoc_decoded struct to set values on
- * \param billing id
+/*!
+ * \brief set the billing id for a AOC-D or AST_AOC_E message
+ * \since 1.8
+ *
+ * \param decoded ast_aoc_decoded struct to set values on
+ * \param id billing id
*
* \retval 0 success
*/
int ast_aoc_set_billing_id(struct ast_aoc_decoded *decoded, const enum ast_aoc_billing_id id);
-/*! \brief set the charging association id for an AST_AOC_E message
- * \since 1.8
- *
- * \param ast_aoc_decoded struct to set values on
- * \param charging association identifier
+/*!
+ * \brief set the charging association id for an AST_AOC_E message
+ * \since 1.8
+ *
+ * \param decoded ast_aoc_decoded struct to set values on
+ * \param id charging association identifier
*
* \note If the association number was set, this will override that value. Only the id OR the
* number can be set at a time, not both.
@@ -322,19 +331,13 @@
*/
int ast_aoc_set_association_id(struct ast_aoc_decoded *decoded, const int id);
-/*! \brief set the charging accociation number for an AOC-E message
- * \since 1.8
- *
- * \param ast_aoc_decoded struct to set values on
- * \param charging association number
- * \param charging association plan
- * unknown(0),
- * public(1) - The numbering plan is according to ITU-T E.164,
- * nsapEncoded(2),
- * data(3) - Reserved,
- * telex(4) - Reserved,
- * private(5),
- * nationalStandard(8) - Reserved
+/*!
+ * \brief set the charging accociation number for an AOC-E message
+ * \since 1.8
+ *
+ * \param decoded ast_aoc_decoded struct to set values on
+ * \param num charging association number
+ * \param plan charging association number plan and type-of-number fields
*
* \note If the association id was set, this will override that value. Only the id OR the
* number can be set at a time, not both.
@@ -343,35 +346,38 @@
*/
int ast_aoc_set_association_number(struct ast_aoc_decoded *decoded, const char *num, uint8_t plan);
-/*! \brief Mark the AST_AOC_REQUEST message as a termination request.
- * \since 1.8
- *
- * \note a termination request indicates that the call has terminated, but that the other side is waiting
- * for a short period of time before hanging up so it can get the final AOC-E message.
- *
- * \param ast_aoc_decoded struct to set values on
+/*!
+ * \brief Mark the AST_AOC_REQUEST message as a termination request.
+ * \since 1.8
+ *
+ * \param decoded ast_aoc_decoded struct to set values on
+ *
+ * \note A termination request indicates that the call has terminated,
+ * but that the other side is waiting for a short period of time before
+ * hanging up so it can get the final AOC-E message.
*
* \retval 0 success
* \retval -1 failure
*/
int ast_aoc_set_termination_request(struct ast_aoc_decoded *decoded);
-/*! \brief Add AOC-S duration rate entry
- * \since 1.8
- *
- * \param aoc decoded object to add entry to
- * \param ast_aoc_s_charged_item
- * \param currency amount
- * \param currency multiplier
- * \param currency name, truncated after 10 characters
- * \param time
- * \param time scale from ast_aoc_time_scale enum
- * \param granularity_time (optional, set to 0 if not present);
- * \param granularity_scale (optional, set to 0 if not present);
- * \param step_function, set to 1 if this is to use a step function, 0 if continuious
- *
- * \retval 0 success
- * \retval -1 failure
+/*!
+ * \brief Add AOC-S duration rate entry
+ * \since 1.8
+ *
+ * \param decoded aoc decoded object to add entry to
+ * \param charged_item ast_aoc_s_charged_item
+ * \param amount currency amount
+ * \param multiplier currency multiplier
+ * \param currency_name truncated after 10 characters
+ * \param time
+ * \param time_scale from ast_aoc_time_scale enum
+ * \param granularity_time (optional, set to 0 if not present);
+ * \param granularity_time_scale (optional, set to 0 if not present);
+ * \param step_function set to 1 if this is to use a step function, 0 if continuious
+ *
+ * \retval 0 success
+ * \retval -1 failure
*/
int ast_aoc_s_add_rate_duration(struct ast_aoc_decoded *decoded,
enum ast_aoc_s_charged_item charged_item,
@@ -384,17 +390,18 @@
enum ast_aoc_time_scale granularity_time_scale,
int step_function);
-/*! \brief Add AOC-S flat rate entry
- * \since 1.8
- *
- * \param aoc decoded object to add entry to
- * \param ast_aoc_s_charged_item
- * \param currency amount
- * \param currency multiplier
- * \param currency name, truncated after 10 characters
- *
- * \retval 0 success
- * \retval -1 failure
+/*!
+ * \brief Add AOC-S flat rate entry
+ * \since 1.8
+ *
+ * \param decoded aoc decoded object to add entry to
+ * \param charged_item ast_aoc_s_charged_item
+ * \param amount currency amount
+ * \param multiplier currency multiplier
+ * \param currency_name truncated after 10 characters
+ *
+ * \retval 0 success
+ * \retval -1 failure
*/
int ast_aoc_s_add_rate_flat(struct ast_aoc_decoded *decoded,
enum ast_aoc_s_charged_item charged_item,
@@ -402,18 +409,19 @@
enum ast_aoc_currency_multiplier multiplier,
const char *currency_name);
-/*! \brief Add AOC-S volume rate entry
- * \since 1.8
- *
- * \param aoc decoded object to add entry to
- * \param ast_aoc_s_charged_item
- * \param volume unit from ast_aoc_volume_unit enum
- * \param currency amount
- * \param currency multiplier
- * \param currency name, truncated after 10 characters
- *
- * \retval 0 success
- * \retval -1 failure
+/*!
+ * \brief Add AOC-S volume rate entry
+ * \since 1.8
+ *
+ * \param decoded aoc decoded object to add entry to
+ * \param charged_item ast_aoc_s_charged_item
+ * \param volume_unit from ast_aoc_volume_unit enum
+ * \param amount currency amount
+ * \param multiplier currency multiplier
+ * \param currency_name truncated after 10 characters
+ *
+ * \retval 0 success
+ * \retval -1 failure
*/
int ast_aoc_s_add_rate_volume(struct ast_aoc_decoded *decoded,
enum ast_aoc_s_charged_item charged_item,
@@ -422,65 +430,70 @@
enum ast_aoc_currency_multiplier multiplier,
const char *currency_name);
-/*! \brief Add AOC-S special rate entry
- * \since 1.8
- *
- * \param aoc decoded object to add entry to
- * \param ast_aoc_s_charged_item
- * \param special charging code
- *
- * \retval 0 success
- * \retval -1 failure
+/*!
+ * \brief Add AOC-S special rate entry
+ * \since 1.8
+ *
+ * \param decoded aoc decoded object to add entry to
+ * \param charged_item ast_aoc_s_charged_item
+ * \param code special charging code
+ *
+ * \retval 0 success
+ * \retval -1 failure
*/
int ast_aoc_s_add_rate_special_charge_code(struct ast_aoc_decoded *decoded,
enum ast_aoc_s_charged_item charged_item,
unsigned int code);
-/*! \brief Add AOC-S indicating charge item is free
- * \since 1.8
- *
- * \param aoc decoded object to add entry to
- * \param ast_aoc_s_charged_item
- * \param int from_beginning. Indicating if the rate is free from beginning or not.
- *
- * \retval 0 success
- * \retval -1 failure
+/*!
+ * \brief Add AOC-S indicating charge item is free
+ * \since 1.8
+ *
+ * \param decoded aoc decoded object to add entry to
+ * \param charged_item ast_aoc_s_charged_item
+ * \param from_beginning TRUE if the rate is free from beginning.
+ *
+ * \retval 0 success
+ * \retval -1 failure
*/
int ast_aoc_s_add_rate_free(struct ast_aoc_decoded *decoded,
enum ast_aoc_s_charged_item charged_item, int from_beginning);
-/*! \brief Add AOC-S entry indicating charge item is not available
- * \since 1.8
- *
- * \param aoc decoded object to add entry to
- * \param ast_aoc_s_charged_item
- *
- * \retval 0 success
- * \retval -1 failure
+/*!
+ * \brief Add AOC-S entry indicating charge item is not available
+ * \since 1.8
+ *
+ * \param decoded aoc decoded object to add entry to
+ * \param charged_item ast_aoc_s_charged_item
+ *
+ * \retval 0 success
+ * \retval -1 failure
*/
int ast_aoc_s_add_rate_na(struct ast_aoc_decoded *decoded,
enum ast_aoc_s_charged_item charged_item);
-/*! \brief Add AOC-S special arrangement entry
- * \since 1.8
- *
- * \param aoc decoded object to add entry to
- * \param special arrangement code
- *
- * \retval 0 success
- * \retval -1 failure
+/*!
+ * \brief Add AOC-S special arrangement entry
+ * \since 1.8
+ *
+ * \param decoded aoc decoded object to add entry to
+ * \param code special arrangement code
+ *
+ * \retval 0 success
+ * \retval -1 failure
*/
int ast_aoc_s_add_special_arrangement(struct ast_aoc_decoded *decoded,
unsigned int code);
-/*! \brief Convert decoded aoc msg to string representation
- * \since 1.8
- *
- * \param ast_aoc_decoded struct to convert to string
- * \param dynamic heap allocated ast_str object to store string representation in
- *
- * \retval 0 success
- * \retval -1 failure
+/*!
+ * \brief Convert decoded aoc msg to string representation
+ * \since 1.8
+ *
+ * \param decoded ast_aoc_decoded struct to convert to string
+ * \param msg dynamic heap allocated ast_str object to store string representation in
+ *
+ * \retval 0 success
+ * \retval -1 failure
*/
int ast_aoc_decoded2str(const struct ast_aoc_decoded *decoded, struct ast_str **msg);
@@ -505,22 +518,24 @@
/*! \brief get the number rates associated with an AOC-S message */
unsigned int ast_aoc_s_get_count(struct ast_aoc_decoded *decoded);
-/*! \brief get a specific AOC-S rate entry.
- * \since 1.8
- *
- * \note This can be used in conjunction with ast_aoc_s_get_count to create
- * a unit entry iterator.
+/*!
+ * \brief get a specific AOC-S rate entry.
+ * \since 1.8
+ *
+ * \note This can be used in conjunction with ast_aoc_s_get_count to create
+ * a unit entry iterator.
*/
const struct ast_aoc_s_entry *ast_aoc_s_get_rate_info(struct ast_aoc_decoded *decoded, unsigned int entry_number);
/*! \brief get the number of unit entries for AOC-D and AOC-E messages*/
unsigned int ast_aoc_get_unit_count(struct ast_aoc_decoded *decoded);
-/*! \brief get a specific unit entry.
- * \since 1.8
- *
- * \note This can be used in conjunction with ast_aoc_get_unit_count to create
- * a unit entry iterator.
+/*!
+ * \brief get a specific unit entry.
+ * \since 1.8
+ *
+ * \note This can be used in conjunction with ast_aoc_get_unit_count to create
+ * a unit entry iterator.
*/
const struct ast_aoc_unit_entry *ast_aoc_get_unit_info(struct ast_aoc_decoded *decoded, unsigned int entry_number);
@@ -539,28 +554,31 @@
/*! \brief get the charging association info for AOC-E messages*/
const struct ast_aoc_charging_association *ast_aoc_get_association_info(struct ast_aoc_decoded *decoded);
-/*! \brief get whether or not the AST_AOC_REQUEST message as a termination request.
- * \since 1.8
- *
- * \note a termination request indicates that the call has terminated,
- * but that the other side is waiting for a short period of time
- * before hanging up so it can get the final AOC-E message.
- *
- * \param ast_aoc_decoded struct to get values on
+/*!
+ * \brief get whether or not the AST_AOC_REQUEST message as a termination request.
+ * \since 1.8
+ *
+ * \note a termination request indicates that the call has terminated,
+ * but that the other side is waiting for a short period of time
+ * before hanging up so it can get the final AOC-E message.
+ *
+ * \param decoded ast_aoc_decoded struct to get values on
*
* \retval 0 not a termination request
* \retval 1 is a termination request
*/
int ast_aoc_get_termination_request(struct ast_aoc_decoded *decoded);
-/*! \brief test aoc encode decode routines.
- * \since 1.8
- *
- * \note This function verifies that a decoded message matches itself after
- * the encode decode routine.
+/*!
+ * \brief test aoc encode decode routines.
+ * \since 1.8
+ *
+ * \note This function verifies that a decoded message matches itself after
+ * the encode decode routine.
*/
int ast_aoc_test_encode_decode_match(struct ast_aoc_decoded *decoded);
/*! \brief enable aoc cli options */
int ast_aoc_cli_init(void);
-#endif
+
+#endif /* _AST_AOC_H_ */
Modified: team/dvossel/generic_aoc/main/aoc.c
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/generic_aoc/main/aoc.c?view=diff&rev=258767&r1=258766&r2=258767
==============================================================================
--- team/dvossel/generic_aoc/main/aoc.c (original)
+++ team/dvossel/generic_aoc/main/aoc.c Fri Apr 23 11:02:24 2010
@@ -111,32 +111,32 @@
uint8_t ie_id;
uint8_t datalen;
char data[0];
-}__attribute__ ((packed));
+} __attribute__((packed));
struct aoc_ie_currency {
uint32_t amount;
uint8_t multiplier;
char name[AOC_CURRENCY_NAME_SIZE];
-}__attribute__ ((packed));
+} __attribute__((packed));
struct aoc_ie_unit {
uint32_t amount;
uint8_t valid_type;
uint8_t valid_amount;
uint8_t type;
-}__attribute__ ((packed));
+} __attribute__((packed));
struct aoc_ie_billing {
uint8_t id;
-}__attribute__ ((packed));
+} __attribute__((packed));
struct aoc_ie_charging_association {
struct ast_aoc_charging_association ca;
-}__attribute__ ((packed));
+} __attribute__((packed));
struct aoc_ie_charging_rate {
struct ast_aoc_s_entry entry;
-}__attribute__ ((packed));
+} __attribute__((packed));
struct ast_aoc_decoded *ast_aoc_create(const enum ast_aoc_type msg_type,
const enum ast_aoc_charge_type charge_type,
@@ -379,10 +379,10 @@
int pos;
};
-/*
+/*!
* \internal
* \brief append an AOC information element
- * \note data is expected to already be in network byte order at this point
+ * \note data is expected to already be in network byte order at this point
*/
static int aoc_append_ie(struct aoc_ie_data *ied, unsigned short ie_id, const void *data, unsigned short datalen)
{
@@ -455,6 +455,7 @@
.multiplier = decoded->multiplier, /* only one byte */
.name = { 0, },
};
+
if (!ast_strlen_zero(decoded->currency_name)) {
ast_copy_string(ie.name, decoded->currency_name, sizeof(ie.name));
}
@@ -465,6 +466,7 @@
if (decoded->unit_count) {
struct aoc_ie_unit ie = { 0 };
int i;
+
for (i = 0; i < decoded->unit_count; i++) {
ie.valid_amount = decoded->unit_list[i].valid_amount; /* only one byte */
ie.amount = htonl(decoded->unit_list[i].amount);
@@ -690,6 +692,7 @@
const char *currency_name)
{
struct ast_aoc_s_entry entry = { 0, };
+
entry.charged_item = charged_item;
entry.rate_type = AST_AOC_RATE_TYPE_VOLUME;
entry.rate.volume.multiplier = multiplier;
@@ -708,6 +711,7 @@
unsigned int code)
{
struct ast_aoc_s_entry entry = { 0, };
+
entry.charged_item = charged_item;
entry.rate_type = AST_AOC_RATE_TYPE_SPECIAL_CODE;
entry.rate.special_code = code;
@@ -720,6 +724,7 @@
int from_beginning)
{
struct ast_aoc_s_entry entry = { 0, };
+
entry.charged_item = charged_item;
entry.rate_type = from_beginning ? AST_AOC_RATE_TYPE_FREE_FROM_BEGINNING : AST_AOC_RATE_TYPE_FREE;
@@ -730,6 +735,7 @@
enum ast_aoc_s_charged_item charged_item)
{
struct ast_aoc_s_entry entry = { 0, };
+
entry.charged_item = charged_item;
entry.rate_type = AST_AOC_RATE_TYPE_NA;
@@ -740,6 +746,7 @@
unsigned int code)
{
struct ast_aoc_s_entry entry = { 0, };
+
entry.charged_item = AST_AOC_CHARGED_ITEM_SPECIAL_ARRANGEMENT;
entry.rate_type = AST_AOC_RATE_TYPE_SPECIAL_CODE;
entry.rate.special_code = code;
@@ -807,7 +814,6 @@
const char *ast_aoc_get_currency_multiplier_decimal(struct ast_aoc_decoded *decoded)
{
-
switch (decoded->multiplier) {
case AST_AOC_MULT_ONETHOUSANDTH:
return "0.001";
@@ -1155,7 +1161,7 @@
return "1000";
case AST_AOC_MULT_NUM_ENTRIES:
break;
- };
+ }
return "1";
}
@@ -1185,7 +1191,6 @@
}
return "NotAvailable";
}
-
int ast_aoc_test_encode_decode_match(struct ast_aoc_decoded *decoded)
{
More information about the asterisk-commits
mailing list