Forum Discussion
Mauricio_Cusine
Nimbostratus
May 04, 2007RTCP Irule for version 9.4 using rtcp prifile
Hello,
We are using streaming with not problem in version 9.4, but We need to find a string ("MOT") in the rtcp header for balance motorola movile.
when RTSP_REQUEST {
if { not [RTSP::header exists "sesion"] }{
RTSP::header insert sesion 1
if { [RTSP::header value "User-Agent"] starts_with "MOT-" } {
pool VIDEOSTR_HELIX_RM
log VIDEOSTR_HELIX_RM
}
else
{
pool VIDEOSTR_HELIX_GATEWAY
log VIDEOSTR_HELIX_GATEWAY
}
}
}
If We use this irule We receive the next message and does't work.
Apr 27 13:30:39 tmm tmm[1654]: 01220001:3: TCL error: Rule VIDEOSTREAMING_RSS - can't use empty string as operand of "!" while executing "if { not [RTSP::header value "sesion"] == 1}{ RTSP::header insert sesion 1 if { [RTSP::header value "User-Agent"] starts_with "MOT-" } { ..."
Apr 27 13:30:55 tmm tmm[1654]: 01220001:3: TCL error: Rule VIDEOSTREAMING_RSS - can't use empty string as operand of "!" while executing "if { not [RTSP::header value "sesion"] == 1}{ RTSP::header insert sesion 1 if { [RTSP::header value "User-Agent"] starts_with "MOT-" } { ..."
Apr 27 13:31:10 tmm tmm[1654]: 01220001:3: TCL error: Rule VIDEOSTREAMING_RSS - can't use empty string as operand of "!" while executing "if { not [RTSP::header value "sesion"] == 1}{ RTSP::header insert sesion 1 if { [RTSP::header value "User-Agent"] starts_with "MOT-" } { ..."
Apr 27 13:31:11 tmm tmm[1654]: 01220001:3: TCL error: Rule VIDEOSTREAMING_RSS - can't use empty string as operand of "!" while executing "if { not [RTSP::header value "sesion"] == 1}{ RTSP::header insert sesion 1 if { [RTSP::header value "User-Agent"] starts_with "MOT-" } { ..."
Apr 27 13:33:02 tmm tmm[1654]: 01220002:6: Rule VIDEOSTREAMING_RSS : VIDEOSTR_HELIX_RM
Apr 27 13:33:02 tmm tmm[1654]: 01220001:3: TCL error: Rule VIDEOSTREAMING_RSS - Address in use (line 1) invoked from within "pool VIDEOSTR_HELIX_RM"
Apr 27 13:33:24 tmm tmm[1654]: 01220002:6: Rule VIDEOSTREAMING_RSS : VIDEOSTR_HELIX_RM
Apr 27 13:33:24 tmm tmm[1654]: 01220001:3: TCL error: Rule VIDEOSTREAMING_RSS - Address in use (line 7) invoked from within "pool VIDEOSTR_HELIX_RM"
Any idea?.
Best regards,
Mauricio
2 Replies
- Deb_Allen_18Historic F5 AccountHi Mauricio --
It looks like you are getting 2 different errors, at 2 different test points...
For the logical comparison error ("can't use empty string..."), you might try enclosing the "RTSP::header exists" function in () before negating it:
Not sure about the other. Usually means a node has already been selected and you're trying to re-select another without detaching first. The solutions I've seen for that are either to add a OneConnect profile to the virtual server or to add the "LB::detach" command to the iRule immediately before choosing a new node/pool.when RTSP_REQUEST { if { !([RTSP::header exists "sesion"])}{ RTSP::header insert sesion 1 if {[RTSP::header value "User-Agent"] starts_with "MOT-"} { pool VIDEOSTR_HELIX_RM log VIDEOSTR_HELIX_RM } else { pool VIDEOSTR_HELIX_GATEWAY log VIDEOSTR_HELIX_GATEWAY } } }
HTH
/deb - Mauricio_Cusine
Nimbostratus
Hi Dev,
Thanks for your quick reply!.
You have reason for the first point, We need ().
For he second point do you think one connect or LB::detach will be usufull.
The traffic work as this matter for RTP.
First part
---RTCP-(TCP)--> F5 Virtual ----load balance server xxx
---RTP-(UDP)--> F5 virtual ----it's necesary to assing the same server, but the irule try to process the traffic and assing a new one.
I think one connect or LB::detach will not solve this problem.
What do you think?.
Thanks and best regards,
MauricioPosted By deb on 05/04/2007 9:15 PM
Hi Mauricio --
It looks like you are getting 2 different errors, at 2 different test points...
For the logical comparison error ("can't use empty string..."), you might try enclosing the "RTSP::header exists" function in () before negating it:
Not sure about the other. Usually means a node has already been selected and you're trying to re-select another without detaching first. The solutions I've seen for that are either to add a OneConnect profile to the virtual server or to add the "LB::detach" command to the iRule immediately before choosing a new node/pool.when RTSP_REQUEST { if { !([RTSP::header exists "sesion"])}{ RTSP::header insert sesion 1 if {[RTSP::header value "User-Agent"] starts_with "MOT-"} { pool VIDEOSTR_HELIX_RM log VIDEOSTR_HELIX_RM } else { pool VIDEOSTR_HELIX_GATEWAY log VIDEOSTR_HELIX_GATEWAY } } }
HTH
/deb
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects
