Just as a follow-up to my own problem, I think I understand better what's happening (and have a band-aid/workaround).
It seems as though (and feel free to correct me if I'm wrong), OpenSER at present does not differentiate URIs when they are identical excepting for the addition of the maddr parameter. RFC 3261, in section 19.1.4 URI Comparison, states "A URI that includes an maddr parameter will not match a URI that contains no maddr parameter."
So:
sip:1234@domain.com != sip:1234@domain.com;maddr=1.2.3.4
This, in essence, is exactly what the Nortel system is doing.
The result seems to be that any attempt to push such a URI to $ru and then append_branch() fails.
My workaround is this: change the user part before the avp_pushto() call, then change it back in a branch_route after the append_branch().
It seems to be working so far, except that it seems to create two branches rather than one. That's quite possibly (probably...) my fault, as my script at the moment is pretty hacked up. I'll sound the alarm if I determine for sure that I'm not the culprit. ;)
- Brad The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.