[Asterisk-Dev] IAX2 call variable passing between servers
Michael Bielicki
Michael.Bielicki at Global-Gateway.net
Tue Dec 2 09:53:04 MST 2003
The idea rocks. It would also finally add a simple way to trace a call
all through a iax network and add billing info to it.
John Todd wrote:
>
> Here's an idea for you all to shoot down. I'll await the nonexistant
> comments before I open a feature request.
>
> We have the luxury of moving calls around with IAX2, where we (the
> Asterisk community) have control of the protocol. Various hacks are
> being installed into SIP headers to move data around, as I'm
> experiencing with some of the installations I've now seen. With IAX2,
> it seems apparent that we should be able to move variables around
> semi-transparently, since IAX2 integrates with Asterisk completely.
>
> Sending all variables might be difficult/insecure/silly, as we don't
> want to clutter the call setup with a slew of variables, some of which
> may be inherently "secure" and should not leave the server on which
> they were generated. Perhaps some naming convention could be used to
> differentiate variables that would be passed to the remote end as
> "special case" variables.
>
> There are two possible methods that could be used to determine if
> certain variables might get passed. The first method is the simplest,
> which is to simply search all the named variables and see if any of
> them begin with "resend." and then transmit those automatically.
> Alternately (and perhaps, in addition to this method) one could add
> yet another modifier to the Dial command, such as "v" which stands for
> "send [v]ariables".
>
> I propose a format like this for outbound: outbound.VARNAME
> I propose a format like this for inbound: inbound.VARNAME
>
> I think that it would be wise to "sandbox" the variables with a
> distinguishing feature (name prefix) so that we do not inadvertently
> move variables out of or into local/remote dialplan executions. The
> extra two steps is a small enough effort. (really, one step at each
> end is needed to be "clean", but we could skip the re-translation at
> the far end and just use ${inbound.VARNAME} if we were lazy.)
>
>
> As an example:
> exten => 123,1,SetVar(GREETING=hello there)
> exten => 123,2,SetVar(NAME=John Doe)
> exten => 123,3,SetVar(outbound.GREETING=${GREETING})
> exten => 123,4,SetVar(outbound.NUMBER=${EXTEN})
> exten => 123,5,Dial(IAX2/remote1 at hub1/${EXTEN},,v)
>
> Upon receiving the call, the other host (hub1) would then have to
> translate back like this:
>
> [from-remote1]
> exten => _X.,1,SetVar(OURGREETING=${inbound.GREETING})
> exten => _X.,2,SetVar(DIALEDNUMBER=${inbound.NUMBER})
> exten => _X.,3,blah blah blah
>
>
>
> SIP:
> As far as having this work across channels other than IAX2: SIP can
> handle almost any number of additional headers. It could be possible
> to incorporate a "custom" header if there are any variables that fall
> into the 'resend.' group. Of course, fully escaped syntax would need
> to be followed. As an example, a custom header could be
> generated/parsed:
>
> Asterisk-Variables: FOO="hello there";NUMBER="123"
>
> PRI:
> There are special areas in the PRI outbound call which could contain a
> limited number of variables passed along. See:
> http://www.mail-archive.com/asterisk-dev@lists.digium.com/msg01246.html
>
> MGCP:
> No idea.
>
> SKINNY:
> No idea.
>
> H323:
> No idea.
>
> Local:
> Multiple methods: db[put/get] or native bridge variable transfers.
>
>
> JT
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
More information about the asterisk-dev
mailing list