From 870ac367aec67db9f4a2e4fd47c558cf37474aba Mon Sep 17 00:00:00 2001 From: DanB Date: Sun, 11 Sep 2016 12:56:23 +0200 Subject: [PATCH] SMAsterisk subscribe channel resource --- sessionmanager/smasterisk.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sessionmanager/smasterisk.go b/sessionmanager/smasterisk.go index 016073e88..88e10a1f3 100644 --- a/sessionmanager/smasterisk.go +++ b/sessionmanager/smasterisk.go @@ -66,10 +66,16 @@ func (sma *SMAsterisk) ListenAndServe() (err error) { case err = <-sma.astErrChan: return err case astRawEv := <-sma.astEvChan: - channelData := astRawEv["channel"].(map[string]interface{}) - channelID := channelData["id"].(string) - if _, err := sma.astConn.Call(aringo.HTTP_POST, fmt.Sprintf("http://%s/ari/channels/%s/continue", - sma.cgrCfg.SMAsteriskCfg().AsteriskConns[sma.astConnIdx].Address, channelID), url.Values{"channelId": {channelID}}); err != nil { + stasisType := astRawEv["type"].(string) + if stasisType == "StasisStart" { + channelData := astRawEv["channel"].(map[string]interface{}) + channelID := channelData["id"].(string) + if _, err := sma.astConn.Call(aringo.HTTP_POST, fmt.Sprintf("http://%s/ari/applications/%s/subscription?eventSource=channel:%s", + sma.cgrCfg.SMAsteriskCfg().AsteriskConns[sma.astConnIdx].Address, CGRAuthAPP, channelID), nil); err != nil { + } + if _, err := sma.astConn.Call(aringo.HTTP_POST, fmt.Sprintf("http://%s/ari/channels/%s/continue", + sma.cgrCfg.SMAsteriskCfg().AsteriskConns[sma.astConnIdx].Address, channelID), url.Values{"channelId": {channelID}}); err != nil { + } } } }