Skip to content

Commit 528a049

Browse files
committed
Adding changes to the TTS example itself. One is now very much non blocking :)
1 parent 286b172 commit 528a049

File tree

2 files changed

+106
-104
lines changed

2 files changed

+106
-104
lines changed

README.md

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -55,75 +55,76 @@ func handle(s *OutboundServer) {
5555

5656
for {
5757

58-
conn := <-s.Conns
58+
select {
5959

60-
Notice("New incomming connection: %v", conn)
60+
case conn := <-s.Conns:
61+
Notice("New incomming connection: %v", conn)
6162

62-
if err := conn.Connect(); err != nil {
63-
Error("Got error while accepting connection: %s", err)
64-
break
65-
}
66-
67-
answer, err := conn.ExecuteAnswer("", false)
63+
if err := conn.Connect(); err != nil {
64+
Error("Got error while accepting connection: %s", err)
65+
break
66+
}
6867

69-
if err != nil {
70-
Error("Got error while executing answer: %s", err)
71-
break
72-
}
68+
answer, err := conn.ExecuteAnswer("", false)
7369

74-
Debug("Answer Message: %s", answer)
75-
Debug("Caller UUID: %s", answer.GetHeader("Caller-Unique-Id"))
70+
if err != nil {
71+
Error("Got error while executing answer: %s", err)
72+
break
73+
}
7674

77-
cUUID := answer.GetCallUUID()
75+
Debug("Answer Message: %s", answer)
76+
Debug("Caller UUID: %s", answer.GetHeader("Caller-Unique-Id"))
7877

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)
83-
}
78+
cUUID := answer.GetCallUUID()
8479

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-
}
80+
if te, err := conn.ExecuteSet("tts_engine", "flite", false); err != nil {
81+
Error("Got error while attempting to set tts_engine: %s", err)
82+
} else {
83+
Debug("TTS Engine Msg: %s", te)
84+
}
9085

91-
if sm, err := conn.Execute("speak", goeslMessage, true); err != nil {
92-
Error("Got error while executing speak: %s", err)
93-
break
94-
} else {
95-
Debug("Speak Message: %s", sm)
96-
}
86+
if tv, err := conn.ExecuteSet("tts_voice", "slt", false); err != nil {
87+
Error("Got error while attempting to set tts_voice: %s", err)
88+
} else {
89+
Debug("TTS Voice Msg: %s", tv)
90+
}
9791

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-
}
92+
if sm, err := conn.Execute("speak", goeslMessage, true); err != nil {
93+
Error("Got error while executing speak: %s", err)
94+
break
95+
} else {
96+
Debug("Speak Message: %s", sm)
97+
}
10498

105-
done := make(chan bool)
99+
if hm, err := conn.ExecuteHangup(cUUID, "", false); err != nil {
100+
Error("Got error while executing hangup: %s", err)
101+
break
102+
} else {
103+
Debug("Hangup Message: %s", hm)
104+
}
106105

107-
go func() {
108-
for {
109-
msg, err := conn.ReadMessage()
106+
go func() {
107+
for {
108+
msg, err := conn.ReadMessage()
110109

111-
if err != nil {
110+
if err != nil {
112111

113-
// If it contains EOF, we really dont care...
114-
if !strings.Contains(err.Error(), "EOF") {
115-
Error("Error while reading Freeswitch message: %s", err)
112+
// If it contains EOF, we really dont care...
113+
if !strings.Contains(err.Error(), "EOF") {
114+
Error("Error while reading Freeswitch message: %s", err)
115+
}
116+
break
116117
}
117118

118-
done <- true
119-
break
119+
Debug("%s", msg.Dump())
120120
}
121+
}()
121122

122-
Debug("%s", msg.Dump())
123-
}
124-
}()
125-
126-
<-done
123+
default:
124+
// YabbaDabbaDooooo!
125+
//Flintstones. Meet the Flintstones. They're the modern stone age family. From the town of Bedrock,
126+
// They're a page right out of history. La la,lalalalala la :D
127+
}
127128
}
128129

129130
}

examples/server_tts.go

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -41,75 +41,76 @@ func handle(s *OutboundServer) {
4141

4242
for {
4343

44-
conn := <-s.Conns
44+
select {
4545

46-
Notice("New incomming connection: %v", conn)
46+
case conn := <-s.Conns:
47+
Notice("New incomming connection: %v", conn)
4748

48-
if err := conn.Connect(); err != nil {
49-
Error("Got error while accepting connection: %s", err)
50-
break
51-
}
52-
53-
answer, err := conn.ExecuteAnswer("", false)
49+
if err := conn.Connect(); err != nil {
50+
Error("Got error while accepting connection: %s", err)
51+
break
52+
}
5453

55-
if err != nil {
56-
Error("Got error while executing answer: %s", err)
57-
break
58-
}
54+
answer, err := conn.ExecuteAnswer("", false)
5955

60-
Debug("Answer Message: %s", answer)
61-
Debug("Caller UUID: %s", answer.GetHeader("Caller-Unique-Id"))
56+
if err != nil {
57+
Error("Got error while executing answer: %s", err)
58+
break
59+
}
6260

63-
cUUID := answer.GetCallUUID()
61+
Debug("Answer Message: %s", answer)
62+
Debug("Caller UUID: %s", answer.GetHeader("Caller-Unique-Id"))
6463

65-
if te, err := conn.ExecuteSet("tts_engine", "flite", false); err != nil {
66-
Error("Got error while attempting to set tts_engine: %s", err)
67-
} else {
68-
Debug("TTS Engine Msg: %s", te)
69-
}
64+
cUUID := answer.GetCallUUID()
7065

71-
if tv, err := conn.ExecuteSet("tts_voice", "slt", false); err != nil {
72-
Error("Got error while attempting to set tts_voice: %s", err)
73-
} else {
74-
Debug("TTS Voice Msg: %s", tv)
75-
}
66+
if te, err := conn.ExecuteSet("tts_engine", "flite", false); err != nil {
67+
Error("Got error while attempting to set tts_engine: %s", err)
68+
} else {
69+
Debug("TTS Engine Msg: %s", te)
70+
}
7671

77-
if sm, err := conn.Execute("speak", goeslMessage, true); err != nil {
78-
Error("Got error while executing speak: %s", err)
79-
break
80-
} else {
81-
Debug("Speak Message: %s", sm)
82-
}
72+
if tv, err := conn.ExecuteSet("tts_voice", "slt", false); err != nil {
73+
Error("Got error while attempting to set tts_voice: %s", err)
74+
} else {
75+
Debug("TTS Voice Msg: %s", tv)
76+
}
8377

84-
if hm, err := conn.ExecuteHangup(cUUID, "", false); err != nil {
85-
Error("Got error while executing hangup: %s", err)
86-
break
87-
} else {
88-
Debug("Hangup Message: %s", hm)
89-
}
78+
if sm, err := conn.Execute("speak", goeslMessage, true); err != nil {
79+
Error("Got error while executing speak: %s", err)
80+
break
81+
} else {
82+
Debug("Speak Message: %s", sm)
83+
}
9084

91-
done := make(chan bool)
85+
if hm, err := conn.ExecuteHangup(cUUID, "", false); err != nil {
86+
Error("Got error while executing hangup: %s", err)
87+
break
88+
} else {
89+
Debug("Hangup Message: %s", hm)
90+
}
9291

93-
go func() {
94-
for {
95-
msg, err := conn.ReadMessage()
92+
go func() {
93+
for {
94+
msg, err := conn.ReadMessage()
9695

97-
if err != nil {
96+
if err != nil {
9897

99-
// If it contains EOF, we really dont care...
100-
if !strings.Contains(err.Error(), "EOF") {
101-
Error("Error while reading Freeswitch message: %s", err)
98+
// If it contains EOF, we really dont care...
99+
if !strings.Contains(err.Error(), "EOF") {
100+
Error("Error while reading Freeswitch message: %s", err)
101+
}
102+
break
102103
}
103104

104-
done <- true
105-
break
105+
Debug("%s", msg.Dump())
106106
}
107+
}()
107108

108-
Debug("%s", msg.Dump())
109-
}
110-
}()
111-
112-
<-done
109+
default:
110+
// YabbaDabbaDooooo!
111+
//Flintstones. Meet the Flintstones. They're the modern stone age family. From the town of Bedrock,
112+
// They're a page right out of history. La la,lalalalala la :D
113+
}
113114
}
114115

115116
}

0 commit comments

Comments
 (0)