[Freeswitch-dev] uuid_bridge kills both channels if they are executing java app
Artem Shiyanov
shiyanov at gmail.com
Thu Dec 3 10:16:20 PST 2009
Hi there!
This message is a forward from user-mail-list.
I'm trying to fix such a problem:
FreSwithch compiled from SVN-trunk, date = 11/02/2009.
What is need: connect two users, initially one is on the home-grown
java-based IVR and other party is off hook.
What is done/got:
User1 is on the java application, it represents simple IVR system, and the
most used FS API operation is "streamFile".
User2 is off hook.
next:
(mod_socket) create_uuid
<get uuid_x>
bgapi originate
{origination_caller_id_name=User1}[origination_uuid=uuid_x]User1 &park()
<User1 answers incomming call>
<get event channel_User1 answered>
<get event channel_User1 parked>
uuid_bridge uuid_User1 uuid_User2
<get event channel_User1 hangup, cause=NORMAL_CLEARING>
<get event channel_User2 hangup, cause=*DESTINATION_OUT_OF_ORDER*>
<both channel_User1 and channel_User2 are down>
FS log is here: http://pastebin.freeswitch.org/11380
Thank you much for any help,
Artem
---------- Forwarded message ----------
From: Anthony Minessale <anthony.minessale at gmail.com>
Date: Wed, Dec 2, 2009 at 10:24 PM
Subject: Re: [Freeswitch-users] uuid_bridge kills both channels if they are
executing java app
To: freeswitch-users at lists.freeswitch.org
you should be working on SVN trunk if you are doing development, we are so
far forward from 1.0.4 we can't do debugging very easily.
I don't know all of the details of what you are trying to do but you are
hitting some race conditions because of the async nature of the socket
connection and the way you are using it.
On Wed, Dec 2, 2009 at 1:08 PM, Artem Shiyanov <shiyanov at gmail.com> wrote:
> I'm back again with the same issue.
> Now it is became worse: it reproduces occasionally.
> [FS version is 1.04, test_load = 2 active calls]
>
> I've got 2 logs: successful and not.
> Here is a bad_case:
>
> 2009-12-02 13:27:55.159931 [NOTICE] switch_core_session.c:1576 Execute
> java(/usr/local/freeswitch/scripts/fs2agi.jar
> org.starpound.fs2agi.Translator
> ${agi_url})
> Dec 2, 2009 1:27:55 PM org.starpound.fs2agi.Translator run
> INFO: ***************************************************
> Dec 2, 2009 1:27:55 PM org.starpound.fs2agi.Translator run
> INFO: Run AGI application agi://localhost:4573/hello.agi?callId=929 for
> session
> 2898ad41-4ec1-4628-89fd-651a93a7221d
> 2009-12-02 13:27:55.169841 [NOTICE] switch_cpp.cpp:1130 Run AGI application
> agi://localhost:4573/hello.agi?callId=929
> 2009-12-02 13:28:02.888831 [CRIT] mod_local_stream.c:234 Leaking stream
> handle!
>
> [switch_ivr_play_file() src/switch_ivr_play_say.c:1026]
> 2009-12-02 13:28:04.799806 [NOTICE] switch_channel.c:602 New Channel
> sofia/internal/2001 [76d2c0e9-16a4-4098-92c0-5977cb482e17]
> 2009-12-02 13:28:05.148834 [NOTICE] sofia.c:3353 Ring-Ready
> sofia/internal/2001!
> 2009-12-02 13:28:05.855093 [NOTICE] sofia.c:3794 Channel
> [sofia/internal/2001] has
> been answered
> Dec 2, 2009 1:28:05 PM org.starpound.fs2agi.Translator tellAllWeCrashed
> INFO: AGI application agi://localhost:4573/hello.agi?callId=929 for session
> 2898ad41-4ec1-4628-89fd-651a93a7221d crashed. Exception is:
> java.lang.Exception: Internal FreeSwitch failure while streamming file, see
> FreeSwitch logs for details
> at
>
> org.starpound.fs2agi.agicommands.StreamFileCommand.execute(StreamFileCommand.java:36)
> at org.starpound.fs2agi.AgiConnection.run(AgiConnection.java:48)
> at org.starpound.fs2agi.Translator.run(Translator.java:56)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.freeswitch.Launcher.launch(Launcher.java:80)
> 2009-12-02 13:28:05.870185 [NOTICE] switch_core_state_machine.c:179 Hangup
> sofia/internal/2001 [CS_EXECUTE] [NORMAL_CLEARING]
> 2009-12-02 13:28:05.878807 [INFO] switch_cpp.cpp:1130 AGI application
> agi://localhost:4573/hello.agi?callId=929 crashed. See FS2AGI log for
> details.
> 2009-12-02 13:28:05.894422 [NOTICE] switch_ivr_bridge.c:667 Hangup
> sofia/external/6786081291 at 66.19.38.143 [CS_SOFT_EXECUTE]
> [DESTINATION_OUT_OF_ORDER]
> 2009-12-02 13:28:05.894422 [NOTICE] switch_core_session.c:1086 Session 17
> (sofia/external/6786081291 at 66.19.38.143) Ended
> 2009-12-02 13:28:05.894422 [NOTICE] switch_core_session.c:1088 Close
> Channel
> sofia/external/6786081291 at 66.19.38.143 [CS_DESTROY]
> 2009-12-02 13:28:05.894422 [NOTICE] switch_core_session.c:1086 Session 18
> (sofia/internal/2001) Ended
> 2009-12-02 13:28:05.894422 [NOTICE] switch_core_session.c:1088 Close
> Channel
> sofia/internal/2001 [CS_DESTROY]
>
>
>
> Message
> "Dec 2, 2009 1:28:05 PM org.starpound.fs2agi.Translator tellAllWeCrashed
> INFO: AGI application agi://localhost:4573/hello.agi?callId=929 for session
> 2898ad41-4ec1-4628-89fd-651a93a7221d crashed. Exception is:
> ..."
> is sent from my app upon the onHangup().`
>
> And here is a good_case:
>
> 2009-12-02 13:31:45.959813 [NOTICE] switch_core_session.c:1576 Execute
> java(/usr/local/freeswitch/scripts/fs2agi.jar
> org.starpound.fs2agi.Translator
> ${agi_url})
> Dec 2, 2009 1:31:45 PM org.starpound.fs2agi.Translator run
> INFO: ***************************************************
> Dec 2, 2009 1:31:45 PM org.starpound.fs2agi.Translator run
> INFO: Run AGI application agi://localhost:4573/hello.agi?callId=932 for
> session
> 7c37369b-ffb2-4436-9288-a640047d0e5e
> 2009-12-02 13:31:45.965814 [NOTICE] switch_cpp.cpp:1130 Run AGI application
> agi://localhost:4573/hello.agi?callId=932
> 2009-12-02 13:31:53.648915 [CRIT] mod_local_stream.c:234 Leaking stream
> handle!
>
> [switch_ivr_play_file() src/switch_ivr_play_say.c:1026]
> 2009-12-02 13:31:59.260797 [NOTICE] switch_channel.c:602 New Channel
> sofia/internal/2001 [7db554a6-861e-4492-a87b-78b6dfec6488]
> 2009-12-02 13:31:59.624818 [NOTICE] sofia.c:3353 Ring-Ready
> sofia/internal/2001!
> 2009-12-02 13:32:00.130814 [NOTICE] sofia.c:3794 Channel
> [sofia/internal/2001] has
> been answered
> Dec 2, 2009 1:32:00 PM org.starpound.fs2agi.Translator tellAllWeCrashed
> INFO: AGI application agi://localhost:4573/hello.agi?callId=932 for session
> 7c37369b-ffb2-4436-9288-a640047d0e5e crashed. Exception is:
> java.lang.Exception: Internal FreeSwitch failure while streamming file, see
> FreeSwitch logs for details
> at
>
> org.starpound.fs2agi.agicommands.StreamFileCommand.execute(StreamFileCommand.java:36)
> at org.starpound.fs2agi.AgiConnection.run(AgiConnection.java:48)
> at org.starpound.fs2agi.Translator.run(Translator.java:56)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.freeswitch.Launcher.launch(Launcher.java:80)
> 2009-12-02 13:32:00.149080 [INFO] switch_cpp.cpp:1130 AGI application
> agi://localhost:4573/hello.agi?callId=932 crashed. See FS2AGI log for
> details.
> 2009-12-02 13:32:00.388838 [INFO] switch_rtp.c:1869 Auto Changing port from
> 172.26.10.39:26402 to 91.190.120.190:26402
>
>
>
> Suggestions?
>
>
>
>
>
>
>
>
>
>
>
> On Sat, Nov 21, 2009 at 12:58 PM, Artem Shiyanov <shiyanov at gmail.com>wrote:
>
>> Anthony,
>>
>> >>As soon as you call uuid_bridge you are transferring both legs of the
>> call to bridge to each other.
>> >>This means your java app must exit so the channels can connect to each
>> other.
>>
>> I didn't know that. Now my java app is exiting upon the onHangup() call so
>> everything has become "ok". Thank you much.
>> I'll add note to the wiki about this issue.
>>
>> Artem
>>
>>
>>
>>
>> On Fri, Nov 20, 2009 at 5:49 AM, Anthony Minessale <
>> anthony.minessale at gmail.com> wrote:
>>
>>> Your "annoying behaviour" is the exact behavior you should be getting
>>> considering what you told FS to do.
>>>
>>> As soon as you call uuid_bridge you are transferring both legs of the
>>> call to bridge to each other.
>>> This means your java app must exit so the channels can connect to each
>>> other.
>>>
>>> remember that you hangup hook can be called when the channel is
>>> transferred not only when it hangs up.
>>> you have to test which is happening based on the input to your callback.
>>>
>>>
>>> On Thu, Nov 19, 2009 at 1:46 PM, Artem Shiyanov <shiyanov at gmail.com>wrote:
>>>
>>>> Hi there!
>>>>
>>>> I've got annoying FS behavior:
>>>> There are 2 channels executing the same Java application (application
>>>> itself is an IVR). If I try to bridge them with uuid_bridged then both
>>>> channels are killed. Here is a log from FS console:
>>>> uuid_bridge 68587a9d-1d20-48f1-bdfc-72a2c027e1d2
>>>> 7d6c08fc-62bf-4a6c-a9ae-763d607e43de
>>>> 2009-07-09 05:58:26.562783 [DEBUG] switch_ivr_bridge.c:1165
>>>> (sofia/internal/1005 at 192.168.147.130) State Change CS_EXECUTE ->
>>>> CS_HIBERNATE
>>>> 2009-07-09 05:58:26.562783 [DEBUG] switch_cpp.cpp:1185 hangup_hook
>>>> called
>>>> 2009-07-09 05:58:26.562783 [DEBUG] switch_ivr_play_say.c:1391 done
>>>> playing file
>>>> 2009-07-09 05:58:26.576844 [DEBUG] switch_ivr_play_say.c:1391 done
>>>> playing file
>>>> 2009-07-09 05:58:26.641307 [DEBUG] switch_core_session.c:933 Send signal
>>>> sofia/internal/1005 at 192.168.147.130 [BREAK]
>>>> 2009-07-09 05:58:26.641307 [DEBUG] switch_ivr_bridge.c:1167
>>>> (sofia/internal/1001 at master.agent.starpoundtech.net) State Change
>>>> CS_EXECUTE -> CS_HIBERNATE
>>>> 2009-07-09 05:58:26.641307 [DEBUG] switch_cpp.cpp:1185 hangup_hook
>>>> called
>>>> API CALL [uuid_bridge(68587a9d-1d20-48f1-bdfc-72a2c027e1d2
>>>> 7d6c08fc-62bf-4a6c-a9ae-763d607e43de)] output:
>>>> +OK 7d6c08fc-62bf-4a6c-a9ae-763d607e43de
>>>>
>>>> freeswitch at localhost.localdomain> 2009-07-09 05:58:26.674348 [DEBUG]
>>>> switch_core_session.c:933 Send signal
>>>> sofia/internal/1001 at master.agent.starpoundtec
>>>> 2009-07-09 05:58:26.714809 [DEBUG] switch_core_session.c:813 Send signal
>>>> sofia/internal/1005 at 192.168.147.130 [BREAK]
>>>>
>>>> 2009-07-09 05:58:26.742764 [CRIT] mod_local_stream.c:234 Leaking stream
>>>> handle! [switch_ivr_play_file() src/switch_ivr_play_say.c:1026]
>>>> 2009-07-09 05:58:26.754791 [DEBUG] switch_core_session.c:813 Send signal
>>>> sofia/internal/1001 at master.agent.starpoundtech.net [BREAK]
>>>>
>>>> (FS version is 1.0.4)
>>>>
>>>> Any thoughts?
>>>>
>>>>
>>>> Artem
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> FreeSWITCH-users mailing list
>>>> FreeSWITCH-users at 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 at hotmail.com <MSN%3Aanthony_minessale at hotmail.com>
>>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
>>> IRC: irc.freenode.net #freeswitch
>>>
>>> FreeSWITCH Developer Conference
>>> sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
>>> iax:guest at conference.freeswitch.org/888
>>> googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
>>> pstn:213-799-1400
>>>
>>> _______________________________________________
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at 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 at 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 at hotmail.com <MSN%3Aanthony_minessale at hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
iax:guest at conference.freeswitch.org/888
googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
pstn:213-799-1400
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20091203/c3e1a19a/attachment-0001.html
More information about the FreeSWITCH-dev
mailing list