Updated fsagent OriginHost

This commit is contained in:
Tripon Alexandru-Ionut
2019-05-29 14:08:54 +03:00
committed by Dan Christian Bogos
parent 93ff0908b9
commit f4e0685659
2 changed files with 11 additions and 6 deletions

View File

@@ -148,7 +148,7 @@ func (sm *FSsessions) onChannelPark(fsev FSEvent, connId string) {
if fsev.GetReqType(utils.META_DEFAULT) == utils.META_NONE { // Not for us
return
}
fsev[VarCGROriginHost] = sm.conns[connId].cfg.Alias
fsev[VarCGROriginHost] = utils.FirstNonEmpty(fsev[VarCGROriginHost], sm.conns[connId].cfg.Alias) // rewrite the OriginHost variable if it is empty
authArgs := fsev.V1AuthorizeArgs()
authArgs.CGREvent.Event[FsConnID] = connId // Attach the connection ID
var authReply sessions.V1AuthorizeReply
@@ -228,7 +228,7 @@ func (sm *FSsessions) onChannelAnswer(fsev FSEvent, connId string) {
utils.FreeSWITCHAgent, err.Error(), VarCGROriginHost))
return
}
fsev[VarCGROriginHost] = sm.conns[connId].cfg.Alias
fsev[VarCGROriginHost] = utils.FirstNonEmpty(fsev[VarCGROriginHost], sm.conns[connId].cfg.Alias) // rewrite the OriginHost variable if it is empty
chanUUID := fsev.GetUUID()
if missing := fsev.MissingParameter(sm.timezone); missing != "" {
sm.disconnectSession(connId, chanUUID, "",
@@ -253,8 +253,8 @@ func (sm *FSsessions) onChannelHangupComplete(fsev FSEvent, connId string) {
return
}
var reply string
fsev[VarCGROriginHost] = sm.conns[connId].cfg.Alias
if fsev[VarAnswerEpoch] != "0" { // call was answered
fsev[VarCGROriginHost] = utils.FirstNonEmpty(fsev[VarCGROriginHost], sm.conns[connId].cfg.Alias) // rewrite the OriginHost variable if it is empty
if fsev[VarAnswerEpoch] != "0" { // call was answered
terminateSessionArgs := fsev.V1TerminateSessionArgs()
terminateSessionArgs.CGREvent.Event[FsConnID] = connId // Attach the connection ID in case we need to create a session and disconnect it
if err := sm.sS.Call(utils.SessionSv1TerminateSession,

View File

@@ -290,6 +290,11 @@ func (fsev FSEvent) GetOriginatorIP(fieldName string) string {
return utils.FirstNonEmpty(fsev[fieldName], fsev[VarCGROriginHost], fsev[FS_IPv4])
}
// GetOriginHost returns the first non empty between: fsev[VarCGROriginHost], conns[connId].cfg.Alias and fsev[FS_IPv4]
func (fsev FSEvent) GetOriginHost() string {
return utils.FirstNonEmpty(fsev[VarCGROriginHost], fsev[FS_IPv4])
}
func (fsev FSEvent) GetExtraFields() map[string]string {
extraFields := make(map[string]string)
for _, fldRule := range config.CgrConfig().FsAgentCfg().ExtraFields {
@@ -311,7 +316,7 @@ func (fsev FSEvent) ParseEventValue(rsrFld *config.RSRParser, timezone string) (
case utils.OriginID:
return rsrFld.ParseValue(fsev.GetUUID())
case utils.OriginHost:
return rsrFld.ParseValue(utils.FirstNonEmpty(fsev[VarCGROriginHost], fsev[FS_IPv4]))
return rsrFld.ParseValue(fsev.GetOriginHost())
case utils.Source:
return rsrFld.ParseValue("FS_EVENT")
case utils.RequestType:
@@ -379,7 +384,7 @@ func (fsev FSEvent) AsMapStringInterface(timezone string) map[string]interface{}
}
mp[utils.ToR] = utils.VOICE
mp[utils.OriginID] = fsev.GetUUID()
mp[utils.OriginHost] = fsev.GetOriginatorIP(utils.META_DEFAULT)
mp[utils.OriginHost] = fsev.GetOriginHost()
mp[utils.Source] = "FS_" + fsev.GetName()
mp[utils.RequestType] = fsev.GetReqType(utils.META_DEFAULT)
mp[utils.Direction] = fsev.GetDirection(utils.META_DEFAULT)