Ringtone on multiple destinations
Hello! I have a question about ringback-tone when calling multiple destinations. When i call a single directory-user, i get a proper ringback-tone - but when i add a second user to the bridge-command, there's no more ringback-tone. This is not about early-media - the phones only send 180 Ringing and the ringtone is provided by FS. Shouldn't FS send a ringback-tone as soon as the first phone answers with 180? Or is this behaviour just as intended? I've attached sip-traces of both situations plus the respective extension. Best regards Christian
As luck would have it, this exact issue is mentioned in chapter 1 of the FreeSWITCH Cookbook in the recipe entitled, "Advanced multiple endpoint routing with enterprise originate." While you click here<http://link.packtpub.com/nuIOlX>and pre-order your copy ;) I will give you the synopsis: You MUST ignore early media when doing an enterprise originate. Therefore, to get ringback tone you'll need to set the ringback channel variable on the A leg. Your extension will end up looking something like this: <action application="set" data="ringback=${us-ring}"/> <action application="bridge" data="<ignore_early_media=true>[leg_timeout=0][origination_caller_id_number=30]user/35@ ${domain_name}:_:[leg_timeout=0][origination_caller_id_number=30]user/31@ ${domain_name}"/> Note: when doing any kind of multiple endpoint originate, whether using the enterprise originate or just the comma-separated list of endpoints, it is 99.99% of the time necessary to ignore early media. Why? The answer to that question is eloquently stated in both chapters 5 and 8 of the first FreeSWITCH book. Check it out<http://www.packtpub.com/freeswitch-1-0-6-build-robust-high-performance-telephony-systems/book>. :) -MC On Wed, Feb 15, 2012 at 9:37 AM, Christian Benke <benkokakao@gmail.com>wrote:
Hello!
I have a question about ringback-tone when calling multiple destinations. When i call a single directory-user, i get a proper ringback-tone - but when i add a second user to the bridge-command, there's no more ringback-tone.
This is not about early-media - the phones only send 180 Ringing and the ringtone is provided by FS.
Shouldn't FS send a ringback-tone as soon as the first phone answers with 180? Or is this behaviour just as intended?
I've attached sip-traces of both situations plus the respective extension.
Best regards Christian
You MUST ignore early media when doing an enterprise originate. Therefore, to get ringback tone you'll need to set the ringback channel variable on the A leg. Your extension will end up looking something like this:
<action application="set" data="ringback=${us-ring}"/> <action application="bridge" data="<ignore_early_media=true>[leg_timeout=0][origination_caller_id_number=30]user/35@${domain_name}:_:[leg_timeout=0][origination_caller_id_number=30]user/31@${domain_name}"/>
Thanks, this is obviously fixing the situation with SIP to SIP. However, there are still issues when calling in via ISDN(Inbound Call from ISDN to multiple SIP-endpoints), the results vary: - On calling a single endpoint, tone is played when "ringback" is set to UNDEFINED, but not when it's set to a proper value. Adding a "ring_ready" will obviously make both variants work. - On calling multiple endpoints, a tone is ONLY transmitted when "ring_ready" is set - if i understand correctly, this will send a RINGING regardless of the endpoints response. Without explicitely setting ring_ready, the callstate never changes from PROCEED, even though the endpoints indicate they are 180 RINGING. Setting ringback to UNDEF or a proper value doesn't change the result. Is there a way to use the actual RINGING-signalisation of multiple endpoints as a trigger for FS to change the callstate to RINGING instead of doing it artificially with ring_ready? Here are the results in detail(See attached logs) ISDN to single SIP-Endpoint: No Tone: freeswitch_single_isdn_no_ring_ready_ringback_rs_ring.log Tone works: freeswitch_single_isdn_no_ring_ready_ringback_empty.lo freeswitch_single_isdn_ring_ready_ringback_rs_ring.log freeswitch_single_isdn_ring_ready_ringback_empty.log ISDN to multiple SIP-Endpoints: No Tone: freeswitch_multiple_isdn_no_ring_ready_ringback_empty.log freeswitch_multiple_isdn_no_ring_ready_ringback_rs_ring.log Tone works: freeswitch_multiple_isdn_ring_ready_ringback_empty.log freeswitch_multiple_isdn_ring_ready_ringback_rs_ring.log And btw, i got the hint... ;-) (Not yet available in Europe though)
try changing: <ignore_early_media=true> to <ignore_early_media=ring_ready> On Thu, Feb 16, 2012 at 8:15 AM, Christian Benke <benkokakao@gmail.com> wrote:
You MUST ignore early media when doing an enterprise originate. Therefore, to get ringback tone you'll need to set the ringback channel variable on the A leg. Your extension will end up looking something like this:
<action application="set" data="ringback=${us-ring}"/> <action application="bridge" data="<ignore_early_media=true>[leg_timeout=0][origination_caller_id_number=30]user/35@${domain_name}:_:[leg_timeout=0][origination_caller_id_number=30]user/31@${domain_name}"/>
Thanks, this is obviously fixing the situation with SIP to SIP.
However, there are still issues when calling in via ISDN(Inbound Call from ISDN to multiple SIP-endpoints), the results vary:
- On calling a single endpoint, tone is played when "ringback" is set to UNDEFINED, but not when it's set to a proper value. Adding a "ring_ready" will obviously make both variants work.
- On calling multiple endpoints, a tone is ONLY transmitted when "ring_ready" is set - if i understand correctly, this will send a RINGING regardless of the endpoints response. Without explicitely setting ring_ready, the callstate never changes from PROCEED, even though the endpoints indicate they are 180 RINGING. Setting ringback to UNDEF or a proper value doesn't change the result.
Is there a way to use the actual RINGING-signalisation of multiple endpoints as a trigger for FS to change the callstate to RINGING instead of doing it artificially with ring_ready?
Here are the results in detail(See attached logs)
ISDN to single SIP-Endpoint: No Tone: freeswitch_single_isdn_no_ring_ready_ringback_rs_ring.log
Tone works: freeswitch_single_isdn_no_ring_ready_ringback_empty.lo freeswitch_single_isdn_ring_ready_ringback_rs_ring.log freeswitch_single_isdn_ring_ready_ringback_empty.log
ISDN to multiple SIP-Endpoints: No Tone: freeswitch_multiple_isdn_no_ring_ready_ringback_empty.log freeswitch_multiple_isdn_no_ring_ready_ringback_rs_ring.log
Tone works: freeswitch_multiple_isdn_ring_ready_ringback_empty.log freeswitch_multiple_isdn_ring_ready_ringback_rs_ring.log
And btw, i got the hint... ;-) (Not yet available in Europe though)
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire AIM: anthm MSN:anthony_minessale@hotmail.com GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org googletalk:conf+888@conference.freeswitch.org pstn:+19193869900
participants (3)
-
Anthony Minessale
-
Christian Benke
-
Michael Collins