Here it comes.
Fell free to make any notations, we are all here to improve the matter:
# From Edition if (is_present_hf("From")) { $avp(s:newFrom) = $avp(s:ANIegress) + " <sip:" + $avp(s:ANIegress) + "@" + $(hdr(From){tobody.host}) + ">;" + $(hdr(From){tobody.params}); remove_hf("From"); insert_hf("From: $avp(s:newFrom)\r\n", "Contact");
}
# Remote-Party-ID manipulation if (is_present_hf("Remote-Party-ID")) { # 1 or 2 RPID headers? if($(hdr(Remote-Party-ID)[0]{s.len}) != $(hdr(Remote-Party-ID)[*]{s.len})) { if($(hdr(Remote-Party-ID)[0]{tobody.params}{param.value,party}) == "calling") { $avp(s:newRPID) = $avp(s:ANIegress) + " <sip:" + $avp(s:ANIegress) + "@" + $(hdr(Remote-Party-ID)[0]{tobody.host}) + ">;" + $(hdr(Remote-Party-ID)[0]{tobody.params}); $avp(s:oldRPID) = $(hdr(Remote-Party-ID)[0]); $avp(s:otherRPID) = $(hdr(Remote-Party-ID)[1]); } else { $avp(s:newRPID) = $avp(s:ANIegress) + " <sip:" + $avp(s:ANIegress) + "@" + $(hdr(Remote-Party-ID)[1]{tobody.host}) + ">;" + $(hdr(Remote-Party-ID)[1]{tobody.params}); $avp(s:oldRPID) = $(hdr(Remote-Party-ID)[1]); $avp(s:otherRPID) = $(hdr(Remote-Party-ID)[0]); } remove_hf("Remote-Party-ID"); append_hf("Remote-Party-ID: $avp(s:newRPID)\r\n", "Allow"); append_hf("Remote-Party-ID: $avp(s:otherRPID)\r\n", "Remote-Party-ID"); } else { $avp(s:newRPID) = $avp(s:ANIegress) + " <sip:" + $avp(s:ANIegress) + "@" + $(hdr(Remote-Party-ID){tobody.host}) + ">;" + $(hdr(Remote-Party-ID){tobody.params}); $avp(s:oldRPID) = $(hdr(Remote-Party-ID)); remove_hf("Remote-Party-ID"); append_hf("Remote-Party-ID: $avp(s:newRPID)\r\n", "Allow"); } }
# P-Asserted-Identity manipulation if (is_present_hf("P-Asserted-Identity")) {
if($avp(s:paiMODE) == "Tel-URI") { $avp(s:newPAI) = "<tel:" + $avp(s:ANIegress) + ">"; $avp(s:oldPAI) = $(hdr(P-Asserted-Identity)); } else if($avp(s:paiMODE) == "SIP-URI") { $avp(s:newPAI) = $avp(s:ANIegress) + " <sip:" + $avp(s:ANIegress) + "@" + $(hdr(P-Asserted-Identity){tobody.host}) + ">"; $avp(s:oldPAI) = $(hdr(P-Asserted-Identity)); } remove_hf("P-Asserted-Identity"); append_hf("P-Asserted-Identity: $avp(s:newPAI)\r\n", "Privacy"); }
Cheers, Uriel
On Thu, Aug 12, 2010 at 6:29 PM, Alex Balashov abalashov@evaristesys.com wrote:
On 08/12/2010 05:27 PM, Uriel Rozenbaum wrote:
Takes a little more work but works perfectly. Thanks!!!
Yes, but a lot easier to read, understand and modify from a code and business process management perspective.
I have to be aware of calls that have 2 RPID headers (party=called and party=calling), is you're interested I can paste the code once I'm done coding and testisng. :)
Sure, example code is always good for posterity.
-- Alex Balashov - Principal Evariste Systems LLC 1170 Peachtree Street 12th Floor, Suite 1200 Atlanta, GA 30309 Tel: +1-678-954-0670 Fax: +1-404-961-1892 Web: http://www.evaristesys.com/