<br><font size=2 face="sans-serif">Hello,</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
I have been trying to completely disable music on hold on my asterisk system.
When a call is put on hold I do not want any music on hold, but I would
like the remote user to get informed of this event (depending on the technology
e.g. with a SIP reinvite and an SDP indicating the call is on hold).</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
I have searched and tried out various approaches, but when putting the
call on hold by a SIP user, I always get an indication that asterisk tries
to play music on hold.</font><font size=3> The remote side does not get
a re-invite.<br>
</font><font size=2 face="sans-serif"><br>
What I have tried so far:</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
- no musiconhold.conf in the hope that lack of the configuration file disables
&nbsp;moh</font><font size=3> </font><font size=2 face="sans-serif"><br>
- a musiconhold.conf where everything is commented out</font><font size=3>
</font><font size=2 face="sans-serif"><br>
- modules.conf with 'unload =&gt; res_musiconhold.so'</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
When I start asterisk, it indicates that it disables music on hold:</font><font size=3>
</font><font size=2 face="sans-serif"><br>
[Jan 28 10:15:02] WARNING[31052]: res_musiconhold.c:1784 load_module: No
music on hold classes configured, disabling music on hold.</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp;== Registered application 'MusicOnHold'</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp;== Registered application 'WaitMusicOnHold'</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp;== Registered application 'SetMusicOnHold'</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp;== Registered application 'StartMusicOnHold'</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp;== Registered application 'StopMusicOnHold'</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 res_musiconhold.so =&gt; (Music On Hold Resource)</font><font size=3>
<br>
<br>
</font><font size=2 face="sans-serif"><br>
However, when I set up a sip call between two sip phones and one end puts
the call on hold, then I always get the following message and the remote
side is not informed that the call is on hold:</font><font size=3> </font><font size=2 face="sans-serif"><br>
</font>
<br><font size=3>&nbsp; &nbsp; -- Executing [s@macro-stddial:2] Dial(&quot;SIP/2222-00000000&quot;,
&quot;SIP/4444&quot;) in new stack</font>
<br><font size=3>&nbsp; == Using SIP RTP CoS mark 5</font>
<br><font size=3>&nbsp; &nbsp; -- Called 4444</font>
<br><font size=3>&nbsp; &nbsp; -- SIP/4444-00000001 is ringing</font>
<br><font size=3>&nbsp; &nbsp; -- SIP/4444-00000001 answered SIP/2222-00000000</font>
<br><font size=3>&nbsp; &nbsp; -- Native bridging SIP/2222-00000000 and
SIP/4444-00000001</font>
<br><font size=3>later when the call is put on hold:</font>
<br><font size=3>&nbsp; &nbsp; -- Music class default requested but no
musiconhold loaded.<br>
<br>
</font><font size=2 face="sans-serif"><br>
Can anybody give me any pointers or tell me how to disable moh completely
and send re-invites for call hold?</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
thanks for any help</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
Urs</font><font size=3> <br>
<br>
</font><font size=2 face="sans-serif"><br>
My easiest configuration with Asterisk 1.6.2.7:</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
modules.conf</font><font size=3> </font><font size=2 face="sans-serif"><br>
----------------------------------------------------------</font><font size=3>
</font><font size=2 face="sans-serif"><br>
[modules]</font><font size=3> </font><font size=2 face="sans-serif"><br>
autoload=yes</font><font size=3> </font><font size=2 face="sans-serif"><br>
; res_phoneprov requires func_strings.so to be loaded:</font><font size=3>
</font><font size=2 face="sans-serif"><br>
preload =&gt; func_strings.so</font><font size=3> </font><font size=2 face="sans-serif"><br>
noload =&gt; pbx_gtkconsole.so</font><font size=3> </font><font size=2 face="sans-serif"><br>
noload =&gt; res_musiconhold.so</font><font size=3> <br>
<br>
</font><font size=2 face="sans-serif"><br>
extensions.conf:</font><font size=3> </font><font size=2 face="sans-serif"><br>
-----------------------------------------------------------</font><font size=3>
</font><font size=2 face="sans-serif"><br>
[general]</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
[default]</font><font size=3> </font><font size=2 face="sans-serif"><br>
;SIP extensions</font><font size=3> </font><font size=2 face="sans-serif"><br>
exten =&gt; _XXXX,1,Macro(stddial,SIP/${EXTEN})</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
[macro-stddial]</font><font size=3> </font><font size=2 face="sans-serif"><br>
; &nbsp; ${ARG1} - What to dial</font><font size=3> </font><font size=2 face="sans-serif"><br>
exten =&gt; s,1,Answer()</font><font size=3> </font><font size=2 face="sans-serif"><br>
exten =&gt; s,n,Dial(${ARG1})</font><font size=3> </font><font size=2 face="sans-serif"><br>
exten =&gt; s,n,Goto(s-${DIALSTATUS},1)</font><font size=3> </font><font size=2 face="sans-serif"><br>
exten =&gt; s-NOANSWER,1,Hangup</font><font size=3> </font><font size=2 face="sans-serif"><br>
exten =&gt; s-BUSY,1,Hangup</font><font size=3> </font><font size=2 face="sans-serif"><br>
exten =&gt; _s-.,1,NoOp</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
sip.conf:</font><font size=3> </font><font size=2 face="sans-serif"><br>
--------------------------------------------------------</font><font size=3>
</font><font size=2 face="sans-serif"><br>
[general]</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;language=en &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; ; configured default language</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;dtmfmode=rfc2833 &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;; default dtmfmode for sending DTMF (Dual-tone multi-frequency)</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;directrtpsetup=no &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; ; Disable the new experimental direct RTP setup</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;allowtransfer=yes &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; ; enable all transfers for peers and users</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;match_auth_username=yes &nbsp; &nbsp; ; use
'authentication username' instead of 'username for authentication' (if
available)</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;session-timers=originate &nbsp; &nbsp;; Request
and run session-timers always</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;session-expires=3600 &nbsp; &nbsp; &nbsp; &nbsp;;
maximum session refresh interval</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;session-minse=600 &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; ; minimum session refresh interval</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;session-refresher=uas &nbsp; &nbsp; &nbsp;
; session refresher is user-agent-server</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;;allowguest=no &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp;; Allow or reject guest calls (default is yes)</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;notifyhold = yes &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; ; Notify subscriptions on HOLD state (default: no)</font><font size=3>
<br>
<br>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;udpbindaddr=0.0.0.0:5060 &nbsp; &nbsp;; Servers
IP address (all) to bind UDP listen socket to</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;srvlookup=yes &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; ; enable DNS SRV lookups on outbound calls</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
[allusers](!)</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;context=default</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;type=friend &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; ; All options are possible</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;qualify=2000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp;; no, 2000=2 sec to wait for reply before remote party
is considered unreachable</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;;qualifyfreq=60 &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; ; Qualification: How often to check in seconds</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;canreinvite=yes &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp;; certain devices do not like change of RTP source/destination
during call</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
[4444](allusers)</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;host=dynamic &nbsp;; the device needs to register</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;secret = 1234</font><font size=3> </font><font size=2 face="sans-serif"><br>
[3333](allusers)</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;host=dynamic &nbsp;; the device needs to register</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;secret = 1234</font><font size=3> </font><font size=2 face="sans-serif"><br>
[2222](allusers)</font><font size=3> </font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;host=dynamic &nbsp;; the device needs to register</font><font size=3>
</font><font size=2 face="sans-serif"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;secret = 1234</font><font size=3> </font>
<br>