VARs after SIP attended transfer

Hello experts,

can somebody please shed some light on variable inheritance after SIP attended transfer?

We are using Yealink and Bria phones; in both cases attended transfers are performed using built-in phone buttons = SIP REFER method. Typical example:

  1. A —> B
  2. B initiates SIP attended transfer of the call to external party C
  3. A → C

A = external caller in a queue
B = agent in a queue
C = external party, called via sip trunk

Observing the behavior, it seems that all the variables for channel A or B that were set in stage 1 are lost in stage 3 - with few exceptions (like info about master channel, ConnectedLine). I’ve used underscores, but doesnt help (example: __Var).

Is there a way / trick /to pass all the variables (from A or B) to C again when the calls are bridged? I would like to know that external call C is related to inbound call A.

We are using Local channels with queues, chan_sip, asterisk 18.21.

Big thanks in advance,

I think inheritance happens at the point of channel creation, at which point, for a REFER/Replaces sequence is when the enquiry call is made, so that the association is not known at that point.

However, when the REFER is actioned, I believe LINKEDID on the enquiry leg will be down dated to that from the original call, which, in common cases, will be the same as the UNIQUEID, which is a candidate key for the channel, when using IMPORT.

This may break for more complex scenarios.


big thanks for your help, it’s much appreciated. I didn’t know that one can import vars from channel based on uniqueid. :slight_smile:, it’s not in docs.

Have a good day,

In many places you can specify a uniqueid or name, it’s a side effect of work done I think in Asterisk 12.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.