한국어

소프트스위치

온누리070 플레이스토어 다운로드
    acrobits softphone
     온누리 070 카카오 프러스 친구추가온누리 070 카카오 프러스 친구추가친추
     카카오톡 채팅 상담 카카오톡 채팅 상담카톡
    
     라인상담
     라인으로 공유

     페북공유

   ◎위챗 : speedseoul


  
     PAYPAL
     
     PRICE
     

pixel.gif

    before pay call 0088 from app


http://www.opensips.org/html/docs/modules/2.4.x/exec.html


if extern cmd curld.sh  in opensips.cfg


exe err permission denieded 


chown opensips.opensips curld.sh


chmod ug+rx curl.sh

1.3.1. setvars (integer)

Set to 1 to enable setting all above-mentioned environment variables for all executed commands.

WARNING: Before enabling this parameter, make sure your "/bin/sh" is safe from the Shellshock bash vulnerability!!!

Default value is 0 (disabled).

Example 1.1. Set setvars parameter

...
modparam("exec", "setvars", 1)
...

1.3.2.  time_to_kill (integer)

Specifies the longest time (in seconds) that a program is allowed to execute. Once this duration is exceeded, the program is terminated (SIGTERM)

Default value is 0 (disabled).

Example 1.2. Set time_to_kill parameter

...
modparam("exec", "time_to_kill", 20)
...

1.4. Exported Functions

1.4.1.  exec(command, [stdin], [stdout], [stderr], [envavp])

Executes an external command. The input is passed to the standard input of the new process, if specified, and the output is saved in the output variable.

The function waits for the external script until it provided all its output (not necessary to actually finish). If no output (standard output or standard error) is required by the function, it will not block at all - it will simply launch the external script and continue the script.

Meaning of the parameters is as follows:

  • command - command to be executed.It can include pseudovariables.

  • stdin - String to be passed to the standard input of the command. The string can be given as a pseudovariable.

  • stdout - pseudovariable where to store the output from the standard output of the process.

  • stderr - pseudovariable where to store the error from the standard error of the process.

  • envavp - AVP which holds the values for the environment variables to be passed for the command. The names of the environment variables will be "OSIPS_EXEC_#", where "#" starts from 0. For example, if we push two values (e.g. "b" and "a") into an AVP variable, which acts like a stack, OSIPS_EXEC_0 will hold "a", while OSIPS_EXEC_1 will hold "b".

NOTE: If expecting a multi-line formatted output, you should use $avp variables for the "stdout" and "stderr" parameters, to avoid only receiving the last lines of each stream.

WARNING: any OpenSIPS pseudo-vars which may contain special bourne shell (sh/bash) characters should be placed inside quotes, e.g. exec("update-stats.sh '$(ct{re.subst,/'//g})'");

WARNING: "stdin"/"stdout"/"stderr" parameters are not designed for large amounts of data, so one should be careful when using them. Because of the basic implementation, filled up pipes could cause a read deadlock.

This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, LOCAL_ROUTE, STARTUP_ROUTE, TIMER_ROUTE, EVENT_ROUTE, ONREPLY_ROUTE.

Example 1.3. exec usage

...
$avp(env) = "a";
$avp(env) = "b";
exec("ls -l", , "$var(out)", "$var(err)", "$avp(env)");
xlog("The output is $var(out)\n");
xlog("Received the following error\n$var(err)");
...
$var(input) = "input";
exec("/home/../myscript.sh", "this is my $var(input) for exec\n", , , "$avp(env)");
...

1.4.2.  exec_dset(command) (DEPRECATED)

WARNING - this function is deprecated and it will be remove in the next version - please use the exec() function ( Section 1.4.1, “exec(command, [stdin], [stdout], [stderr], [envavp]) ” ).

Executes an external command. The current R-URI is appended to the command as its last parameter. The output of the command will rewrite the current R-URI. Multiple lines of output lead to multiple branches.

Meaning of the parameters is as follows:

  • command (string, pvar) - command to be executed. It can include pseudo-variables or '$$' delimited UNIX environment variables

WARNING: most OpenSIPS scripting variables should be quoted before being passed to external commands, as in: exec_avp("log-call.sh '$ct'"). This may help avoid some unexpected behaviour (e.g. unwanted extra parameters, errors due to special bash characters, etc.)

This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.

Example 1.4. exec_dset usage

...
exec_dset("ruri-changer.sh");
exec_dset("ruri-changer.sh '$ct'");
...

1.4.3.  exec_msg(command) (DEPRECATED)

WARNING - this function is deprecated and it will be remove in the next version - please use the exec() function ( Section 1.4.1, “exec(command, [stdin], [stdout], [stderr], [envavp]) ” ).

Executes an external command. The current SIP message is passed to it in the standard input, no command-line parameters are added and the output of the command is ignored.

See sip-server/modules/exec/etc/exec.cfg in the source tarball for information on usage.

Meaning of the parameters is as follows:

  • command (string) - command to be executed. It can include pseudo-variables or '$$' delimited UNIX environment variables

WARNING: most OpenSIPS scripting variables should be quoted before being passed to external commands, as in: exec_avp("log-call.sh '$ct'"). This may help avoid some unexpected behaviour (e.g. unwanted extra parameters, errors due to special bash characters, etc.)

This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, LOCAL_ROUTE, TIMER_ROUTE, EVENT_ROUTE, ONREPLY_ROUTE.

Example 1.5. exec_msg usage

...
exec_msg("call-logger.sh '$ct' >> /var/log/call-logger/'$rU'.calls");
...

1.4.4.  exec_avp(command[, avplist]) (DEPRECATED)

WARNING - this function is deprecated and it will be remove in the next version - please use the exec() function ( Section 1.4.1, “exec(command, [stdin], [stdout], [stderr], [envavp]) ” ).

Executes an external command. Each output line of the command is saved in its corresponding AVP from avplist. If avplist is missing or is incomplete, the populated AVPs will be 1, 2, 3... or N, N+1, N+2...

Meaning of the parameters is as follows:

  • command (string) - command to be executed. It can include pseudo-variables or '$$' delimited UNIX environment variables

  • avplist (string) - comma separated list with AVP names to store the result in

WARNING: most OpenSIPS scripting variables should be quoted before being passed to external commands, as in: exec_avp("log-call.sh '$ct'"). This may help avoid some unexpected behaviour (e.g. unwanted extra parameters, errors due to special bash characters, etc.)

This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, LOCAL_ROUTE, STARTUP_ROUTE, TIMER_ROUTE, EVENT_ROUTE, ONREPLY_ROUTE.

Example 1.6. exec_avp usage

...
exec_avp("get-subscriber-details.sh '$rU'", "$avp(credit) $avp(contract_model)");
...

1.4.5.  exec_getenv(environment_variable[, avp]) (DEPRECATED)

WARNING - this function is deprecated and it will be remove in the next version - please use the exec() function ( Section 1.4.1, “exec(command, [stdin], [stdout], [stderr], [envavp]) ” ).

Obtains the value of a UNIX evironment_variable. The value is saved in 'avp'. If 'avp' is missing, output will be stored in $avp(1). If there is no such environment variable no value will be returned.

Meaning of the parameters is as follows:

  • environment_variable (string) - environent variable name. Can also be specified as a pseudo-variable

  • avp - an AVP to store the result in

WARNING: any OpenSIPS pseudo-vars which may contain special bash characters should be placed inside quotes, e.g. exec_getenv("'$ct'");

This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, LOCAL_ROUTE, STARTUP_ROUTE, TIMER_ROUTE, EVENT_ROUTE, ONREPLY_ROUTE.

Example 1.7. exec_getenv usage

...
exec_getenv("HOSTNAME");
exec_getenv("HOSTNAME", "$avp(localhost)");
...

1.5. Exported Asyncronous Functions

1.5.1.  exec(command[,input[,output[,error[,env]]]])

Executes an external command. This function does exactly the same as Section 1.4.1, “ exec(command, [stdin], [stdout], [stderr], [envavp]) ” (in terms of input, output and processing), but in an asynchronous way. The script execution is suspended until the external script provided all its output. OpenSIPS waits for the external script to close its output stream, not necessarily to terminate (so the script may still be running when OpenSIPS resumes the script execution on "seeing" EOF on the the output stream).

NOTE: this function ignore the "error" parameters for now - the asynchronous waiting is done only on the output stream !! This may be fixed in the following versions.

To read and understand more on the asynchronous functions, how to use them and what are their advantages, please refer to the OpenSIPS online Manual.

Example 1.8. async exec usage

{
...
async( exec("ruri-changer.sh","$ru","$ru"), resume );
}

route[resume] {
...
}

1.6. Known Issues

When imposing an execution timeout using time_to_kill, make sure your "/bin/sh" is a shell which does not fork when executed, case in which the job itself will not be killed, but rather its parent shell, while the job is silently inherited by "init" and will continue to run. "/bin/dash" is one of these troublesome shell environments.

조회 수 :
20291
등록일 :
2017.12.08
12:21:00 (*.160.88.18)
엮인글 :
http://webs.co.kr/index.php?document_srl=3312362&act=trackback&key=76b
게시글 주소 :
http://webs.co.kr/index.php?document_srl=3312362
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜
172 OpenSIPS Control Panel (OCP) Installation Guide admin 281155   2014-03-06
 
171 Opensips Gateway between SIP and SMPP messages admin 268550   2019-02-19
 
170 What is new in 1.8.0 opensip admin 255463   2012-05-21
 
169 What is new in 2.3.0 opensips admin 246965   2017-09-04
 
168 Using SIP Devices behind NAT OPensip Asterisk IPPhone SIP Telephony file admin 228884   2013-03-31
 
167 OpenSIPS vs Asterisk admin 223422   2013-04-06
 
166 PUSH SERVER 푸시서버 안드로이드 애플 admin 210023   2017-09-11
 
165 telepresence: Open Source SIP Telepresence/MCU admin 183229   2014-03-12
 
164 MediaProxy Installation Guide admin 182553   2014-03-06
 
163 RTPproxy Frequentry Asked Questions (FAQ) ¶ admin 176619   2014-03-07
 
162 SIP PBX - OpenSIPS and Asterisk configuration admin 164437   2014-03-12
 
161 Asterisk v1.4x built on FreeBSD v7.1 UNIX admin 152165   2012-01-06
 
160 사설 망 환경에서 SIP 의 NAT Traversal 문제 admin 146768   2011-12-23
 
159 How to install Mediaproxy 2.5.2 on CentOS 6 64 bit admin 145008   2017-09-04
 
158 SIP 트래픽 생성 테스트 툴 admin 138428   2011-12-23
 
157 opensips command /sbin/opensipsctl detail admin 126361   2017-09-04
 
156 How to setup a Jabber / XMPP server on Debian 8 (jessie) using ejabberd admin 125486   2017-09-13
 
155 Opensips_1.9 install guide this is great I like this admin 108739   2014-03-04
 
154 OpenSIPS basic configuration script 기본 컨피그 admin 106609   2017-09-05
 
153 Welcome to the Smartvox Knowledgebase admin 105877   2013-04-06
 
152 Installing RTPproxy Start RTPproxy in Bridged mode very good admin 103893   2014-03-07
 
151 오픈소스 (사내)메신저 서버 구축, 오픈 파이어(openfire) 설치방법과 세팅 admin 103496   2014-08-11
 
150 Flooding Asterisk, Freeswitch and Kamailio with Metasploit admin 101715   2013-04-06
 
149 dictionary.opensips radius admin 97175   2017-12-09
 
148 OpenSIPS Control Panel install guide admin 97070   2014-03-06
 
147 Installation and configuration process record opensips 1.9.1 admin 96515   2014-08-09
 
146 in opensips what is lookup(domain [, flags [, aor]]) admin 93119   2017-12-09
 
145 My new toy: Bluebox-ng admin 92542   2013-04-06
 
144 Conference Support in Kamailio (OpenSER) admin 86956   2014-03-12
 
143 Kamailo OpenSIPs installation on Debian admin 83723   2014-03-09