@@ -15,45 +15,32 @@ Point of this library is to fully implement Freeswitch ESL and bring outbound se
15
15
### Examples
16
16
17
17
18
- #### Server
19
-
20
- This is a server example so far. What it will do is accept connection, send answer, play a audio file followed by hangup
18
+ #### TTS Server
21
19
22
20
``` go
23
21
package main
24
22
25
23
import (
26
- " fmt"
27
24
. " github.com/0x19/goesl"
28
- " os"
29
25
" runtime"
30
26
" strings"
31
27
)
32
28
33
29
var (
34
- welcomeFile = " %s /media/welcome.wav "
30
+ goeslMessage = " Hello from GoESL. Open source freeswitch event socket wrapper written in Golang! "
35
31
)
36
32
37
33
func main () {
38
34
39
35
defer func () {
40
36
if r := recover (); r != nil {
41
- Error (" Recovered in f " , r)
37
+ Error (" Recovered in: " , r)
42
38
}
43
39
}()
44
40
45
41
// Boost it as much as it can go ...
46
42
runtime.GOMAXPROCS (runtime.NumCPU ())
47
43
48
- wd , err := os.Getwd ()
49
-
50
- if err != nil {
51
- Error (" Error while attempt to get WD: %s " , wd)
52
- os.Exit (1 )
53
- }
54
-
55
- welcomeFile = fmt.Sprintf (welcomeFile, wd)
56
-
57
44
if s , err := NewOutboundServer (" :8084" ); err != nil {
58
45
Error (" Got error while starting Freeswitch outbound server: %s " , err)
59
46
} else {
@@ -63,7 +50,7 @@ func main() {
63
50
64
51
}
65
52
66
- // handle - Running under goroutine here to explain how to send message, receive message and in general dump stuff out
53
+ // handle - Running under goroutine here to explain how to run tts outbound server
67
54
func handle (s *OutboundServer ) {
68
55
69
56
for {
@@ -72,37 +59,48 @@ func handle(s *OutboundServer) {
72
59
73
60
Notice (" New incomming connection: %v " , conn)
74
61
75
- conn.Send (" connect" )
62
+ if err := conn.Connect (); err != nil {
63
+ Error (" Got error while accepting connection: %s " , err)
64
+ break
65
+ }
76
66
77
- aMsg , err := conn.Execute ( " answer " , " " , false )
67
+ answer , err := conn.ExecuteAnswer ( " " , false )
78
68
79
69
if err != nil {
80
- Error (" Got error while executing answer against call : %s " , err)
70
+ Error (" Got error while executing answer: %s " , err)
81
71
break
82
72
}
83
73
84
- Debug (" Answer Message: %s " , aMsg)
85
- Debug (" Caller UUID: %s " , aMsg.GetHeader (" Caller-Unique-Id" ))
86
-
87
- cUUID := aMsg.GetHeader (" Caller-Unique-Id" )
74
+ Debug (" Answer Message: %s " , answer)
75
+ Debug (" Caller UUID: %s " , answer.GetHeader (" Caller-Unique-Id" ))
88
76
89
- pMsg , err := conn. Execute ( " playback " , welcomeFile, true )
77
+ cUUID := answer. GetCallUUID ( )
90
78
91
- if err != nil {
92
- Error (" Got error while executing answer against call: %s " , err)
93
- break
79
+ if te , err := conn.ExecuteSet (" tts_engine" , " flite" , false ); err != nil {
80
+ Error (" Got error while attempting to set tts_engine: %s " , err)
81
+ } else {
82
+ Debug (" TTS Engine Msg: %s " , te)
94
83
}
95
84
96
- Debug (" Playback Message: %s " , pMsg)
97
-
98
- hMsg , err := conn.ExecuteUUID (cUUID, " hangup" , " " , false )
85
+ if tv , err := conn.ExecuteSet (" tts_voice" , " slt" , false ); err != nil {
86
+ Error (" Got error while attempting to set tts_voice: %s " , err)
87
+ } else {
88
+ Debug (" TTS Voice Msg: %s " , tv)
89
+ }
99
90
100
- if err != nil {
101
- Error (" Got error while executing hangup against call : %s " , err)
91
+ if sm , err := conn. Execute ( " speak " , goeslMessage, true ); err != nil {
92
+ Error (" Got error while executing speak : %s " , err)
102
93
break
94
+ } else {
95
+ Debug (" Speak Message: %s " , sm)
103
96
}
104
97
105
- Debug (" Hangup Message: %s " , hMsg)
98
+ if hm , err := conn.ExecuteHangup (cUUID, " " , false ); err != nil {
99
+ Error (" Got error while executing hangup: %s " , err)
100
+ break
101
+ } else {
102
+ Debug (" Hangup Message: %s " , hm)
103
+ }
106
104
107
105
done := make (chan bool )
108
106
@@ -121,7 +119,7 @@ func handle(s *OutboundServer) {
121
119
break
122
120
}
123
121
124
- Info (" %s " , msg.Dump ())
122
+ Debug (" %s " , msg.Dump ())
125
123
}
126
124
}()
127
125
0 commit comments