diff --git a/kamjsonrpc.go b/kamjsonrpc.go index 23652c9..64a2a8b 100644 --- a/kamjsonrpc.go +++ b/kamjsonrpc.go @@ -102,6 +102,14 @@ func (self *KamailioJsonRpc) Call(serviceMethod string, args interface{}, reply // Add inidividual methods over the generic one +func (self *KamailioJsonRpc) CoreEcho(params []string, reply *[]string) error { + var rplRaw json.RawMessage + if err := self.Call("core.echo", params, &rplRaw); err != nil { + return err + } + return json.Unmarshal(rplRaw, reply) +} + func (self *KamailioJsonRpc) UacRegEnable(params []string, reply *string) error { var regRaw json.RawMessage if err := self.Call("uac.reg_enable", params, ®Raw); err != nil { diff --git a/kamjsonrpc_local_test.go b/kamjsonrpc_local_test.go index 15a714e..4831123 100644 --- a/kamjsonrpc_local_test.go +++ b/kamjsonrpc_local_test.go @@ -34,6 +34,20 @@ func TestKamJsonRpcCall(t *testing.T) { } } +func TestKamJsonRpcCoreEcho(t *testing.T) { + if !*testLocal { + return + } + req := []string{"test_kamjsonrpc"} + var reply []string + if err := kamRpc.CoreEcho(req, &reply); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(req, reply) { + t.Errorf("Expecting: %+v, received: %+v", req, reply) + } +} + + func TestKamJsonRpcUacRegEnable(t *testing.T) { if !*testLocal { return