Merged revisions 62689 via svnmerge from
authorSteve Murphy <murf@digium.com>
Wed, 2 May 2007 17:24:03 +0000 (17:24 +0000)
committerSteve Murphy <murf@digium.com>
Wed, 2 May 2007 17:24:03 +0000 (17:24 +0000)
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

cdr/cdr_radius.c
channels/chan_zap.c
main/channel.c
main/pbx.c

index 5f6014a..99968ed 100644 (file)
@@ -239,6 +239,7 @@ static int unload_module(void)
 static int load_module(void)
 {
        struct ast_config *cfg;
+       int res;
        const char *tmp;
 
        if ((cfg = ast_config_load(cdr_config))) {
@@ -257,16 +258,17 @@ static int load_module(void)
        /* 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");
index a614194..78e30bc 100644 (file)
@@ -5548,7 +5548,7 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int
                }
                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)
index c518e41..c93d6ad 100644 (file)
@@ -710,6 +710,9 @@ struct ast_channel *ast_channel_alloc(int needqueue, int state, const char *cid_
                                       (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.
index 5f3f77b..edb3d1b 100644 (file)
@@ -515,7 +515,7 @@ int pbx_exec(struct ast_channel *c,                 /*!< Channel */
        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 */