aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--csta/monitor-start.go19
-rw-r--r--parse/parse.go7
2 files changed, 23 insertions, 3 deletions
diff --git a/csta/monitor-start.go b/csta/monitor-start.go
index d498192..b1b35de 100644
--- a/csta/monitor-start.go
+++ b/csta/monitor-start.go
@@ -1,3 +1,22 @@
package csta
+import "github.com/dim13/asn1"
+
const MonitorStartOpcode = 71
+
+type MonitorStartArg struct {
+ MonitorObject DeviceID
+ //MonitorFilter `asn1:"tag:0,optional"`
+ //MonitorType `asn1:"optional"`
+ //MonitorMediaClass `asn1:"tag:1,optional"`
+ Extensions CSTACommonArguments
+}
+
+type DeviceID struct {
+ PrivateNumber string `asn1:"tag:0,optional"`
+ PrivateName string `asn1:"tag:1,optional"`
+}
+
+type CSTACommonArguments struct {
+ asn1.Tag `asn1:"application,tag:30,optional"`
+}
diff --git a/parse/parse.go b/parse/parse.go
index f8ad251..e7ba10b 100644
--- a/parse/parse.go
+++ b/parse/parse.go
@@ -56,9 +56,10 @@ func main() {
}
fmt.Printf("%x\n", s)
fmt.Printf("%x\n", res)
- case csta.EscapeServiceOpcode:
- fmt.Println("Escape")
- fallthrough
+ case csta.MonitorStartOpcode:
+ ms := &csta.MonitorStartArg{}
+ asn1.Unmarshal(buf, ms)
+ pretty.Println(ms)
default:
unmarshal(s, &rose.Invoke{})
}