[Asterisk-cvs] asterisk-addons/res_perl AstAPIBase.c, 1.6, 1.7 AstAPIBase_wrap.c, 1.6, 1.7 res_perl.c, 1.6, 1.7 res_perl.h, 1.1, 1.2

anthm at lists.digium.com anthm at lists.digium.com
Mon Jan 31 09:09:46 CST 2005


Update of /usr/cvsroot/asterisk-addons/res_perl
In directory mongoose.digium.com:/tmp/cvs-serv17094

Modified Files:
	AstAPIBase.c AstAPIBase_wrap.c res_perl.c res_perl.h 
Log Message:
update to match new config changes and add experimental change to config using a 2nd interpereter

Index: AstAPIBase.c
===================================================================
RCS file: /usr/cvsroot/asterisk-addons/res_perl/AstAPIBase.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- AstAPIBase.c	10 Jan 2005 21:26:19 -0000	1.6
+++ AstAPIBase.c	31 Jan 2005 15:11:11 -0000	1.7
@@ -519,6 +519,20 @@
 	ast_set_callerid(chan, cid_name, cid_num, ani);
 }
 
+
+char * asterisk_getcallerid(struct ast_channel *chan, char *what) {
+	if(!chan) {
+		ast_log(LOG_WARNING, "No Channel!\n");
+		return NULL;
+	}
+	if(!strcmp(what, "name")) 
+		return chan->cid.cid_name;
+	else
+		return chan->cid.cid_num;
+	
+	
+}
+
 int asterisk_channelstatus(struct ast_channel *chan) {
 
 	if(!chan) {

Index: AstAPIBase_wrap.c
===================================================================
RCS file: /usr/cvsroot/asterisk-addons/res_perl/AstAPIBase_wrap.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- AstAPIBase_wrap.c	10 Jan 2005 21:26:19 -0000	1.6
+++ AstAPIBase_wrap.c	31 Jan 2005 15:11:11 -0000	1.7
@@ -812,6 +812,7 @@
 extern int asterisk_soft_hangup(struct ast_channel *);
 extern int asterisk_hangup(struct ast_channel *);
 extern void asterisk_setcallerid(struct ast_channel *,char *,char *,char *);
+extern char *asterisk_getcallerid(struct ast_channel *,char *);
 extern int asterisk_channelstatus(struct ast_channel *);
 extern int asterisk_setvariable(struct ast_channel *,char *,char *);
 extern char *asterisk_getvariable(struct ast_channel *,char *);
@@ -1658,6 +1659,40 @@
 }
 
 
+XS(_wrap_asterisk_getcallerid) {
+    {
+        struct ast_channel *arg1 = (struct ast_channel *) 0 ;
+        char *arg2 ;
+        char *result;
+        int argvi = 0;
+        dXSARGS;
+        
+        if ((items < 2) || (items > 2)) {
+            SWIG_croak("Usage: asterisk_getcallerid(chan,what);");
+        }
+        {
+            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_ast_channel,0) < 0) {
+                SWIG_croak("Type error in argument 1 of asterisk_getcallerid. Expected _p_ast_channel");
+            }
+        }
+        if (!SvOK((SV*) ST(1))) arg2 = 0;
+        else arg2 = (char *) SvPV(ST(1), PL_na);
+        result = (char *)asterisk_getcallerid(arg1,arg2);
+        
+        ST(argvi) = sv_newmortal();
+        if (result) {
+            sv_setpv((SV*)ST(argvi++), (char *) result);
+        } else {
+            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
+        }
+        XSRETURN(argvi);
+        fail:
+        ;
+    }
+    croak(Nullch);
+}
+
+
 XS(_wrap_asterisk_channelstatus) {
     {
         struct ast_channel *arg1 = (struct ast_channel *) 0 ;
@@ -2486,6 +2521,7 @@
 {"AstAPIBasec::asterisk_soft_hangup", _wrap_asterisk_soft_hangup},
 {"AstAPIBasec::asterisk_hangup", _wrap_asterisk_hangup},
 {"AstAPIBasec::asterisk_setcallerid", _wrap_asterisk_setcallerid},
+{"AstAPIBasec::asterisk_getcallerid", _wrap_asterisk_getcallerid},
 {"AstAPIBasec::asterisk_channelstatus", _wrap_asterisk_channelstatus},
 {"AstAPIBasec::asterisk_setvariable", _wrap_asterisk_setvariable},
 {"AstAPIBasec::asterisk_getvariable", _wrap_asterisk_getvariable},

Index: res_perl.c
===================================================================
RCS file: /usr/cvsroot/asterisk-addons/res_perl/res_perl.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- res_perl.c	19 Dec 2004 16:04:10 -0000	1.6
+++ res_perl.c	31 Jan 2005 15:11:11 -0000	1.7
@@ -17,12 +17,13 @@
 #include <res_perl.h>
 
 #define RES_PERL_VERSION "1.0"
-#define CREATE_STRING(name,size) char name[size];
+#define CREATE_STRING(name, size) char name[size];
 //#define CHAN_INFO
 
 // <PERL SPECIFIC MUMBO JUMBO>
-static PerlInterpreter *global_perl;
-static char *embedding[] = { "", "-e",""};
+static PerlInterpreter *global_perl = NULL;
[...1110 lines suppressed...]
-		if (hv_exists(PERL_CONFIG,"USE_SWITCH",strlen("USE_SWITCH"))) {
-			rval = get_hash_val(my_perl,PERL_CONFIG,"USE_SWITCH");
+		if (hv_exists(PERL_CONFIG, "USE_SWITCH", strlen("USE_SWITCH"))) {
+			rval = get_hash_val(my_perl, PERL_CONFIG, "USE_SWITCH");
 			if (rval && ast_true(rval)) {
 				use_switch = 1;
 				if (ast_register_switch(&perl_switch))
@@ -1035,7 +1034,11 @@
 		} else
 			ast_log(LOG_NOTICE, "Perl Switch Disabled.\n");
 	} else
-		ast_log(LOG_WARNING,"CONFIG HASH TABLE %%PERL_CONFIG NOT FOUND MANY FEATURES DISABLED!\n");
+		ast_log(LOG_WARNING, "CONFIG HASH TABLE %%PERL_CONFIG NOT FOUND MANY FEATURES DISABLED!\n");
+
+    if (use_config && config_perl == NULL)
+		config_perl = init_perl(global_config_use_mod,&perl_config_lock);
+
 	return ast_register_application(app, perl_exec, synopsis, descrip);
 }
 

Index: res_perl.h
===================================================================
RCS file: /usr/cvsroot/asterisk-addons/res_perl/res_perl.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- res_perl.h	23 Sep 2004 17:49:42 -0000	1.1
+++ res_perl.h	31 Jan 2005 15:11:11 -0000	1.2
@@ -23,7 +23,7 @@
 #include <asterisk/channel_pvt.h>
 #include <asterisk/cli.h>
 #include <asterisk/config.h>
-#include <asterisk/config_pvt.h>
+//#include <asterisk/config_pvt.h>
 #include <asterisk/file.h>
 #include <asterisk/linkedlists.h>
 #include <asterisk/lock.h>




More information about the svn-commits mailing list