[asterisk-bugs] [JIRA] (ASTERISK-28029) [patch] res_musiconhold : music on hold will not start if previous hold just reached enf of file

Frederic LE FOLL (JIRA) noreply at issues.asterisk.org
Thu Aug 30 03:26:54 CDT 2018


Frederic LE FOLL created ASTERISK-28029:
-------------------------------------------

             Summary: [patch] res_musiconhold : music on hold will not start if previous hold just reached enf of file
                 Key: ASTERISK-28029
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-28029
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Resources/res_musiconhold
    Affects Versions: 13.13.0
         Environment: Music on hold class=file
            Reporter: Frederic LE FOLL
            Severity: Minor


Observed randomly when a channel is put on hold and retrieved several times, music on hold won't play and CLI will display:
    -- Started music on hold, class '...', on channel '...'
immediately followed by:
    -- Stopped music on hold on ...

Analysis:

After adding a few logs, the problem appears to come from res_musiconhold.c moh_files_readframe() function.
This function is called for every sample reading. When sample reading fails, it calls ast_moh_files_next() to switch to next file.

But on MOH activation, moh_files_readframe() is called while current stream attached to channel is NULL and it calls ast_moh_files_next() immediatly, but it won't call ast_moh_files_next() again if sample reading fails. This may occur - because res_musiconhold retains last sample reading position in the channel data - if MOH during previous hold/retrieve just reached end of file (obviously, a bit of bad luck is required here).

I will propose a fix through Gerrit.



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



More information about the asterisk-bugs mailing list