Forum Discussion
Raymond_Feng_97
Apr 20, 2005Historic F5 Account
How to use irules to do SIP outbounding proxy?
Hi, everyone
I am trying to do SIP proxy server loadbalance. By now, we can do loadbalance for inbound SIP request, I mean , from the client to the proxy server , just using SIP persistant.
The problem is, when the proxy serverA send outbound SIP request to the remote SIP serverC with one call-ID,the remote SIP serverC response packet is to the inbound virtual server with the same call-ID. But our bigip fail to send this response back to serverA ,since there is no SIP persistant information for this call-ID.
So, can we use irules to write one new persistant information at our SIP persistant table when serverA to send outbound SIP packet? I mean , when ServerA to send outbound SIP packet, we use irules to write one persistant information, call-ID and the serverA IP (Souce IP).So when the response packet back , bigip can found at persistant table, and send the responce back to serverA.
Thanks,
Raymond
17 Replies
- Tao_Liu_90341Historic F5 AccountWe are looking at it, please stay tuned, thanks for the patience
- Raghu_Rengaraja
Nimbostratus
I haveing the same problem, do you have any update on this please.
Thanks,
Raghu - hoolio
Cirrostratus
Can you post your rule, any relevant logs and a description of the issue you're seeing? - Stefan_Broddess
Nimbostratus
Any updates to this?
//s - Paul_71209
Nimbostratus
Any updates to this? My network requires the same functionality.
Thanks!
Paul - Nat_Thirasuttakorn
Employee
I think session command with keyword "any" may help.
call-id can be detected on the returning traffic by iRule and session command can be used to save persistence record, for example,
session add uie [list $sessionid any] [list [IP::remote_addr] 5555] $::sessionTimeout
(keyword "any" allows this record to be used by any virtual server)
I am not sure if the record that is being added by session command can be used by normal call-id persistence or not. (probably need to use appropriate syntax for address/port I guess) however, we can use "session lookup" command to lookup for the existing record also. - Ulf_Wätterstam
Nimbostratus
Hi,
Did you make this work?
We do something similar and have found out some things that can be good to know for anyone trying to load balance sip.
For me it felt natural to use mode because I was working with sip but that did not work together with keyword any
Example
On vs_1
session add sip [SIP::call_id] [LB::server addr] 180
session add uie [SIP::call_id] [LB::server addr] 180
On vs_2
session lookup sip "[SIP::call_id] any virtual"
This do not get back the stored value
session lookup uie "[SIP::call_id] any virtual"
But this do..
Simply use uie instead of sip, but it is strange that it did not work with mode sip.
Another thing that can be confusing is that when you choose a sip profile in your vs you will get the SIP::call_id as persistence value even though you choose None as your Default Persistence Profile. I'm not sure this make a different but we created a SIP persistence profile that never match and used that insted. With this we only have the values we set and want to use.
All this is valid for 9.4.3, I do not know if it is updated in any hotfix or in 9.4.4. Does anyone know? - Nat_Thirasuttakorn
Employee
Sorry, I haven't tried with "sip" option, I use uie and it works as well - Nicolas_Menant
Employee
Hi,
I saw the same thing.
When you use session commands, don't use sip mode because it doesn't seem able to share the session data with another vs.
use another mode. - zafer
Nimbostratus
Hi
Could you please share your rule?
zafer
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
