diff --git a/pkg/ami/ami_ confbridge.go b/pkg/ami/ami_ confbridge.go index 4ca4c5f..918b671 100644 --- a/pkg/ami/ami_ confbridge.go +++ b/pkg/ami/ami_ confbridge.go @@ -11,7 +11,7 @@ func ConfbridgeList(ctx context.Context, s AMISocket, conference string) ([]AmiR c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionConfbridgeList).SetVCmd(map[string]interface{}{ config.AmiFieldConference: conference, }) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventConfbridgeList}, []string{config.AmiListenerEventConfbridgeListComplete}) return callback.SendSuperLevel() } @@ -19,7 +19,7 @@ func ConfbridgeList(ctx context.Context, s AMISocket, conference string) ([]AmiR // ConfbridgeListRooms lists data about all active conferences. func ConfbridgeListRooms(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionConfbridgeListRooms) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventConfbridgeListRooms}, []string{config.AmiListenerEventConfbridgeListRoomsComplete}) return callback.SendSuperLevel() } @@ -30,7 +30,7 @@ func ConfbridgeMute(ctx context.Context, s AMISocket, conference string, channel config.AmiFieldConference: conference, config.AmiFieldChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -40,7 +40,7 @@ func ConfbridgeUnmute(ctx context.Context, s AMISocket, conference string, chann config.AmiFieldConference: conference, config.AmiFieldChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -50,7 +50,7 @@ func ConfbridgeKick(ctx context.Context, s AMISocket, conference string, channel config.AmiFieldConference: conference, config.AmiFieldChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -60,7 +60,7 @@ func ConfbridgeLock(ctx context.Context, s AMISocket, conference string, channel config.AmiFieldConference: conference, config.AmiFieldChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -70,7 +70,7 @@ func ConfbridgeUnlock(ctx context.Context, s AMISocket, conference string, chann config.AmiFieldConference: conference, config.AmiFieldChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -80,7 +80,7 @@ func ConfbridgeSetSingleVideoSrc(ctx context.Context, s AMISocket, conference st config.AmiFieldConference: conference, config.AmiFieldChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -93,7 +93,7 @@ func ConfbridgeStartRecord(ctx context.Context, s AMISocket, conference string, params[config.AmiFieldRecordFile] = recordFile } c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionConfbridgeStartRecord).SetVCmd(params) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -102,6 +102,6 @@ func ConfbridgeStopRecord(ctx context.Context, s AMISocket, conference string) ( c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionConfbridgeStopRecord).SetVCmd(map[string]interface{}{ config.AmiFieldConference: conference, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_ presence.go b/pkg/ami/ami_ presence.go index f115e3c..8fa305b 100644 --- a/pkg/ami/ami_ presence.go +++ b/pkg/ami/ami_ presence.go @@ -12,14 +12,14 @@ func PresenceState(ctx context.Context, s AMISocket, provider string) (AmiReply, c.SetV(map[string]interface{}{ config.AmiFieldProvider: provider, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // PresenceStateList list the current known presence states. func PresenceStateList(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPresenceStateList) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventAgents}, []string{config.AmiListenerEventPresenceStateListComplete}) return callback.SendSuperLevel() } diff --git a/pkg/ami/ami_agent.go b/pkg/ami/ami_agent.go index 1cc7d8d..a332e39 100644 --- a/pkg/ami/ami_agent.go +++ b/pkg/ami/ami_agent.go @@ -9,7 +9,7 @@ import ( // Agents lists agents and their status. func Agents(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionAgents) - callback := NewAMICallbackService(ctx, s, c, []string{config.AmiListenerEventAgents}, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventAgents}, []string{config.AmiListenerEventAgentsComplete}) return callback.SendSuperLevel() } @@ -21,6 +21,6 @@ func AgentLogoff(ctx context.Context, s AMISocket, agent string, soft bool) (Ami config.AmiFieldAgent: agent, config.AmiFieldSoft: soft, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_agi.go b/pkg/ami/ami_agi.go index ff73152..11a12fe 100644 --- a/pkg/ami/ami_agi.go +++ b/pkg/ami/ami_agi.go @@ -14,7 +14,7 @@ func AGI(ctx context.Context, s AMISocket, channel, agiCommand, agiCommandID str config.AmiFieldCommand: agiCommand, config.AmiFieldCommandID: agiCommandID, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -25,6 +25,6 @@ func ControlPlayback(ctx context.Context, s AMISocket, channel string, control c config.AmiFieldChannel: channel, config.AmiFieldControl: control, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_atxfer.go b/pkg/ami/ami_atxfer.go index a460f63..bb8e09b 100644 --- a/pkg/ami/ami_atxfer.go +++ b/pkg/ami/ami_atxfer.go @@ -14,7 +14,7 @@ func Atxfer(ctx context.Context, s AMISocket, channel, extension, context string config.AmiFieldExtension: extension, config.AmiFieldContext: context, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -24,6 +24,6 @@ func CancelAtxfer(ctx context.Context, s AMISocket, channel string) (AmiReply, e c.SetV(map[string]interface{}{ config.AmiFieldChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_bridge.go b/pkg/ami/ami_bridge.go index 0712a03..0d812cd 100644 --- a/pkg/ami/ami_bridge.go +++ b/pkg/ami/ami_bridge.go @@ -14,7 +14,7 @@ func Bridge(ctx context.Context, s AMISocket, channel1, channel2 string, tone st config.AmiFieldChannel2: channel2, config.AmiFieldTone: tone, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -26,7 +26,7 @@ func BlindTransfer(ctx context.Context, s AMISocket, channel, context, extension config.AmiFieldContext: context, config.AmiFieldExtension: extension, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -36,7 +36,7 @@ func BridgeDestroy(ctx context.Context, s AMISocket, bridgeUniqueId string) (Ami c.SetV(map[string]interface{}{ config.AmiFieldBridgeUniqueId: bridgeUniqueId, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -46,7 +46,7 @@ func BridgeInfo(ctx context.Context, s AMISocket, bridgeUniqueId string) (AmiRep c.SetV(map[string]interface{}{ config.AmiFieldBridgeUniqueId: bridgeUniqueId, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -60,7 +60,7 @@ func BridgeKick(ctx context.Context, s AMISocket, bridgeUniqueId, channel string } c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionBridgeKick) c.SetV(params) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -70,14 +70,14 @@ func BridgeList(ctx context.Context, s AMISocket, bridgeType string) (AmiReply, c.SetV(map[string]interface{}{ config.AmiFieldBridgeType: bridgeType, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // BridgeTechnologyList list available bridging technologies and their statuses. func BridgeTechnologyList(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionBridgeTechnologyList) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventBridgeTechnologyListItem}, []string{config.AmiListenerEventBridgeTechnologyListComplete}) return callback.SendSuperLevel() } @@ -88,7 +88,7 @@ func BridgeTechnologySuspend(ctx context.Context, s AMISocket, bridgeTechnology c.SetV(map[string]interface{}{ config.AmiFieldBridgeTechnology: bridgeTechnology, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -98,6 +98,6 @@ func BridgeTechnologyUnsuspend(ctx context.Context, s AMISocket, bridgeTechnolog c.SetV(map[string]interface{}{ config.AmiFieldBridgeTechnology: bridgeTechnology, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_callback.go b/pkg/ami/ami_callback.go index 7df1d15..a6622e5 100644 --- a/pkg/ami/ami_callback.go +++ b/pkg/ami/ami_callback.go @@ -2,22 +2,21 @@ package ami import ( "context" - "log" "strings" "time" "github.com/pnguyen215/voipkit/pkg/ami/config" ) -type AMICallbackService interface { +type AmiCallbackService interface { Send() (AmiReply, error) SendLevel() (AmiReplies, error) SendSuperLevel() ([]AmiReply, error) } -func NewAMICallbackService(ctx context.Context, socket AMISocket, command *AMICommand, - acceptedEvents []string, ignoreEvents []string) AMICallbackService { - a := NewAMICallbackHandler() +func NewAmiCallbackService(ctx context.Context, socket AMISocket, command *AMICommand, + acceptedEvents []string, ignoreEvents []string) AmiCallbackService { + a := NewAmiCallbackHandler() a.SetContext(ctx) a.SetSocket(socket) a.SetCommand(command) @@ -26,11 +25,11 @@ func NewAMICallbackService(ctx context.Context, socket AMISocket, command *AMICo return a } -func NewAMICallbackServiceWith(handler *AMICallbackHandler) AMICallbackService { +func NewAmiCallbackHandlerService(handler *AMICallbackHandler) AmiCallbackService { return handler } -func NewAMICallbackHandler() *AMICallbackHandler { +func NewAmiCallbackHandler() *AMICallbackHandler { a := &AMICallbackHandler{} return a } @@ -88,28 +87,23 @@ func (h *AMICallbackHandler) Send() (AmiReply, error) { var total time.Duration = 0 for i := 1; i <= h.Socket.MaxRetries; i++ { - // _start := time.Now().UnixMilli() _start := time.Now() response, err = h.Command.Send(h.Ctx, h.Socket, h.Command) - // _end := time.Now().UnixMilli() - _start _end := time.Since(_start) total += _end - if _end == 0 || strings.EqualFold(response.GetVal(config.AmiJsonFieldStatus), config.AmiFullyBootedKey) { + if _end == 0 || strings.EqualFold(response.Get(config.AmiJsonFieldStatus), config.AmiFullyBootedKey) { continue } - if len(response) > 0 && err == nil { if h.Socket.DebugMode { - log.Printf("Send(). callback return for the %v time(s) and waste time = %v", i, _end) + D().Info("Send(). callback return for the %v time(s) and waste time: %v", i, _end) } break } } - if h.Socket.DebugMode { - log.Printf("Send(). callback total waste time = %v", total) + D().Info("Send(). callback total waste time: %v", total) } - return response, err } @@ -127,29 +121,23 @@ func (h *AMICallbackHandler) SendLevel() (AmiReplies, error) { var total time.Duration = 0 for i := 1; i <= h.Socket.MaxRetries; i++ { - // _start := time.Now().UnixMilli() _start := time.Now() response, err = h.Command.SendLevel(h.Ctx, h.Socket, h.Command) - // _end := time.Now().UnixMilli() - _start _end := time.Since(_start) - // total += _end total += _end - if _end == 0 || strings.EqualFold(response.GetVal(config.AmiJsonFieldStatus), config.AmiFullyBootedKey) { + if _end == 0 || strings.EqualFold(response.Get(config.AmiJsonFieldStatus), config.AmiFullyBootedKey) { continue } - if len(response) > 0 && err == nil { if h.Socket.DebugMode { - log.Printf("SendLevel(). callback return for the %v time(s) and waste time = %v", i, _end) + D().Info("SendLevel(). callback return for the %v time(s) and waste time: %v", i, _end) } break } } - if h.Socket.DebugMode { - log.Printf("SendLevel(). callback total waste time = %v", total) + D().Info("SendLevel(). callback total waste time: %v", total) } - return response, err } @@ -167,27 +155,22 @@ func (h *AMICallbackHandler) SendSuperLevel() ([]AmiReply, error) { var total time.Duration = 0 for i := 1; i <= h.Socket.MaxRetries; i++ { - // _start := time.Now().UnixMilli() _start := time.Now() response, err = h.Command.DoGetResult(h.Ctx, h.Socket, h.Command, h.AcceptedEvents, h.IgnoreEvents) - // _end := time.Now().UnixMilli() - _start _end := time.Since(_start) total += _end if _end == 0 { continue } - if len(response) > 0 && err == nil { if h.Socket.DebugMode { - log.Printf("SendSuperLevel(). callback return for the %v time(s) and waste time = %v", i, _end) + D().Info("SendSuperLevel(). callback return for the %v time(s) and waste time: %v", i, _end) } break } } - if h.Socket.DebugMode { - log.Printf("SendSuperLevel(). callback total waste time = %v", total) + D().Info("SendSuperLevel(). callback total waste time: %v", total) } - return response, err } diff --git a/pkg/ami/ami_channel.go b/pkg/ami/ami_channel.go index 343803f..9fc87cf 100644 --- a/pkg/ami/ami_channel.go +++ b/pkg/ami/ami_channel.go @@ -135,7 +135,7 @@ func (c *AMIChannel) JoinChannelWith(protocol, extension string) string { // CoreShowChannels list currently active channels. func CoreShowChannels(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionCoreShowChannels) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventCoreShowChannel}, []string{config.AmiListenerEventCoreShowChannelsComplete}) return callback.SendSuperLevel() } @@ -149,7 +149,7 @@ func AbsoluteTimeout(ctx context.Context, s AMISocket, channel string, timeout i config.AmiFieldChannel: channel, config.AmiFieldTimeout: _timeout, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -160,7 +160,7 @@ func Hangup(ctx context.Context, s AMISocket, channel, cause string) (AmiReply, config.AmiFieldChannel: channel, config.AmiFieldCause: cause, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -169,14 +169,14 @@ func Hangup(ctx context.Context, s AMISocket, channel, cause string) (AmiReply, func Originate(ctx context.Context, s AMISocket, originate AMIPayloadOriginate) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionOriginate) c.SetVCmd(originate) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // ParkedCalls list parked calls. func ParkedCalls(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionParkedCalls) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventParkedCall}, []string{config.AmiListenerEventParkedCallsComplete}) return callback.SendSuperLevel() } @@ -190,14 +190,14 @@ func Park(ctx context.Context, s AMISocket, channel1, channel2 string, timeout i config.AmiFieldTimeout: timeout, config.AmiFieldParkinglot: parkinglot, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // Parkinglots get a list of parking lots. func Parkinglots(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionParkingLots) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventParkedCall}, []string{config.AmiListenerEventParkinglotsComplete}) return callback.SendSuperLevel() } @@ -210,7 +210,7 @@ func PlayDTMF(ctx context.Context, s AMISocket, channel, digit string, duration config.AmiFieldDigit: digit, config.AmiFieldDuration: duration, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -218,7 +218,7 @@ func PlayDTMF(ctx context.Context, s AMISocket, channel, digit string, duration func Redirect(ctx context.Context, s AMISocket, call AMIPayloadCall) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionRedirect) c.SetVCmd(call) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -229,7 +229,7 @@ func SendText(ctx context.Context, s AMISocket, channel, message string) (AmiRep config.AmiFieldChannel: channel, config.AmiFieldMessage: message, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -242,7 +242,7 @@ func SetVar(ctx context.Context, s AMISocket, channel, variable, value string) ( config.AmiFieldVariable: variable, config.AmiFieldValue: value, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -254,7 +254,7 @@ func Status(ctx context.Context, s AMISocket, channel, variables string) (AmiRep config.AmiFieldChannel: channel, config.AmiFieldVariables: variables, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -262,7 +262,7 @@ func Status(ctx context.Context, s AMISocket, channel, variables string) (AmiRep func AOCMessage(ctx context.Context, s AMISocket, aoc AMIPayloadAOC) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionAocMessage) c.SetVCmd(aoc) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -273,7 +273,7 @@ func GetVar(ctx context.Context, s AMISocket, channel, variable string) (AmiRepl config.AmiFieldChannel: channel, config.AmiFieldVariable: variable, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -285,7 +285,7 @@ func LocalOptimizeAway(ctx context.Context, s AMISocket, channel string) (AmiRep c.SetV(map[string]interface{}{ config.AmiFieldChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -298,6 +298,6 @@ func MuteAudio(ctx context.Context, s AMISocket, channel, direction string, stat config.AmiFieldDirection: direction, config.AmiFieldState: states[state], }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_command.go b/pkg/ami/ami_command.go index 08b9612..f609045 100644 --- a/pkg/ami/ami_command.go +++ b/pkg/ami/ami_command.go @@ -102,8 +102,8 @@ func (a *AMICommand) DoGetResult(ctx context.Context, s AMISocket, c *AMICommand if err != nil { return nil, err } - _event := raw.GetVal(strings.ToLower(config.AmiEventKey)) - _response := raw.GetVal(strings.ToLower(config.AmiResponseKey)) + _event := raw.Get(strings.ToLower(config.AmiEventKey)) + _response := raw.Get(strings.ToLower(config.AmiResponseKey)) if len(acceptedEvents) == 0 { if s.DebugMode { diff --git a/pkg/ami/ami_core.go b/pkg/ami/ami_core.go index 5f4245f..9b3f378 100644 --- a/pkg/ami/ami_core.go +++ b/pkg/ami/ami_core.go @@ -182,7 +182,7 @@ func (c *AMICore) GetSIPPeers(ctx context.Context) ([]AmiReply, error) { return nil, fmt.Errorf(config.AmiErrorNoExtensionConfigured) default: for _, v := range response { - peer, err := SIPShowPeer(ctx, *c.Socket, v.GetVal(config.AmiJsonFieldObjectName)) + peer, err := SIPShowPeer(ctx, *c.Socket, v.Get(config.AmiJsonFieldObjectName)) if err != nil { return nil, err } @@ -289,7 +289,7 @@ func (c *AMICore) GetSIPPeersStatus(ctx context.Context) ([]AmiReply, error) { return nil, fmt.Errorf(config.AmiErrorNoExtensionConfigured) default: for _, v := range response { - peer, err := SIPPeerStatus(ctx, *c.Socket, v.GetVal(config.AmiJsonFieldObjectName)) + peer, err := SIPPeerStatus(ctx, *c.Socket, v.Get(config.AmiJsonFieldObjectName)) if err != nil { return nil, err } @@ -356,7 +356,7 @@ func (c *AMICore) GetSIPQualifyPeer(ctx context.Context) ([]AmiReply, error) { return nil, fmt.Errorf(config.AmiErrorNoExtensionConfigured) default: for _, v := range response { - peer, err := SIPQualifyPeer(ctx, *c.Socket, v.GetVal(config.AmiJsonFieldObjectName)) + peer, err := SIPQualifyPeer(ctx, *c.Socket, v.Get(config.AmiJsonFieldObjectName)) if err != nil { return nil, err } @@ -677,7 +677,7 @@ func (c *AMICore) ExtensionStates(ctx context.Context) ([]AmiReply, error) { return nil, fmt.Errorf(config.AmiErrorNoExtensionsConfigured) default: for _, v := range response { - extension, err := ExtensionState(ctx, *c.Socket, v.GetVal(config.AmiJsonFieldExten), v.GetVal(config.AmiJsonFieldContext)) + extension, err := ExtensionState(ctx, *c.Socket, v.Get(config.AmiJsonFieldExten), v.Get(config.AmiJsonFieldContext)) if err != nil { return nil, err } diff --git a/pkg/ami/ami_dahd.go b/pkg/ami/ami_dahd.go index 5e77c22..8629980 100644 --- a/pkg/ami/ami_dahd.go +++ b/pkg/ami/ami_dahd.go @@ -14,7 +14,7 @@ func DAHDIDialOffhook(ctx context.Context, s AMISocket, channel, number string) config.AmiFieldDAHDIChannel: channel, config.AmiFieldNumber: number, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -24,7 +24,7 @@ func DAHDIDNDoff(ctx context.Context, s AMISocket, channel string) (AmiReply, er c.SetV(map[string]interface{}{ config.AmiFieldDAHDIChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -34,7 +34,7 @@ func DAHDIDNDon(ctx context.Context, s AMISocket, channel string) (AmiReply, err c.SetV(map[string]interface{}{ config.AmiFieldDAHDIChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -44,14 +44,14 @@ func DAHDIHangup(ctx context.Context, s AMISocket, channel string) (AmiReply, er c.SetV(map[string]interface{}{ config.AmiFieldDAHDIChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // DAHDIRestart fully Restart DAHDI channels (terminates calls). func DAHDIRestart(ctx context.Context, s AMISocket) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionDAHDIRestart) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -61,7 +61,7 @@ func DAHDIShowChannels(ctx context.Context, s AMISocket, channel string) ([]AmiR c.SetV(map[string]interface{}{ config.AmiFieldDAHDIChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{config.AmiListenerEventDAHDIShowChannels}, []string{config.AmiListenerEventDAHDIShowChannelsComplete}) + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventDAHDIShowChannels}, []string{config.AmiListenerEventDAHDIShowChannelsComplete}) return callback.SendSuperLevel() } @@ -71,6 +71,6 @@ func DAHDITransfer(ctx context.Context, s AMISocket, channel string) (AmiReply, c.SetV(map[string]interface{}{ config.AmiFieldDAHDIChannel: channel, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_db.go b/pkg/ami/ami_db.go index c2d9388..f78800c 100644 --- a/pkg/ami/ami_db.go +++ b/pkg/ami/ami_db.go @@ -31,7 +31,7 @@ func DBDel(ctx context.Context, s AMISocket, family, key string) (AmiReply, erro c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionDBDel) db := NewAMIPayloadDb().SetFamily(family).SetKey(key) c.SetV(db) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -40,7 +40,7 @@ func DBDelTree(ctx context.Context, s AMISocket, family, key string) (AmiReply, c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionDBDelTree) db := NewAMIPayloadDb().SetFamily(family).SetKey(key) c.SetV(db) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -49,7 +49,7 @@ func DBPut(ctx context.Context, s AMISocket, family, key, value string) (AmiRepl c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionDBPut) db := NewAMIPayloadDb().SetFamily(family).SetKey(key).SetValue(value) c.SetV(db) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -58,6 +58,6 @@ func DBGet(ctx context.Context, s AMISocket, family, key string) ([]AmiReply, er c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionDBGet) db := NewAMIPayloadDb().SetFamily(family).SetKey(key) c.SetV(db) - callback := NewAMICallbackService(ctx, s, c, []string{config.AmiListenerEventDbGetResponse}, []string{config.AmiListenerEventDBGetComplete}) + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventDbGetResponse}, []string{config.AmiListenerEventDBGetComplete}) return callback.SendSuperLevel() } diff --git a/pkg/ami/ami_dialplan.go b/pkg/ami/ami_dialplan.go index 2b8c940..6cde809 100644 --- a/pkg/ami/ami_dialplan.go +++ b/pkg/ami/ami_dialplan.go @@ -52,7 +52,7 @@ func AddDialplanExtension(ctx context.Context, s AMISocket, extension AMIPayload c.SetVCmd(extension) _s := s _s.SetRetry(false) - callback := NewAMICallbackService(ctx, _s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, _s, c, []string{}, []string{}) return callback.Send() } @@ -62,6 +62,6 @@ func RemoveDialplanExtension(ctx context.Context, s AMISocket, extension AMIPayl c.SetVCmd(extension) _s := s _s.SetRetry(false) - callback := NewAMICallbackService(ctx, _s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, _s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_extension.go b/pkg/ami/ami_extension.go index e00c53c..1fd9f82 100644 --- a/pkg/ami/ami_extension.go +++ b/pkg/ami/ami_extension.go @@ -9,7 +9,7 @@ import ( // ExtensionStateList list the current known extension states. func ExtensionStateList(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionExtensionStateList) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventExtensionStatus}, []string{config.AmiListenerEventExtensionStateListComplete}) return callback.SendSuperLevel() } @@ -21,6 +21,6 @@ func ExtensionState(ctx context.Context, s AMISocket, exten, context string) (Am config.AmiFieldExtension: exten, config.AmiFieldContext: context, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_fax.go b/pkg/ami/ami_fax.go index 2a339e2..40d2276 100644 --- a/pkg/ami/ami_fax.go +++ b/pkg/ami/ami_fax.go @@ -12,14 +12,14 @@ func FAXSession(ctx context.Context, s AMISocket, sessionNumber string) (AmiRepl c.SetV(map[string]interface{}{ config.AmiFieldSessionNumber: sessionNumber, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // FAXSessions list active FAX sessions. func FAXSessions(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionFAXSessions) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventFAXSessionsEntry}, []string{config.AmiListenerEventFAXSessionsComplete}) return callback.SendSuperLevel() } @@ -27,7 +27,7 @@ func FAXSessions(ctx context.Context, s AMISocket) ([]AmiReply, error) { // FAXStats responds with fax statistics. func FAXStats(ctx context.Context, s AMISocket) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionFAXStats) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) callback.Send() // preprocessing return callback.Send() } diff --git a/pkg/ami/ami_helper.go b/pkg/ami/ami_helper.go index 6c1304a..a5fa0c3 100644 --- a/pkg/ami/ami_helper.go +++ b/pkg/ami/ami_helper.go @@ -476,7 +476,7 @@ func IsSuccess(raw AmiReply) bool { if len(raw) == 0 { return false } - response := raw.GetVal(strings.ToLower(config.AmiResponseKey)) + response := raw.Get(strings.ToLower(config.AmiResponseKey)) return IsResponse(raw) && strings.EqualFold(response, config.AmiStatusSuccessKey) } @@ -517,7 +517,7 @@ func IsEvent(raw AmiReply) bool { if len(raw) == 0 { return false } - event := raw.GetVal(strings.ToLower(config.AmiEventKey)) + event := raw.Get(strings.ToLower(config.AmiEventKey)) return event != "" } @@ -528,7 +528,7 @@ func IsResponse(raw AmiReply) bool { if len(raw) == 0 { return false } - response := raw.GetVal(strings.ToLower(config.AmiResponseKey)) + response := raw.Get(strings.ToLower(config.AmiResponseKey)) return response != "" } diff --git a/pkg/ami/ami_iax.go b/pkg/ami/ami_iax.go index 523e3e4..ca672a1 100644 --- a/pkg/ami/ami_iax.go +++ b/pkg/ami/ami_iax.go @@ -9,7 +9,7 @@ import ( // IAXnetstats show IAX channels network statistics. func IAXnetstats(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionIAXnetstats) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventPeerEntry}, []string{config.AmiListenerEventPeerlistComplete}) return callback.SendSuperLevel() } @@ -17,7 +17,7 @@ func IAXnetstats(ctx context.Context, s AMISocket) ([]AmiReply, error) { // IAXpeerlist show IAX channels network statistics. func IAXpeerlist(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionIAXpeerlist) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventPeerEntry}, []string{config.AmiListenerEventPeerlistComplete}) return callback.SendSuperLevel() } @@ -25,7 +25,7 @@ func IAXpeerlist(ctx context.Context, s AMISocket) ([]AmiReply, error) { // IAXpeers list IAX peers. func IAXpeers(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionIAXpeers) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventPeerEntry}, []string{config.AmiListenerEventPeerlistComplete}) return callback.SendSuperLevel() } @@ -33,7 +33,7 @@ func IAXpeers(ctx context.Context, s AMISocket) ([]AmiReply, error) { // IAXregistry show IAX registrations. func IAXregistry(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionIAXregistry) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventPeerEntry}, []string{config.AmiListenerEventPeerlistComplete}) return callback.SendSuperLevel() } diff --git a/pkg/ami/ami_khomp.go b/pkg/ami/ami_khomp.go index 72fe078..fb8500e 100644 --- a/pkg/ami/ami_khomp.go +++ b/pkg/ami/ami_khomp.go @@ -35,6 +35,6 @@ func (a *AMIPayloadKhompSMS) SetMessage(value string) *AMIPayloadKhompSMS { func KSendSMS(ctx context.Context, s AMISocket, payload AMIPayloadKhompSMS) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionKSendSMS) c.SetVCmd(payload) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_mailbox.go b/pkg/ami/ami_mailbox.go index 72378d8..e92eacc 100644 --- a/pkg/ami/ami_mailbox.go +++ b/pkg/ami/ami_mailbox.go @@ -12,7 +12,7 @@ func MailboxCount(ctx context.Context, s AMISocket, mailbox string) (AmiReply, e c.SetV(map[string]interface{}{ config.AmiFieldMailbox: mailbox, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -22,7 +22,7 @@ func MailboxStatus(ctx context.Context, s AMISocket, mailbox string) (AmiReply, c.SetV(map[string]interface{}{ config.AmiFieldMailbox: mailbox, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -32,7 +32,7 @@ func MWIDelete(ctx context.Context, s AMISocket, mailbox string) (AmiReply, erro c.SetV(map[string]interface{}{ config.AmiFieldMailbox: mailbox, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -42,7 +42,7 @@ func MWIGet(ctx context.Context, s AMISocket, mailbox string) (AmiReply, error) c.SetV(map[string]interface{}{ config.AmiFieldMailbox: mailbox, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -54,6 +54,6 @@ func MWIUpdate(ctx context.Context, s AMISocket, mailbox, oldMessages, newMessag config.AmiFieldOldMessages: oldMessages, config.AmiFieldNewMessages: newMessages, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_manager.go b/pkg/ami/ami_manager.go index 35b1da5..4257055 100644 --- a/pkg/ami/ami_manager.go +++ b/pkg/ami/ami_manager.go @@ -70,7 +70,7 @@ func Login(ctx context.Context, s AMISocket, auth *AMIAuth) error { c.SetV(auth) c.SetAction(config.AmiActionLogin) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) response, err := callback.Send() if len(response) == 0 { @@ -82,7 +82,7 @@ func Login(ctx context.Context, s AMISocket, auth *AMIAuth) error { } if IsFailure(response) { - return fmt.Errorf(config.AmiErrorLoginFailedMessage, response.GetVal(config.AmiFieldMessage)) + return fmt.Errorf(config.AmiErrorLoginFailedMessage, response.Get(config.AmiFieldMessage)) } return nil @@ -110,7 +110,7 @@ func Logoff(ctx context.Context, s AMISocket) error { } c.SetId(s.UUID) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) response, err := callback.Send() if err != nil { return err @@ -134,7 +134,7 @@ func Ping(ctx context.Context, s AMISocket) error { } c.SetId(s.UUID) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) response, err := callback.Send() if err != nil { return err @@ -150,21 +150,21 @@ func Command(ctx context.Context, s AMISocket, cmd string) (AmiReplies, error) { c.SetV(map[string]string{ config.AmiActionCommand: cmd, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.SendLevel() } // CoreSettings shows PBX core settings (version etc). func CoreSettings(ctx context.Context, s AMISocket) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionCoreSettings) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // CoreStatus shows PBX core status variables. func CoreStatus(ctx context.Context, s AMISocket) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionCoreStatus) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -172,7 +172,7 @@ func CoreStatus(ctx context.Context, s AMISocket) (AmiReply, error) { // Returns the action name and synopsis for every action that is available to the user func ListCommands(ctx context.Context, s AMISocket) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionListCommands) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -182,7 +182,7 @@ func Challenge(ctx context.Context, s AMISocket) (AmiReply, error) { c.SetV(map[string]string{ config.AmiAuthTypeKey: "MD5", }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -194,7 +194,7 @@ func CreateConfig(ctx context.Context, s AMISocket, filename string) (AmiReply, c.SetV(map[string]string{ config.AmiFilenameKey: filename, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -206,7 +206,7 @@ func DataGet(ctx context.Context, s AMISocket, path, search, filter string) (Ami config.AmiFieldSearch: search, config.AmiFieldFilter: filter, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -217,7 +217,7 @@ func EventFlow(ctx context.Context, s AMISocket, eventMask string) (AmiReply, er c.SetV(map[string]string{ config.AmiFieldEventMask: eventMask, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -230,7 +230,7 @@ func GetConfig(ctx context.Context, s AMISocket, filename, category, filter stri config.AmiFieldFilter: filter, config.AmiFieldCategory: category, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -244,7 +244,7 @@ func GetConfigJson(ctx context.Context, s AMISocket, filename, category, filter config.AmiFieldFilter: filter, config.AmiFieldCategory: category, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -256,7 +256,7 @@ func JabberSend(ctx context.Context, s AMISocket, jabber, jid, message string) ( config.AmiFieldJID: jid, config.AmiFieldMessage: message, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -266,7 +266,7 @@ func ListCategories(ctx context.Context, s AMISocket, filename string) (AmiReply c.SetV(map[string]string{ config.AmiFieldFilename: filename, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -277,7 +277,7 @@ func ModuleCheck(ctx context.Context, s AMISocket, module string) (AmiReply, err c.SetV(map[string]string{ config.AmiFieldModule: module, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -289,7 +289,7 @@ func ModuleLoad(ctx context.Context, s AMISocket, module, loadType string) (AmiR config.AmiFieldModule: module, config.AmiFieldLoadType: loadType, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -299,7 +299,7 @@ func Reload(ctx context.Context, s AMISocket, module string) (AmiReply, error) { c.SetV(map[string]string{ config.AmiFieldModule: module, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -311,7 +311,7 @@ func ShowDialPlan(ctx context.Context, s AMISocket, extension, context string) ( config.AmiFieldExtension_: extension, config.AmiFieldContext: context, }) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventListDialplan}, []string{config.AmiListenerEventShowDialPlanComplete}) return callback.SendSuperLevel() } @@ -323,14 +323,14 @@ func Filter(ctx context.Context, s AMISocket, operation, filter string) (AmiRepl config.AmiFieldOperation: operation, config.AmiFieldFilter: filter, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // DeviceStateList list the current known device states. func DeviceStateList(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionDeviceStateList) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventDeviceStateChange}, []string{config.AmiListenerEventDeviceStateListComplete}) return callback.SendSuperLevel() } @@ -338,7 +338,7 @@ func DeviceStateList(ctx context.Context, s AMISocket) ([]AmiReply, error) { // LoggerRotate reload and rotate the Asterisk logger. func LoggerRotate(ctx context.Context, s AMISocket) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionLoggerRotate) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -389,6 +389,6 @@ func UpdateConfig(ctx context.Context, s AMISocket, sourceFilename, destinationF c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionUpdateConfig) c.SetVCmd(options) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_map.go b/pkg/ami/ami_map.go index 7fa3411..11b9cdc 100644 --- a/pkg/ami/ami_map.go +++ b/pkg/ami/ami_map.go @@ -20,20 +20,20 @@ func (c *AMICore) ExtensionStatesMap(ctx context.Context, guard *AMIExtensionGua for _, v := range peers { if guard.AllowExtensionNumeric { - _, err := strconv.Atoi(v.GetVal(config.AmiJsonFieldExten)) + _, err := strconv.Atoi(v.Get(config.AmiJsonFieldExten)) if err != nil { continue } } if len(guard.Context) > 0 { - if !Contains(guard.Context, v.GetVal(config.AmiJsonFieldContext)) { + if !Contains(guard.Context, v.Get(config.AmiJsonFieldContext)) { continue } } if len(guard.StatusesText) > 0 { - if !Contains(guard.StatusesText, v.GetVal(config.AmiJsonFieldStatusText)) { + if !Contains(guard.StatusesText, v.Get(config.AmiJsonFieldStatusText)) { continue } } @@ -88,26 +88,26 @@ func (c *AMICore) GetSIPPeerStatusMap(ctx context.Context, g *AMIPeerStatusGuard func (c *AMICore) convRaw2ExtensionStatus(v AmiReply) *AMIExtensionStatus { e := NewAMIExtensionStatus(). - SetActionId(v.GetVal(config.AmiJsonFieldActionId)). - SetContext(v.GetVal(config.AmiJsonFieldContext)). - SetExtension(v.GetVal(config.AmiJsonFieldExten)). - SetHint(v.GetVal(config.AmiJsonFieldHint)). - SetMessage(v.GetVal(config.AmiJsonFieldMessage)). - SetResponse(v.GetVal(config.AmiJsonFieldResponse)). - SetStatus(v.GetVal(config.AmiJsonFieldStatus)). - SetStatusText(v.GetVal(config.AmiJsonFieldStatusText)) + SetActionId(v.Get(config.AmiJsonFieldActionId)). + SetContext(v.Get(config.AmiJsonFieldContext)). + SetExtension(v.Get(config.AmiJsonFieldExten)). + SetHint(v.Get(config.AmiJsonFieldHint)). + SetMessage(v.Get(config.AmiJsonFieldMessage)). + SetResponse(v.Get(config.AmiJsonFieldResponse)). + SetStatus(v.Get(config.AmiJsonFieldStatus)). + SetStatusText(v.Get(config.AmiJsonFieldStatusText)) return e } func (c *AMICore) convRaw2PeerStatus(v AmiReply, g *AMIPeerStatusGuard) *AMIPeerStatus { e := NewAMIPeerStatus(). - SetActionId(v.GetVal(config.AmiJsonFieldActionId)). - SetChannelType(v.GetVal(config.AmiJsonFieldChannelType)). - SetEvent(v.GetVal(config.AmiJsonFieldEvent)). - SetPeer(v.GetVal(config.AmiJsonFieldPeer)). - SetPeerStatus(v.GetVal(config.AmiJsonFieldPeerStatus)). - SetPrivilege(v.GetVal(config.AmiJsonFieldPrivilege)). - SetTimeInMs(v.GetVal(config.AmiJsonFieldTime)). + SetActionId(v.Get(config.AmiJsonFieldActionId)). + SetChannelType(v.Get(config.AmiJsonFieldChannelType)). + SetEvent(v.Get(config.AmiJsonFieldEvent)). + SetPeer(v.Get(config.AmiJsonFieldPeer)). + SetPeerStatus(v.Get(config.AmiJsonFieldPeerStatus)). + SetPrivilege(v.Get(config.AmiJsonFieldPrivilege)). + SetTimeInMs(v.Get(config.AmiJsonFieldTime)). SetPublishedAt(AdjustTimezone(time.Now(), g.Timezone)) if e.TimeInMs > 0 { diff --git a/pkg/ami/ami_meet_me.go b/pkg/ami/ami_meet_me.go index 257ddf3..530c213 100644 --- a/pkg/ami/ami_meet_me.go +++ b/pkg/ami/ami_meet_me.go @@ -10,7 +10,7 @@ import ( // Will follow as separate events, followed by a final event called MeetmeListComplete. func MeetMeList(ctx context.Context, s AMISocket, conference string) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionMeetMeList) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventMeetMeEntry}, []string{config.AmiListenerEventMeetMeListComplete}) return callback.SendSuperLevel() } @@ -22,7 +22,7 @@ func MeetMeMute(ctx context.Context, s AMISocket, meetme, userNumber string) (Am config.AmiFieldMeetMe: meetme, config.AmiFieldUserNumber: userNumber, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -33,14 +33,14 @@ func MeetMeUnMute(ctx context.Context, s AMISocket, meetme, userNumber string) ( config.AmiFieldMeetMe: meetme, config.AmiFieldUserNumber: userNumber, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // MeetMeListRooms list active conferences. func MeetMeListRooms(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionMeetMeListRooms) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventMeetMeEntry}, []string{config.AmiListenerEventMeetMeListRoomsComplete}) return callback.SendSuperLevel() } diff --git a/pkg/ami/ami_message.go b/pkg/ami/ami_message.go index 7baa577..93f9cf5 100644 --- a/pkg/ami/ami_message.go +++ b/pkg/ami/ami_message.go @@ -441,7 +441,7 @@ func FromJson(jsonString string) (*AMIMessage, error) { func MessageSend(ctx context.Context, s AMISocket, message AMIPayloadMessage) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionMessageSend) c.SetVCmd(message) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_monitor.go b/pkg/ami/ami_monitor.go index 30b4095..044ac8b 100644 --- a/pkg/ami/ami_monitor.go +++ b/pkg/ami/ami_monitor.go @@ -51,7 +51,7 @@ func (m *AMIPayloadMonitor) SetMixMonitorId(value string) *AMIPayloadMonitor { func Monitor(ctx context.Context, s AMISocket, payload AMIPayloadMonitor) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionMonitor) c.SetVCmd(payload) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -67,7 +67,7 @@ func MonitorWith(ctx context.Context, s AMISocket, channel, file, format string, func ChangeMonitor(ctx context.Context, s AMISocket, payload AMIPayloadMonitor) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionChangeMonitor) c.SetVCmd(payload) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -82,7 +82,7 @@ func ChangeMonitorWith(ctx context.Context, s AMISocket, channel, file string) ( func MixMonitor(ctx context.Context, s AMISocket, payload AMIPayloadMonitor) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionMixMonitor) c.SetVCmd(payload) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -95,7 +95,7 @@ func MixMonitorWith(ctx context.Context, s AMISocket, channel, file, options, co config.AmiFieldOptions: options, config.AmiFieldCommand: command, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -106,7 +106,7 @@ func MixMonitorMute(ctx context.Context, s AMISocket, channel, direction string, p := NewAMIPayloadMonitor().SetChannel(channel).SetDirection(direction).SetState(states[state]) c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionMixMonitorMute) c.SetVCmd(p) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -116,7 +116,7 @@ func PauseMonitor(ctx context.Context, s AMISocket, channel string) (AmiReply, e p := NewAMIPayloadMonitor().SetChannel(channel) c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPauseMonitor) c.SetVCmd(p) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -126,7 +126,7 @@ func UnpauseMonitor(ctx context.Context, s AMISocket, channel string) (AmiReply, p := NewAMIPayloadMonitor().SetChannel(channel) c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionUnpauseMonitor) c.SetVCmd(p) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -136,7 +136,7 @@ func StopMonitor(ctx context.Context, s AMISocket, channel string) (AmiReply, er p := NewAMIPayloadMonitor().SetChannel(channel) c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionStopMonitor) c.SetVCmd(p) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -145,6 +145,6 @@ func StopMixMonitor(ctx context.Context, s AMISocket, channel, mixMonitorId stri p := NewAMIPayloadMonitor().SetChannel(channel).SetMixMonitorId(mixMonitorId) c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionStopMixMonitor) c.SetVCmd(p) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_originate.go b/pkg/ami/ami_originate.go index b723077..9737319 100644 --- a/pkg/ami/ami_originate.go +++ b/pkg/ami/ami_originate.go @@ -205,7 +205,7 @@ func DialOut(ctx context.Context, s AMISocket, d AMIOriginateDirection) (AmiRepl if peer.Size() == 0 { return nil, false, fmt.Errorf("Peer %v not found", d.Extension) } - o.SetChannel(peer.GetVal(config.AmiJsonFieldPeer)) + o.SetChannel(peer.Get(config.AmiJsonFieldPeer)) } if d.DebugMode { D().Info("DialOut, an outgoing call with originate request body: %v", o.Json()) @@ -243,7 +243,7 @@ func DialIn(ctx context.Context, s AMISocket, d AMIOriginateDirection) (AmiReply if peer.Size() == 0 { return nil, false, fmt.Errorf("Peer %v not found", d.Extension) } - o.SetChannel(peer.GetVal(config.AmiJsonFieldPeer)) + o.SetChannel(peer.Get(config.AmiJsonFieldPeer)) } if d.DebugMode { D().Info("DialIn, an internal call with originate request body: %v", o.Json()) diff --git a/pkg/ami/ami_pjsip.go b/pkg/ami/ami_pjsip.go index 058517d..c282991 100644 --- a/pkg/ami/ami_pjsip.go +++ b/pkg/ami/ami_pjsip.go @@ -22,7 +22,7 @@ func PJSIPNotify(ctx context.Context, s AMISocket, endpoint, uri, variable strin c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPJSIPNotify) c.SetV(params) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -32,7 +32,7 @@ func PJSIPQualify(ctx context.Context, s AMISocket, endpoint string) (AmiReply, c.SetV(map[string]interface{}{ config.AmiFieldEndpoint: endpoint, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -42,7 +42,7 @@ func PJSIPRegister(ctx context.Context, s AMISocket, registration string) (AmiRe c.SetVCmd(map[string]interface{}{ config.AmiFieldRegistration: registration, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -52,7 +52,7 @@ func PJSIPUnregister(ctx context.Context, s AMISocket, registration string) (Ami c.SetVCmd(map[string]interface{}{ config.AmiFieldRegistration: registration, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -62,7 +62,7 @@ func PJSIPShowEndpoint(ctx context.Context, s AMISocket, endpoint string) ([]Ami c.SetV(map[string]interface{}{ config.AmiFieldEndpoint: endpoint, }) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventEndpointDetail, config.AmiListenerEventContactStatusDetail, config.AmiListenerEventAorDetail, config.AmiListenerEventAuthDetail, config.AmiListenerEventTransportDetail, config.AmiListenerEventIdentifyDetail, @@ -74,7 +74,7 @@ func PJSIPShowEndpoint(ctx context.Context, s AMISocket, endpoint string) ([]Ami // PJSIPShowEndpoints list pjsip endpoints. func PJSIPShowEndpoints(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPJSIPShowEndpoints) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventEndpointList}, []string{config.AmiListenerEventEndpointListComplete}) return callback.SendSuperLevel() @@ -83,7 +83,7 @@ func PJSIPShowEndpoints(ctx context.Context, s AMISocket) ([]AmiReply, error) { // PJSIPShowRegistrationInboundContactStatuses lists ContactStatuses for PJSIP inbound registrations. func PJSIPShowRegistrationInboundContactStatuses(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPJSIPShowRegistrationInboundContactStatuses) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventContactStatusDetail}, []string{config.AmiListenerEventContactStatusDetailComplete}) return callback.SendSuperLevel() @@ -92,7 +92,7 @@ func PJSIPShowRegistrationInboundContactStatuses(ctx context.Context, s AMISocke // PJSIPShowRegistrationsInbound lists PJSIP inbound registrations. func PJSIPShowRegistrationsInbound(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPJSIPShowRegistrationsInbound) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventInboundRegistrationDetail}, []string{config.AmiListenerEventInboundRegistrationDetailComplete}) return callback.SendSuperLevel() @@ -101,7 +101,7 @@ func PJSIPShowRegistrationsInbound(ctx context.Context, s AMISocket) ([]AmiReply // PJSIPShowRegistrationsOutbound lists PJSIP outbound registrations. func PJSIPShowRegistrationsOutbound(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPJSIPShowRegistrationsOutbound) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventOutboundRegistrationDetail}, []string{config.AmiListenerEventOutboundRegistrationDetailComplete}) return callback.SendSuperLevel() @@ -110,7 +110,7 @@ func PJSIPShowRegistrationsOutbound(ctx context.Context, s AMISocket) ([]AmiRepl // PJSIPShowResourceLists displays settings for configured resource lists. func PJSIPShowResourceLists(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPJSIPShowResourceLists) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventResourceListDetail}, []string{config.AmiListenerEventResourceListDetailComplete}) return callback.SendSuperLevel() @@ -119,7 +119,7 @@ func PJSIPShowResourceLists(ctx context.Context, s AMISocket) ([]AmiReply, error // PJSIPShowSubscriptionsInbound list of inbound subscriptions. func PJSIPShowSubscriptionsInbound(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPJSIPShowSubscriptionsInbound) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventInboundSubscriptionDetail}, []string{config.AmiListenerEventInboundSubscriptionDetailComplete}) return callback.SendSuperLevel() @@ -128,7 +128,7 @@ func PJSIPShowSubscriptionsInbound(ctx context.Context, s AMISocket) ([]AmiReply // PJSIPShowSubscriptionsOutbound list of outbound subscriptions. func PJSIPShowSubscriptionsOutbound(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPJSIPShowSubscriptionsOutbound) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventOutboundSubscriptionDetail}, []string{config.AmiListenerEventOutboundSubscriptionDetailComplete}) return callback.SendSuperLevel() diff --git a/pkg/ami/ami_pri.go b/pkg/ami/ami_pri.go index cfc7071..d348631 100644 --- a/pkg/ami/ami_pri.go +++ b/pkg/ami/ami_pri.go @@ -12,14 +12,14 @@ func PRIDebugFileSet(ctx context.Context, s AMISocket, filename string) (AmiRepl c.SetV(map[string]interface{}{ config.AmiFieldFile: filename, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // PRIDebugFileUnset disables file output for PRI debug messages. func PRIDebugFileUnset(ctx context.Context, s AMISocket) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionPRIDebugFileUnset) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -30,7 +30,7 @@ func PRIDebugSet(ctx context.Context, s AMISocket, span, level string) (AmiReply config.AmiFieldSpan: span, config.AmiFieldLevel: level, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -40,6 +40,6 @@ func PRIShowSpans(ctx context.Context, s AMISocket, span string) ([]AmiReply, er c.SetV(map[string]interface{}{ config.AmiFieldSpan: span, }) - callback := NewAMICallbackService(ctx, s, c, []string{config.AmiActionPRIShowSpans}, []string{config.AmiListenerEventPRIShowSpansComplete}) + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiActionPRIShowSpans}, []string{config.AmiListenerEventPRIShowSpansComplete}) return callback.SendSuperLevel() } diff --git a/pkg/ami/ami_queue.go b/pkg/ami/ami_queue.go index a8c5ac0..28e8761 100644 --- a/pkg/ami/ami_queue.go +++ b/pkg/ami/ami_queue.go @@ -12,7 +12,7 @@ func QueueStatuses(ctx context.Context, s AMISocket, queue string) ([]AmiReply, c.SetV(map[string]string{ config.AmiFieldQueue: queue, }) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventQueueMember, config.AmiListenerEventQueueEntry}, []string{config.AmiListenerEventQueueStatusComplete}) return callback.SendSuperLevel() @@ -24,7 +24,7 @@ func QueueSummary(ctx context.Context, s AMISocket, queue string) ([]AmiReply, e c.SetV(map[string]string{ config.AmiFieldQueue: queue, }) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventQueueSummary}, []string{config.AmiListenerEventQueueSummaryComplete}) return callback.SendSuperLevel() @@ -38,7 +38,7 @@ func QueueMemberRingInUse(ctx context.Context, s AMISocket, _interface, ringInUs config.AmiFieldRingInUse: ringInUse, config.AmiFieldQueue: queue, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -49,7 +49,7 @@ func QueueStatus(ctx context.Context, s AMISocket, queue, member string) (AmiRep config.AmiFieldQueue: queue, config.AmiFieldMember: member, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -59,7 +59,7 @@ func QueueRule(ctx context.Context, s AMISocket, rule string) (AmiReply, error) c.SetV(map[string]string{ config.AmiFieldRule: rule, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -67,7 +67,7 @@ func QueueRule(ctx context.Context, s AMISocket, rule string) (AmiReply, error) func QueueReset(ctx context.Context, s AMISocket, queue string) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionQueueReset) c.SetVCmd(AMIPayloadQueue{Queue: queue}) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -75,7 +75,7 @@ func QueueReset(ctx context.Context, s AMISocket, queue string) (AmiReply, error func QueueRemove(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionQueueRemove) c.SetVCmd(queue) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -83,7 +83,7 @@ func QueueRemove(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiRe func QueueReload(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionQueueReload) c.SetVCmd(queue) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -91,7 +91,7 @@ func QueueReload(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiRe func QueuePenalty(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionQueuePenalty) c.SetVCmd(queue) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -99,7 +99,7 @@ func QueuePenalty(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiR func QueuePause(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionQueuePause) c.SetVCmd(queue) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -107,7 +107,7 @@ func QueuePause(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiRep func QueueLog(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionQueueLog) c.SetVCmd(queue) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -115,6 +115,6 @@ func QueueLog(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiReply func QueueAdd(ctx context.Context, s AMISocket, queue AMIPayloadQueue) (AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionQueueAdd) c.SetVCmd(queue) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_reply.go b/pkg/ami/ami_reply.go index 918a4b6..ee90c53 100644 --- a/pkg/ami/ami_reply.go +++ b/pkg/ami/ami_reply.go @@ -12,15 +12,15 @@ func NewAmiReplies() *AmiReplies { return s } -func (s AmiReply) GetVal(key string) string { +// Get retrieves the value associated with the specified key in the AmiReply map. +// If the key is not found or the value is empty, an empty string is returned. +func (s AmiReply) Get(key string) string { if s == nil { return "" } - if len(s) == 0 { return "" } - v := s[key] if len(v) == 0 { return "" @@ -28,6 +28,34 @@ func (s AmiReply) GetVal(key string) string { return v } +// GetOrFallback retrieves the value associated with the specified key in the AmiReply map. +// If the value is empty, it falls back to the value associated with the fallback_key. +func (s AmiReply) GetOrFallback(key, fallback_key string) string { + _v := s.Get(key) + if len(_v) == 0 { + return s.Get(fallback_key) + } + return _v +} + +// GetOrFallbacks retrieves the value associated with the specified key in the AmiReply map. +// If the value is empty, it falls back to the values associated with the fallback_keys, checking in order. +func (s AmiReply) GetOrFallbacks(key string, fallback_keys ...string) string { + if len(fallback_keys) == 0 { + return s.GetOrFallback(key, "") + } + _v := "" + for _, v := range fallback_keys { + _v = s.GetOrFallback(key, v) + if len(_v) > 0 { + break + } + } + return _v +} + +// Values returns a slice containing unique values from the AmiReply map. +// Values are filtered based on the fields specified in config.AmiJsonIgnoringFieldType. func (s AmiReply) Values() []string { if len(s) == 0 { return []string{} @@ -37,7 +65,7 @@ func (s AmiReply) Values() []string { if config.AmiJsonIgnoringFieldType[k] { continue } - v := s.GetVal(k) + v := s.Get(k) if !Contains(result, v) { result = append(result, v) } @@ -45,42 +73,21 @@ func (s AmiReply) Values() []string { return result } +// Size returns the number of unique values in the AmiReply map. func (s AmiReply) Size() int { return len(s.Values()) } -func (s AmiReply) GetValOrPref(key, pref string) string { - _v := s.GetVal(key) - - if len(_v) == 0 { - return s.GetVal(pref) - } - return _v -} - -func (s AmiReply) GetValOrPrefers(key string, pref ...string) string { - if len(pref) == 0 { - return s.GetValOrPref(key, "") - } - _v := "" - for _, v := range pref { - _v = s.GetValOrPref(key, v) - if len(_v) > 0 { - break - } - } - return _v -} - -func (s AmiReplies) GetVal(key string) string { +// Get retrieves the value associated with the specified key in the AmiReplies map. +// If the key is not found or the value is empty, an empty string is returned. +// If the key has multiple values, it returns a JSON string representation of the values. +func (s AmiReplies) Get(key string) string { if s == nil { return "" } - if len(s) == 0 { return "" } - v := s[key] if len(v) == 0 { return "" @@ -91,6 +98,34 @@ func (s AmiReplies) GetVal(key string) string { return JsonString(v) } +// GetOrFallback retrieves the value associated with the specified key in the AmiReplies map. +// If the value is empty, it falls back to the value associated with the fallback_key. +func (s AmiReplies) GetOrFallback(key, fallback_key string) string { + _v := s.Get(key) + if len(_v) == 0 { + return s.Get(fallback_key) + } + return _v +} + +// GetOrFallbacks retrieves the value associated with the specified key in the AmiReplies map. +// If the value is empty, it falls back to the values associated with the fallback_keys, checking in order. +func (s AmiReplies) GetOrFallbacks(key string, fallback_keys ...string) string { + if len(fallback_keys) == 0 { + return s.GetOrFallback(key, "") + } + _v := "" + for _, v := range fallback_keys { + _v = s.GetOrFallback(key, v) + if len(_v) > 0 { + break + } + } + return _v +} + +// Values returns a slice containing unique values from the AmiReplies map. +// Values are filtered based on the fields specified in config.AmiJsonIgnoringFieldType. func (s AmiReplies) Values() []string { if len(s) == 0 { return []string{} @@ -100,7 +135,7 @@ func (s AmiReplies) Values() []string { if config.AmiJsonIgnoringFieldType[k] { continue } - v := s.GetVal(k) + v := s.Get(k) if !Contains(result, v) { result = append(result, v) } @@ -108,29 +143,7 @@ func (s AmiReplies) Values() []string { return result } +// Size returns the number of unique values in the AmiReplies map. func (s AmiReplies) Size() int { return len(s.Values()) } - -func (s AmiReplies) GetValOrPref(key, pref string) string { - _v := s.GetVal(key) - - if len(_v) == 0 { - return s.GetVal(pref) - } - return _v -} - -func (s AmiReplies) GetValOrPrefers(key string, pref ...string) string { - if len(pref) == 0 { - return s.GetValOrPref(key, "") - } - _v := "" - for _, v := range pref { - _v = s.GetValOrPref(key, v) - if len(_v) > 0 { - break - } - } - return _v -} diff --git a/pkg/ami/ami_sip.go b/pkg/ami/ami_sip.go index 0dc09e3..0ca22c1 100644 --- a/pkg/ami/ami_sip.go +++ b/pkg/ami/ami_sip.go @@ -11,7 +11,7 @@ import ( // Peerlist will follow as separate events, followed by a final event called PeerlistComplete func SIPPeers(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionSIPPeers) - callback := NewAMICallbackService(ctx, s, c, []string{config.AmiListenerEventPeerEntry}, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventPeerEntry}, []string{config.AmiListenerEventPeerlistComplete}) return callback.SendSuperLevel() } @@ -22,7 +22,7 @@ func SIPShowPeer(ctx context.Context, s AMISocket, peer string) (AmiReply, error c.SetV(map[string]string{ config.AmiFieldPeer: peer, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -30,14 +30,14 @@ func SIPShowPeer(ctx context.Context, s AMISocket, peer string) (AmiReply, error func SIPPeerStatus(ctx context.Context, s AMISocket, peer string) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionSIPPeerStatus) if peer == "" { - callback := NewAMICallbackService(ctx, s, c, []string{config.AmiListenerEventPeerStatus}, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventPeerStatus}, []string{config.AmiListenerEventSIPpeerstatusComplete}) return callback.SendSuperLevel() } c.SetV(map[string]string{ config.AmiFieldPeer: peer, }) - callback := NewAMICallbackService(ctx, s, c, []string{config.AmiListenerEventPeerStatus}, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventPeerStatus}, []string{config.AmiListenerEventSIPpeerstatusComplete}) return callback.SendSuperLevel() } @@ -68,7 +68,7 @@ func HasSIPPeerStatus(ctx context.Context, s AMISocket, peer string) (bool, erro // SIPShowRegistry shows SIP registrations (text format). func SIPShowRegistry(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionSIPShowRegistry) - callback := NewAMICallbackService(ctx, s, c, []string{config.AmiListenerEventRegistrationEntry}, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventRegistrationEntry}, []string{config.AmiListenerEventRegistrationsComplete}) return callback.SendSuperLevel() } @@ -79,6 +79,6 @@ func SIPQualifyPeer(ctx context.Context, s AMISocket, peer string) (AmiReply, er c.SetV(map[string]string{ config.AmiFieldPeer: peer, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_skinny.go b/pkg/ami/ami_skinny.go index 5eca14f..fa9fdc4 100644 --- a/pkg/ami/ami_skinny.go +++ b/pkg/ami/ami_skinny.go @@ -12,7 +12,7 @@ import ( // followed by a final event called DevicelistComplete. func SKINNYDevices(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionSKINNYdevices) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventDeviceEntry}, []string{config.AmiListenerEventDeviceListComplete}) return callback.SendSuperLevel() } @@ -23,7 +23,7 @@ func SKINNYDevices(ctx context.Context, s AMISocket) ([]AmiReply, error) { // followed by a final event called LinelistComplete. func SKINNYLines(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionSKINNYlines) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventLineEntry}, []string{config.AmiListenerEventLineListComplete}) return callback.SendSuperLevel() } @@ -35,7 +35,7 @@ func SKINNYShowDevice(ctx context.Context, s AMISocket, device string) (AmiReply c.SetV(map[string]interface{}{ config.AmiFieldDevice: device, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } @@ -46,6 +46,6 @@ func SKINNYShowline(ctx context.Context, s AMISocket, line string) (AmiReply, er c.SetV(map[string]interface{}{ config.AmiFieldLine: line, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } diff --git a/pkg/ami/ami_voicemail.go b/pkg/ami/ami_voicemail.go index eb6d725..cb775f4 100644 --- a/pkg/ami/ami_voicemail.go +++ b/pkg/ami/ami_voicemail.go @@ -13,14 +13,14 @@ func VoicemailRefresh(ctx context.Context, s AMISocket, context, mailbox string) config.AmiFieldMailbox: mailbox, config.AmiFieldContext: context, }) - callback := NewAMICallbackService(ctx, s, c, []string{}, []string{}) + callback := NewAmiCallbackService(ctx, s, c, []string{}, []string{}) return callback.Send() } // VoicemailUsersList list all voicemail user information. func VoicemailUsersList(ctx context.Context, s AMISocket) ([]AmiReply, error) { c := NewCommand().SetId(s.UUID).SetAction(config.AmiActionVoicemailUsersList) - callback := NewAMICallbackService(ctx, s, c, + callback := NewAmiCallbackService(ctx, s, c, []string{config.AmiListenerEventVoicemailUserEntry}, []string{config.AmiListenerEventVoicemailUserEntryComplete}) return callback.SendSuperLevel() }