https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r62689 | murf | 2007-05-02 11:10:50 -0600 (Wed, 02 May 2007) | 1 line
a)In chan_zap, set the clid, src fields in channel_alloc call. b)in the channel_alloc func, set the cid_num and name fields from the arglist[blush]. c) don't update the channel app & app data fields if you are in the 'h' extension. d)the load_module func in cdr_radius needs to return DECLINE, SUCCESS.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62690
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
static int load_module(void)
{
struct ast_config *cfg;
+ int res;
const char *tmp;
if ((cfg = ast_config_load(cdr_config))) {
/* read radiusclient-ng config file */
if (!(rh = rc_read_config(radiuscfg))) {
ast_log(LOG_NOTICE, "Cannot load radiusclient-ng configuration file %s.\n", radiuscfg);
- return -1;
+ return AST_MODULE_LOAD_DECLINE;
}
/* read radiusclient-ng dictionaries */
if (rc_read_dictionary(rh, rc_conf_str(rh, "dictionary"))) {
ast_log(LOG_NOTICE, "Cannot load radiusclient-ng dictionary file.\n");
- return -1;
+ return AST_MODULE_LOAD_DECLINE;
}
- return ast_cdr_register(name, desc, radius_log);
+ res = ast_cdr_register(name, desc, radius_log);
+ return AST_MODULE_LOAD_SUCCESS;
}
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "RADIUS CDR Backend");
}
y++;
} while (x < 3);
- tmp = ast_channel_alloc(0, state, 0, 0, i->accountcode, i->exten, i->context, i->amaflags, b2);
+ tmp = ast_channel_alloc(0, state, i->cid_num, i->cid_name, i->accountcode, i->exten, i->context, i->amaflags, b2);
if (b2) /*!> b2 can be freed now, it's been copied into the channel structure */
free(b2);
if (!tmp)
(long) time(NULL), ast_atomic_fetchadd_int(&uniqueint, 1));
}
+ tmp->cid.cid_name = ast_strdup(cid_name);
+ tmp->cid.cid_num = ast_strdup(cid_num);
+
if (!ast_strlen_zero(name_fmt)) {
/* Almost every channel is calling this function, and setting the name via the ast_string_field_build() call.
* And they all use slightly different formats for their name string.
const char *saved_c_appl;
const char *saved_c_data;
- if (c->cdr)
+ if (c->cdr && !(c->exten[0] == 'h' && c->exten[1] == 0) )
ast_cdr_setapp(c->cdr, app->name, data);
/* save channel values */