Describe the bug
IRC NOTICE dont get bridged between two channels
To Reproduce
Sending __ping in #test2. Then message from EX-MB1 "
Expected behavior
After ]o[ responsed in #test, the answer should have appeared in #test2 like
EX-MB1: ]o[ pong
Screenshots/debug logs
Using Docker, dont know how to get debug logs
Environment (please complete the following information):
Additional context
###################################################################
#IRC
###################################################################
[irc]
[irc.pirateirc]
#irc server to connect to.
#REQUIRED
Server="roubaix-fr.pirateirc.net:6697"
#Password for irc server (if necessary)
#OPTIONAL (default "")
#Password=""
#Enable to use TLS connection to your irc server.
#OPTIONAL (default false)
UseTLS=true
#Enable SASL (PLAIN) authentication. (freenode requires this from eg AWS hosts)
#It uses NickServNick and NickServPassword as login and password
#OPTIONAL (default false)
UseSASL=false
#Enable to not verify the certificate on your irc server. i
#e.g. when using selfsigned certificates
#OPTIONAL (default false)
SkipTLSVerify=true
#If you know your charset, you can specify it manually.
#Otherwise it tries to detect this automatically. Select one below
# "iso-8859-2:1987", "iso-8859-9:1989", "866", "latin9", "iso-8859-10:1992", "iso-ir-109", "hebrew",
# "cp932", "iso-8859-15", "cp437", "utf-16be", "iso-8859-3:1988", "windows-1251", "utf16", "latin6",
# "latin3", "iso-8859-1:1987", "iso-8859-9", "utf-16le", "big5", "cp819", "asmo-708", "utf-8",
# "ibm437", "iso-ir-157", "iso-ir-144", "latin4", "850", "iso-8859-5", "iso-8859-5:1988", "l3",
# "windows-31j", "utf8", "iso-8859-3", "437", "greek", "iso-8859-8", "l6", "l9-iso-8859-15",
# "iso-8859-2", "latin2", "iso-ir-100", "iso-8859-6", "arabic", "iso-ir-148", "us-ascii", "x-sjis",
# "utf16be", "iso-8859-8:1988", "utf16le", "l4", "utf-16", "iso-ir-138", "iso-8859-7", "iso-8859-7:1987",
# "windows-1252", "l2", "koi8-r", "iso8859-1", "latin1", "ecma-114", "iso-ir-110", "elot-928",
# "iso-ir-126", "iso-8859-1", "iso-ir-127", "cp850", "cyrillic", "greek8", "windows-1250", "iso-latin-1",
# "l5", "ibm866", "cp866", "ms-kanji", "ibm850", "ecma-118", "iso-ir-101", "ibm819", "l1", "iso-8859-6:1987",
# "latin5", "ascii", "sjis", "iso-8859-10", "iso-8859-4", "iso-8859-4:1988", "shift-jis
# The select charset will be converted to utf-8 when sent to other bridges.
#OPTIONAL (default "")
Charset=""
#Your nick on irc.
#REQUIRED
Nick="EX-MB1"
#If you registered your bot with a service like Nickserv on freenode.
#Also being used when UseSASL=true
#
#Note: if you want do to quakenet auth, set NickServNick="[email protected]"
#OPTIONAL
#NickServNick="nickserv"
#NickServPassword="secret"
#OPTIONAL only used for quakenet auth
#NickServUsername="username"
## RELOADABLE SETTINGS
## Settings below can be reloaded by editing the file
#Flood control
#Delay in milliseconds between each message send to the IRC server
#OPTIONAL (default 1300)
MessageDelay=1300
#Maximum amount of messages to hold in queue. If queue is full
#messages will be dropped.
#<message clipped> will be add to the message that fills the queue.
#OPTIONAL (default 30)
MessageQueue=30
#Maximum length of message sent to irc server. If it exceeds
#<message clipped> will be add to the message.
#OPTIONAL (default 400)
MessageLength=400
#Split messages on MessageLength instead of showing the <message clipped>
#WARNING: this could lead to flooding
#OPTIONAL (default false)
MessageSplit=false
#Delay in seconds to rejoin a channel when kicked
#OPTIONAL (default 0)
RejoinDelay=0
#ColorNicks will show each nickname in a different color.
#Only works in IRC right now.
ColorNicks=false
#RunCommands allows you to send RAW irc commands after connection
#Array of strings
#OPTIONAL (default empty)
#RunCommands=["PRIVMSG cwchristerw MatterBridge connected"]
#Nicks you want to ignore.
#Regular expressions supported
#Messages from those users will not be sent to other bridges.
#OPTIONAL
#IgnoreNicks="ircspammer1 ircspammer2"
#Messages you want to ignore.
#Messages matching these regexp will be ignored and not sent to other bridges
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
#IgnoreMessages="^~~ badword"
#messages you want to replace.
#it replaces outgoing messages from the bridge.
#so you need to place it by the sending bridge definition.
#regular expressions supported
#some examples:
#this replaces cat => dog and sleep => awake
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
#this replaces every number with number. 123 => numbernumbernumber
#replacemessages=[ ["[0-9]","number"] ]
#optional (default empty)
#ReplaceMessages=[ ["cat","dog"] ]
#nicks you want to replace.
#see replacemessages for syntaxa
#optional (default empty)
#ReplaceNicks=[ ["user--","user"] ]
#Extractnicks is used to for example rewrite messages from other relaybots
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
#some examples:
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
#you can use multiple entries for multiplebots
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
#OPTIONAL (default empty)
#ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
#extra label that can be used in the RemoteNickFormat
#optional (default empty)
#Label=""
#RemoteNickFormat defines how remote users appear on this bridge
#See [general] config section for default options
#The string "{NOPINGNICK}" (case sensitive) will be replaced by the actual nick / username, but with a ZWSP inside the nick, so the irc user with the same nick won't get pinged. See https://github.com/42wim/matterbridge/issues/175 for more information
RemoteNickFormat="<{NICK}> "
#Enable to show users joins/parts from other bridges
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
#OPTIONAL (default false)
ShowJoinPart=false
#Do not send joins/parts to other bridges
#Currently works for messages from the following bridges: irc, mattermost, slack
#OPTIONAL (default false)
NoSendJoinPart=false
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
#It will strip other characters from the nick
#OPTIONAL (default false)
StripNick=false
#Enable to show topic changes from other bridges
#Only works hiding/show topic changes from slack bridge for now
#OPTIONAL (default false)
ShowTopicChange=true
###################################################################
#GATEWAY
###################################################################
[[gateway]]
#REQUIRED and UNIQUE
name="pirateirc"
#Enable enables this gateway
##OPTIONAL (default false)
enable=true
# [[gateway.in]] specifies the account and channels we will receive messages from.
# The following example bridges between mattermost and irc
#[[gateway.in]]
# account specified above
# REQUIRED
#account="irc.pirateirc"
# channel to connect on that account
# How to specify them for the different bridges:
#
# irc - #channel (# is required) (this needs to be lowercase!)
# mattermost - channel (the channel name as seen in the URL, not the displayname)
# gitter - username/room
# xmpp - channel
# slack - channel (without the #)
# - ID:C123456 (where C123456 is the channel ID) does not work with webhook
# discord - channel (without the #)
# - ID:123456789 (where 123456789 is the channel ID)
# (https://github.com/42wim/matterbridge/issues/57)
# telegram - chatid (a large negative number, eg -123456789)
# see (https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau)
# hipchat - id_channel (see https://www.hipchat.com/account/xmpp for the correct channel)
# rocketchat - #channel (# is required (also needed for private channels!)
# matrix - #channel:server (eg #yourchannel:matrix.org)
# - encrypted rooms are not supported in matrix
# steam - chatid (a large number).
# The number in the URL when you click "enter chat room" in the browser
# whatsapp - [email protected] A unique group JID;
# if you specify an empty string bridge will list all the possibilities
# - "Group Name" if you specify a group name the bridge will hint its JID to specify
# as group names might change in time and contain weird emoticons
# zulip - stream/topic:topicname (without the #)
#
# REQUIRED
#channel="#test"
#OPTIONAL - only used for IRC and XMPP protocols at the moment
#[gateway.in.options]
#OPTIONAL - your irc / xmpp channel key
#key="yourkey"
#[[gateway.out]] specifies the account and channels we will sent messages to.
#[[gateway.out]]
#account="rocketchat.cwinfo"
#channel="#pirateirc"
#OPTIONAL - only used for IRC and XMPP protocols at the moment
#[gateway.out.options]
#OPTIONAL - your irc / xmpp channel key
#key="yourkey"
#[[gateway.inout]] can be used when then channel will be used to receive from
#and send messages to
[[gateway.inout]]
account="irc.pirateirc"
channel="#test"
#OPTIONAL - only used for IRC and XMPP protocols at the moment
#[gateway.inout.options]
#OPTIONAL - your irc / xmpp channel key
#key="yourkey"
[[gateway.inout]]
account="irc.pirateirc"
channel="#test2"
#OPTIONAL - only used for IRC and XMPP protocols at the moment
#[gateway.inout.options]
#OPTIONAL - your irc / xmpp channel key
#key="yourkey"
This is likely because NOTICES are supposes to be ignored by bots, though there should be an option to bridge them (like discord has an option to bridge bot messages).
"Automatic replies must never be sent in response to a NOTICE message." IETF Section 4.4.2
But that doesn't mean they cannot be bridged.
More information about RFC1459 standard at https://tools.ietf.org/html/rfc1459
These repositories have implemented this the way I want to use NOTICE messages.
matrix-org/matrix-appservice-irc
FruitieX/TeleIRC
reactiflux/discordirc
Matrix also uses their version of IRC's NOTICE called m.notice for bots so other bots wouldn't react to them and when a Matrix room has IRC bridge (matrix-appservice-irc), IRC will see NOTICEs from bots which easily results to Matterbridge users missing messages.
I think Matrix's GitHub and RSS bots aren't very uncommon on IRC (or I am in funny set of channels which use them a lot) and would be relevant to see through Matterbridge.
+1
Is there no progress on bridging server notices? That should be a very basic standard feature.
Request for reopening as IRC to IRC is not enough considering the IRC RFC. https://github.com/42wim/matterbridge/pull/1305#issuecomment-753434444
Most helpful comment
"Automatic replies must never be sent in response to a NOTICE message." IETF Section 4.4.2
But that doesn't mean they cannot be bridged.
More information about RFC1459 standard at https://tools.ietf.org/html/rfc1459
These repositories have implemented this the way I want to use NOTICE messages.
matrix-org/matrix-appservice-irc
FruitieX/TeleIRC
reactiflux/discordirc