[Freeswitch-dev] How to hangup bridged sessions
How to hangup bridged sessions Hello, i have following problem: I used following code for brdiging my current session to multiple Voip Phones in a freeswitch thread (same as bgapi): switch_ivr_originate(session, &peer_session, &cause, "user/60@192.168.1.50,user/61@192.168.1.50", timelimit, NULL, NULL, NULL, NULL, NULL, SOF_NONE,NULL) != SWITCH_STATUS_SUCCESS) Both Phones with number 60 and 61 rings. In a special case I need to force hangup both Phones (stop ringing). I use following code for hangup bridged sessions: char * my_uuid = switch_core_session_get_uuid(session); char other_uuid[255]; switch_ivr_find_bridged_uuid(my_uuid, other_uuid,255 ); sessionNebenstelle = switch_core_session_locate(other_uuid); if (sessionNebenstelle) { channelNebenstelle = switch_core_session_get_channel(sessionNebenstelle); switch_channel_hangup(channelNebenstelle,SWITCH_CAUSE_NO_ANSWER); if (switch_core_session_private_event_count(sessionNebenstelle)) { switch_ivr_parse_all_events(sessionNebenstelle); } } This Code works only for one phone, so Phone 61 stops ringing, but Phone 60 continue ringing. It is possible, that i can hangup the other phone ? Is there a better solution for cancel switch_ivr_originate (hangup all originating sessions ?) Greetings Achim Stamm -- Achim Stamm, Dipl.-Inform. (FH) Lyncker & Theis GmbH Wilhelmstr. 16 65185 Wiesbaden Germany Fon +49 611/9006951 Fax +49 611/9406125 Handelsregister: HRB 23156 Amtsgericht Wiesbaden Steuernummer: 04323897052 USt-IdNr.: DE255806399 Geschäftsführer: Filip Lyncker, Armin Theis
Hi, Did you try to hangup the session (not the peer session). This should freeswitch force to hangup all related channels (the session + the connected sessions). BR, Bernhard -----Ursprüngliche Nachricht----- Von: freeswitch-dev-bounces@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] Im Auftrag von Achim Stamm Gesendet: Freitag, 1. Oktober 2010 18:02 An: freeswitch-dev@lists.freeswitch.org Betreff: [Freeswitch-dev] How to hangup bridged sessions How to hangup bridged sessions Hello, i have following problem: I used following code for brdiging my current session to multiple Voip Phones in a freeswitch thread (same as bgapi): switch_ivr_originate(session, &peer_session, &cause, "user/60@192.168.1.50,user/61@192.168.1.50", timelimit, NULL, NULL, NULL, NULL, NULL, SOF_NONE,NULL) != SWITCH_STATUS_SUCCESS) Both Phones with number 60 and 61 rings. In a special case I need to force hangup both Phones (stop ringing). I use following code for hangup bridged sessions: char * my_uuid = switch_core_session_get_uuid(session); char other_uuid[255]; switch_ivr_find_bridged_uuid(my_uuid, other_uuid,255 ); sessionNebenstelle = switch_core_session_locate(other_uuid); if (sessionNebenstelle) { channelNebenstelle = switch_core_session_get_channel(sessionNebenstelle); switch_channel_hangup(channelNebenstelle,SWITCH_CAUSE_NO_ANSWER); if (switch_core_session_private_event_count(sessionNebenstelle)) { switch_ivr_parse_all_events(sessionNebenstelle); } } This Code works only for one phone, so Phone 61 stops ringing, but Phone 60 continue ringing. It is possible, that i can hangup the other phone ? Is there a better solution for cancel switch_ivr_originate (hangup all originating sessions ?) Greetings Achim Stamm -- Achim Stamm, Dipl.-Inform. (FH) Lyncker & Theis GmbH Wilhelmstr. 16 65185 Wiesbaden Germany Fon +49 611/9006951 Fax +49 611/9406125 Handelsregister: HRB 23156 Amtsgericht Wiesbaden Steuernummer: 04323897052 USt-IdNr.: DE255806399 Geschäftsführer: Filip Lyncker, Armin Theis _______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
Bernhard Suttner schrieb:
Hi,
Did you try to hangup the session (not the peer session). This should freeswitch force to hangup all related channels (the session + the connected sessions).
BR, Bernhard
-----Ursprüngliche Nachricht----- Von: freeswitch-dev-bounces@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] Im Auftrag von Achim Stamm Gesendet: Freitag, 1. Oktober 2010 18:02 An: freeswitch-dev@lists.freeswitch.org Betreff: [Freeswitch-dev] How to hangup bridged sessions
How to hangup bridged sessions
Hello,
i have following problem:
I used following code for brdiging my current session to multiple Voip Phones in a freeswitch thread (same as bgapi):
switch_ivr_originate(session, &peer_session, &cause, "user/60@192.168.1.50,user/61@192.168.1.50", timelimit, NULL, NULL, NULL, NULL, NULL, SOF_NONE,NULL) != SWITCH_STATUS_SUCCESS)
Both Phones with number 60 and 61 rings.
In a special case I need to force hangup both Phones (stop ringing). I use following code for hangup bridged sessions:
char * my_uuid = switch_core_session_get_uuid(session); char other_uuid[255]; switch_ivr_find_bridged_uuid(my_uuid, other_uuid,255 ); sessionNebenstelle = switch_core_session_locate(other_uuid); if (sessionNebenstelle) { channelNebenstelle = switch_core_session_get_channel(sessionNebenstelle); switch_channel_hangup(channelNebenstelle,SWITCH_CAUSE_NO_ANSWER); if (switch_core_session_private_event_count(sessionNebenstelle)) { switch_ivr_parse_all_events(sessionNebenstelle); } }
This Code works only for one phone, so Phone 61 stops ringing, but Phone 60 continue ringing.
It is possible, that i can hangup the other phone ?
Is there a better solution for cancel switch_ivr_originate (hangup all originating sessions ?)
Greetings
Achim Stamm
For my special case: I need my session alive for doing read and write frame in a while loop. After hanging up the peer Sessions. I do an answer (for my session) and enter the while loop. The "Connection" to another Session (also in a read and write frame while loop) is done by exchanging manually audio frames. Thanks for your question. -- Achim Stamm, Dipl.-Inform. (FH) Lyncker & Theis GmbH Wilhelmstr. 16 65185 Wiesbaden Germany Fon +49 611/9006951 Fax +49 611/9406125 Handelsregister: HRB 23156 Amtsgericht Wiesbaden Steuernummer: 04323897052 USt-IdNr.: DE255806399 Geschäftsführer: Filip Lyncker, Armin Theis
switch_call_cause_t *cancel_cause is the last arg to originate switch_call_cause_t cancel_cause = SWITCH_CAUSE_NONE; pass &cancel_cause as the final arg to originate. if originate is in some other thread you will need to create the cancel_cause in the other thread and pass it up. Then when you change cancel cause to some cause, all sessions in the originate thread will terminate with that cause. On Fri, Oct 1, 2010 at 11:36 AM, Achim Stamm <stamm@lyth.de> wrote:
Bernhard Suttner schrieb:
Hi,
Did you try to hangup the session (not the peer session). This should freeswitch force to hangup all related channels (the session + the connected sessions).
BR, Bernhard
-----Ursprüngliche Nachricht----- Von: freeswitch-dev-bounces@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] Im Auftrag von Achim Stamm Gesendet: Freitag, 1. Oktober 2010 18:02 An: freeswitch-dev@lists.freeswitch.org Betreff: [Freeswitch-dev] How to hangup bridged sessions
How to hangup bridged sessions
Hello,
i have following problem:
I used following code for brdiging my current session to multiple Voip Phones in a freeswitch thread (same as bgapi):
switch_ivr_originate(session, &peer_session, &cause, "user/60@192.168.1.50,user/61@192.168.1.50", timelimit, NULL, NULL, NULL, NULL, NULL, SOF_NONE,NULL) != SWITCH_STATUS_SUCCESS)
Both Phones with number 60 and 61 rings.
In a special case I need to force hangup both Phones (stop ringing). I use following code for hangup bridged sessions:
char * my_uuid = switch_core_session_get_uuid(session); char other_uuid[255]; switch_ivr_find_bridged_uuid(my_uuid, other_uuid,255 ); sessionNebenstelle = switch_core_session_locate(other_uuid); if (sessionNebenstelle) { channelNebenstelle = switch_core_session_get_channel(sessionNebenstelle); switch_channel_hangup(channelNebenstelle,SWITCH_CAUSE_NO_ANSWER); if (switch_core_session_private_event_count(sessionNebenstelle)) { switch_ivr_parse_all_events(sessionNebenstelle); } }
This Code works only for one phone, so Phone 61 stops ringing, but Phone 60 continue ringing.
It is possible, that i can hangup the other phone ?
Is there a better solution for cancel switch_ivr_originate (hangup all originating sessions ?)
Greetings
Achim Stamm
For my special case: I need my session alive for doing read and write frame in a while loop. After hanging up the peer Sessions. I do an answer (for my session) and enter the while loop. The "Connection" to another Session (also in a read and write frame while loop) is done by exchanging manually audio frames.
Thanks for your question.
-- Achim Stamm, Dipl.-Inform. (FH)
Lyncker & Theis GmbH Wilhelmstr. 16 65185 Wiesbaden Germany
Fon +49 611/9006951 Fax +49 611/9406125
Handelsregister: HRB 23156 Amtsgericht Wiesbaden Steuernummer: 04323897052 USt-IdNr.: DE255806399
Geschäftsführer: Filip Lyncker, Armin Theis
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev 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
Anthony Minessale schrieb:
switch_call_cause_t *cancel_cause is the last arg to originate
switch_call_cause_t cancel_cause = SWITCH_CAUSE_NONE;
pass &cancel_cause as the final arg to originate.
if originate is in some other thread you will need to create the cancel_cause in the other thread and pass it up.
Then when you change cancel cause to some cause, all sessions in the originate thread will terminate with that cause.
On Fri, Oct 1, 2010 at 11:36 AM, Achim Stamm <stamm@lyth.de> wrote:
Bernhard Suttner schrieb:
Hi,
Did you try to hangup the session (not the peer session). This should freeswitch force to hangup all related channels (the session + the connected sessions).
BR, Bernhard
-----Ursprüngliche Nachricht----- Von: freeswitch-dev-bounces@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] Im Auftrag von Achim Stamm Gesendet: Freitag, 1. Oktober 2010 18:02 An: freeswitch-dev@lists.freeswitch.org Betreff: [Freeswitch-dev] How to hangup bridged sessions
How to hangup bridged sessions
Hello,
i have following problem:
I used following code for brdiging my current session to multiple Voip Phones in a freeswitch thread (same as bgapi):
switch_ivr_originate(session, &peer_session, &cause, "user/60@192.168.1.50,user/61@192.168.1.50", timelimit, NULL, NULL, NULL, NULL, NULL, SOF_NONE,NULL) != SWITCH_STATUS_SUCCESS)
Both Phones with number 60 and 61 rings.
In a special case I need to force hangup both Phones (stop ringing). I use following code for hangup bridged sessions:
char * my_uuid = switch_core_session_get_uuid(session); char other_uuid[255]; switch_ivr_find_bridged_uuid(my_uuid, other_uuid,255 ); sessionNebenstelle = switch_core_session_locate(other_uuid); if (sessionNebenstelle) { channelNebenstelle = switch_core_session_get_channel(sessionNebenstelle); switch_channel_hangup(channelNebenstelle,SWITCH_CAUSE_NO_ANSWER); if (switch_core_session_private_event_count(sessionNebenstelle)) { switch_ivr_parse_all_events(sessionNebenstelle); } }
This Code works only for one phone, so Phone 61 stops ringing, but Phone 60 continue ringing.
It is possible, that i can hangup the other phone ?
Is there a better solution for cancel switch_ivr_originate (hangup all originating sessions ?)
Greetings
Achim Stamm
For my special case: I need my session alive for doing read and write frame in a while loop. After hanging up the peer Sessions. I do an answer (for my session) and enter the while loop. The "Connection" to another Session (also in a read and write frame while loop) is done by exchanging manually audio frames.
Thanks for your question.
-- Achim Stamm, Dipl.-Inform. (FH)
Lyncker & Theis GmbH Wilhelmstr. 16 65185 Wiesbaden Germany
Fon +49 611/9006951 Fax +49 611/9406125
Handelsregister: HRB 23156 Amtsgericht Wiesbaden Steuernummer: 04323897052 USt-IdNr.: DE255806399
Geschäftsführer: Filip Lyncker, Armin Theis
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
Thanks for Helping. Your solution works fine. regards Achim Stamm -- Achim Stamm, Dipl.-Inform. (FH) Lyncker & Theis GmbH Wilhelmstr. 16 65185 Wiesbaden Germany Fon +49 611/9006951 Fax +49 611/9406125 Handelsregister: HRB 23156 Amtsgericht Wiesbaden Steuernummer: 04323897052 USt-IdNr.: DE255806399 Geschäftsführer: Filip Lyncker, Armin Theis
participants (3)
-
Achim Stamm
-
Anthony Minessale
-
Bernhard Suttner