06-11-2014 08:05 AM
Hi,
I am starting a Perl script as an IP Phone Service without any parameters and this is working fine.
My next step is to hand over the devicename to the perl script while calling the IP Phone service. If I call this script from a command line with an argument (i.e. perl parameter.pl 123) it is working, but if I call it as an IP Phone Service it is not working
Can anybody help please?
My little Sample Perl Script:
use strict;
use warnings;
print "Content-type: text/html\n\n";
my $DevName;
$DevName = $ARGV[0];
print "Devicename: $DevName\n";
My Sample IP Phone Service (tried all of them)
http://172.16.0.13/parameter.pl?#DEVICENAME#
http://172.16.0.13/parameter.pl?name=#DEVICENAME#
I am also interested how to hand over Parameters which are defined as IP Phone Service Parameter to a perl script.
Best regards
Manfred
Solved! Go to Solution.
06-11-2014 01:22 PM
The problem is solved in the meantime.
In Perl you can use the param() command to get parameters from an URL.
Best regards
Manfred
06-11-2014 11:46 AM
If I understand correctly what you are trying to do, I believe you're going to have to extract the Devicename from the URL that the phone sends to your webservice when you invoke the IP phone service. It won't come as a discrete argv, it's going to come as a URL that will have to be parsed with perl.
I do mostly python, so if I want to extract something from a URL, I have to do something like the following to extract a 'number' parameter from the URL:
import cgi
def index(req):
numbr = req.form.getfirst('number', '')
06-11-2014 11:59 AM
Thanks for your answer. I guess you can see by my asking my knowledge in programing is very bad. Normaly I have projects with all that UCC stuff, but not with programing anything.
I am not able to translate your python code to perl.
Can you or somebody else tell me the exact perl code to use to extract the devicename from the URL?
How is the right IP Phone Service URL?
Best regards
Manfred
06-11-2014 12:32 PM
In the meantime I took some sniffer traces from 2 szenarios.
-------------------------------------------------------------------------------------------------------------------------------------------
1st I tried to display a parameter from a URL pasted to a browser on my PC.
URL pasted to browser:
http://172.16.0.13/parameter.pl?SEP3037A617C375
Result in Browser:
Devicename: SEP3037A617C375
Sniffer Trace:
GET /parameteruebergabe.pl?SEP3037A617C375 HTTP/1.1\r\n
=> only one parameter and this is working
-------------------------------------------------------------------------------------------------------------------------------------------
2nd I tried to display the Devicename of a IP Phone in the phone Display
URL of the IP Phone Service:
http://172.16.0.13/parameter.pl#DEVICENAME#
Result on Phone Display:
Devicename:
Sniffer Trace:
GET /parameteruebergabe.pl?SEP3037A617C375&locale=English_United_States&name=SEP3037A617C375 HTTP/1.1\\r\\n
=> three parameters seperated by a "&" and this ist not working.
Any suggests how to extract the "SEP3037A617C375" from all the parameters?
Best regards
Manfred
06-11-2014 01:22 PM
The problem is solved in the meantime.
In Perl you can use the param() command to get parameters from an URL.
Best regards
Manfred
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide