I'm trying to set a channel variable and make it available to another channel: I thought that if I SetVar(_SomeVariable=SomeValue) or SetVar(__SomeVariable=SomeValue) then SomeVariable would be available in the destination channel. However __SomeVariable, _SomeVariable and SomeVariable are all blank. The scenario: Agents logon to the queue using callbacklogin. From what I can gather the following happens: 1) Incomming Call -> answered, plays welcome message added to Q 2) Local channel calls the agent, plays announcement 3) incomming call connected to agent where would I be able to retreive the inherited variables ?
What you want is SetGlobalVar, which sets a variable that is available to any channel. hth Jonathan ----- Original Message ----- From: "Asterisk" <asterisk@dotr.com> To: "Asterisk Users Mailing List - Non-Commercial Discussion" <asterisk-users@lists.digium.com> Sent: February 24, 2005 10:31 AM Subject: [Asterisk-Users] Inheriting variables> I'm trying to set a channel variable and make it available to another > channel: > > I thought that if I SetVar(_SomeVariable=SomeValue) or > SetVar(__SomeVariable=SomeValue) then SomeVariable would be available in > the destination channel. > > However __SomeVariable, _SomeVariable and SomeVariable are all blank. > > The scenario: > > Agents logon to the queue using callbacklogin. From what I can gather > the following happens: > > 1) Incomming Call -> answered, plays welcome message added to Q > 2) Local channel calls the agent, plays announcement > 3) incomming call connected to agent > > where would I be able to retreive the inherited variables ? > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: > lists.digium.com/mailman/listinfo/asterisk-users >
Julian << For example, I want to store the zap channel number into SourceChannel on the incoming call, and make it available to the called agent channel.>> If global variables are not suitable maybe the registry will work. You may have looked at DBGet and DBPut to retrieve and store arbitrary values. For example you might store values using the channel id as the key and when the call ends delete the values. Database values are available to all channels but you can have your dialplan only work with database values related to its own channel or channels that are related in someway. Bill Seddon Lyquidity Solutions Limited -----Original Message----- From: asterisk-users-bounces@lists.digium.com [mailto:asterisk-users-bounces@lists.digium.com] On Behalf Of Asterisk Sent: February 24, 2005 3:41 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [Asterisk-Users] Inheriting variables Jonathan Hobbs wrote:> What you want is SetGlobalVar, which sets a variable that is availableto> any channel.No, I only want the variable available to the original channel and all connected channels. I don't want it available to any channel. For example, I want to store the zap channel number into SourceChannel on the incoming call, and make it available to the called agent channel. Thanks anyway. Julian.> > hth > > Jonathan > > > ----- Original Message ----- > From: "Asterisk" <asterisk@dotr.com> > To: "Asterisk Users Mailing List - Non-Commercial Discussion" > <asterisk-users@lists.digium.com> > Sent: February 24, 2005 10:31 AM > Subject: [Asterisk-Users] Inheriting variables > > > >>I'm trying to set a channel variable and make it available to another >>channel: >> >>I thought that if I SetVar(_SomeVariable=SomeValue) or >>SetVar(__SomeVariable=SomeValue) then SomeVariable would be availablein>>the destination channel. >> >>However __SomeVariable, _SomeVariable and SomeVariable are all blank. >> >>The scenario: >> >>Agents logon to the queue using callbacklogin. From what I can gather >>the following happens: >> >>1) Incomming Call -> answered, plays welcome message added to Q >>2) Local channel calls the agent, plays announcement >>3) incomming call connected to agent >> >>where would I be able to retreive the inherited variables ? >>_______________________________________________ >>Asterisk-Users mailing list >>Asterisk-Users@lists.digium.com >>lists.digium.com/mailman/listinfo/asterisk-users >>To UNSUBSCRIBE or update options visit: >> lists.digium.com/mailman/listinfo/asterisk-users >> > > > > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: > lists.digium.com/mailman/listinfo/asterisk-users > >_______________________________________________ Asterisk-Users mailing list Asterisk-Users@lists.digium.com lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: lists.digium.com/mailman/listinfo/asterisk-users
Bill Seddon wrote:> Julian > > << For example, I want to store the zap channel number into > SourceChannel > on the incoming call, and make it available to the called agent > channel.>> > > If global variables are not suitable maybe the registry will work. You > may have looked at DBGet and DBPut to retrieve and store arbitrary > values. For example you might store values using the channel id as the > key and when the call ends delete the values.The problem with this is that if I use the channel ID as the key, the target channel does not know the parent channel, and therefore does not know what key to use. Internally, the channels obviously know how they are linked, but I wanted to achieve this without having to write app_GetChanData - although that sounds quite interesting now ... :) Julian> > Database values are available to all channels but you can have your > dialplan only work with database values related to its own channel or > channels that are related in someway. > > Bill Seddon > > Lyquidity Solutions Limited