-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
61 lines (46 loc) · 1.24 KB
/
main.go
File metadata and controls
61 lines (46 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package main
import (
"context"
"flag"
"os"
"os/signal"
"syscall"
"github.com/rs/zerolog/log"
)
func main() {
username := flag.String("user", "", "SIP Username")
terminal := flag.String("terminal", "", "SIP Auth Id")
password := flag.String("pw", "", "Password")
server := flag.String("server", "", "SIP Server")
target := flag.String("target", "", "SIP Target User")
unregister := flag.Bool("unregister", false, "Unregister old terminal")
flag.Parse()
config := Config{
Username: *username,
Terminal: *terminal,
Password: *password,
Server: *server,
TargetUser: *target,
Unregister: *unregister,
}
SetupLogger()
log.Info().Msg("Setting up phone")
phone, err := SetupPhone(&config)
defer phone.Close()
if err != nil {
log.Fatal().Err(err).Msg("Failed to setup phone")
return
}
// Actually do stuff
ctx, kill := context.WithCancel(context.Background())
log.Info().Msgf("Calling %s from %s", config.DialURI().User, config.Terminal)
sig := make(chan os.Signal, 1)
signal.Notify(sig, os.Interrupt, syscall.SIGTERM, syscall.SIGKILL)
go func() {
<-sig
log.Warn().Msg("Killing context (hangup)")
kill()
}()
_, err = phone.Dial(ctx, config.DialURI(), config.DialAuth())
log.Info().Msg("Exiting")
}