[asterisk-dev] 'IAX2 call variable passing between servers '

Steven Critchfield critch at basesys.com
Thu Aug 3 12:05:58 MST 2006


On Thu, 2006-08-03 at 12:45 -0600, Douglas Garstang wrote:
> > -----Original Message-----
> > From: Kevin P. Fleming [mailto:kpfleming at digium.com]
> > Sent: Thursday, August 03, 2006 12:29 PM
> > To: Asterisk Developers Mailing List
> > Subject: Re: [asterisk-dev] 'IAX2 call variable passing 
> > between servers
> > '
> > 
> > 
> > ----- Douglas Garstang <dgarstang at oneeighty.com> wrote:
> > > > CDR(ACCOUNTCODE) on the receiving server. The value that was 
> > > > in CDR(ACCOUNTCODE) on the sending server is never 
> > > > transferred and will not be visible on the receiving server.
> > > 
> > > So... are you saying that CDR's are passed through IAX2?
> > > I inspected the value of ${CDR(accountcode)} at the remote Asterisk
> > > system, but still got 'default'
> > 
> > Did you read the last three lines of the quoted text?
> 
> Realised after my post that I'd misread it. 
> 
> We need to pass variables through IAX2. If user A calls user B, and
> user B is on a different Asterisk system, when the second Asterisk
> system receives the call, the accountcode, dnid, rdnis etc are
> completely gone. 
> 
> Also, If user B, who is on a SIP phone, transfers or forwards a call
> at that point, when Asterisk re-enters the dial plan to process the
> transfered/forwarded call, it does so with a type of IAX2 still, not
> 'Local' or SIP. It appears as if the initial trunk is overriding in
> some way all subsequent calls that the second Asterisk system
> processes, and it doesn't matter what protocol we're using, we are
> limited by IAX2. 
> 
> For example, when user B forwards a call, the rdnis variable is set.
> If the phone is communicating with Asterisk via SIP, and Asterisk
> executes an AGI script, the rdnis variable is passed to it, and the
> call type is 'SIP. However, in the case where user B is on a second
> Asterisk system and forwards a call, rdnis us 'unknown' and the call
> type is 'IAX2', eventhough it's a SIP call! This is really breaking
> things.

If you used IAX2 to get from one machine to another, then the call is
not SIP. Remember that IAX2 is not just a protocol to use with in your
company. IAX2 is a protocol to accept calls from the outside world as
well. Do you really think you should be exposed to whatever variables I
want to inject into your system when I make a connection to your
machine. Think about the fun if I decided what the account code should
be on your system. If I really didn't like you, I could throw all kinds
of obscenities in as the account code and mess with your accounting.

Just because you aren't getting the information you want from one side
to the other does not mean it is broken. It means either the developers
haven't decided it should be done yet or there is a good security reason
for it not being done yet. 

-- 
Steven Critchfield <critch at basesys.com>




More information about the asterisk-dev mailing list