<div dir="ltr"><div><div><div>I am using Realtime extensions as well, in case that would matter.<br><br>Following problem arises from time to time, a call will successfully terminate:<br><br>[May 14 14:31:41] VERBOSE[3274] pbx_realtime.c: -- Executing [t@project_init:1] Hangup("SIP/peer-2-00002f7e", "")<br>
[May 14 14:31:41] VERBOSE[3274] pbx.c: == Spawn extension (project_init, t, 1) exited non-zero on 'SIP/peer-2-00002f7e'<br><br></div><div><bye message, Really destroying SIP dialog, etc><br></div><div><br>
</div>This is the call file:<br><br>Channel: SIP/peer-2/00numberhere<br>CallerID: "" <+calleridhere><br>Extension: 123<br>SetVar: someid=123<br>Context: setup<br>WaitTime: 30<br>MaxRetries: 0<br>RetryTime: 300<br>
Account: 123<br>Priority: 1<br><br><br></div>Some time after the call has hung up, the call file is still there and this is appended to the file:<br>StartRetry: 20354 1 (1400070906) (My note: Wed May 14 14:35:06 CEST 2014)<br>
<br>DelayedRetry: 20354 0 (1400070906) same time...<br><br>DelayedRetry: 20354 0 (1400071206) five minutes...<br><br>DelayedRetry: 20354 0 (1400071506) and so on...<br><br>DelayedRetry: 20354 0 (1400071806) never deleting this file<br>
<br>DelayedRetry: 20354 0 (1400072106) are we?<br><br>DelayedRetry: 20354 0 (1400072406) nope....<br><br>DelayedRetry: 20354 0 (1400072706) waiting for someone....<br><br>DelayedRetry: 20354 0 (1400073006) to do manual work<br>
<br><br><br><br></div>Asterisk log:<br>[May 14 14:35:06] DEBUG[20421] pbx_spool.c: Delaying retry since we're currently running '/var/spool/asterisk/outgoing/callfile'<br>[May 14 14:40:06] DEBUG[20421] pbx_spool.c: Delaying retry since we're currently running '/var/spool/asterisk/outgoing/callfile'<br>
[May 14 14:45:06] DEBUG[20421] pbx_spool.c: Delaying retry since we're currently running '/var/spool/asterisk/outgoing/callfile'<br>[May 14 14:50:06] DEBUG[20421] pbx_spool.c: Delaying retry since we're currently running '/var/spool/asterisk/outgoing/callfile'<br>
[May 14 14:55:06] DEBUG[20421] pbx_spool.c: Delaying retry since we're currently running '/var/spool/asterisk/outgoing/callfile'<br>[May 14 15:00:06] DEBUG[20421] pbx_spool.c: Delaying retry since we're currently running '/var/spool/asterisk/outgoing/callfile'<br>
[May 14 15:05:06] DEBUG[20421] pbx_spool.c: Delaying retry since we're currently running '/var/spool/asterisk/outgoing/callfile'<br>[May 14 15:10:06] DEBUG[20421] pbx_spool.c: Delaying retry since we're currently running '/var/spool/asterisk/outgoing/callfile'<br>
<br><br><div><br><div><div><br></div><div>Asterisk code:<br></div><div><br> if (o->retries <= o->maxretries) {<br> now += o->retrytime;<br> if (o->callingpid && (o->callingpid == ast_mainpid)) {<br>
safe_append(o, time(NULL), "DelayedRetry");<br> ast_log(LOG_DEBUG, "Delaying retry since we're currently running '%s'\n", o->fn);<br> free_outgoing(o);<br>
} else {<br> /* Increment retries */<br> o->retries++;<br> /* If someone else was calling, they're presumably gone now<br> so abort their retry and continue as we were... */<br>
if (o->callingpid)<br> safe_append(o, time(NULL), "AbortRetry");<br><br> safe_append(o, now, "StartRetry");<br> launch_service(o);<br>
}<br> return now;<br> }<br><br><br></div><div><br></div><div><br></div><div>Sure, I could just disable the retry check and add :<br> if (FALSE) {<br></div><div>And it will always expire should this occur...<br>
</div><div><br>But I'm not sure if this is a good idea or not, and it would be nice not having to do that on every upgrade.<br><br><br></div><div>Anyone have experience with what's going on?<br><br></div><div>The file can be written to, since safe_append seems to be able to write to the file.<br>
<br></div><div>This only happens once in a while, which makes it hard to track down.<br><br></div></div></div></div>