     }
 
     private function sendPauseReq():void {
+      if (-1 === this.supportCommand("PAUSE")) {
+        throw new Error('Pause is not supported by server.');
+      }
+
       /* NetStream must be closed here, otherwise it will think of this rtsp pause
          as a very bad connection and buffer a lot before playing again. Not
          excellent for live data. */

      case STATE_INITIAL:
        trace("RTSPClient: STATE_INITIAL");

        break;
      case STATE_DESCRIBE_SENT:
        trace("RTSPClient: STATE_DESCRIBE_SENT");

        state = STATE_DESCRIBE_RCVD;

        if (!sdp.parse(body)) {

        trace('Cannot start unless in initial state.');
        return false;
      }

      if (0 === this.methods.length) {
        /* We don't know the options yet. Start with that. */
        sendOptionsReq();
        state = STATE_OPTIONS_SENT;
      } else {
        /* Already queried the options (and perhaps got unauthorized on describe) */
        sendDescribeReq();
        state = STATE_DESCRIBE_SENT;
      }
      return true;
    }

    public function pause():Boolean
    {
      if (state !== STATE_PLAYING) {
        trace('Unable to pause a stream if not playing.');
        return false;
      }

      try {
        sendPauseReq();
        state = STATE_PAUSE_SENT;
      } catch (err:Error) {
        trace(err.message);
        return false;
      }

      return true;
    }

