[asterisk-bugs] [JIRA] (ASTERISK-16352) [patch] Dialplan execution stops after awhile on an attended transfer by the calling party (with use of Dial 'g' option)

Matt Jordan (JIRA) noreply at issues.asterisk.org
Thu Feb 26 09:19:35 CST 2015


     [ https://issues.asterisk.org/jira/browse/ASTERISK-16352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matt Jordan updated ASTERISK-16352:
-----------------------------------

    Description: 
Dialplan execution stops after awhile on an attended transfer by the calling party  (with use of Dial() command 'g' option) 
This applies to systems with large dialplans (which we use), small dialplans do not seem to encounter much problems, due to the delay in SIP messaging.

If traced, you can see the after Asterisk receives a SIP BYE message, the dialplan execution is immediately stopped even though there are other priorities to evaluate in the dialplan.

SEE STEPS TO REPRODUCE (in advanced view mode)

*STEPS TO REPRODUCE*

I use this dialplan:

{noformat}
exten = 801,1,Dial(SIP/401,15,g)
exten = 801,n,Goto(test,s,1)

exten = 802,1,Dial(SIP/402,15,g)
exten = 802,n,Goto(test,s,1)

exten = 803,1,Dial(SIP/403,15,g)
exten = 803,n,Goto(test,s,1)

exten = h,1,Goto(test,s,1)

[test]
exten = s,1,Set(COUNT=1)
exten = s,n,While($[${COUNT} <= 1000])
 exten = s,n,Noop(Waiting loop started for issue 1321 - counter value = ${COUNT})
 exten = s,n,Set(COUNT=$[${COUNT} + 1])
exten = s,n,EndWhile
exten = s,n,Hangup
{noformat}


Then:

* From peer 403 (extension 803) dial 801 (peer 401) and answer.
* Put call on Hold at 403
* From peer 403 dial 802 (peer 402) and answer.
* transfer the call.. (SIP REFER)

Notice that the dialplan execution stops before the counter reaches 1000.



NOTE:
-----
Please note that this example may seem ludicrous. However in my dialplan I use many ODBC calls that take up some time to execute, which is why I was confronted with this issue.

  was:
Dialplan execution stops after awhile on an attended transfer by the calling party  (with use of Dial() command 'g' option) 
This applies to systems with large dialplans (which we use), small dialplans do not seem to encounter much problems, due to the delay in SIP messaging.

If traced, you can see the after Asterisk receives a SIP BYE message, the dialplan execution is immediately stopped even though there are other priorities to evaluate in the dialplan.

SEE STEPS TO REPRODUCE (in advanced view mode)

****** STEPS TO REPRODUCE ******

I use this dialplan:

exten = 801,1,Dial(SIP/401,15,g)
exten = 801,n,Goto(test,s,1)

exten = 802,1,Dial(SIP/402,15,g)
exten = 802,n,Goto(test,s,1)

exten = 803,1,Dial(SIP/403,15,g)
exten = 803,n,Goto(test,s,1)

exten = h,1,Goto(test,s,1)

[test]
exten = s,1,Set(COUNT=1)
exten = s,n,While($[${COUNT} <= 1000])
 exten = s,n,Noop(Waiting loop started for issue 1321 - counter value = ${COUNT})
 exten = s,n,Set(COUNT=$[${COUNT} + 1])
exten = s,n,EndWhile
exten = s,n,Hangup



Then:

* From peer 403 (extension 803) dial 801 (peer 401) and answer.
* Put call on Hold at 403
* From peer 403 dial 802 (peer 402) and answer.
* transfer the call.. (SIP REFER)

Notice that the dialplan execution stops before the counter reaches 1000.



NOTE:
-----
Please note that this example may seem ludicrous. However in my dialplan I use many ODBC calls that take up some time to execute, which is why I was confronted with this issue.


> [patch] Dialplan execution stops after awhile on an attended transfer by the calling party  (with use of Dial 'g' option)
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-16352
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-16352
>             Project: Asterisk
>          Issue Type: Bug
>          Components: PBX/General
>            Reporter: Ramon Peek
>            Severity: Minor
>         Attachments: debug_log2.tar.gz, patch.diff
>
>
> Dialplan execution stops after awhile on an attended transfer by the calling party  (with use of Dial() command 'g' option) 
> This applies to systems with large dialplans (which we use), small dialplans do not seem to encounter much problems, due to the delay in SIP messaging.
> If traced, you can see the after Asterisk receives a SIP BYE message, the dialplan execution is immediately stopped even though there are other priorities to evaluate in the dialplan.
> SEE STEPS TO REPRODUCE (in advanced view mode)
> *STEPS TO REPRODUCE*
> I use this dialplan:
> {noformat}
> exten = 801,1,Dial(SIP/401,15,g)
> exten = 801,n,Goto(test,s,1)
> exten = 802,1,Dial(SIP/402,15,g)
> exten = 802,n,Goto(test,s,1)
> exten = 803,1,Dial(SIP/403,15,g)
> exten = 803,n,Goto(test,s,1)
> exten = h,1,Goto(test,s,1)
> [test]
> exten = s,1,Set(COUNT=1)
> exten = s,n,While($[${COUNT} <= 1000])
>  exten = s,n,Noop(Waiting loop started for issue 1321 - counter value = ${COUNT})
>  exten = s,n,Set(COUNT=$[${COUNT} + 1])
> exten = s,n,EndWhile
> exten = s,n,Hangup
> {noformat}
> Then:
> * From peer 403 (extension 803) dial 801 (peer 401) and answer.
> * Put call on Hold at 403
> * From peer 403 dial 802 (peer 402) and answer.
> * transfer the call.. (SIP REFER)
> Notice that the dialplan execution stops before the counter reaches 1000.
> NOTE:
> -----
> Please note that this example may seem ludicrous. However in my dialplan I use many ODBC calls that take up some time to execute, which is why I was confronted with this issue.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list