anchor.diff:  
   uac_do_response('SUBSCRIBE', Code, Req, Resp, Subs, Dialog, Call) 
                   when Code>=200, Code<300 ->
  -    case Subs#subscription.status of
  -        notify_wait -> 
  -            Expires = min(Req#sipmsg.expires, Resp#sipmsg.expires),
  -            update({neutral, Expires}, Subs, Dialog, Call);
  -        _ -> 
  -            update(none, Subs, Dialog, Call)
  -    end;
  +    Expires = min(Req#sipmsg.expires, Resp#sipmsg.expires),
  +    update({subscribe, Expires}, Subs, Dialog, Call);
   
   uac_do_response('SUBSCRIBE', Code, _Req, _Resp, Subs, Dialog, Call) 
                   when Code>=300 ->
  
positive.code: 
  uas_do_response('SUBSCRIBE', Code, Req, Resp, Subs, Dialog, Call) 
                  when Code>=200, Code<300 ->
      case Subs#subscription.status of
          notify_wait -> 
              Expires = case min(Req#sipmsg.expires, Resp#sipmsg.expires) of
                  Expires0 when is_integer(Expires0), Expires0>=0 -> Expires0;
                  _ -> ?DEFAULT_EVENT_EXPIRES
              end,
              update({neutral, Expires}, Subs, Dialog, Call);
          _ -> 
              update(none, Subs, Dialog, Call)
      end;
          
  uas_do_response('SUBSCRIBE', Code, _Req, _Resp, Subs, Dialog, Call) 
                  when Code>=300 ->
  
negative.code:         id = Id,
          app_id = AppId,
          event = Event,
          status = start,
          class = Class,
          answered = undefined,
          timer_n = start_timer(64*T1, {tixmeout, Id}, Dialog)
  