Set Sip From-Header for calls originated from ConfBridge

Hi all,

I am trying to use asterisk to split a call to two devices (voice recorders). For this I use ConfBridge and Originate. If a call (from a Cisco build-in-bridge) comes in, I connect the two targets to a conference and join the incoming call to it. The calls use one-way-audio only.

[default]
include => split

[split]
exten => _X.,1,Originate(SIP/${EXTEN}@vr01,exten,conf,8901)
exten => _X.,n,Originate(SIP/${EXTEN}@vr02,exten,conf,8901)
exten => _X.,n,ConfBridge(8901)
exten => _X.,h,Hangup

[conf]
exten => 8901,1,NoOp(${SIP_HEADER(From)})
exten => 8901,n,ConfBridge(8901)

This works fine (I will set number and confBridge ID to a random value later. I know that only one call splitting is possible at once at the moment as well as hangup does not work correctly).

My problem is, that I have to keep the From-Header of the origin call as it has some extra values needed to identify the calls correctly. e.g.:
"John Doe" <sip:1234@10.20.30.40;x-farend;x-refci=26842882;x-nearendclusterid=StandAloneCluster;x-nearenddevice=SEP2834A2812345;x-nearendaddr=1100;x-farendrefci=26842881;x-farendclusterid=StandAloneCluster;x-farenddevice=172.173.174.175;x-farendaddr=0123456789>;tag=317996~0f300c08-d36d-435d-b9b6-66ebb8b14330-26842893

I can get the full from-tag with SIPHEADER and share it as shared variable. But how can I set the values that they are used for the originating call to the targets vr01 and vr02?

Thanks for any idea.

Best Regards

Achim

From is a core system headers. Simply overwriting it will break things as you won’t know the correct tag value to add. In addition, it will get overwritten in the process of constructing both requests and responses.

What you probably want to do is to set CALLERID(num) instead.

Hi David,

thanks for your answer.

I just saw that I have to quote the From-line in my post above, as the forum software does not show the arguments I want to set otherwise. I fixed this. Sorry for the confusion.

I tried CALLERID(all) but this did not work. I will try to set the values with CALLERID(num).

Achim

Asterisk is a back to back user agent, primarily intended for use with phone numbers, not a proxy. Caller ID has to pass through code that deals with ISDN. What you are asking for requires major rewriting of the code.

tag= should never be passed through, but should be regenerated as a new unique number on the new leg.

1 Like

I was afraid of that it is not possible without a code patch.

Then we have to write our own software or patch. As it is a very limited scenario this is not much work, but I hoped to use a standard asterisk for this.

Maybe I still use asterisk, write the values to additional lines at SIP header and add an outbound proxy just to rewrite the SIP-header and move the values back to the from-line. This should work.

Thanks again for your help.

Achim