[Home]

Summary:ASTERISK-06998: Wrong account selected on inbound calls
Reporter:Ivar Dahl (ivar)Labels:
Date Opened:2006-05-19 06:50:54Date Closed:2006-05-19 10:30:21
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Refiled, since tholo's original report was hijacked

System setup:

Three phones across two systems as follows:

Two IAXys on one system, each with its own account
One IAXy on a target system

The source system has two IAX user entries for the target system, "voop-trunk1" and "voop-trunk2", and peer entries on the target system named "multi1" and "multi2".  The IAXys are set up such that they each will call out using a separate peer entry to different users on the target system.

When the call comes in on the target system, it works fine for one of the two, while the other always pick the wrong entry. Which one works and which one does not depends on the order in which they are defined on the target system's iax.conf.

It appears that the specified account in the IAX call setup is being ignored...??

Relevant sections from configuration files and console logs below.

****** ADDITIONAL INFORMATION ******

iax.conf on calling system:

[multi2]
type=user
auth=md5
secret=***
context=multi2-inbound
trunk=yes
notransfer=yes
allow=ulaw

[multi1]
type=user
auth=md5
secret=***
context=multi1-inbound
trunk=yes
notransfer=yes
allow=ulaw

[voop-trunk1]
type=peer
auth=md5
secret=***
host=<some_host>
qualify=yes
trunk=yes
sendani=yes
notransfer=yes
allow=ulaw

[voop-trunk2]
type=peer
auth=md5
secret=***
host=<some_host>
qualify=yes
trunk=yes
sendani=yes
notransfer=yes
allow=ulaw

[jaxxyi1]
type=friend
secret=jaxxyi1
auth=md5
context=multi1-outbound
host=dynamic
trunk=no
notransfer=yes
accountcode=multi1
allow=ulaw
sendani=no
qualify=yes
callerid="Ivar Dahl test multi1" <55606690>

[jaxxyi2]
type=friend
secret=jaxxyi2
auth=md5
context=multi2-outbound
host=dynamic
trunk=no
notransfer=yes
accountcode=multi2
allow=ulaw
sendani=no
qualify=yes
callerid="Ivar Dahl test multi2" <55606692>
*********

*********
extensions.conf on calling system:

[multi1-outbound]
ignorepat => 0
exten => _0X.,1,NoOp(multi1-outbound, ${EXTEN})
exten => _0X.,n,Dial(IAX2/multi1@voop-trunk1/${EXTEN:1})

[multi2-outbound]
ignorepat => 0
exten => _0X.,1,NoOp(multi2-outbound, ${EXTEN})
exten => _0X.,n,Dial(IAX2/multi2@voop-trunk2/${EXTEN:1})
**********

**********
iax.conf on target system:

[multi1]
type=user
auth=md5
secret=***
context=multi1-inbound
trunk=yes
notransfer=yes
allow=ulaw

[multi2]
type=user
auth=md5
secret=***
context=multi2-inbound
trunk=yes
notransfer=yes
allow=ulaw

[multi1]
type=peer
auth=md5
secret=***
host=dynamic
qualify=yes
trunk=yes
sendani=yes
notransfer=yes

[multi2]
type=peer
auth=md5
secret=***
host=dynamic
qualify=yes
trunk=yes
sendani=yes
notransfer=yes

[iv-iaxy]
type=friend
auth=md5
secret=***
context=international
host=dynamic
qualify=yes
trunk=no
disallow=all
allow=ulaw
callerid="Ivartest" <5558888888>
accountcode=ivartest
***********

***********

extensions.conf on target system:

[multi1-inbound]
exten => 100,1,Dial(IAX2/iv-iaxy/${EXTEN})
exten => 100,n,Congestion

[multi2-inbound]
exten => 100,1,Dial(IAX2/iv-iaxy/${EXTEN})
exten => 100,n,Congestion
************


************
Console output from calling system:
Using the account "multi1":

   -- Accepted AUTHENTICATED TBD call from 192.168.10.230
   -- Accepting DIAL from 192.168.10.230, formats = 0x4
   -- Executing NoOp("IAX2/jaxxyi1-9", "multi1-outbound| 0100") in new stack
   -- Executing Dial("IAX2/jaxxyi1-9", "IAX2/multi1@voop-trunk1/100") in new stack
   -- Called multi1@voop-trunk1/100
   -- Call accepted by 80.239.99.103 (format ulaw)
   -- Format for call is ulaw
   -- IAX2/voop-trunk1-16384 is ringing
   -- Hungup 'IAX2/voop-trunk1-16384'
 == Spawn extension (multi1-outbound, 0100, 2) exited non-zero on 'IAX2/jaxxyi1-9'
   -- Hungup 'IAX2/jaxxyi1-9'

Using the account "multi2":
   -- Accepted AUTHENTICATED TBD call from 192.168.10.228
   -- Accepting DIAL from 192.168.10.228, formats = 0x4
   -- Executing NoOp("IAX2/jaxxyi2-12", "multi2-outbound| 0100") in new stack
   -- Executing Dial("IAX2/jaxxyi2-12", "IAX2/multi2@voop-trunk2/100") in new stack
   -- Called multi2@voop-trunk2/100
   -- Call accepted by 80.239.99.103 (format ulaw)
   -- Format for call is ulaw
   -- IAX2/voop-trunk2-16385 is ringing
   -- Hungup 'IAX2/voop-trunk2-16385'
 == Spawn extension (multi2-outbound, 0100, 2) exited non-zero on 'IAX2/jaxxyi2-12'
   -- Hungup 'IAX2/jaxxyi2-12'
**********

**********
Console ouput from target system:

Using the account "multi1":

   -- Accepting AUTHENTICATED call from 62.97.242.6:
      > requested format = ulaw,
      > requested prefs = (),
      > actual format = ulaw,
      > host prefs = (ulaw),
      > priority = mine
   -- Executing Dial("IAX2/multi2-4", "IAX2/iv-iaxy/100") in new stack
   -- Called iv-iaxy/100
   -- Call accepted by 62.97.242.6 (format ulaw)
   -- Format for call is ulaw
   -- IAX2/iv-iaxy-5 is ringing
   -- Hungup 'IAX2/iv-iaxy-5'
 == Spawn extension (multi1-inbound, 100, 1) exited non-zero on 'IAX2/multi2-4'
   -- Hungup 'IAX2/multi2-4'

Using the account "multi2":

   -- Accepting AUTHENTICATED call from 62.97.242.6:
      > requested format = ulaw,
      > requested prefs = (),
      > actual format = ulaw,
      > host prefs = (ulaw),
      > priority = mine
   -- Executing Dial("IAX2/multi2-8", "IAX2/iv-iaxy/100") in new stack
   -- Called iv-iaxy/100
   -- Call accepted by 62.97.242.6 (format ulaw)
   -- Format for call is ulaw
   -- IAX2/iv-iaxy-15 is ringing
   -- Hungup 'IAX2/iv-iaxy-15'
 == Spawn extension (multi2-inbound, 100, 1) exited non-zero on 'IAX2/multi2-8'
   -- Hungup 'IAX2/multi2-8'
**********

The target system picks multi2 regardless...
Comments:By: Joshua C. Colp (jcolp) 2006-05-19 08:06:08

No, everything is working fine. As you can clearly see they are going to the two different contexts:

Spawn extension (multi1-inbound, 100, 1) exited non-zero on 'IAX2/multi2-4'

Spawn extension (multi2-inbound, 100, 1) exited non-zero on 'IAX2/multi2-8'

Your confusion is coming from the way that the channel name is generated. As a feature when a channel name is generated, a peer name matching the IP address that the packet came from is searched for, and if found is used in the channel name. Understand?

By: Joshua C. Colp (jcolp) 2006-05-19 10:30:21

Closing because this is not a bug, it's the way it works. If you want to talk more post to the asterisk-dev mailing list or reopen this.