[asterisk-bugs] [Asterisk 0010592]: Variables set in an IAX2 user/friend no longer make it to the channel created for an (authenticated?) incoming call

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Aug 29 09:09:57 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=10592 
====================================================================== 
Reported By:                stevedavies
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   10592
Category:                   Channels/chan_iax2
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:            SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 81292 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             08-29-2007 08:04 CDT
Last Modified:              08-29-2007 09:09 CDT
====================================================================== 
Summary:                    Variables set in an IAX2 user/friend no longer make
it to the channel created for an (authenticated?) incoming call
Description: 

In current SVN trunk, setvars done in a user/friend definition in
iax2.conf do not make it to the created channel for an incoming IAX calls. 
(Possibly, only for authenticated calls).

I suspect this is a side effect of the changes made in bug
http://bugs.digium.com/view.php?id=9315

Here's logs showing the problem (including some extra tracing that I
added):

[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27] Rx-Frame
Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW    
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    Timestamp:
00003ms  SCall: 12056  DCall: 00000 [41.241.31.0:4569]
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    VERSION    
    : 2
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    CALLING
NUMBER  : 0878202303
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    CALLING
NAME    : Steve Davies
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    FORMAT     
    : 1024
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    CAPABILITY 
    : 2
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    USERNAME   
    : 0878202303
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    CALLED
NUMBER   : 0216575160
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    DNID       
    : 0216575160
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27] 
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: New max nontrunk callno is 11
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: Creating new call structure 10
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: Received packet 0, (6, 1)
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: IAX subclass 1 received
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: For call=10, set last=3
[Aug 29 14:54:27] VERBOSE[5972] chan_iax2.c: Best match was 0878202303
with score 0
[Aug 29 14:54:27] VERBOSE[5972] chan_iax2.c: Using user 0878202303
[Aug 29 14:54:27] VERBOSE[5972] chan_iax2.c: Setting FROM-PEER=0878202303
on call 10
[Aug 29 14:54:27] VERBOSE[5972] chan_iax2.c: Setting ACCOUNTCODE=ctel on
call 10
[Aug 29 14:54:27] VERBOSE[5972] chan_iax2.c: Setting accountcode = ctel
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: Sending 14 on 10/12056 to
41.241.31.0:4569
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27] Tx-Frame
Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: AUTHREQ
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    Timestamp:
00014ms  SCall: 00010  DCall: 12056 [41.241.31.0:4569]
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    AUTHMETHODS
    : 2
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    CHALLENGE  
    : -12424811
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    USERNAME   
    : 0878202303
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27] 
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27] Rx-Frame
Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: AUTHREP
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    Timestamp:
00024ms  SCall: 12056  DCall: 00010 [41.241.31.0:4569]
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]    MD5 RESULT 
    : 17972f6d3ce514fed01c61c28134ef22
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27] 
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: Received packet 1, (6, 9)
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: Cancelling transmission of
packet 0
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: IAX subclass 9 received
[Aug 29 14:54:27] DEBUG[5972] chan_iax2.c: For call=10, set last=24
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]     --
Accepting AUTHENTICATED call from 41.241.31.0:
       > requested format = ilbc,
       > requested prefs = (),
       > actual format = gsm,
       > host prefs = (g729|ilbc|gsm|speex|alaw|ulaw),
       > priority = mine
[Aug 29 14:54:27] DEBUG[5972] pbx.c: Launching 'NoOp'
[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]     --
Executing [0216575160 at from-cust-ctel:1] NoOp("IAX2/0878202303-10",
"accountcode= FROM-PEER=") in new stack


Here you can see that the variables get copies from the user structure
into the iax2 structure (ie iaxs[callno]):

[Aug 29 14:54:27] VERBOSE[5972] chan_iax2.c: Setting FROM-PEER=0878202303
on call 10
[Aug 29 14:54:27] VERBOSE[5972] chan_iax2.c: Setting ACCOUNTCODE=ctel on
call 10

And that the accountcode in the iax2 structure is set too:

[Aug 29 14:54:27] VERBOSE[5972] chan_iax2.c: Setting accountcode = ctel

But by the time we get into the dialplan they are not there:

[Aug 29 14:54:27] VERBOSE[5972] logger.c: [Aug 29 14:54:27]     --
Executing [0216575160 at from-cust-ctel:1] NoOp("IAX2/0878202303-10",
"accountcode= FROM-PEER=") in new stack


====================================================================== 

---------------------------------------------------------------------- 
 stevedavies - 08-29-07 09:09  
---------------------------------------------------------------------- 
The issue is that ast_iax2_new now puts all the variables in the private
structure into a variablestore.   The code used to just set channel
variables.

In respect of variables that came from the remote peer, that's a good
thing because they should be kept distinct for security reasons.

But there is a flawed assumption that all of those variables came from the
remote system.

That assumption is incorrect because of the variables that came from
setvar in the user/friend entry, which are in the same linked list.

Steve 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
08-29-07 09:09  stevedavies    Note Added: 0069603                          
======================================================================




More information about the asterisk-bugs mailing list