Peter,

I had a similar issue and I did the following in my dialplan:

    <extension name="from_provider_to_internal_switch">
      <condition field="destination_number" expression="^(\d{10})$">
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="continue_on_fail=21"/>
        <action application="bridge" data="{sip_cid_type=none}sofia/gateway/otherswitch/$1"/>
        <action application="transfer" data="603to486"/>
      </condition>
    </extension>

    <extension name="603to486">
      <condition field="${proto_specific_hangup_cause}" expression="sip:603">
<action application="set" data="sip_ignore_remote_cause=true"/>
        <action application="respond" data="486"/>
        <action application="hangup" data="USER_BUSY"/>
      </condition>
    </extension>

You would have to replace 21 by what the q850 code FS gets from the phone, or true, and 603 by 480.

It's probably not the best way to do it. A LUA script would be nicer.

David Ponzone  Direction Technique
tel:      01 74 03 18 97
gsm:   06 66 98 76 34

Service Client IPeva
tel:      0811 46 26 26

Ce message et toutes les pièces jointes sont confidentiels et établis à l'intention exclusive de ses destinataires. Toute utilisation ou diffusion non autorisée est interdite. Tout message électronique est susceptible d'altération. IPeva décline toute responsabilité au titre de ce message s'il a été altéré, déformé ou falsifié. Si vous n'êtes pas destinataire de ce message, merci de le détruire immédiatement et d'avertir l'expéditeur.




Le 26/03/2010 à 15:36, Peter P GMX a écrit :

Nobody has an idea how to force the 486 SIP message?

Best regards
Peter

Peter P GMX schrieb am 22.03.2010:
I tried this, but only with half success

after the phones responds with "do not disturb"
(Variables from Info application
variable_proto_specific_hangup_cause: [sip:480]
variable_sip_hangup_phrase: [Do Not Disturb])

I do process the following:
<action application="bridge"
data="loopback/hangup_causes_${sip_hangup_phrase}"/>

In the following dialplan I process:
<extension name="hangup-causes">
<action application="info" data=""/>
<condition field="destination_number" expression="hangup_causes_Do Not
Disturb">
<action application="sleep" data="1000"/>
<action application="set" data="sip_ignore_remote_cause=true"/>
<!-- <action application="respond" data="486"/> -->
<action application="hangup" data="USER_BUSY"/>
</condition>
</extension>
Freeswitch sends a 480 Message with
Reason: Q.850;cause=17;text="USER_BUSY"

This is a first step, but I need a 486 message as the PSTN still reponds
"temporary unavailable" instead of "busy". Also "respond" with "486"
does not work, as commented in the dialplan.

It seems that the 480 message cannot be overriden in this case.
Freeswitch insists on using 480
mod_sofia.c:352 sofia/internal/203@mydomain Overriding SIP cause 486
with 480 from the other leg

Any other idea to achieve a 486 message?

Best regards
Peter

Leon de Rooij schrieb:

Hi,

Don't know if it helps, but the inline attribute can only be set on  
actions, not on conditions.

Also, the hangup application is not allowed to be run inline:
http://fisheye.freeswitch.org/browse/FreeSWITCH/src/mod/applications/mod_dptools/mod_dptools.c?r=HEAD#l3047
(it has no SAF_ROUTING_EXEC flag)

Perhaps you can try to transfer to another context directly after your  
bridge ? (where that second context contains an extension with  
conditions matching on variable_originate_disposition)

kind regards,

Leon


On Mar 16, 2010, at 12:55 PM, Peter P GMX wrote:



I have the folowing scenario:
A Snom phone has activated DND (do not disturb)
When the phone is called, it returns "480 Do Not Disturb" and then
"404 Not Found".
Freeswitch then announces NO_USER_RESPONSE to the caller (PSTN).
The PSTN then (wrongly) announces "this number is not listed".

My question: How can we overcome this and announce back a different
message to PSTN, but only on NO_USER_RESPONSE.
I tried to continue on bridge and then this after the bridge command  
the
following:
    <condition field="variable_originate_disposition"
expression="NO_USER_RESPONSE" inline="true">
      <action application="hangup" data="USER_BUSY"/>
    </condition>

But the installed Freeswith does not support the "inline" yet and we
will not be able to update Freeswitch soon.

So my question:
Is there any other way to achieve this?

Best regards
Peter