code: func (gw *Gateway) AddBridge(cfg *config.Bridge) error {
  	br := gw.Router.getBridge(cfg.Account)
  	if br == nil {
  		br = bridge.New(cfg)
  		br.Config = gw.Router.Config
  		br.General = &gw.BridgeValues().General
  		br.Log = gw.logger.WithFields(logrus.Fields{"prefix": br.Protocol})
  		brconfig := &bridge.Config{
  			Remote: gw.Message,
  			Bridge: br,
  		}
  		// add the actual bridger for this protocol to this bridge using the bridgeMap
  		if _, ok := gw.Router.BridgeMap[br.Protocol]; !ok {
  			gw.logger.Fatalf("Incorrect protocol %s specified in gateway configuration %s, exiting.", br.Protocol, cfg.Account)
  		}
  		br.Bridger = gw.Router.BridgeMap[br.Protocol](brconfig)
  	}
  	gw.mapChannelsToBridge(br)
  	gw.Bridges[cfg.Account] = br
  	return nil
  }
docs: // AddBridge sets up a new bridge in the gateway object with the specified configuration.