Summary:ASTERISK-17376: Streaming audio file through Local channel to a few SIP devices randomly loses audio
Reporter:bhvictor (bhvictor)Labels:
Date Opened:2011-02-09 15:45:39.000-0600Date Closed:2011-04-14 12:49:37
Versions:Frequency of
Environment:Attachments:( 0) logs
Description:We have a paging feature which allows one to record a message (with Record), and then have that message sent twice in a row as a Page to a five SIP devices, using a Local channel setup in a callfile.

About 99% of the time it works perfectly. The other 1% or so (about once per day), the audio cuts out on the page at a random place. Unfortunately, this situation occurs randomly each day. All users associated with the five devices report the same cutoff point when there's a failure.

The logs seems to indicate everything's fine, except we always see:
   WARNING[3292] file.c: Unexpected control subclass '-1'
This shows up for all pre-recorded pages, even the successful ones.

Thanks for any help.

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

Not certain, as it so far occurs pretty much at random, though typically once per day.
Comments:By: bhvictor (bhvictor) 2011-02-09 15:48:55.000-0600

Forgot to mention: we turned on DEBUG logging and full SIP logging, as per your guidelines, for the snippet attached.

By: Leif Madsen (lmadsen) 2011-02-10 12:21:24.000-0600

Can you provide the dialplan you're using, along with the exact version of Asterisk you're using?

Can you provide a recording of the successful and unsuccessful call recordings so we can hear what it is doing? A pcap capture with the RTP may be of some use as well (including the SIP messages).

By: bhvictor (bhvictor) 2011-02-14 11:40:34.000-0600

We're running 1.4.30. We have strict customer requirements to meet, so each upgrade is pretty major for us, and this version has so far proved stable.

We're dependent on customers reporting the dropping issue, but I'll update when they do.

Here is the relevant dialplan snippet, I have tried to simplify it a bit for readability:

; ARG1 = originating caller ID
; ARG2 = zone to page
exten => s,1,Set(callerid=${ARG1})
exten => s,n,Set(zone=${ARG2})
exten => s,n,Set(num-times=2)

exten => do-page,1,Set(page-recording=tmp/${zone}-page-message-${RAND(100000,999999)}.wav)
exten => do-page,n,Noop(${callerid} is paging a recorded message ${num-times} time(s) to zone ${ARG2}...)
exten => do-page,n,Macro(system-page-fetch-regs,${callerid},${ARG2})    ; ${regs} set in macro
exten => do-page,n,Record(${page-recording})
exten => do-page,n,Hangup                                               ; they pressed #, so goto h

exten => h,1,DeadAGI(pagefile,${callerid},${page-recording},${num-times},${zone},${regs})

[system-do-page-with-recording]                             ; called from AGI script
exten => s,1,SIPAddHeader(Alert-Info: Ring Answer)          ; force phones offhook
exten => s,n,Page(${regs})                                  ; regs set in AGI script

By: Leif Madsen (lmadsen) 2011-03-09 14:02:51.000-0600

I've related this issue to ASTERISK-14988 which has a patch. Please test the patch and report back on your findings to both this issue and the other issue. Thanks!