[Freeswitch-dev] error events for failed calls using 'conference conf_name bgdial sofia/ip/user'

Brian West brian at freeswitch.org
Wed Mar 10 10:04:52 PST 2010


http://wiki.freeswitch.org/wiki/Dialplan_XML#SIP-Specific_Dialstrings  

Please read that there is no such thing as sofia/ip/user  (unless the ip is an alias on the profile)

/b

On Mar 10, 2010, at 11:23 AM, Gledhill, James wrote:

>  
> My goals are:
> 1)       To get “start-talking” and “stop-talking” events during Early Media (before the call is answered) as well as after the call is answered. 
> 2)       If there are problems with the call, get events that tell me why the call failed.
>  
> The way I am doing it accomplishes the start/stop talking (in early media) BUT if the call fails, I do not get events back letting me know it failed and why.  I DO get CHANNEL_DESTROY and CHANNEL_STATE events that IF I had the UUID, I could match against, but at this point in the call I do NOT have that UUID AND when setting the UUID via “origination_uuid=my_uuid_my_uuid_my_test_uuid”, my UUID has not yet been set, so as far as I can tell there is no way to match those events with details my application has at the time. 
>  
> The console shows the errors (Below are two examples of calls that failed in I entered “bad” sofia locations), but they do not come back as events.
> 2010-03-05 14:52:20.109497 [ERR] switch_ivr_originate.c:2389 Cannot create outgoing channel of type [sofia] cause: [USER_NOT_REGISTERED]
> 2010-03-05 16:34:13.669509 [ERR] switch_ivr_originate.c:2389 Cannot create outgoing channel of type [sofia] cause: [DESTINATION_OUT_OF_ORDER]
>  
> So … I am wondering is there a better/different way to do it, is there a work-around, should I get events to tell me the dial had problems, etc.
>  
> I am using esl/lua and esl/java to experiment with this.  Both get the same results (as I would expect).
>  
> I have had this as a ~take-a-number on IRC for about a week, so I thought I would add more detail and open it up to this group.  I realize many of the same people do both, but hoped more eyes may look at it here and give thoughts.
>  
>  
> ===== From Pastebin ====
>  
> I am not getting 'error' events in ESL [that match a UUID I can track] when there is a problem with conference <conf_name> dial sofia/myip/1006, so I can not tell what went wrong.  Is there a work-around? 
>  
>  I start a call in a conference from ESL (conference conf_uuid-TEST_CONF bgdial [origination_uuid=my_uuid_my_uuid_my_test_uuid]sofia/10.50.48.232/1006)
>  
>  If the 'dial' works (meaning does not get an error) then I get the events I want and expect.  If it errors (not able to make the call ( [USER_NOT_REGISTERED] | [DESTINATION_OUT_OF_ORDER] | etc. ) then I do not get any events that tell me something went wrong.
>  
>  Is there a work-around for this?
>  
> =====================
> LUA Code  run from ./freeswitch.trunk/libs/esl/lua
>  
> #!/usr/local/bin/lua
> require("ESL")
>  
> myip = "10.50.48.239"  -- change this to your IP address
> myExt = 1006  -- change to one that is registered, then rerun with an unregistered
>  
> con = ESL.ESLconnection("localhost", "8021", "ClueCon");
>  
> str = string.format("conference conf_uuid-TEST_CONF bgdial [origination_uuid=my_uuid_my_uuid_my_test_uuid]sofia/%s/%s", myip, myExt)
>  
> con:sendRecv("event plain ALL")
>  
>  
> ff = con:api( str )
>  
> print("** sent " .. str )
>  
> print( (ff and ff:getBody() or "no body" ))
>  
> cnt = 0
> while cnt <= 30 do
>  
>     print("loop = " .. cnt )
>     cnt = cnt + 1
>     ev = con:recvEventTimed(1000)
>     print( ev and ev:serialize("plain") or "no event this time" )
>  
> end
>  
> ==============
>  
> The printout is :
>  
> ** sent conference conf_uuid-TEST_CONF bgdial [origination_uuid=my_uuid_my_uuid_my_test_uuid]sofia/10.50.48.239/1006
> OK Job-UUID: a5d57b34-9205-483c-ae64-60601d8178d7
>  
> loop = 0
> Event-Name: CHANNEL_DESTROY
> Core-UUID: 438a66f9-8e41-4c6a-bbfd-1b0e8527cec1
> FreeSWITCH-Hostname: tpa-es-rh-232.dev.sipstorm.com
> FreeSWITCH-IPv4: 10.50.48.232
> FreeSWITCH-IPv6: %3A%3A1
> Event-Date-Local: 2010-03-05%2017%3A06%3A52
> Event-Date-GMT: Fri,%2005%20Mar%202010%2022%3A06%3A52%20GMT
> Event-Date-Timestamp: 1267826812571550
> Event-Calling-File: switch_core_session.c
> Event-Calling-Function: switch_core_session_perform_destroy
> Event-Calling-Line-Number: 1051
> Channel-State: CS_NEW
> Channel-State-Number: 0
> Channel-Name: N/A
> Unique-ID: ff9f875e-941f-438a-b384-844a6da23f66
> Call-Direction: outbound
> Presence-Call-Direction: outbound
> Answer-State: ringing
>  
>  
> loop = 1
> Event-Name: CHANNEL_STATE
> Core-UUID: 438a66f9-8e41-4c6a-bbfd-1b0e8527cec1
> FreeSWITCH-Hostname: tpa-es-rh-232.dev.sipstorm.com
> FreeSWITCH-IPv4: 10.50.48.232
> FreeSWITCH-IPv6: %3A%3A1
> Event-Date-Local: 2010-03-05%2017%3A06%3A52
> Event-Date-GMT: Fri,%2005%20Mar%202010%2022%3A06%3A52%20GMT
> Event-Date-Timestamp: 1267826812571550
> Event-Calling-File: switch_channel.c
> Event-Calling-Function: switch_channel_perform_set_running_state
> Event-Calling-Line-Number: 1301
> Channel-State: CS_DESTROY
> Channel-State-Number: 12
> Channel-Name: _undef_
> Unique-ID: ff9f875e-941f-438a-b384-844a6da23f66
> Call-Direction: outbound
> Presence-Call-Direction: outbound
> Answer-State: ringing
>  
>  
> loop = 2
> Event-Name: API
> Core-UUID: 438a66f9-8e41-4c6a-bbfd-1b0e8527cec1
> FreeSWITCH-Hostname: tpa-es-rh-232.dev.sipstorm.com
> FreeSWITCH-IPv4: 10.50.48.232
> FreeSWITCH-IPv6: %3A%3A1
> Event-Date-Local: 2010-03-05%2017%3A06%3A52
> Event-Date-GMT: Fri,%2005%20Mar%202010%2022%3A06%3A52%20GMT
> Event-Date-Timestamp: 1267826812571550
> Event-Calling-File: switch_loadable_module.c
> Event-Calling-Function: switch_api_execute
> Event-Calling-Line-Number: 1581
> API-Command: conference
> API-Command-Argument: conf_uuid-TEST_CONF%20bgdial%20%5Borigination_uuid%3Dmy_uuid_my_uuid_my_test_uuid%5Dsofia/10.50.48.239/1006%20
>  
>  
> loop = 3
> no event this time
> loop = 4
> _______________________________________________
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20100310/0fea3237/attachment-0001.html 


More information about the FreeSWITCH-dev mailing list