mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.4 KiB
71 lines
1.4 KiB
use Kamailio qw ( log );
|
|
use Kamailio::Constants;
|
|
|
|
#This function demonstrates how to call functions that are exported by other modules.
|
|
sub exportedfuncs {
|
|
my $m = shift;
|
|
my $res = -1;
|
|
|
|
if (($m->getMethod() eq "INVITE") || ($m->getMethod eq "CANCEL")) {
|
|
|
|
$m->moduleFunction("xlog", "L_INFO", "x foobar");
|
|
|
|
if ($m->getRURI() =~ m/sip:555[0-9]+@/) {
|
|
$m->moduleFunction("sl_send_reply", "500", "Error: 555 not available");
|
|
} else {
|
|
$res = $m->moduleFunction("alias_db_lookup", "dbaliases");
|
|
}
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
|
|
# This demonstrates that a parameter may be passed to a function
|
|
sub paramfunc {
|
|
my $m = shift;
|
|
my $param = shift;
|
|
|
|
log(L_INFO, "This function was called with a parameter: $param\n");
|
|
|
|
$param =~ s/l/L/g;
|
|
|
|
log(L_INFO, "We can fiddle with it: $param\n");
|
|
|
|
return 1;
|
|
}
|
|
|
|
|
|
# The following function shows that you can use exported functions just as if they were "real".
|
|
# This is achieved through Perl's autoloading mechanisms.
|
|
|
|
sub autotest {
|
|
my $m = shift;
|
|
|
|
$m->xlog("L_ERR", "This logging is done via perl's autoload mechanism and the xlog function");
|
|
|
|
return 1;
|
|
}
|
|
|
|
# The following two functions demonstrate that the Kamailio perl module handles
|
|
# dieing interpreters correctly. Kamailio itself will not crash.
|
|
|
|
sub diefunc1 {
|
|
my $m = shift;
|
|
|
|
warn("I'll die in a moment...");
|
|
|
|
log(L_INFO, "About to die...");
|
|
|
|
die("Here I die!");
|
|
|
|
return 1;
|
|
}
|
|
|
|
sub diefunc2 {
|
|
my $m = shift;
|
|
NoSuchClass::NoSuchMethod(noSuchParameter);
|
|
|
|
return 1;
|
|
}
|
|
|