[asterisk-users] Asterisk not matching longest prefix with include

Dovid Bender dovid at telecurve.com
Tue Jun 26 18:20:55 CDT 2018


On Tue, Jun 26, 2018 at 7:06 PM, Doug Lytle <support at drdos.info> wrote:

> On 06/26/2018 06:57 PM, Dovid Bender wrote:
>
>> Hi,
>>
>> My dialplan looks like this:
>> [from-external]
>>
>> Exten => _X.,1,Noop(CALL IS COMING INTO FROM EXTERNAL CONTEXT)
>> Exten => _X.,n,Noop(IP: ${CHANNEL(recvip)})
>> Exten => _X.,n,Noop(CALLED NUMBER: ${EXTEN})
>> Exten => _X.,n,Ringing
>> Exten => _X.,n,WaitExten(15)
>> Exten => _X.,n,Congestion()
>> Exten => _X.,n,Hangup()
>>
>>
>> include => test
>>
>> [test]
>>
>> Exten => 8282,1,Noop(--- WE GOT TO CONTEXT TEST!--------- )
>>
>>
>
> Dovid,
>
> This has to do with sort order, try this:
>
>
> [from-external]
>
> ; Order DOES count
>
> include => test
> include => match_all
>
>
> [match_all]
>
> Exten => _X.,1,Noop(CALL IS COMING INTO FROM EXTERNAL CONTEXT)
> Exten => _X.,n,Noop(IP: ${CHANNEL(recvip)})
> Exten => _X.,n,Noop(CALLED NUMBER: ${EXTEN})
> Exten => _X.,n,Ringing
> Exten => _X.,n,WaitExten(15)
> Exten => _X.,n,Congestion()
> Exten => _X.,n,Hangup()
>
> [test]
>
> Exten => 8282,1,Noop(--- WE GOT TO CONTEXT TEST!--------- )
>
> --
>
>
Doug,

I tried that as well. Even with my dialplan looking like this:

[from-external]
Exten => 1234,1,Noop()

include => test

Exten => _X.,1,Noop(CALL IS COMING INTO FROM EXTERNAL CONTEXT)
Exten => _X.,n,Noop(IP: ${CHANNEL(recvip)})
Exten => _X.,n,Noop(CALLED NUMBER: ${EXTEN})
Exten => _X.,n,Ringing
Exten => _X.,n,WaitExten(15)
Exten => _X.,n,Congestion()
Exten => _X.,n,Hangup()

[test]

Exten => 8282,1,Noop(--- WE GOT TO CONTEXT TEST!--------- )


It still didnt work. Now if I did:

[from-external]
Exten => 1234,1,Noop()

include => test


Exten => _X.,1,Noop(CALL IS COMING INTO FROM EXTERNAL CONTEXT)
Exten => _X.,n,Noop(IP: ${CHANNEL(recvip)})
Exten => _X.,n,Noop(CALLED NUMBER: ${EXTEN})
Exten => _X.,n,Ringing
Exten => _X.,n,WaitExten(15)
Exten => _X.,n,Congestion()
Exten => _X.,n,Hangup()

Exten => 8282,1,Noop(--- WE GOT TO CONTEXT TEST!--------- )




OR if I did:
[from-external]
Exten => 1234,1,Noop()

include => test


Exten => _X.,1,Noop(CALL IS COMING INTO FROM EXTERNAL CONTEXT)
Exten => _X.,n,Noop(IP: ${CHANNEL(recvip)})
Exten => _X.,n,Noop(CALLED NUMBER: ${EXTEN})
Exten => _X.,n,Ringing
Exten => _X.,n,WaitExten(15)
Exten => _X.,n,Congestion()
Exten => _X.,n,Hangup()

Exten => 8282,1,Noop(--- WE GOT TO CONTEXT TEST!--------- )



Either way it worked. It seems that when there is an include so long as
there is something else that matches in the context you are in, even if
it's shorter that takes preference to a longer match which seems like a bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20180626/217d804c/attachment.html>


More information about the asterisk-users mailing list