Passed
Branch master (49eaf2)
by Vyacheslav
01:28
created

main.checkResult   A

Complexity

Conditions 2

Size

Total Lines 11
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 10
nop 2
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
1
// Example of usage NewAGI for Asterisk.
2
//	Dialplan example:
3
//		exten => _X.,1,NoOp(Test goagi)
4
//		 same => n,Answer()
5
//		 same => n,AGI(/path/to/application)
6
// Reproduces Asterisk agi-test.agi script
7
package main
8
9
import (
10
	"fmt"
11
	"log"
12
	"os"
13
14
	"github.com/staskobzar/goagi"
15
)
16
17
var (
18
	tests, fail, pass int
19
)
20
21
func checkResult(err error, resp goagi.Response) {
22
	tests++
23
	if err != nil {
24
		fail++
25
	} else {
26
		pass++
27
	}
28
	log.Printf("Response code:   %d", resp.Code())
29
	log.Printf("Response value:  %s", resp.Value())
30
	log.Printf("Response data:   %s", resp.Data())
31
	log.Printf("Response endpos: %s", resp.EndPos())
32
}
33
34
func main() {
35
	agi, err := goagi.New(os.Stdin, os.Stdout, nil)
36
	if err != nil {
37
		log.Fatalln(err)
38
	}
39
40
	verb := func(msg string, args ...interface{}) {
41
		if _, err := agi.Verbose(fmt.Sprintf(msg, args...)); err != nil {
42
			log.Fatalln(err)
43
		}
44
	}
45
46
	verb("1.  Testing 'sendfile'...")
47
	resp, err := agi.StreamFile("beep", "", 0)
48
	checkResult(err, resp)
49
50
	verb("2.  Testing 'sendtext'...")
51
	resp, err = agi.SendText("hello world")
52
	checkResult(err, resp)
53
54
	verb("3.  Testing 'sendimage'...")
55
	resp, err = agi.SendImage("hello world")
56
	checkResult(err, resp)
57
58
	verb("4.  Testing 'saynumber'...")
59
	resp, err = agi.SayNumber("192837465", "")
60
	checkResult(err, resp)
61
62
	verb("5.  Testing 'waitdtmf'...")
63
	resp, err = agi.WaitForDigit(1000)
64
	checkResult(err, resp)
65
	verb("Digit received: '%s'", resp.Value())
66
67
	verb("6.  Testing 'record'...")
68
	resp, err = agi.RecordFile("testagi", "gsm", "1234", 3000, 0, false, 0)
69
	checkResult(err, resp)
70
71
	verb("6a.  Testing 'record' playback...")
72
	resp, err = agi.StreamFile("testagi", "", 0)
73
	checkResult(err, resp)
74
75
	verb("================== Complete ======================")
76
	verb("%d tests completed, %d passed, %d failed", tests, pass, fail)
77
	verb("==================================================")
78
}
79