[Freeswitch-dev] How to hangup bridged sessions

Achim Stamm stamm at lyth.de
Fri Oct 1 09:36:04 PDT 2010


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 at lists.freeswitch.org [mailto:freeswitch-dev-bounces at lists.freeswitch.org] Im Auftrag von Achim Stamm
> Gesendet: Freitag, 1. Oktober 2010 18:02
> An: freeswitch-dev at 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 at 192.168.1.50,user/61 at 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 




More information about the FreeSWITCH-dev mailing list