Ticket #5521 (closed Bugs: fixed)

Opened 1 year ago

Last modified 1 year ago

Follow Me Bug with call confirmation

Reported by: tonyclewis Assigned to: p_lindheimer
Priority: minor Milestone: 2.10
Component: Follow Me Version: 2.10-branch
Keywords: Cc:
Confirmation: Pending Distro:
Backend Engine: All Distro Ver:
Backend Ver: SVN Revision (if applicable):

Description

If I have extesnion 101 and 10111 with a follow me setup the call confirmation never works.

The issue is it matches to the 101 not the 10111 like it should. In extensions_additional.conf I have

exten => _RG-101-.,1,Macro(dial,${DB(AMPUSER/101/followme/grptime)},${DIAL_OPTIONS}M(confirm101),${EXTEN:7}) exten => _RG-10111-.,1,Macro(dial,${DB(AMPUSER/101/followme/grptime)},${DIAL_OPTIONS}M(confirm101),${EXTEN:7})

If we remove the railing - it works and matches correct.

Change History

01/16/12 17:16:48 changed by p_lindheimer

  • confirmation changed from Unreviewed to Need Feedback.

The following test case demonstrates an apparent issue in Asterisk unless it is a very subtle problem with the use of dialplan in our code.

[from-internal]
exten => 1112,1,Goto(tst-parse,s,1)

[tst-parse]
exten => s,1,Noop(Running Parse Priority Text)
exten => s,n,Dial(Local/RG-10111-99999@tst-parse)
exten => s,n,Dial(Local/RG-20111-99999@tst-parse)
exten => s,n,Hangup
exten => h,1,Hangup
exten => _RG-10111-.,1,Noop(IN 10111, this is CORRECT)
exten => _RG-101-.,1,Noop(IN 101, this is WRONG)
exten => _RG-20111.,1,Noop(IN 20111, this is CORRECT)
exten => _RG-201.,1,Noop(IN 201, this is WRONG)

When running this on 1.8.5.0 and 1.8.7.1 it fails to match the more explicit match when there is a trailing "-" but when taken away it runs properly. WE NEED THIS TESTED ON 1.6 and 1.4 to see if the behavior is different and report back here. This is the result on 1.8:

    -- Executing [1112@from-internal:1] Goto("SIP/700-000003ac", "tst-parse,s,1") in new stack
    -- Goto (tst-parse,s,1)
    -- Executing [s@tst-parse:1] NoOp("SIP/700-000003ac", "Running Parse Priority Text") in new stack
    -- Executing [s@tst-parse:2] Dial("SIP/700-000003ac", "Local/RG-10111-99999@tst-parse") in new stack
    -- Called Local/RG-10111-99999@tst-parse
    -- Executing [RG-10111-99999@tst-parse:1] NoOp("Local/RG-10111-99999@tst-parse-6114;2", "IN 101, this is WRONG") in new stack
    -- Auto fallthrough, channel 'Local/RG-10111-99999@tst-parse-6114;2' status is 'UNKNOWN'
    -- Executing [h@tst-parse:1] Hangup("Local/RG-10111-99999@tst-parse-6114;2", "") in new stack
  == Spawn extension (tst-parse, h, 1) exited non-zero on 'Local/RG-10111-99999@tst-parse-6114;2'
    -- No one is available to answer at this time (1:0/0/0)
    -- Executing [s@tst-parse:3] Dial("SIP/700-000003ac", "Local/RG-20111-99999@tst-parse") in new stack
    -- Called Local/RG-20111-99999@tst-parse
    -- Executing [RG-20111-99999@tst-parse:1] NoOp("Local/RG-20111-99999@tst-parse-19bc;2", "IN 20111, this is CORRECT") in new stack
    -- Auto fallthrough, channel 'Local/RG-20111-99999@tst-parse-19bc;2' status is 'UNKNOWN'
    -- Executing [h@tst-parse:1] Hangup("Local/RG-20111-99999@tst-parse-19bc;2", "") in new stack

you will note in the one case it is CORRECT and in the other it is WRONG

01/16/12 17:21:02 changed by p_lindheimer

Tested on 1.4.32:

-- Executing [1112@from-internal:1] Goto("SIP/7001-000005bf", "tst-parse|s|1") in new stack 
    -- Goto (tst-parse,s,1) 
    -- Executing [s@tst-parse:1] NoOp("SIP/7001-000005bf", "Running Parse Priority Text") in new stack 
    -- Executing [s@tst-parse:2] Dial("SIP/7001-000005bf", "Local/RG-10111-99999@tst-parse") in new stack 
    -- Called RG-10111-99999@tst-parse 
    -- Executing [RG-10111-99999@tst-parse:1] NoOp("Local/RG-10111-99999@tst-parse-8d8c,2", "IN 10111| this is CORRECT") in new stack 
  == Auto fallthrough, channel 'Local/RG-10111-99999@tst-parse-8d8c,2' status is 'UNKNOWN' 
    -- Executing [h@tst-parse:1] Hangup("Local/RG-10111-99999@tst-parse-8d8c,2", "") in new stack 
  == Spawn extension (tst-parse, h, 1) exited non-zero on 'Local/RG-10111-99999@tst-parse-8d8c,2' 
  == Everyone is busy/congested at this time (1:0/0/1) 
    -- Executing [s@tst-parse:3] Dial("SIP/7001-000005bf", "Local/RG-20111-99999@tst-parse") in new stack 
    -- Called RG-20111-99999@tst-parse 
    -- Executing [RG-20111-99999@tst-parse:1] NoOp("Local/RG-20111-99999@tst-parse-6a9b,2", "IN 20111| this is CORRECT") in new stack 
  == Auto fallthrough, channel 'Local/RG-20111-99999@tst-parse-6a9b,2' status is 'UNKNOWN' 
    -- Executing [h@tst-parse:1] Hangup("Local/RG-20111-99999@tst-parse-6a9b,2", "") in new stack 
  == Spawn extension (tst-parse, h, 1) exited non-zero on 'Local/RG-20111-99999@tst-parse-6a9b,2' 
  == Everyone is busy/congested at this time (1:0/0/1) 
    -- Executing [s@tst-parse:4] Hangup("SIP/7001-000005bf", "") in new stack 
  == Spawn extension (tst-parse, s, 4) exited non-zero on 'SIP/7001-000005bf' 
    -- Executing [h@tst-parse:1] Hangup("SIP/7001-000005bf", "") in new stack 
  == Spawn extension (tst-parse, h, 1) exited non-zero on 'SIP/7001-000005bf'

so 1.4 seems to work properly

01/16/12 19:14:28 changed by tonyclewis

1.6.2 acts like 1.8

Connected to Asterisk 1.6.2.21 currently running on pbx (pid = 3434) Verbosity is at least 3

== Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5

-- Executing [1112@from-internal:1] Goto("SIP/8001-00000001", "tst-parse,s,1") in new stack -- Goto (tst-parse,s,1) -- Executing [s@tst-parse:1] NoOp?("SIP/8001-00000001", "Running Parse Priority Text") in new stack -- Executing [s@tst-parse:2] Dial("SIP/8001-00000001", "Local/RG-10111-99999@tst-parse") in new stack -- Called RG-10111-99999@tst-parse -- Executing [RG-10111-99999@tst-parse:1] NoOp?("Local/RG-10111-99999@tst-parse-365c;2", "IN 101, this is WRONG") in new stack -- Auto fallthrough, channel 'Local/RG-10111-99999@tst-parse-365c;2' status is 'UNKNOWN' -- Executing [h@tst-parse:1] Hangup("Local/RG-10111-99999@tst-parse-365c;2", "") in new stack

== Spawn extension (tst-parse, h, 1) exited non-zero on 'Local/RG-10111-99999@tst-parse-365c;2'

-- No one is available to answer at this time (1:0/0/0) -- Executing [s@tst-parse:3] Dial("SIP/8001-00000001", "Local/RG-20111-99999@tst-parse") in new stack -- Called RG-20111-99999@tst-parse -- Executing [RG-20111-99999@tst-parse:1] NoOp?("Local/RG-20111-99999@tst-parse-d3f6;2", "IN 20111, this is CORRECT") in new stack -- Auto fallthrough, channel 'Local/RG-20111-99999@tst-parse-d3f6;2' status is 'UNKNOWN' -- Executing [h@tst-parse:1] Hangup("Local/RG-20111-99999@tst-parse-d3f6;2", "") in new stack

== Spawn extension (tst-parse, h, 1) exited non-zero on 'Local/RG-20111-99999@tst-parse-d3f6;2'

-- No one is available to answer at this time (1:0/0/0) -- Executing [s@tst-parse:4] Hangup("SIP/8001-00000001", "") in new stack

== Spawn extension (tst-parse, s, 4) exited non-zero on 'SIP/8001-00000001'

-- Executing [h@tst-parse:1] Hangup("SIP/8001-00000001", "") in new stack

== Spawn extension (tst-parse, h, 1) exited non-zero on 'SIP/8001-00000001'

01/17/12 01:22:39 changed by p_lindheimer

  • confirmation changed from Need Feedback to Pending.

This appears that it may be an Asterisk Issue. Filed and waiting to see what the response is:

https://issues.asterisk.org/jira/browse/ASTERISK-19205

02/17/12 21:12:30 changed by p_lindheimer

  • status changed from new to closed.
  • resolution set to fixed.

(In [13470]) temporarily fixes #5521 pending a proper fix from Asterisk