MSNP15 returns an IP and a port to connect to in the XFR response.

Change this:

Code:
  elseif ($1 == XFR) {
    var %ip = $gettok($4,1,58)

    sockopen -e switchboard %ip 1863
  }


To this:

Code:
  elseif ($1 == XFR) {
    var %ip = $gettok($4,1,58), %port = $gettok($4,2,58)

    sockopen -e notification %ip %port
  }


Also, you are not connecting to the switchboard in the XFR response, you are connecting to the notification server.

The notification server is the server which sends details of your online contacts, where you send your status, personal message, etc.

The switchboard is a server that you connect to when you begin a conversation with a contact. You open a new switchboard connection for each conversation.