[Freeswitch-users] answer via .net esl is getting ignored

Moishe Grunstein max at nysolutions.com
Tue Dec 24 18:47:30 MSK 2013


What are you seeing in the logs?


Thanks,

Moishe Grunstein
Tornado Computer Systems, Inc.
212.400.7650 888.IPPBX.US
Service Request Email: support at nysolutions.com<mailto:support at nysolutions.com>
Polycom Certified VAR
Microsoft Small Business Specialist, Cisco SMB Select Certified
[cid:image001.jpg at 01C72F94.9EE45D60]<http://www.nysolutions.com/>
Computer Networking * Managed Services * IP Video Surveillance * Network Assessments * Web Solutions * Voice over IP * Disaster Recovery * Network Security * Site Surveys * CMS

From: freeswitch-users-bounces at lists.freeswitch.org [mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Yisroel M. Olewski
Sent: Tuesday, December 24, 2013 4:23 AM
To: freeswitch-users at lists.freeswitch.org
Subject: [Freeswitch-users] answer via .net esl is getting ignored

Hello everyone
This is my first posting via the mailing list
I'm trying my hand at freeswitch esl with .net
I've managed to get a hold of all incoming events, but can't seem to "pick up the phone"
my first goal is to pick up the phone and read out some text via tts
I've scoured the web, tried everything I can find or think of but no luck
here's my code

    Private Sub winMain_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
        ThreadPool.QueueUserWorkItem(New WaitCallback(Sub(stateInfo)
                                                          FreeSwitch = New ESLconnection("10.0.0.1", 8021, "mypass")
                                                          Dim eslEvent = FreeSwitch.SendRecv("event plain ALL")
                                                          FreeSwitch.SendRecv("event plain DTMF")
                                                          If eslEvent IsNot Nothing Then
                                                              AddEvent(eslEvent)
                                                              While FreeSwitch.Connected
                                                                  eslEvent = FreeSwitch.RecvEvent
                                                                  AddEvent(eslEvent)
                                                              End While
                                                          End If
                                                      End Sub))

    End Sub

    Private Sub AddEvent(e As ESLevent)
        Dim dd = TextCollection(e.Serialize(""), ": ", vbLf)
        Dim eventname = dd("event-name")
        'Dim uid = dd("Unique-ID")
        Dim uid = dd("Channel-Call-UUID")
        If dd("Caller-Network-Addr") <> "" Then
            Dim dcx = DBEntities()
            Dim ses = dcx.Sessions.SingleOrDefault(Function(x) x.ServerCode = uid)
            Dim ChannelState = dd("Channel-State")
            Dim ChannelCallState = dd("Channel-Call-State").ToLower
            Select Case eventname
                Case "CHANNEL_STATE"
                    If ses Is Nothing Then
                        ses = New Session
                        dcx.Sessions.AddObject(ses)
                    End If
                    ses.CallerHost = dd("Caller-Network-Addr")
                    ses.CallerName = UrlDecoded(dd("Caller-Caller-ID-Name"))
                    ses.CallerPhone = dd("Caller-Caller-ID-Number")
                    ses.CallerUser = dd("Caller-Username")
                    ses.CalleeUser = dd("Caller-Destination-Number")
                    ses.ServerCode = uid
                    If {"cs_destroy", "cs_hangup"}.Contains(ChannelState) Then ses.HungUpOn = Now
                Case "CHANNEL_CALLSTATE"
                    If ChannelCallState = "ringing" Then
                        Dim evn = FreeSwitch.Execute("answer", String.Empty, uid)
                        Dim res = evn.Serialize("")
                    End If
                Case "CHANNEL_DESTROY"
                    If ses IsNot Nothing Then ses.HungUpOn = Now
            End Select
            dcx.SaveChanges()
        End If
    End Sub

the answer line is getting reached, and the result is "+OK" but the phone still keeps ringing
please note that I'm unsure which is the correct uuid, but trying both of them gave me identical results

As per advise from Nuwan Wijerathne, I put the "answer" action in the dialplan, and tried just the playback from code (just a wav file), but the result is the same. Freeswitch ignores entirely my commands.
It picks up, and immediately hangs up because it has finished the whole dialplan

I'd appreciate your help. I'm pretty new to freeswitch and esl

Please advise

Sincerely,
ymo




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20131224/731c8bab/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 2424 bytes
Desc: image001.jpg
Url : http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20131224/731c8bab/attachment-0001.jpg 


Join us at ClueCon 2013 Aug 6-8, 2013
More information about the FreeSWITCH-users mailing list