Существует диалплан, который перенаправляет входящий вызов трем пользователям в циклическом режиме.
Он делает запрос веб-сервиса с помощью curl следующим образом:
<action application="curl" data ="http://10.0.0.90:3081/routecall?number='${caller_id_number}' " inline="true" />
Служба curl добавляет номер вызывающего абонента в качестве параметра получения и возвращает следующие параметры, разделенные специальным символом «-»:
Например: Тонни_Старк-1002-1003-1005
- Отображаемое имя звонящего (Tonny_Stark)
- Первый клиент для соединения (1002)
- Второй клиент для подключения (1003)
- Третий клиент для соединения (1005)
Я должен разобрать этот ответ на разные переменные и передать его действию моста. Я написал Perl-скрипт для синтаксического анализа следующим образом:
#!/usr/bin/perl5.8.8
$curl_response= $ARGV[0]; // The response from webservice.
$param_name = $ARGV[1] ; // The parameter that is needed.
@params = split(/-/, $curl_response);
print getParamValue();
sub getParamValue(){
if($param_name eq "display_name")
{
return $params[0];
}
elsif($param_name eq "first_cce")
{
return $params[1];
}
elsif($param_name eq "second_cce")
{
return $params[2];
}
}
Вызов этого perl-скрипта осуществляется следующим образом:
<action application ="perl" data= "firstcce.pl '${curl_response_data}' 'first_cce'}" />
Нужен ответ от perl-скрипта на действие моста:
<action application="bridge" data="{sip_contact_user ='${display_name_from_perl}'} [myid=bridge1]user/${first_cce_from_perl} | [myid=bridge2]user/${second_cce_from_perl}"/>
** Но я не знаю, как Perl-скрипт будет возвращать значения и назначать их переменным, которые можно использовать в действии моста. **
Perl
, но я не вижу никакого Perl. Вы не объясняете, из какой строки берутся данные, как выглядят данные или что делает ваш Perl-скрипт. - person David W.   schedule 11.04.2014