I need to be able to play back early media to A leg, so if {ignore_early_media=false} there is no way to tell from originate_disposition that the bridge was answered? ________________________________ From: Anthony Minessale <anthony.minessale@gmail.com> To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Sent: Tuesday, August 16, 2011 11:56 AM Subject: Re: [Freeswitch-users] ORIGINATE_DISPOSITION bridge_early_media implies ignore_early_media true so you can't use them together but yes since there is no cause code for answered because the call has not ended that would guarantee it was answered if you exited originate with either ignore_early_media=true or bridge_early_media=true On Tue, Aug 16, 2011 at 1:48 PM, Sam <lakersman2006@yahoo.com> wrote:
"if you call somewhere that uses early media, the originate will end setting originate_disposition to SUCCESS meaning that a live channel was produced. Now the bridge will begin between the A and B leg." Does that mean it is safe to assume when "originate_disposition" is SUCCESS, that the call has been answered if I set the following:
{ignore_early_media=false} {bridge_early_media=true}
________________________________ From: Anthony Minessale <anthony.minessale@gmail.com> To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Sent: Tuesday, August 16, 2011 10:54 AM Subject: Re: [Freeswitch-users] ORIGINATE_DISPOSITION
The originate disposition of A leg will always have the last known status from B
originate, by default, returns when:
1) media is established on a specific outgoing leg, answered or not 2) all outgoing legs are terminated.
if you call somewhere that uses early media, the originate will end setting originate_disposition to SUCCESS meaning that a live channel was produced. Now the bridge will begin between the A and B leg.
When the bridge ends if the B leg is hungup, its cause will be stored in "bridge_hangup_cause"
if you want to keep the originate from ending when early media is established you can add {ignore_early_media=true} or {bridge_early_media=true} prepended to your dial string and the originate will never return untill all outbound legs are either hungup or one is answered.
You should take some time to expand your mind to the different paradigm in FreeSWITCH where you may have as many as 10 outbound legs at once in a forked-dial situation and some of what you think is simple and obvious will quickly dissolve.
Another thing you can do is set the variable "failed_xml_cdr_prefix" on the A leg. This prefix will be mixed with an incrementing variable for each outbound call leg and in the case of a failure the entire XML cdr will be set into a var on A leg.
for instance if you set failed_xml_cdr_prefix=foo you would get foo_1 foo_2 etc depending on the number of outbound call legs.
Additionally you can set copy_xml_cdr on the A leg and when the bridge ends you will get a complete CDR for B in the "b_leg_cdr" variable on A
Finally you should really go with the flow of how FreeSWITCH is engineered and try to keep your accounting logic in a separate place and monitor the XML-CDR, CDR-CSV or event_socket + CHANNEL_HANGUP_COMPLETE events to process this information. There is much more to a call and what happens when it's transferred etc than what you can get in a single monolithic perspective of inside the channel. Plus it's conter intuitive to put routing, application and accounting logic in the same place.
On Tue, Aug 16, 2011 at 12:26 PM, Sam <lakersman2006@yahoo.com> wrote:
Dmitry, Yes, I agree. For an novice like me it was extremely confusing and frustrating that I could not get the proper B leg disposition when A leg is answered by FS itself. I hope there can be some methods or functions that will allow us to get the proper B Leg disposition. ________________________________ From: Dmitry Sytchev <kbdfck@gmail.com> To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Sent: Tuesday, August 16, 2011 2:30 AM Subject: Re: [Freeswitch-users] ORIGINATE_DISPOSITION
Seems we need to clear things about B-leg disposition in wiki. AFAIK there is no method to get correct disposition from B leg without analyzing events in case when A-leg was answered by FS itself. If A leg was not answered, we can use A-leg disposition for call disposition.
2011/8/16 Michael Collins <msc@freeswitch.org>
On Mon, Aug 15, 2011 at 5:05 PM, Sam <lakersman2006@yahoo.com> wrote:
I am using perl's $session->get_variable("originate_disposition");
Are you looking at the b-leg's session?
Also, how come the "hangup_time" shows zero on answered calls?
Because hangup_time refers to the point in time at which the call was hung up. Since you are in the middle of a call (using the $session object) you will never see the hangup_time because the object ceases to exist once the call leg is disconnected. I get the impression that you may be using the wrong tool for this particular job, but I'm not sure without seeing it. If you don't mind dropping it on pastebin we'll have a look and give you some suggestions. -MC
________________________________ From: Michael Collins <msc@freeswitch.org> To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Sent: Monday, August 15, 2011 4:58 PM Subject: Re: [Freeswitch-users] ORIGINATE_DISPOSITION
And how are you checking the variable? Do you have an event socket open or ... ? -MC
On Mon, Aug 15, 2011 at 4:57 PM, Sam <lakersman2006@yahoo.com> wrote:
It is being generated with a bridge.
________________________________ From: Michael Collins <msc@freeswitch.org> To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Sent: Monday, August 15, 2011 4:54 PM Subject: Re: [Freeswitch-users] ORIGINATE_DISPOSITION
And how is it being generated? WIth a bridge or originate or ... ? -MC
On Mon, Aug 15, 2011 at 4:49 PM, Sam <lakersman2006@yahoo.com> wrote:
I want to know the B-leg status of the call.
________________________________ From: Michael Collins <msc@freeswitch.org> To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org> Sent: Monday, August 15, 2011 4:31 PM Subject: Re: [Freeswitch-users] ORIGINATE_DISPOSITION
I think you may be wanting "endpoint_disposition" depending on exactly what you're looking at. -MC
On Mon, Aug 15, 2011 at 3:35 PM, Sam <lakersman2006@yahoo.com> wrote:
For the ORIGINATE_DISPOSITION channel variable, does "SUCCESS" mean the call was ANSWERED?
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
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
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
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
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
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
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
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
-- Best regards,
Dmitry Sytchev, IT Engineer
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
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
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
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 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