@@ -14,9 +14,7 @@ import (
14
14
"strings"
15
15
)
16
16
17
- var (
18
- welcomeFile = "%s/media/welcome.wav"
19
- )
17
+ var welcomeFile = "%s/media/welcome.wav"
20
18
21
19
func main () {
22
20
@@ -47,69 +45,69 @@ func main() {
47
45
48
46
}
49
47
50
- // handle - Running under goroutine here to explain how to send message, receive message and in general dump stuff out
48
+ // handle - Running under goroutine here to explain how to handle playback ( play to the caller )
51
49
func handle (s * OutboundServer ) {
52
50
53
51
for {
54
52
55
- conn := <- s .Conns
56
-
57
- Notice ("New incomming connection: %v" , conn )
58
-
59
- conn .Send ("connect" )
60
-
61
- aMsg , err := conn .Execute ("answer" , "" , false )
53
+ select {
62
54
63
- if err != nil {
64
- Error ("Got error while executing answer against call: %s" , err )
65
- break
66
- }
67
-
68
- Debug ("Answer Message: %s" , aMsg )
69
- Debug ("Caller UUID: %s" , aMsg .GetHeader ("Caller-Unique-Id" ))
55
+ case conn := <- s .Conns :
56
+ Notice ("New incomming connection: %v" , conn )
70
57
71
- cUUID := aMsg .GetHeader ("Caller-Unique-Id" )
72
-
73
- pMsg , err := conn .Execute ("playback" , welcomeFile , true )
58
+ if err := conn .Connect (); err != nil {
59
+ Error ("Got error while accepting connection: %s" , err )
60
+ break
61
+ }
74
62
75
- if err != nil {
76
- Error ("Got error while executing answer against call: %s" , err )
77
- break
78
- }
63
+ answer , err := conn .ExecuteAnswer ("" , false )
79
64
80
- Debug ("Playback Message: %s" , pMsg )
65
+ if err != nil {
66
+ Error ("Got error while executing answer: %s" , err )
67
+ break
68
+ }
81
69
82
- hMsg , err := conn .ExecuteUUID (cUUID , "hangup" , "" , false )
70
+ Debug ("Answer Message: %s" , answer )
71
+ Debug ("Caller UUID: %s" , answer .GetHeader ("Caller-Unique-Id" ))
83
72
84
- if err != nil {
85
- Error ("Got error while executing hangup against call: %s" , err )
86
- break
87
- }
73
+ cUUID := answer .GetCallUUID ()
88
74
89
- Debug ("Hangup Message: %s" , hMsg )
75
+ if sm , err := conn .Execute ("playback" , welcomeFile , true ); err != nil {
76
+ Error ("Got error while executing playback: %s" , err )
77
+ break
78
+ } else {
79
+ Debug ("Playback Message: %s" , sm )
80
+ }
90
81
91
- done := make (chan bool )
82
+ if hm , err := conn .ExecuteHangup (cUUID , "" , false ); err != nil {
83
+ Error ("Got error while executing hangup: %s" , err )
84
+ break
85
+ } else {
86
+ Debug ("Hangup Message: %s" , hm )
87
+ }
92
88
93
- go func () {
94
- for {
95
- msg , err := conn .ReadMessage ()
89
+ go func () {
90
+ for {
91
+ msg , err := conn .ReadMessage ()
96
92
97
- if err != nil {
93
+ if err != nil {
98
94
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 )
95
+ // If it contains EOF, we really dont care...
96
+ if ! strings .Contains (err .Error (), "EOF" ) {
97
+ Error ("Error while reading Freeswitch message: %s" , err )
98
+ }
99
+ break
102
100
}
103
101
104
- done <- true
105
- break
102
+ Debug ("%s" , msg )
106
103
}
104
+ }()
107
105
108
- Info ( "%s" , msg . Dump ())
109
- }
110
- }()
111
-
112
- <- done
106
+ default :
107
+ // YabbaDabbaDooooo!
108
+ //Flintstones. Meet the Flintstones. They're the modern stone age family. From the town of Bedrock,
109
+ // They're a page right out of history. La la,lalalalala la :D
110
+ }
113
111
}
114
112
115
113
}
0 commit comments